次の方法で共有


Azure Storage ファイアウォールおよび仮想ネットワークを構成する

Azure Storage では、多層型セキュリティ モデルが提供されています。 このモデルでは、使用するネットワークまたはリソースの種類とサブネットに基づいて、アプリケーションやエンタープライズ環境で求められるストレージ アカウントへのアクセス レベルを制御できます。

ネットワーク ルールを構成すると、指定したネットワークのセットまたは指定した Azure リソースのセットを経由してデータを要求しているアプリケーションのみが、ストレージ アカウントにアクセスできます。 ストレージ アカウントへのアクセスを、指定した IP アドレス、IP 範囲、Azure Virtual Network (VNet) 内のサブネット、または一部の Azure サービスのリソース インスタンスから発信された要求に制限できます。

ストレージ アカウントには、インターネットを介してアクセスできるパブリック エンドポイントがあります。 ストレージ アカウント用のプライベート エンドポイントを作成することもできます。 プライベート エンドポイントを作成すると、仮想ネットワークからストレージ アカウントにプライベート IP アドレスが割り当てられます。 これは、仮想ネットワークとストレージ アカウントの間のすべてのトラフィックをプライベート リンクで保護するのに役立ちます。

Azure Storage ファイアウォールを使うと、自分のストレージ アカウントのパブリック エンドポイントへのアクセスを制御できます。 プライベート エンドポイントの使用時には、パブリック エンドポイント経由のすべてのアクセスをブロックするためにファイアウォールを使用することもできます。 また、ファイアウォールは、信頼された Azure プラットフォーム サービスがストレージ アカウントにアクセスできるよう構成することもできます。

ネットワーク規則が有効なときにストレージ アカウントにアクセスするアプリケーションでも、要求に対する適切な承認が必要です。 認可は、BLOB、テーブル、ファイル共有、キューに対する Microsoft Entra 資格情報、有効なアカウント アクセス キー、または Shared Access Signature (SAS) トークンでサポートされています。 匿名アクセス用に BLOB コンテナーを構成する場合、そのコンテナー内のデータを読み取る要求を認可する必要はありません。 ファイアウォール規則はすべて有効であり、匿名トラフィックはブロックされます。

ストレージ アカウントのファイアウォール規則を有効にすると、Azure 仮想ネットワーク内で動作しているサービス、または許可されたパブリック IP アドレスから送信された要求でない限り、データに対して受信した要求は既定でブロックされます。 ブロックされる要求には、他の Azure サービスからの要求、Azure portal からの要求、ログおよびメトリック サービスからの要求が含まれます。

サービス インスタンスがホストされているサブネットからのトラフィックを許可することで、仮想ネットワーク内で動作する Azure サービスにアクセス権を付与できます。 また、この記事で説明する例外メカニズムによって、限られた数のシナリオを有効にすることもできます。 Azure portal を通してストレージ アカウントからデータにアクセスするには、設定済みの信頼できる境界 (IP または仮想ネットワーク) 内のコンピューター上にいる必要があります。

Note

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

シナリオ

ストレージ アカウントをセキュリティで保護するには、最初に、既定ではパブリック エンドポイントですべてのネットワークからのトラフィック (インターネット トラフィックなど) にアクセスを許可しないことを規則として構成する必要があります。 次に、特定の仮想ネットワークからのトラフィックにアクセスを許可するルールを構成する必要があります。 また、ルールを構成して、選択したパブリック インターネット IP アドレス範囲からのトラフィックへのアクセスを許可できます。これにより、インターネットやオンプレミスの特定クライアントからの接続を有効にできます。 この構成により、アプリケーションに対してセキュリティで保護されたネットワーク境界を構築することができます。

同じストレージ アカウントでは、ファイアウォール規則を組み合わせて、特定の仮想ネットワークからとパブリック IP アドレス範囲からのアクセスを許可することができます。 既存のストレージ アカウントに、または新しいストレージ アカウントを作成するときに、ストレージ ファイアウォール規則を適用できます。

ストレージ ファイアウォール規則は、ストレージ アカウントのパブリック エンドポイントに適用されます。 ストレージ アカウントのプライベート エンドポイントへのトラフィックを許可するのにファイアウォール アクセス規則は必要ありません。 プライベート エンドポイントの作成を承認するプロセスで、プライベート エンドポイントをホストするサブネットからのトラフィックへのアクセスが暗黙的に許可されます。

重要

Azure Storage ファイアウォール規則は、データ プレーン操作にのみ適用されます。 コントロール プレーン操作は、ファイアウォール規則で指定されている制限の対象になりません。

BLOB コンテナー操作などの一部の操作は、コントロール プレーンとデータ プレーンの両方を介して実行できます。 そのため、Azure portal のコンテナーの一覧表示などの操作を実行しようとすると、別のメカニズムによってブロックされない限り、操作は成功します。 Azure Storage Explorer などのアプリケーションから BLOB データにアクセスしようとすると、ファイアウォールの制限によって制御されます。

データ プレーン操作の一覧については、「Azure Storage REST API リファレンス」を参照してください。 コントロール プレーン操作の一覧については、「Azure Storage Resource Provider REST API リファレンス」を参照してください。

Azure Storage へのネットワーク アクセスを構成する

ストレージ アカウント内のデータへのアクセスは、ネットワーク エンドポイント、信頼されたサービスまたはリソースを介して、以下を含む任意の組み合わせで制御することができます。

仮想ネットワーク エンドポイントについて

ストレージ アカウントには、次の 2 種類の仮想ネットワーク エンドポイントがあります。

仮想ネットワーク サービス エンドポイントはパブリックであり、インターネット経由でアクセスできます。 Azure Storage ファイアウォールを使用すると、このようなパブリック エンドポイントを介してストレージ アカウントへのアクセスを制御できます。 ストレージ アカウントへのパブリック ネットワーク アクセスを有効にすると、データに対するすべての受信要求が既定でブロックされます。 ストレージ アカウントのファイアウォール設定で構成した、許可されたソースからデータを要求するアプリケーションのみが、データにアクセスできます。 ソースには、クライアントのソース IP アドレスまたは仮想ネットワーク サブネット、クライアントまたはサービスがデータにアクセスする Azure サービスまたはリソース インスタンスを含めることができます。 ブロックされる要求には、ファイアウォール構成でアクセスを明示的に許可しない限り、他の Azure サービスからの要求、Azure portal からの要求、ログおよびメトリック サービスからの要求が含まれます。

プライベート エンドポイントは、仮想ネットワークのプライベート IP アドレスを使用して、Microsoft バックボーン ネットワーク経由でストレージ アカウントにアクセスします。 プライベート エンドポイントを使用すると、仮想ネットワークとストレージ アカウントの間のトラフィックがプライベート リンク経由で保護されます。 ストレージ ファイアウォール規則は、プライベート エンドポイントではなく、ストレージ アカウントのパブリック エンドポイントにのみ適用されます。 プライベート エンドポイントの作成を承認するプロセスで、プライベート エンドポイントをホストするサブネットからのトラフィックへのアクセスが暗黙的に許可されます。 アクセス規則を調整する場合は、ネットワーク ポリシーを使用して、プライベート エンドポイント上のトラフィックを制御できます。 プライベート エンドポイントのみを使用する場合は、ファイアウォールを使用して、パブリック エンドポイント経由のすべてのアクセスをブロックできます。

環境でそれぞれの種類のエンドポイントを使用するタイミングを判断するには、「プライベート エンドポイントとサービス エンドポイントの比較」を参照してください。

ストレージ アカウントのネットワーク セキュリティにアプローチする方法

ストレージ アカウントを保護し、セキュリティで保護されたアプリケーションのネットワーク境界を構築するには:

  1. まず、ストレージ アカウント ファイアウォールの [パブリック ネットワーク アクセス] 設定で、ストレージ アカウントのすべてのパブリック ネットワーク アクセスを無効にします。

  2. 可能であれば、データへのアクセスを必要とするクライアントが存在する仮想ネットワーク サブネット上のプライベート エンドポイントからストレージ アカウントへのプライベート リンクを構成します。

  3. クライアント アプリケーションでパブリック エンドポイント経由のアクセスが必要な場合は、[パブリック ネットワーク アクセス] 設定を [選択した仮想ネットワークと IP アドレスから有効] に変更します。 次に、必要に応じて次の手順を実行します。

    1. アクセスを許可する仮想ネットワーク サブネットを指定します。
    2. アクセスを許可するクライアントのパブリック IP アドレス範囲 (オンプレミス ネットワークなど) を指定します。
    3. 選択した Azure リソース インスタンスからのアクセスを許可します。
    4. データのバックアップなどの操作に必要な、信頼されたサービスからのアクセスを許可する例外を追加します。
    5. ログおよびメトリックの例外を追加します。

ネットワーク ルールを適用すると、すべての要求に対して適用されます。 特定の IP アドレスへのアクセスを許可する SAS トークンは、トークン所有者のアクセスを制限する働きをしますが、構成されているネットワーク ルールを超えて新しいアクセスを許可することはありません。

制限事項と考慮事項

ストレージ アカウントのネットワーク セキュリティを実装する前に、このセクションで説明する重要な制限事項と考慮事項を確認してください。

  • Azure Storage ファイアウォール規則は、データ プレーン操作にのみ適用されます。 コントロール プレーン操作は、ファイアウォール規則で指定されている制限の対象になりません。
  • IP ネットワーク規則の制限」を参照してください。
  • Azure portal、Azure Storage Explorer、AzCopy などのツールを使用してデータにアクセスするには、ネットワーク セキュリティ規則を構成するときに確立する、信頼できる境界内のマシンから実行する必要があります。
  • ネットワーク ルールは、Azure Storage のすべてのネットワーク プロトコル (REST と SMB を含む) に適用されます。
  • ネットワーク規則は、マウント操作、マウント解除操作、ディスク I/O などの仮想マシン (VM) ディスクのトラフィックには影響しませんが、ページ BLOB への REST アクセスを保護するのに役立ちます。
  • ネットワーク ルールが適用されたストレージ アカウントでアンマネージド ディスクを使用し、例外を作成することにより、VM をバックアップおよび復元できます。 ファイアウォールの例外は Azure によって既に管理されているので、マネージド ディスクには適用されません。
  • 従来のストレージ アカウントでは、ファイアウォールと仮想ネットワークはサポートされていません。
  • 仮想ネットワーク ルールに含まれているサブネットを削除すると、そのサブネットはストレージ アカウントのネットワーク ルールから削除されます。 同じ名前で新しいサブネットを作成しても、ストレージ アカウントにアクセスできません。 アクセスを許可するには、ストレージ アカウントのネットワーク ルールで新しいサブネットを明示的に承認する必要があります。
  • クライアント アプリケーションでサービス エンドポイントを参照する場合は、キャッシュされた IP アドレスに依存しないようにすることをお勧めします。 ストレージ アカウントの IP アドレスは変更される可能性があるため、キャッシュされた IP アドレスに依存すると、予期しない動作が発生する可能性があります。 さらに、DNS レコードの有効期限 (TTL) を守り、オーバーライドしないようにすることをお勧めします。 DNS TTL をオーバーライドすると、予期しない動作が発生する可能性があります。
  • 設計上、信頼されたサービスからストレージ アカウントにアクセスすることは、他のネットワーク アクセス制限よりも最も優先されます。 [パブリック ネットワーク アクセス] を以前に [選択した仮想ネットワークと IP アドレスから有効] に設定した後で [無効] に設定する場合、[信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] など、以前に構成したリソース インスタンス例外は、引き続き有効です。 その結果、それらのリソースとサービスでは引き続きストレージ アカウントにアクセスできる場合があります。

承認

ネットワーク ルールによってアクセスを許可されたクライアントがデータにアクセスするには、ストレージ アカウントの認可要件を引き続き満たす必要があります。 認可は、BLOB とキューに対する Azure Active Directory (Azure AD) の資格情報、有効なアカウント アクセス キー、または Shared Access Signature (SAS) トークンでサポートされています。

匿名パブリック アクセス用に BLOB コンテナーを構成する場合、そのコンテナー内のデータの読み取り要求を認可する必要はありませんが、ファイアウォール規則は引き続き有効であり、匿名トラフィックはブロックされます。

既定のネットワーク アクセス ルールの変更

既定では、ストレージ アカウントは、任意のネットワーク上のクライアントからの接続を受け入れます。 選択したネットワークへのアクセスを制限するか、または、すべてのネットワークからのトラフィックを禁止して、プライベート エンドポイント経由でのみアクセスを許可することができます。

拒否するように既定の規則を設定する必要があります。そうしないと、ネットワーク ルールは効力を発揮しません。 ただし、この設定を変更すると、アプリケーションが Azure Storage に接続する機能に影響を及ぼす可能性があります。 この設定を変更する前に、許可されたネットワークへのアクセスを許可するか、プライベート エンドポイントを使用してアクセスを設定するようにしてください。

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

  1. セキュリティで保護するストレージ アカウントに移動します。

  2. [セキュリティとネットワーク][ネットワーク] の設定を見つけます。

  3. 許可するパブリック ネットワーク アクセスの種類を選択します。

    • すべてのネットワークからのトラフィックを許可するには、[すべてのネットワークから有効] を選択します。

    • 特定の仮想ネットワークからのトラフィックのみを許可するには、[選択した仮想ネットワークと IP アドレスから有効] を選択します。

    • すべてのネットワークからのトラフィックをブロックするには、[無効] を選択します。

  4. [保存] を選択して変更を保存します。

注意事項

設計上、信頼されたサービスからストレージ アカウントにアクセスすることは、他のネットワーク アクセス制限よりも最も優先されます。 [パブリック ネットワーク アクセス] を以前に [選択した仮想ネットワークと IP アドレスから有効] に設定した後で [無効] に設定する場合、[信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] など、以前に構成したリソース インスタンス例外は、引き続き有効です。 その結果、それらのリソースとサービスでは引き続きストレージ アカウントにアクセスできる場合があります。

仮想ネットワークからアクセスの許可

特定のサブネットからのアクセスのみを許可するように、ストレージ アカウントを構成できます。 許可されるサブネットは、同じサブスクリプション内の仮想ネットワークに属していても、または異なる Microsoft Entra テナントに属するサブスクリプションなどの異なるサブスクリプション内のものであってもかまいません。 リージョン間サービス エンドポイントでは、許可されたサブネットをストレージ アカウントとは異なるリージョンに配置することもできます。

仮想ネットワーク内の Azure Storage に対するサービス エンドポイントを有効にすることができます。 サービス エンドポイントでは、仮想ネットワークからのトラフィックが、最適なパスを経由して Azure Storage サービスにルーティングされます。 サブネットと仮想ネットワークの ID も、各要求と一緒に転送されます。 管理者は、その後、仮想ネットワーク内の特定のサブネットからの要求の受信を許可するネットワーク ルールを、ストレージ アカウントに対して構成できます。 これらのネットワーク ルールによってアクセスを許可されたクライアントがデータにアクセスするには、ストレージ アカウントの認可要件を引き続き満たす必要があります。

各ストレージ アカウントでは、最大 400 個の仮想ネットワーク規則を設定できます。 これらの規則は、IP ネットワーク ルールと組み合わせることができます。

重要

クライアント アプリケーションでサービス エンドポイントを参照する場合は、キャッシュされた IP アドレスに依存しないようにすることをお勧めします。 ストレージ アカウントの IP アドレスは変更される可能性があるため、キャッシュされた IP アドレスに依存すると、予期しない動作が発生する可能性があります。

さらに、DNS レコードの有効期限 (TTL) を守り、オーバーライドしないようにすることをお勧めします。 DNS TTL をオーバーライドすると、予期しない動作が発生する可能性があります。

必要なアクセス許可

ストレージ アカウントに仮想ネットワーク規則を適用するには、追加されるサブネットに対する適切なアクセス許可を持っている必要があります。 Storage Account Contributor または Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action Azure リソース プロバイダー操作にアクセスする権利が与えられているユーザーは、カスタム Azure ロールを使用してルールを適用できます。

ストレージ アカウントとアクセス権を取得する仮想ネットワークは、異なる Microsoft Entra テナントの一部であるサブスクリプションなどの異なるサブスクリプションに含まれていてもかまいません。

異なる Microsoft Entra テナントの一部である仮想ネットワーク内のサブネットへのアクセスを許可するルールの構成は、現在、PowerShell、Azure CLI、REST API でのみサポートされています。 このようなルールは、ポータルで表示できますが、Azure portal を使用して構成することはできません。

Azure Storage のリージョン間サービス エンドポイント

Azure Storage のリージョン間サービス エンドポイントは、2023 年 4 月に一般公開されました。 任意のリージョンの仮想ネットワークとストレージ サービス インスタンスの間で機能します。 リージョン間サービス エンドポイントを使用すると、サブネットでは、別のリージョン内のストレージ アカウントを含めて、ストレージ アカウントとの通信にパブリック IP アドレスを使用しなくなります。 代わりに、サブネットからストレージ アカウントへのすべてのトラフィックで、ソース IP としてプライベート IP アドレスが使用されます。 その結果、IP ネットワーク ルールを使用してそれらのサブネットからのトラフィックを許可するストレージ アカウントは、影響を受けなくなります。

ペアのリージョン内で仮想ネットワークとサービス インスタンス間にサービス エンドポイントを構成することは、ディザスター リカバリー計画の重要な部分になる可能性があります。 サービス エンドポイントにより、リージョンのフェールオーバー時の継続性と、読み取り専用の geo 冗長ストレージ (RA-GRS) インスタンスへのアクセスが実現されます。 仮想ネットワークからストレージ アカウントへのアクセスを許可するネットワーク ルールでは、任意の RA-GRS インスタンスへのアクセスも許可します。

リージョンの障害時のディザスター リカバリーを計画する場合、ペアのリージョンに仮想ネットワークを事前に作成します。 これらの代替仮想ネットワークからのアクセスを許可するネットワーク ルールで、Azure Storage 用のサービス エンドポイントを有効にします。 その後、これらのルールを geo 冗長ストレージ アカウントに適用します。

ローカルとリージョン間のサービス エンドポイントは、同じサブネット上に共存できません。 既存のサービス エンドポイントをリージョン間サービス エンドポイントに置き換えるには、既存 Microsoft.Storage エンドポイントを削除し、リージョン間エンドポイント (Microsoft.Storage.Global) として再作成します。

仮想ネットワーク規則の管理

ストレージ アカウントの仮想ネットワーク規則は、Azure portal、PowerShell、または Azure CLI v2 で管理できます。

別の Microsoft Entra テナント内の仮想ネットワークやサブネットからストレージ アカウントへのアクセスを有効にする場合は、PowerShell または Azure CLI を使う必要があります。 Azure portal には、他の Microsoft Entra テナント内のサブネットは表示されません。

  1. セキュリティで保護するストレージ アカウントに移動します。

  2. [ネットワーク] を選択します。

  3. [選択されたネットワーク] からのアクセスを許可するように選択していることを確認します。

  4. 新しいネットワーク ルールを使用して仮想ネットワークへのアクセスを許可するには、[仮想ネットワーク][既存の仮想ネットワークを追加する] を選択します。 [仮想ネットワーク][サブネット] オプションを選択して、[追加] を選択します。

    新しい仮想ネットワークを作成してアクセスを許可するには、 [新しい仮想ネットワークを追加] をクリックします。 新しい仮想ネットワークの作成に必要な情報を指定して、[作成] を選択します。

    Azure Storage 用のサービス エンドポイントが、選択した仮想ネットワークとサブネットに対してまだ構成されていない場合は、この操作の中で構成することができます。

    現在、ルールの作成時に選択できるのは、同じ Microsoft Entra テナントに属する仮想ネットワークのみです。 別のテナントに属する仮想ネットワーク内のサブネットにアクセスを許可するには、PowerShell、Azure CLI、または REST API を使用します。

  5. 仮想ネットワークまたはサブネットの規則を削除するには、省略記号 ([...]) を選択して仮想ネットワークまたはサブネットのコンテキスト メニューを開き、[削除] を選択します。

  6. [保存] を選択して変更を保存します。

重要

ネットワーク ルールに含まれているサブネットを削除すると、そのサブネットはストレージ アカウントのネットワーク ルールから削除されます。 同じ名前で新しいサブネットを作成しても、ストレージ アカウントにアクセスできません。 アクセスを許可するには、ストレージ アカウントのネットワーク ルールで新しいサブネットを明示的に承認する必要があります。

インターネットの IP 範囲からのアクセスを許可する

IP ネットワーク規則を作成すると、IP ネットワーク規則を使用して特定のパブリック インターネット IP アドレス範囲からのアクセスを許可できます。 各ストレージ アカウントでは、最大 400 個の規則を設定できます。 これらの規則により、特定のインターネット ベースのサービスとオンプレミスのネットワークにアクセスが許可され、一般的なインターネット トラフィックがブロックされます。

IP ネットワーク規則の制限

IP アドレスの範囲には、次の制限が適用されます。

  • IP ネットワーク規則は、パブリック インターネットの IP アドレスに対してのみ許可されます。

    プライベート ネットワーク用に予約されている IP アドレス範囲 (RFC 1918 で定義) は、IP ルールでは許可されません。 プライベート ネットワークには、10、172.16 から 172.31、および 192.168 で始まるアドレスが含まれます。

  • 許可するインターネット アドレスの範囲は、CIDR 表記法を使って 16.17.18.0/24 の形式で、または 16.17.18.19 のように個々の IP アドレスとして指定する必要があります。

  • /31 や /32 のプレフィックス サイズを使用する小さいアドレス範囲はサポートされていません。 これらの範囲を構成するには、個別の IP アドレス規則を使用します。

  • ストレージ ファイアウォール規則の構成では、IPv4 アドレスのみがサポートされています。

重要

IP ネットワーク ルールは、次の場合には使用できません。

  • ストレージ アカウントと同じ Azure リージョン内のクライアントへのアクセスを制限する。 IP ネットワーク ルールは、ストレージ アカウントと同じ Azure リージョンから送信された要求には影響しません。 同じリージョンの要求を許可するには、仮想ネットワーク規則を使用します。
  • サービス エンドポイントがある仮想ネットワーク内のペアになっているリージョンのクライアントへのアクセスを制限する。
  • ストレージ アカウントと同じリージョンにデプロイされている Azure サービスへのアクセスを制限する。 ストレージ アカウントと同じリージョンでデプロイされたサービスでは、プライベート Azure IP アドレスが通信に使用されます。 そのため、特定の Azure サービスへのアクセスを、そのパブリック送信 IP アドレスの範囲に基づいて制限することはできません。

オンプレミスのネットワークからのアクセスの構成

IP ネットワーク ルールを使用してオンプレミスのネットワークからストレージ アカウントへのアクセスを許可するには、ネットワークで使用するインターネット接続 IP アドレスを特定する必要があります。 サポートが必要な場合は、ネットワーク管理者にお問い合わせください。

オンプレミスから Azure ExpressRoute を使用している場合、Microsoft ピアリングのために使用されている NAT IP アドレスを特定する必要があります。 NAT IP アドレスは、サービス プロバイダーまたはお客様のいずれかによって指定されます。

サービス リソースへのアクセスを許可するには、リソース IP のファイアウォール設定でこれらのパブリック IP アドレスを許可する必要があります。

IP ネットワーク ルールの管理

ストレージ アカウントの IP ネットワーク ルールは、Azure portal、PowerShell、または Azure CLI v2 で管理できます。

  1. セキュリティで保護するストレージ アカウントに移動します。

  2. [ネットワーク] を選択します。

  3. [選択されたネットワーク] からのアクセスを許可するように選択していることを確認します。

  4. インターネット IP 範囲へのアクセスを許可するには、 [ファイアウォール]>[アドレス範囲] で IP アドレスまたはアドレス範囲 (CIDR 形式) を入力します。

  5. IP ネットワーク ルールを削除するには、アドレス範囲の横にある削除アイコン () を選択します。

  6. [保存] を選択して変更を保存します。

Azure リソース インスタンスからのアクセスを許可する

場合によっては、アプリケーションが、仮想ネットワークまたは IP アドレス規則によって分離できない Azure リソースに依存していることがあります。 しかし、その場合でも、ストレージ アカウントのアクセスをセキュリティで保護してアプリケーションの Azure リソースのみに制限したいことがあります。 リソース インスタンス ルールを作成すると、信頼された Azure サービスの特定のリソース インスタンスにアクセスを許可するよう、ストレージ アカウントを構成できます。

リソース インスタンスの Azure ロールの割り当てによって、リソース インスタンスがストレージ アカウントのデータに対して実行できる操作の種類が決まります。 リソース インスタンスは、ストレージ アカウントと同じテナントからのものである必要がありますが、テナント内のどのサブスクリプションに属していてもかまいません。

Azure portal で、リソース ネットワーク ルールを追加または削除できます。

  1. Azure portal にサインインします。

  2. ストレージ アカウントを見つけて、アカウントの概要を表示します。

  3. [ネットワーク] を選択します。

  4. [ファイアウォールと仮想ネットワーク][選択されたネットワーク] に対して、アクセスを許可するオプションを選択します。

  5. 下へスクロールして、[リソース インスタンス] を見つけます。 [リソースの種類] ドロップダウン リストで、リソース インスタンスのリソースの種類を選択します。

  6. [インスタンス名] ドロップダウン リストで、リソース インスタンスを選択します。 また、アクティブなテナント、サブスクリプション、またはリソース グループ内のすべてのリソース インスタンスを含めるように選択することもできます。

  7. [保存] を選択して変更を適用します。 リソース インスタンスが、ネットワーク設定のページの [リソース インスタンス] セクションに表示されます。

リソース インスタンスを削除するには、リソース インスタンスの横にある削除アイコン () を選択します。

信頼された Azure サービスにアクセスを許可する

一部の Azure サービスは、ネットワーク ルールに含めることのできないネットワークから動作します。 他のアプリに対するネットワーク ルールを維持しながら、このような信頼された Azure サービスのサブセットにストレージ アカウントへのアクセスを許可できます。 これらの信頼されたサービスでは、強力な認証を使用して、お客様のストレージ アカウントに接続します。

ネットワーク ルールの例外を作成することによって、信頼された Azure サービスにアクセスを許可できます。 詳細な手順については、この記事の「例外を管理する」セクションで説明しています。

Microsoft Entra テナントに登録されているリソースに対する信頼されたアクセス

一部のサービスのリソースは、ログの書き込みやバックアップの実行など、選択された操作のためにストレージ アカウントにアクセスする可能性があります。 これらのサービスは、ストレージ アカウントと同じ Microsoft Entra テナント内にあるサブスクリプションに登録する必要があります。 次の表では、各サービスと許可される操作について説明します。

サービス リソース プロバイダー名 許可される操作
Azure Backup Microsoft.RecoveryServices サービスとしてのインフラストラクチャ (IaaS) 仮想マシン (マネージド ディスクでは不要) で、アンマネージド ディスクのバックアップと復元を実行します。 詳細については、こちらを参照してください
Azure Data Box Microsoft.DataBox Azure にデータをインポートします。 詳細については、こちらを参照してください
Azure DevTest Labs Microsoft.DevTestLab カスタム イメージを作成して成果物をインストールします。 詳細については、こちらを参照してください
Azure Event Grid Microsoft.EventGrid Azure Blob Storage のイベント発行を有効にし、ストレージ キューへの発行を許可します。
Azure Event Hubs Microsoft.EventHub Event Hubs Capture を使用してデータをアーカイブします。 詳細については、こちらを参照してください
Azure File Sync Microsoft.StorageSync オンプレミスのファイル サーバーを Azure ファイル共有のキャッシュに変換します。 この機能により、複数サイトの同期、迅速なディザスター リカバリー、クラウド側バックアップが可能となります。 詳細については、こちらを参照してください
Azure HDInsight Microsoft.HDInsight 新しい HDInsight クラスターのための既定のファイル システムの初期コンテンツをプロビジョニングします。 詳細については、こちらを参照してください
Azure Import/Export Microsoft.ImportExport Azure Storage にデータをインポートするか、Azure Storage からデータをエクスポートします。 詳細については、こちらを参照してください
Azure Monitor Microsoft.Insights リソース ログ、Microsoft Entra のサインインと監査のログ、Microsoft Intune ログなど、セキュリティ保護されたストレージ アカウントに監視データを書き込みます。 詳細情報。
Azure ネットワーク サービス Microsoft.Network Azure Network Watcher および Azure Traffic Manager サービスを含めたネットワーク トラフィック ログを格納し、分析します。 詳細については、こちらを参照してください
Azure Site Recovery Microsoft.SiteRecovery ファイアウォールが有効なキャッシュ、ソース、またはターゲット ストレージ アカウントを使用している場合、Azure IaaS 仮想マシンのディザスター リカバリーのレプリケーションを有効にします。 詳細については、こちらを参照してください

マネージド ID に基づく信頼されたアクセス

次の表の一覧で示されているサービスは、それらのサービスのリソース インスタンスに適切なアクセス許可がある場合、ストレージ アカウントのデータにアクセスできます。

サービス リソース プロバイダー名 目的
Azure FarmBeats Microsoft.AgFoodPlatform/farmBeats ストレージ アカウントへのアクセスを有効にします。
Azure API Management Microsoft.ApiManagement/service ポリシーを使用して、ファイアウォールの内側にあるストレージ アカウントへのアクセスを有効にします。 詳細については、こちらを参照してください
Microsoft 自律システム Microsoft.AutonomousSystems/workspaces ストレージ アカウントへのアクセスを有効にします。
Azure Cache for Redis Microsoft.Cache/Redis ストレージ アカウントへのアクセスを有効にします。 詳細情報 を参照してください。
Azure AI Search Microsoft.Search/searchServices インデックス作成、処理、およびクエリのためのストレージ アカウントへのアクセスを有効にします。
Azure AI サービス Microsoft.CognitiveService/accounts ストレージ アカウントへのアクセスを有効にします。 詳細については、こちらを参照してください
Azure Container Registry Microsoft.ContainerRegistry/registries ACR タスクの機能スイートを使用して、コンテナー イメージの構築時にストレージ アカウントへのアクセスを有効にします。
Microsoft Cost Management Microsoft.CostManagementExports ファイアウォールの背後にあるストレージ アカウントへのエクスポートを有効にします。 詳細については、こちらを参照してください
Azure Databricks Microsoft.Databricks/accessConnectors ストレージ アカウントへのアクセスを有効にします。
Azure Data Factory Microsoft.DataFactory/factories Data Factory ランタイムを使用して、ストレージ アカウントへのアクセスを有効にします。
Azure Backup ボールト Microsoft.DataProtection/BackupVaults ストレージ アカウントへのアクセスを有効にします。
Azure Data Share Microsoft.DataShare/accounts ストレージ アカウントへのアクセスを有効にします。
Azure Database for PostgreSQL Microsoft.DBForPostgreSQL ストレージ アカウントへのアクセスを有効にします。
Azure IoT Hub Microsoft.Devices/IotHubs IoT ハブからのデータを Blob Storage に書き込むことができます。 詳細については、こちらを参照してください
Azure DevTest Labs Microsoft.DevTestLab/labs ストレージ アカウントへのアクセスを有効にします。
Azure Event Grid Microsoft.EventGrid/domains ストレージ アカウントへのアクセスを有効にします。
Azure Event Grid Microsoft.EventGrid/partnerTopics ストレージ アカウントへのアクセスを有効にします。
Azure Event Grid Microsoft.EventGrid/systemTopics ストレージ アカウントへのアクセスを有効にします。
Azure Event Grid Microsoft.EventGrid/topics ストレージ アカウントへのアクセスを有効にします。
Microsoft Fabric Microsoft.Fabric ストレージ アカウントへのアクセスを有効にします。
Azure Healthcare APIs Microsoft.HealthcareApis/services ストレージ アカウントへのアクセスを有効にします。
Azure Healthcare APIs Microsoft.HealthcareApis/workspaces ストレージ アカウントへのアクセスを有効にします。
Azure IoT Central Microsoft.IoTCentral/IoTApps ストレージ アカウントへのアクセスを有効にします。
Azure Key Vault マネージド HSM Microsoft.keyvault/managedHSMs ストレージ アカウントへのアクセスを有効にします。
Azure Logic Apps Microsoft.Logic/integrationAccounts ロジック アプリがストレージ アカウントにアクセスできるようにします。 詳細については、こちらを参照してください
Azure Logic Apps Microsoft.Logic/workflows ロジック アプリがストレージ アカウントにアクセスできるようにします。 詳細については、こちらを参照してください
Azure Machine Learning Studio Microsoft.MachineLearning/registries 承認された Azure Machine Learning ワークスペースで、Blob Storage への実験の出力、モデル、ログの書き込みと、データの読み取りを有効にします。 詳細情報。
Azure Machine Learning Microsoft.MachineLearningServices 承認された Azure Machine Learning ワークスペースで、Blob Storage への実験の出力、モデル、ログの書き込みと、データの読み取りを有効にします。 詳細情報。
Azure Machine Learning Microsoft.MachineLearningServices/workspaces 承認された Azure Machine Learning ワークスペースで、Blob Storage への実験の出力、モデル、ログの書き込みと、データの読み取りを有効にします。 詳細については、こちらを参照してください
Azure Media Services Microsoft.Media/mediaservices ストレージ アカウントへのアクセスを有効にします。
Azure Migrate Microsoft.Migrate/migrateprojects ストレージ アカウントへのアクセスを有効にします。
Azure Spatial Anchors Microsoft.MixedReality/remoteRenderingAccounts ストレージ アカウントへのアクセスを有効にします。
Azure ExpressRoute Microsoft.Network/expressRoutePorts ストレージ アカウントへのアクセスを有効にします。
Microsoft Power Platform Microsoft.PowerPlatform/enterprisePolicies ストレージ アカウントへのアクセスを有効にします。
Microsoft Project Arcadia Microsoft.ProjectArcadia/workspaces ストレージ アカウントへのアクセスを有効にします。
Azure Data Catalog Microsoft.ProjectBabylon/accounts ストレージ アカウントへのアクセスを有効にします。
Microsoft Purview Microsoft.Purview/accounts ストレージ アカウントへのアクセスを有効にします。
Azure Site Recovery Microsoft.RecoveryServices/vaults ストレージ アカウントへのアクセスを有効にします。
Security Center Microsoft.Security/dataScanners ストレージ アカウントへのアクセスを有効にします。
特異性 Microsoft.Singularity/accounts ストレージ アカウントへのアクセスを有効にします。
Azure SQL データベース Microsoft.Sql ファイアウォールの内側にあるストレージ アカウントへの監査データの書き込みを許可します。
Azure SQL サーバー Microsoft.Sql/servers ファイアウォールの内側にあるストレージ アカウントへの監査データの書き込みを許可します。
Azure Synapse Analytics Microsoft.Sql COPY ステートメントまたは PolyBase を使用して (専用プール)、またはサーバーレス プールで openrowset 関数と外部テーブルを使用して、特定の SQL データベースのデータのインポートとエクスポートを行うことを許可します。 詳細については、こちらを参照してください
Azure Stream Analytics Microsoft.StreamAnalytics ストリーミング ジョブからのデータを Blob Storage に書き込むことができます。 詳細については、こちらを参照してください
Azure Stream Analytics Microsoft.StreamAnalytics/streamingjobs ストリーミング ジョブからのデータを Blob Storage に書き込むことができます。 詳細については、こちらを参照してください
Azure Synapse Analytics Microsoft.Synapse/workspaces Azure Storage のデータへのアクセスを有効にします。
Azure Video Indexer Microsoft.VideoIndexer/Accounts ストレージ アカウントへのアクセスを有効にします。

アカウントで階層型名前空間機能が有効になっていない場合は、リソース インスタンスごとにマネージド ID への Azure ロールの割り当てを明示的に行うことで、アクセス許可を付与できます。 この場合、インスタンスのアクセス範囲は、マネージド ID に割り当てられた Azure ロールに対応します。

階層型名前空間機能が有効になっているアカウントにも同じ手法を使用できます。 ただし、ストレージ アカウントに格納されている任意のディレクトリまたは BLOB のアクセス制御リスト (ACL) にマネージド ID を追加する場合、Azure ロールを割り当てる必要はありません。 この場合、インスタンスのアクセス範囲は、マネージド ID がアクセス権を持つディレクトリまたはファイルと一致します。

また、Azure ロールと ACL を組み合わせてアクセスを許可することもできます。 詳細については、「Azure Data Lake Storage のアクセス制御モデル」を参照してください。

特定のリソースにアクセスを許可するには、リソース インスタンス ルールを使用することをお勧めします。

例外を管理する

ストレージ分析など、場合によっては、ネットワーク境界の外側からリソース ログとメトリックを読み取るためにアクセスする必要があります。 信頼されたサービスによるストレージ アカウントへのアクセスを構成する場合、ネットワーク ルールの例外を作成することにより、ログ ファイルとメトリック テーブルの一方またはその両方に対する読み取りアクセスを許可できます。 ネットワーク ルールの例外は、Azure portal、PowerShell、または Azure CLI v2 を通じて管理できます。

Storage Analytics の操作の詳細については、Azure Storage Analytics を使用したログとメトリック データの収集に関するページを参照してください。

  1. セキュリティで保護するストレージ アカウントに移動します。

  2. [ネットワーク] を選択します。

  3. [選択されたネットワーク] からのアクセスを許可するように選択していることを確認します。

  4. [例外] で、許可する例外を選択します。

  5. [保存] を選択して変更を保存します。

次のステップ

Azure ネットワーク サービス エンドポイントの詳細を確認してください。 Azure Storage のセキュリティについて詳しく調べてください。