Azure Cosmos DBプライベートエンドポイント設定

Azure Cosmos DBのプライベートエンドポイントは、Azure Virtual Network (VNet)内からのプライベート接続を実現する重要なセキュリティ機能です。 この記事では、プライベートエンドポイントの設定方法をAzure Portal、Azure CLI、Terraformを使用して詳しく解説します。

ポリシーの説明

Azure Cosmos DBアカウントでプライベートエンドポイントが設定されていない場合、データベースへのアクセスはパブリックインターネット経由で行われます。これにより、ネットワークレベルでのアクセス制御が不十分となり、セキュリティリスクが高まります。プライベートエンドポイントを使用することで、Azure Virtual Network (VNet)経由でのプライベートな接続を確立し、Azure Private Linkテクノロジーを活用してデータの安全性を向上させることができます。

修復方法

コンソールでの修復手順

Azure コンソールを使用して、Cosmos DBアカウントにプライベートエンドポイントを設定します。

事前準備

  1. 必要な権限の確認
    • Cosmos DBアカウントへの共同作成者以上の権限
    • VNetへのネットワーク共同作成者以上の権限
    • プライベートDNSゾーンへの共同作成者権限
  2. ネットワーク設計の確認
    • プライベートエンドポイント用のサブネット(推奨:/27以上)
    • NSGルールの計画
    • DNS構成の確認

プライベートエンドポイントの作成手順

  1. Azure Portalにログイン
    • Azure Portal (https://portal.azure.com) にアクセスし、管理者権限を持つアカウントでログインします
  2. Cosmos DBアカウントの選択
    • ナビゲーションメニューから「Azure Cosmos DB」を選択
    • プライベートエンドポイントを設定したいCosmos DBアカウントを選択します
  3. プライベートエンドポイントの作成
  • 左側のメニューから「設定」セクションの「プライベートエンドポイント接続」を選択
  • 「+ プライベートエンドポイント」ボタンをクリックします
  1. 基本設定の構成
  • プロジェクトの詳細
    • サブスクリプション:適切なサブスクリプションを選択
    • リソースグループ:プライベートエンドポイント用のリソースグループを選択または作成
  • インスタンスの詳細
    • 名前:命名規則に従った名前を入力(例:pe-cosmosdb-prod-japaneast-001)
    • ネットワークインターフェイス名:自動生成される名前を使用または変更
    • 地域:Cosmos DBアカウントと同じ地域を選択
  1. リソースの構成
  • 接続方法:「マイディレクトリ内のAzureリソースに接続します」を選択
  • サブスクリプション:Cosmos DBアカウントが存在するサブスクリプションを選択
  • リソースの種類:「Microsoft.DocumentDB/databaseAccounts」を選択
  • リソース:対象のCosmos DBアカウントを選択
  • ターゲットサブリソース:使用するAPIに応じて選択
    • SQL API: 「Sql」
    • MongoDB API: 「MongoDB」
    • Cassandra API: 「Cassandra」
    • Gremlin API: 「Gremlin」
    • Table API: 「Table」
    • 分析ストア: 「Analytical」
  1. 仮想ネットワークの構成
  • ネットワーク
    • 仮想ネットワーク:プライベートエンドポイントを配置するVNetを選択
    • サブネット:専用のサブネットを選択(他のリソースと共有しない)
  • プライベートIPの構成
    • 動的割り当て(推奨)または静的IPアドレスを指定
  • アプリケーションセキュリティグループ
    • 必要に応じてASGを設定(よりきめ細かなアクセス制御用)
  1. DNS統合の構成
  • プライベートDNSゾーンと統合する:「はい」を選択
  • サブスクリプション:プライベートDNSゾーンのサブスクリプションを選択
  • リソースグループ:DNSゾーンのリソースグループを選択
  • プライベートDNSゾーン
    • 新規作成または既存のゾーンを選択
    • Cosmos DB API別のDNSゾーン名:
      • SQL API: privatelink.documents.azure.com
      • MongoDB API: privatelink.mongo.cosmos.azure.com
      • Cassandra API: privatelink.cassandra.cosmos.azure.com
      • Gremlin API: privatelink.gremlin.cosmos.azure.com
      • Table API: privatelink.table.cosmos.azure.com
  1. タグの設定(組織のポリシーに従う)
    • Environment: Production/Staging/Development
    • Owner: TeamName
    • CostCenter: 部門コード
    • Purpose: Database-PrivateEndpoint
  2. 確認と作成
    • すべての設定を確認
    • 検証が成功したら「作成」ボタンをクリック
    • デプロイには5〜10分程度かかります
  3. 接続の承認(自動承認が有効でない場合)
  • Cosmos DBアカウントの「プライベートエンドポイント接続」に戻る
  • 作成したプライベートエンドポイントの状態を確認
  • 「保留中」の場合、選択して「承認」をクリック
  • 接続の説明を入力し、承認を完了
  1. 接続の検証
    • VNet内のVMまたはAzure Bastionから以下を実行:
    # DNS解決の確認 nslookup <cosmos-account-name>.documents.azure.com # プライベートIPアドレス(10.x.x.x)が返されることを確認 # 接続テスト curl -I https://<cosmos-account-name>.documents.azure.com:443

最後に

この記事では、Azure Cosmos DBアカウントのプライベートエンドポイント設定手順について、詳細な技術実装方法を解説しました。

プライベートエンドポイントの実装は、ゼロトラストネットワークアーキテクチャの基礎となり、データベースセキュリティを大幅に向上させます。特に、適切なDNS設定、ネットワークセキュリティグループ、監視設定を組み合わせることで、エンタープライズレベルのセキュリティを実現できます。

この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。

参考情報

この記事をシェアする

クラウドセキュリティ対策実践集一覧へ戻る

貴社の利用状況に合わせた見積もりを作成します。

料金プランを詳しく見る