BLOB パブリック アクセスを有効・無効にする

4 minute read

目次

• 背景
• BLOB パブリック アクセス
• アカウント レベルとコンテナー レベルでのパブリック アクセス
• パブリック アクセス設定方法
• パブリック ネットワーク アクセス
• よくある誤解
• 3 行要約



背景

Blob Storage には、以下の3 種類のリソースがあります。

i. ストレージ アカウント
ii. ストレージ アカウント内のコンテナー
iii. コンテナー内のBLOB

image-bc406b5a-3602-49c1-8cf0-60ca5dc4c936.png

ストレージ アカウントでのパブリック アクセスは、ネットワークに関するものと認証に関するものがあります。両方ともセキュリティに関するサービスですが、一方のパブリック アクセス設定の変更に対する他方への影響はありません。
下記ではそれぞれのサービスについて説明いたします。



BLOB パブリック アクセス

パブリック アクセスは Blob Storage に対してのみサポートされている機能となります。Blob パブリック アクセスを無効にする場合、ストレージ アカウント内のBLOB への匿名アクセス(URL のみで誰でも BLOB の内容が見られること)が不可能になります。そのため、認証情報を含まない匿名でのファイルへのアクセスを防ぐことが出来ます。



パブリックアクセス設定方法

<アカウント レベルでのパブリック アクセス設定>

Azure portal でストレージ アカウントのアカウント レベルでのパブリック アクセスを許可または禁止するには、次の手順を実行します。

1. Azure Portal で、対象のストレージ アカウントに移動します。
2. [設定 (Settings)] から [構成 (Configuration)] を選択します。
3. [Blob パブリック アクセスを許可する (Allow Blob public access)] を [無効] または [有効] に設定します。

image-fc89af24-b7f3-4414-91f3-78f55aa0cfb4.png

<コンテナー レベルでのパブリック アクセス設定>

Azure portal でストレージ アカウントのコンテナー レベルでのパブリック アクセス レベルを設定するには、次の手順を実行します。(上記のアカウント レベルでパブリック アクセスを無効にした場合、コンテナーのパブリック アクセス レベルは設定できませんのでご注意ください。)

1. Azure Portal のストレージ アカウントに移動し、対象コンテナーを選択します。
2. [アクセス レベルを変更します (Change access level)] という設定から、必要に応じて[プライベート (Private)]、[Blob]、[コンテナー (Container)] を選択します。

image-2b18abff-ab7d-4892-9bc5-3d2f1067fd49.png


アカウントレベルとコンテナーレベルでのパブリック アクセス

Blob パブリック アクセスは、ストレージ アカウントでの設定とコンテナー単位での設定があり、両者の組み合わせで判断されます。

<アカウント レベルとコンテナー="" レベルでの設定の組み合わせとその結果="">

	i. アカウント レベル→「パブリック アクセス無効」の場合 : 
	コンテナー レベルの設定によらず、アカウントへのパブリック アクセス不可
	ii. アカウント レベル→「パブリック アクセス有効」 & コンテナー レベル→「プライベート」の場合 : 
	このコンテナーへのパブリック アクセス不可
	iii. アカウント レベル→「パブリック アクセス有効」 & コンテナー レベル→「コンテナー」場合 : 
	Get blob 可能、List blobs 可能 
	iv. アカウント レベル→「パブリック アクセス有効」 & コンテナー レベル→「Blob」の場合 : 
	Get blob 可能、List blobs 不可

image-2dafd5c0-7079-4248-b49a-eb4cb66cfd31.png

アカウント レベルでパブリック アクセスを無効にする場合、コンテナーのアクセス レベルに関係無く、匿名読み取りアクセスができなくなります。一方で、コンテナーへのパブリック アクセスは既定で常に無効になってます。そのため、明示的にパブリック アクセスを許可したコンテナーを利用していない限りは、ストレージ アカウントの設定で「Blob パブリック アクセスを許可する」 を無効へ変更しても、動作への影響はありません。



パブリック ネットワーク アクセス

パブリック ネットワーク アクセスを無効にした場合のプライベート エンドポイントは、仮想ネットワークのプライベート IP アドレスを使用するネットワーク インターフェイスであり、サービスに非公開で安全に接続します。一方で、BLOB パブリック アクセスは、クライアントの認証に応じてBLOBへのアクセス自体を許可又は拒否する設定です。

対象アカウントの [セキュリティ + ネットワーク (Security + networking)] の設定でパブリック ネットワーク アクセスを既定の [全てのネットワークで有効 (Enabled from all networks)] から [無効 (Disabled)] に変更する場合、プライベート エンドポイントが必要となります。プライベート エンドポイント作成により、仮想マシン (VM) などの Azure リソースは、Azure Storage などのプライベート リンク リソースと非公開かつ安全に通信できます。 image-b1f52f3a-3e1b-4c25-8c9f-aefac44cbf21.png

プライベート エンドポイント経由のみのアクセスの詳細については、以下の URL をご参照ください。
Azure プライベート エンドポイントを使用してストレージ アカウントに接続する



よくある誤解

いずれの設定にも 「パブリック」 という文言があるせいか、「BLOB へのアクセスの経路をプライベート エンドポイント限定にしたいのだけれど、その場合に [Blob パブリック アクセスを許可する] を [無効] にする必要があるかどうかを確認したい 」、というお問い合わせをいただいたことが何度かございます。今までの内容をご覧いただければお問い合わせに対する回答内容はおのずとわかりますが、回答としては、「[Blob パブリック アクセスを許可する] についてはアクセスの経路とは全く関係がないので、[無効]にする必要はない」、ということになります。



3 行要約

1. Azure Storage の中で Blob Storage は、URL のみで誰でも BLOB の内容が見れるというパブリック アクセスが可能
2. アカウント レベルとコンテナー レベルでの設定でパブリック アクセスを有効・無効にすることができる
3. BLOB のパブリック アクセスと プライベート エンドポイントとは関係が無い



2022 年 9 月 8 日時点の内容となります。
本記事の内容は予告なく変更される場合がございますので予めご了承ください。

タグ:

更新日時: