Azure Storage の仮想ネットワーク サービス エンドポイント ポリシー

仮想ネットワーク サービス エンドポイントのポリシーを使用すると、サービス エンドポイントを経由する Azure Storage アカウントへの仮想ネットワーク エグレス トラフィックをフィルター処理し、特定の Azure Storage アカウントへのデータ流出のみを許可できます。 エンドポイン トポリシーでは、サービス エンドポイント経由で接続する際に、Azure Storage への仮想ネットワーク トラフィックに対する詳細なアクセスが制御されます。

Diagram of Securing Virtual network outbound traffic to Azure Storage accounts.

この機能は、 すべてのグローバル Azure リージョンAzure Storage で一般公開されています。

主な利点

仮想ネットワーク サービス エンドポイント ポリシーには、次の利点があります。

  • Azure Storage への仮想ネットワーク トラフィックのセキュリティ強化

    ネットワーク セキュリティ グループ用の Azure サービス タグ を使用することで、特定の Azure Storage リージョンへの仮想ネットワーク送信トラフィックを制限できます。 ただし、このプロセスにより、選択した Azure Storage リージョン内の任意のアカウントにトラフィックが送信されます。

    エンドポイント ポリシーを使用すると、仮想ネットワークの送信アクセスを許可される Azure Storage アカウントを指定し、他のすべてのストレージ アカウントへのアクセスを制限することができます。 このプロセスにより、仮想ネットワークから流出するデータを保護するためのセキュリティ制御をさらに詳細に行うことができます。

  • Azure サービス トラフィックをフィルター処理するスケーラブルな高可用性ポリシー

    エンドポイント ポリシーでは、サービス エンドポイント経由の、仮想ネットワークからの Azure サービス トラフィックをフィルター処理するためのスケーラブルな高可用性ソリューションが提供されます。 仮想ネットワークでこのトラフィック用のセントラル ネットワーク アプライアンスを維持するために、追加のオーバーヘッドは必要ありません。

サービス エンドポイント ポリシーの JSON オブジェクト

サービス エンドポイント ポリシー オブジェクトを簡単に見てみましょう。

"serviceEndpointPolicyDefinitions": [
    {
            "description": null,
            "name": "MySEP-Definition",
            "resourceGroup": "MySEPDeployment",
            "service": "Microsoft.Storage",
            "serviceResources": [ 
                    "/subscriptions/subscriptionID/resourceGroups/MySEPDeployment/providers/Microsoft.Storage/storageAccounts/mystgacc"
            ],
            "type": "Microsoft.Network/serviceEndpointPolicies/serviceEndpointPolicyDefinitions"
    }
]

構成

  • 特定の Azure Storage アカウントへの仮想ネットワークのトラフィックを制限するエンドポイント ポリシーを構成することができます。

  • エンドポイント ポリシーは仮想ネットワーク内のサブネット上で構成されます。 Azure Storage に対してポリシーを適用するには、サブネット上でサービス エンドポイントを有効にする必要があります。

  • エンドポイント ポリシーでは、resourceID 形式を使用して、特定の Azure Storage アカウントを許可リストに追加できます。 次へのアクセスを制限できます。

    • サブスクリプションのすべてのストレージ アカウント
      E.g. /subscriptions/subscriptionId

    • リソース グループのすべてのストレージ アカウント
      E.g. subscriptions/subscriptionId/resourceGroups/resourceGroupName

    • 対応する Azure Resource Manager resourceId を記載した個別のストレージ アカウント。 これには、BLOB、テーブル、キュー、ファイルおよび Azure Data Lake Storage Gen2 へのトラフィックが含まれます。
      E.g. /subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.Storage/storageAccounts/storageAccountName

  • 既定では、サブネットにサービス エンドポイント ポリシーが指定されていない場合、サービス内のすべてのストレージ アカウントにアクセスできます。 ポリシーがそのサブネット上に構成された後、そのサブネットのコンピューティング インスタンスからはポリシーに指定されているリソースのみにアクセスできます。 他のすべてのストレージ アカウントへのアクセスは拒否されます。

  • サービス エンドポイント ポリシーがサブネットに適用されると、Azure Storage の "サービス エンドポイントのスコープ" がリージョンからグローバル にアップグレードされます。 このプロセスは、それ以降の Azure Storage へのすべてのトラフィックが、サービス エンドポイントを介してセキュリティで保護されることを意味します。 サービス エンドポイント ポリシーは、グローバルにも適用できます。 明示的に許可されていないストレージ アカウントは、アクセスが拒否されます。

  • サブネットには複数のポリシーを適用できます。 サブネットに複数のポリシーが関連付けられている場合、これらのポリシーのいずれかで指定されているリソースへの仮想ネットワーク トラフィックは許可されます。 どのポリシーにも指定されていない、他のすべてのサービス リソースへのアクセスは拒否されます。

Note

サービス エンドポイント ポリシーは 許可ポリシーのため、指定されたリソースを除いて、他のすべてのリソースが制限されます。 ご利用のアプリケーションが持つすべてのサービス リソースの依存関係を明らかにして、ポリシーに列挙済みであることをご確認ください。

  • エンドポイント ポリシーで指定できるのは、Azure Resource Model を使用するストレージ アカウントのみです。 従来の Azure Storage アカウントでは、Azure サービス エンドポイント ポリシーがサポートされません。

  • プライマリ アカウントがリストされている場合、RA-GRS のセカンダリ アクセスが自動的に許可されます。

  • ストレージ アカウントは、仮想ネットワークと同じサブスクリプションまたは別のサブスクリプションまたは Microsoft Entra テナントに存在できます。

シナリオ

  • ピアリングされているか、接続されているか、あるいは複数の仮想ネットワーク:ピアリングされた仮想ネットワーク内のトラフィックをフィルター処理するには、これらの仮想ネットワークに個別にエンドポイント ポリシーを適用する必要があります。

  • ネットワーク アプライアンスまたは Azure Firewall でのインターネット トラフィックのフィルター処理:ポリシーを使用してサービス エンドポイント経由の Azure サービス トラフィックをフィルター処理し、残りのインターネットまたは Azure トラフィックはアプライアンスまたは Azure Firewall 経由でフィルター処理します。

  • 仮想ネットワークにデプロイされている Azure サービスでのトラフィックのフィルター処理: 現時点では、ご利用の仮想ネットワークにデプロイされている Azure マネージド サービスのいずれに対しても、Azure サービス エンドポイント ポリシーがサポートされていません。

  • オンプレミスから Azure サービスへのトラフィックのフィルター処理:サービス エンドポイント ポリシーのみが、そのポリシーに関連付けられているサブネットからのトラフィックに適用されます。 オンプレミスから特定の Azure サービス リソースへのアクセスを許可するには、ネットワーク仮想アプライアンスまたはファイアウォールを使用してトラフィックをフィルター処理する必要があります。

ロギングおよびトラブルシューティング

サービス エンドポイント ポリシーでは、集中ログ記録を使用することはできません。 サービスのリソース ログについては、サービス エンドポイントのログ記録に関するページを参照してください。

トラブルシューティングのシナリオ

  • プレビューで動作していたストレージ アカウントへのアクセスが拒否されました (geo ペア リージョンでは使用できません)

    • グローバル サービス タグを使用できるように Azure Storage アップグレードすると、サービス エンドポイントのスコープとサービス エンドポイントのポリシーがグローバルになります。 そのため、Azure Storage へのトラフィックはサービス エンドポイント経由で暗号化され、ポリシーに明示的に列挙されているストレージ アカウントのみがアクセスを許可されます。

    • アクセスの復元に必要なすべてのストレージ アカウントを明示的に許可リストに追加します。

    • Azure サポートに問い合わせます。

  • エンドポイント ポリシーにリストされているアカウントに対するアクセスが拒否される

    • ネットワーク セキュリティ グループまたはファイアウォールのフィルター処理でアクセスがブロックされている可能性があります

    • ポリシーの削除または再適用によって接続が失われる場合:

      • エンドポイント経由の仮想ネットワークからのアクセスを許可するように Azure サービスが構成されているかどうか、またはリソースの既定のポリシーが [すべて許可] に設定されていることを確認します。

      • サービス診断でエンドポイント経由のトラフィックが表示されることを確認します。

      • ネットワーク セキュリティ グループのフロー ログにアクセスが表示されているかどうかと、ストレージ ログにサービス エンドポイント経由のアクセスが期待どおりに表示されることを確認します。

      • Azure サポートに問い合わせます。

  • サービス エンドポイント ポリシーにリストされていないアカウントに対するアクセスが拒否される

    • エンドポイント経由の仮想ネットワークからのアクセスを許可するように Azure Storage が構成されているかどうか、またはリソースの既定のポリシーが [すべて許可] に設定されているかどうかを確認します。

    • アカウントが従来のストレージ アカウントではなく、サブネット上にサービス エンドポイント ポリシーがあることを確認します。

  • マネージド Azure サービスが、サブネット上でサービス エンドポイント ポリシーを適用した後に動作を停止した場合

    • 現在、サービス エンドポイントでは、Azure SQL Managed Instance 以外のマネージド サービスがサポートされていません。
  • サブネットでサービス エンドポイント ポリシーを適用した後に動作が停止したマネージド ストレージ アカウントにアクセスする

    • マネージド ストレージ アカウントは、サービス エンドポイント ポリシーでサポートされていません。 構成されている場合、ポリシーは既定ですべてのマネージド ストレージ アカウントへのアクセスを拒否します。 アプリケーションからマネージド ストレージ アカウントにアクセスする必要がある場合は、エンドポイント ポリシーをこのトラフィックに使用しないでください。

プロビジョニング

サービス エンドポイント ポリシーは、仮想ネットワークへの書き込みアクセス権を持つユーザーがサブネット上で構成します。 Azure の組み込みロールと、特定のアクセス許可をカスタム ロールに割り当てる方法の詳細をご覧ください。

仮想ネットワークと Azure Storage アカウントは、同じサブスクリプションでも異なるサブスクリプションでも、Microsoft Entra テナントでもかまいません。

制限事項

  • サービス エンドポイント ポリシーをデプロイできるのは、Azure Resource Manager デプロイ モデルを使ってデプロイされた仮想ネットワークのみとなります。

  • 仮想ネットワークは、サービス エンドポイント ポリシーと同じリージョンにある必要があります。

  • ポリシーにリストされている Azure サービスに対してサービス エンドポイントが構成されている場合、サービス エンドポイント ポリシーはサブネット上でのみ適用できます。

  • オンプレミス ネットワークから Azure サービスへのトラフィックに対して、サービス エンドポイント ポリシーを使用することはできません。

  • 現在、Azure SQL Managed Instance 以外の Azure マネージド サービスでは、エンドポイント ポリシーがサポートされていません。 この制限には、共有サブネット (例えば Azure Batch、Microsoft Entra Domain Services、Azure Application Gateway、Azure VPN Gateway、Azure Firewall など) または専用サブネット (例えば Azure App Service Environment、Azure Redis Cache、Azure API Management、クラシック マネージド サービスなど) にデプロイされるマネージド サービスが含まれます。

警告

Azure HDInsight など、仮想ネットワークにデプロイされている Azure サービスは、インフラストラクチャ要件のため、Azure Storage などのその他のサービスにアクセスします。 特定のリソースにエンドポイント ポリシーを制限すると、ご利用の仮想ネットワークにデプロイされている Azure サービス用のこれらのインフラストラクチャ リソースへのアクセスが中断される可能性があります。

  • エンドポイント ポリシーでは従来のストレージ アカウントはサポートされていません。 既定では、従来のすべてのストレージ アカウントへのアクセスがポリシーで拒否されます。 アプリケーションから Azure Resource Manager および従来のストレージ アカウントにアクセスする必要がある場合は、このトラフィックに対してエンドポイント ポリシーを使用しないでください。

料金と制限

サービス エンドポイント ポリシーの使用に追加料金はかかりません。 現時点では、Azure サービス (Azure Storage など) の現在の価格設定モデルは、サービス エンドポイントを介して適用されます。

サービス エンドポイント ポリシーでは、次の制限が適用されます。

リソース 既定の制限
ServiceEndpointPoliciesPerSubscription 500
ServiceEndpointPoliciesPerSubnet 100
ServiceEndpointPoliciesPerVirtualNetwork 100
ServiceResourcesPerServiceEndpointPolicyDefinition 200

次の手順