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 へのネットワーク アクセスを構成する
ストレージ アカウント内のデータへのアクセスは、ネットワーク エンドポイント、信頼されたサービスまたはリソースを介して、以下を含む任意の組み合わせで制御することができます。
- プライベート エンドポイントを使用して、選択した仮想ネットワーク サブネットからのアクセスを許可する。
- サービス エンドポイントを使用して、選択した仮想ネットワーク サブネットからのアクセスを許可する。
- 特定のパブリック IP アドレスまたは範囲からのアクセスを許可する。
- 選択した Azure リソース インスタンスからのアクセスを許可する。
- 信頼された Azure サービスからのアクセスを許可する (「例外を管理する」を使用)。
- ログおよびメトリック サービスの例外を構成する。
仮想ネットワーク エンドポイントについて
ストレージ アカウントには、次の 2 種類の仮想ネットワーク エンドポイントがあります。
仮想ネットワーク サービス エンドポイントはパブリックであり、インターネット経由でアクセスできます。 Azure Storage ファイアウォールを使用すると、このようなパブリック エンドポイントを介してストレージ アカウントへのアクセスを制御できます。 ストレージ アカウントへのパブリック ネットワーク アクセスを有効にすると、データに対するすべての受信要求が既定でブロックされます。 ストレージ アカウントのファイアウォール設定で構成した、許可されたソースからデータを要求するアプリケーションのみが、データにアクセスできます。 ソースには、クライアントのソース IP アドレスまたは仮想ネットワーク サブネット、クライアントまたはサービスがデータにアクセスする Azure サービスまたはリソース インスタンスを含めることができます。 ブロックされる要求には、ファイアウォール構成でアクセスを明示的に許可しない限り、他の Azure サービスからの要求、Azure portal からの要求、ログおよびメトリック サービスからの要求が含まれます。
プライベート エンドポイントは、仮想ネットワークのプライベート IP アドレスを使用して、Microsoft バックボーン ネットワーク経由でストレージ アカウントにアクセスします。 プライベート エンドポイントを使用すると、仮想ネットワークとストレージ アカウントの間のトラフィックがプライベート リンク経由で保護されます。 ストレージ ファイアウォール規則は、プライベート エンドポイントではなく、ストレージ アカウントのパブリック エンドポイントにのみ適用されます。 プライベート エンドポイントの作成を承認するプロセスで、プライベート エンドポイントをホストするサブネットからのトラフィックへのアクセスが暗黙的に許可されます。 アクセス規則を調整する場合は、ネットワーク ポリシーを使用して、プライベート エンドポイント上のトラフィックを制御できます。 プライベート エンドポイントのみを使用する場合は、ファイアウォールを使用して、パブリック エンドポイント経由のすべてのアクセスをブロックできます。
環境でそれぞれの種類のエンドポイントを使用するタイミングを判断するには、「プライベート エンドポイントとサービス エンドポイントの比較」を参照してください。
ストレージ アカウントのネットワーク セキュリティにアプローチする方法
ストレージ アカウントを保護し、セキュリティで保護されたアプリケーションのネットワーク境界を構築するには:
まず、ストレージ アカウント ファイアウォールの [パブリック ネットワーク アクセス] 設定で、ストレージ アカウントのすべてのパブリック ネットワーク アクセスを無効にします。
可能であれば、データへのアクセスを必要とするクライアントが存在する仮想ネットワーク サブネット上のプライベート エンドポイントからストレージ アカウントへのプライベート リンクを構成します。
クライアント アプリケーションでパブリック エンドポイント経由のアクセスが必要な場合は、[パブリック ネットワーク アクセス] 設定を [選択した仮想ネットワークと IP アドレスから有効] に変更します。 次に、必要に応じて次の手順を実行します。
- アクセスを許可する仮想ネットワーク サブネットを指定します。
- アクセスを許可するクライアントのパブリック IP アドレス範囲 (オンプレミス ネットワークなど) を指定します。
- 選択した Azure リソース インスタンスからのアクセスを許可します。
- データのバックアップなどの操作に必要な、信頼されたサービスからのアクセスを許可する例外を追加します。
- ログおよびメトリックの例外を追加します。
ネットワーク ルールを適用すると、すべての要求に対して適用されます。 特定の IP アドレスへのアクセスを許可する SAS トークンは、トークン所有者のアクセスを制限する働きをしますが、構成されているネットワーク ルールを超えて新しいアクセスを許可することはありません。
ネットワーク セキュリティ境界 (プレビュー)
ネットワーク セキュリティ境界 (プレビュー) を使うと、組織の仮想ネットワークの外部に配置された PaaS リソース (Azure Blob Storage や SQL Database など) の論理ネットワーク分離境界を定義できます。 この機能は、境界の外側にある PaaS リソースへのパブリック ネットワーク アクセスを制限します。 ただし、インバウンドとアウトバウンドのパブリック トラフィックに対する明示的なアクセス規則を使って、アクセスを除外できます。 設計上、ネットワーク セキュリティ境界内からストレージ アカウントへのアクセスは、他のネットワーク アクセス制限より最も優先されます。
現在、Azure BLOB、Azure Files (REST)、Azure テーブル、Azure キューのネットワーク セキュリティ境界は、パブリック プレビュー段階です。 「ネットワーク セキュリティ境界への切り替え」にを参照してください。
ネットワーク セキュリティ境界にオンボードされているサービスの一覧については、こちらを参照してください。
まだネットワーク セキュリティ境界にオンボードされていないため、この一覧にないサービスの場合、アクセスを許可する場合は、ネットワーク セキュリティ境界でサブスクリプション ベースのルールを使用できます。 そのサブスクリプション内のすべてのリソースには、そのネットワーク セキュリティ境界へのアクセス権が付与されます。 サブスクリプション ベースのアクセス規則の追加の詳細については、こちらを参照してください。
重要
プライベート エンドポイント トラフィックは安全性が高いと見なされるため、ネットワーク セキュリティ境界の規則の対象になりません。 信頼されたサービスを含む他のすべてのトラフィックは、ストレージ アカウントが境界に関連付けられている場合、ネットワーク セキュリティ境界の規則の対象になります。
制限事項
このプレビューでは、ストレージ アカウントでの次のサービス、操作、プロトコルはサポートされていません。
- Azure Blob Storage のオブジェクト レプリケーション
- Azure Blob Storage のライフサイクル管理
- Azure Blob Storage に対する SSH ファイル転送プロトコル (SFTP)
- Azure Blob Storage と Azure Files でのネットワーク ファイル システム (NFS) プロトコル。
- Azure Files でのサーバー メッセージ ブロック (SMB) プロトコルは、現時点では、IP 許可リストを通じてのみ実現できます。
- Azure Blob インベントリ
これらのサービス、操作、またはプロトコルのいずれかを使う必要がある場合は、ネットワーク セキュリティ境界を有効にしないことをお勧めします。 これは、データ損失やデータ流出のリスクの可能性を防ぐためです。
警告
ネットワーク セキュリティ境界に関連付けられているストレージ アカウントで、カスタマー マネージド キー (CMK) のシナリオを機能させるには、ストレージ アカウントが関連付けられている境界内から Azure Key Vault にアクセスできることを確認します。
ネットワーク セキュリティ境界をストレージ アカウントと関連付ける
ネットワーク セキュリティ境界をストレージ アカウントと関連付けるには、すべての PaaS リソースに共通の手順に従って行います。
制限事項と考慮事項
ストレージ アカウントのネットワーク セキュリティを実装する前に、このセクションで説明する重要な制限事項と考慮事項を確認してください。
- 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 の移行」を参照してください。
セキュリティで保護するストレージ アカウントに移動します。
サービス メニューの [セキュリティとネットワーク] で [ネットワーク] を選択します。
ストレージ アカウントのパブリック エンドポイントを通して有効にするネットワーク アクセスを選びます。
[すべてのネットワークから有効] か [選択した仮想ネットワークと IP アドレスから有効] を選択します。 2 番目のオプションを選択すると、仮想ネットワークと IP アドレス範囲を追加するように求められます。
送信アクセスを許可しながら受信アクセスを制限するには、[無効] を選択します。
[保存] を選択して変更を保存します。
仮想ネットワークからアクセスの許可
特定のサブネットからのアクセスのみを許可するように、ストレージ アカウントを構成できます。 許可されるサブネットは、同じサブスクリプション内の仮想ネットワークに属していても、または異なる 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 テナントのサブネットは表示されません。
仮想ネットワークとアクセスの規則を構成するストレージ アカウントに移動します。
サービス メニューの [セキュリティとネットワーク] で [ネットワーク] を選択します。
選択した仮想ネットワークと IP アドレスからのパブリック ネットワーク アクセスを有効にしたことを確認します。
新しいネットワーク ルールを使用して仮想ネットワークへのアクセスを許可するには、[仮想ネットワーク] で [既存の仮想ネットワークを追加する] を選択します。 [仮想ネットワーク] と [サブネット] オプションを選択して、[追加] を選択します。 新しい仮想ネットワークを作成してアクセスを許可するには、 [新しい仮想ネットワークを追加] をクリックします。 新しい仮想ネットワークの作成に必要な情報を指定して、[作成] を選択します。 現在、ルールの作成時に選択できるのは、同じ Microsoft Entra テナントに属する仮想ネットワークのみです。 別のテナントに属する仮想ネットワーク内のサブネットにアクセスを許可するには、PowerShell、Azure CLI、または REST API を使用します。
仮想ネットワークまたはサブネットの規則を削除するには、省略記号 ([...]) を選択して仮想ネットワークまたはサブネットのコンテキスト メニューを開き、[削除] を選択します。
[保存] を選択して変更を保存します。
重要
ネットワーク ルールに含まれているサブネットを削除すると、そのサブネットはストレージ アカウントのネットワーク ルールから削除されます。 同じ名前で新しいサブネットを作成しても、ストレージ アカウントにアクセスできません。 アクセスを許可するには、ストレージ アカウントのネットワーク ルールで新しいサブネットを明示的に承認する必要があります。
インターネットの 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 で管理できます。
IP ネットワークの規則を管理するストレージ アカウントに移動します。
サービス メニューの [セキュリティとネットワーク] で [ネットワーク] を選択します。
選択した仮想ネットワークと IP アドレスからのパブリック ネットワーク アクセスを有効にしたことを確認します。
インターネット IP 範囲へのアクセスを許可するには、 [ファイアウォール]>[アドレス範囲] で IP アドレスまたはアドレス範囲 (CIDR 形式) を入力します。
IP ネットワーク ルールを削除するには、アドレス範囲の横にある削除アイコン () を選択します。
[保存] を選択して変更を保存します。
Azure リソース インスタンスからのアクセスを許可する
場合によっては、アプリケーションが、仮想ネットワークまたは IP アドレス規則によって分離できない Azure リソースに依存していることがあります。 しかし、その場合でも、ストレージ アカウントのアクセスをセキュリティで保護してアプリケーションの Azure リソースのみに制限したいことがあります。 リソース インスタンス ルールを作成すると、信頼された Azure サービスの特定のリソース インスタンスにアクセスを許可するよう、ストレージ アカウントを構成できます。
リソース インスタンスの Azure ロールの割り当てによって、リソース インスタンスがストレージ アカウントのデータに対して実行できる操作の種類が決まります。 リソース インスタンスは、ストレージ アカウントと同じテナントからのものである必要がありますが、テナント内のどのサブスクリプションに属していてもかまいません。
Azure portal で、リソース ネットワーク ルールを追加または削除できます。
Azure portal にサインインします。
ストレージ アカウントを見つけて、アカウントの概要を表示します。
サービス メニューの [セキュリティとネットワーク] で [ネットワーク] を選択します。
選択した仮想ネットワークと IP アドレスからのパブリック ネットワーク アクセスを有効にしたことを確認します。
下へスクロールして、[リソース インスタンス] を見つけます。 [リソースの種類] ドロップダウン リストで、リソース インスタンスのリソースの種類を選択します。
[インスタンス名] ドロップダウン リストで、リソース インスタンスを選択します。 また、現在のテナント、サブスクリプション、またはリソース グループ内のすべてのリソース インスタンスを含めることを選ぶこともできます。
[保存] を選択して変更を適用します。 リソース インスタンスが、ネットワーク設定のページの [リソース インスタンス] セクションに表示されます。
リソース インスタンスを削除するには、リソース インスタンスの横にある削除アイコン () を選択します。
信頼された 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 Defender for Endpoint のデータ、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 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 を使用したログとメトリック データの収集に関するページを参照してください。
例外を管理するストレージ アカウントに移動します。
サービス メニューの [セキュリティとネットワーク] で [ネットワーク] を選択します。
選択した仮想ネットワークと IP アドレスからのパブリック ネットワーク アクセスを有効にしたことを確認します。
[例外] で、許可する例外を選択します。
[保存] を選択して変更を保存します。
次のステップ
- Azure ネットワーク サービス エンドポイントの詳細を確認してください。
- Azure Blob Storage のセキュリティに関する推奨事項を詳しく調べる。