ネットワークレベルのアクセス制御を実装する

完了

Azure Cosmos DB では、受信ファイアウォールをサポートするために IP ベースのアクセス制御に対応しています。 Azure Cosmos アカウント用にファイアウォールを構成すると、承認されたマシンやクラウド サービスのセットからのみアカウントにアクセスできるようになります。 ファイアウォールは、ネットワーク層をセキュリティで保護するためにのみ役立ちます。 接続では、呼び出し元が引き続き有効な承認トークンを提示する必要があります。

IP アクセス制御

Azure Cosmos DB アカウントでは、既定で、すべてのネットワークとインターネットの IP がアカウントにアクセスできます。 接続要求は、有効な承認トークンを提示するためにのみ必要です。 Azure Cosmos DB アカウントのネットワーク セキュリティを構成するには、単一の IPv4 または CIDR 範囲を指定して、指定された IP または IP 範囲からのみにアクセスを制限する必要があります。 指定された許可された IP リストに含まれていない IP からの接続は、 403 (禁止) 応答を受け取ります。 Azure portal を使用して Azure Cosmos DB アカウントのデータ エクスプローラーでスクリプトを実行している場合や、アカウントのメトリックを確認している可能性があるため、ファイアウォールのセットアップで [Azure Portal からのアクセスを許可する ] オプションも有効にする必要があります。 Azure portal でこれらの Azure Cosmos DB 機能を使用するには、[ + 現在の IP の追加] (#.#.#.#) を選択して現在の IP を追加する必要もあります。

Azure Cosmos DB アカウントへのアクセスは、サブネットと VNET のアクセスの制御を使用して行うこともできます。 VNET 内の特定のサブネットに対するアクセスと IP ベースのファイアウォールの両方を組み合わせて、パブリック IP からのアクセスを制限することができます。 使用されるネットワーク セキュリティを問わず、引き続き有効な承認トークンを提示する必要があります。

Azure Cosmos DB アカウントのファイアウォール規則を設定できます。

  • Azure portal を使用します。
  • Azure Resource Manager テンプレートを使用する。
  • ipRangeFilter プロパティを更新して Azure CLI または Azure PowerShell を使用する。

Azure portal を使用して IP ファイアウォールを構成する

Azure portal を使用して IP ファイアウォールを構成します。

  1. [Azure Cosmos DB アカウント] ページで、[ ファイアウォールと仮想ネットワーク] を選択します。

  2. [ 選択したネットワーク ] オプションを選択します。

    ファイアウォール設定オプションを示す図。

  3. (オプション) 仮想ネットワークを追加するには:

    1. [+ 既存の仮想を追加] を選択して、既存の仮想ネットワークの一覧から選択します。 この例では、 virtualnetwork1 という既存の仮想ネットワークが 1 つだけ存在します。

      既存の仮想ネットワークの一覧を示す図。

    2. [ + 新しい仮想ネットワークの追加] を選択します。

      新しい仮想ネットワークを作成するオプションを示す図。

  4. (省略可能)現在のクライアントから接続できるようにするには、[ + 現在の IP の追加] (#.#.#.#) を選択します。 このオプションに表示されているクライアント IP を確認し、それが適切なパブリック IP アドレスであるかどうかを検証します。 このオプションを使用するとクライアント IP 上で実行されているアプリが Azure Cosmos DB アカウントに接続できるようになるため、開発を簡素化するのに役立ちます。

  5. [ファイアウォール] で、"単一の IPv4 または CIDR 範囲" を追加します。 このオプションによって、指定された IP または IP 範囲からのみにアクセスが制限されます。 IP または IP 範囲を必要な数だけ追加します。 Azure Cosmos DB に接続する必要のあるクラウド サービス、仮想マシン、またはすべてのコンピューターからパブリック IP アドレスを取得する必要があります。 これらのサービス、物理マシン、または仮想マシンに、許可された仮想ネットワーク内の IP が割り当てられている場合は、そのパブリック IP を追加する必要がない場合があります。

  6. [Azure portal からのアクセスを許可する] オプションを選択すると、 Azure portal からのアクセス要求 を有効にすることができます。

  7. (省略可能)[Azure データセンター内からの 接続を受け入れる ] オプションを選択することで、Azure 内の他のソースからのアクセスを有効にすることができます。 このオプションを使用すると、Azure Stream Analytics や Azure Functions などの静的 IP を提供しないサービスから Azure Cosmos DB アカウントにアクセスできるようになります。 このオプションを使用すると、他の顧客サブスクリプションから発信される可能性のある要求も含め、Azure からの "すべての" 要求が可能になります。 このオプションで許可される IP のリストは非常に範囲が広くなるので、ファイアウォール ポリシーの有効性が制限されます。 このオプションは、ご利用の要求が静的 IP または仮想ネットワーク内のサブネットから発生しない場合にのみ使用してください。

IP アクセス制御ポリシーに関する問題のトラブルシューティング

IP アクセス制御ポリシーで発生する可能性のあるいくつかの潜在的な問題を確認してみましょう。

Azure portal がブロックされる

IP アクセス制御ポリシーが有効になっている場合、コンテナーの参照やドキュメントのクエリなどのポータル データ プレーン操作を有効にするには、Azure Cosmos DB アカウントのファイアウォールと仮想ネットワークの設定で [Azure portal からのアクセスを許可する] オプションを選択する必要があります。

SDK がブロックされる

アプリケーションが汎用的な 403 Forbidden 応答を受け取る場合は、アカウントの許可 IP リストを確認し、適切なポリシー構成がお使いの Azure Cosmos DB アカウントに適用されていることを確認します。

ブロックされた要求内のソース IP

トラブルシューティングを行うには、Azure Cosmos DB アカウントで診断ログを有効にします。 ファイアウォール関連のメッセージに対しては、403 リターン コードがログに記録されます。 これらのメッセージをフィルター処理して、ブロックされた要求のソースの IP を返すことができます。

Azure Cosmos DB 用のサービス エンドポイントが有効にされているサブネットからの要求

Azure Cosmos DB 用のサービス エンドポイントが有効にされている仮想ネットワーク内のサブネットからの要求では、仮想ネットワークおよびサブネットの ID が Azure Cosmos DB アカウントに送信されます。 これらの要求にはソースのパブリック IP がないため、IP フィルターでは拒否されます。 仮想ネットワーク内の特定のサブネットからのアクセスを許可するには、アクセス制御リストを追加します。

許可されたアドレスのリスト内のプライベート IP アドレス

許可アドレス リストにプライベート IP アドレスが指定されていないことを確認します。