作成したストレージ アカウントを Blob ストレージとして使用する場合、コンテナーを作成する必要がありますが、以前は設定できていたパブリック アクセスの項目がグレーアウトされていることに気が付きました。
ドキュメントを調べてみたら、セキュリティの観点から最近追加された設定のようです。コンテナーと Blob レベルのパブリック アクセスの既定値は、「プライベート (匿名アクセスはありません)」ですが、不用意に匿名読み取りアクセスさせないようにストレージ アカウント レベルで制御可能になっているようです。
後述しますが、新規にストレージ アカウントを作成する際、既定ではコンテナーと Blob に対するパブリック アクセスはストレージ アカウント レベルでは有効ですが、Azure ポータルから作成する際は無効になっていました。
※2020/07/15 追記。Azure ポータルから作成する場合も有効の設定で修正された模様。
ストレージ アカウント レベルのパブリック アクセス無効化について、既定の設定値を含む、無効化の設定や確認方法について纏めてみました。
ストレージ アカウント レベルのパブリック アクセス無効化について
※2020/07/14 時点で確認した内容となるため、今後変更になる可能性があります。
新規ストレージ アカウント作成時のパブリック アクセス設定について
Azure ポータル
Azure ポータル (既定値の変更なし) でストレージ アカウントを作成した場合には、パブリック アクセスは無効となっています。
※2020/07/15 追記。Azure ポータルから作成する場合も有効の設定で修正された模様。
Azure PowerShell、Azure CLI、ARM テンプレート
Azure PowerShell、Azure CLI、ARM テンプレートでストレージ アカウントを作成した場合には、パブリック アクセスは有効となっています。
ARM テンプレートの場合、後述する特定の項目を追加、設定することで作成時に無効化することは可能ですが、Azure PowerShell、Azure CLI について、(2020/07/14 時点では) 無効化するためのパラメーターは確認されませんでした。
※2020/07/15 追記。Azure PowerShell v4.4.0 以降、Azure CLI 2.9.0 以降であれば、無効化の設定ができるようです。
パブリック アクセスを無効化する方法について
Azure ポータル、もしくは ARM テンプレートを用いてストレージ アカウント レベルのパブリック アクセスを無効化することが可能です。
※2020/07/15 追記。Azure PowerShell v4.4.0 以降、Azure CLI 2.9.0 以降であれば、無効化の設定ができるようです。
新規にストレージ アカウントを作成する場合
Azure ポータル
ストレージ アカウントの作成にて、[詳細] タブの [BLOB パブリック アクセス] の項目で「無効」に設定します。
ARM テンプレート
ARM テンプレートの resources セクション内、properties 要素として allowBlobPublicAccess の項目を追加することで、ストレージ アカウント レベルでパブリック アクセスを無効化することが可能です。
"resources": [ { ... "properties": { ... "allowBlobPublicAccess" : false, ... }, ... } ]
既存のストレージ アカウントに対して設定する場合
Azure ポータル
ストレージ アカウントの管理ブレード内にある [設定] – [構成] からの項目で「無効」に設定します。
パブリック アクセス設定を確認する方法について
Azure PowerShell
Get-AzResource コマンドレットを用いて、ストレージ アカウント レベルでのパブリックアクセス設定を確認することが可能です。
コマンドの内容
実行結果
Azure CLI
az resource show コマンドを用いて、ストレージ アカウント レベルでのパブリックアクセス設定を確認することが可能です。