Azure Policyを使って共通キーでアクセス可能なストレージアカウントの作成を拒否する

Azure Policyを使って共通キーでアクセス可能なストレージアカウントの作成を拒否する

2025.08.14

はじめに

Azure環境において、ストレージアカウントに共有キーでアクセスすることは推奨されず、Entra IDによる認証が推奨されています。
このブログではAzure Policyを使って、環境内で共有キーでアクセス可能なストレージアカウントの作成を制限してみます。

Azure Policy とは

Azure Policyは、Azureリソースの統制・管理を行うサービスです。
Policyを管理グループ、サブスクリプション、リソースグループに適用することができ、その効果は下位の管理グループ、サブスクリプション、リソースグループに継承されます。

Azure Policyの効果 (effect) は下記の通りです。

Azure Policyはカスタムで作成することもできますが、すでに用意された組み込みポリシーを使うこともできます。
この記事では、組み込みのAzure Policyであるストレージ アカウントでは、共有キーのアクセスを禁止する必要があるを使ってみます。

ストレージ アカウントでは、共有キーのアクセスを禁止する必要がある

ストレージ アカウントでは、共有キーのアクセスを禁止する必要があるの効果 (effect) は Audit、Deny、Disabledが選択可能で、要約するとそれぞれ以下の仕様になっています。

  • Audit
    • 共有キーでアクセス可能なストレージアカウントをコンプライアンス非対応として検出
  • Deny
    • 共有キーでアクセス可能なストレージアカウントの新規作成を拒否
    • 共有キーでアクセス可能な既存のストレージアカウントをコンプライアンス非対応として検出
  • Disabled
    • ポリシーの割り当てを無効にする

やってみる

この検証では以下の管理グループ、サブスクリプションを使用します。
sandbox-02には共有キーでアクセス可能なストレージアカウントがすでに存在します。

  • Tenant Root Group
    • wada-management-group ←ここにDenyポリシーをアタッチ
      • sandbox-01
      • sandbox-02

Azure Policy の割り当て

次にAzure Policyの割り当てを行います。
主要なパラメータは以下の通り設定します。

項目 設定値 備考
スコープ wada-management-group 割り当てる管理グループ,サブスクリプション,リソースグループを指定可能
除外 - 割り当てから除外するリソースを定義できる
ポリシー定義 ストレージ アカウントでは、共有キーのアクセスを禁止する必要がある 割り当てるAzure Policyを選択
割り当て名 ストレージ アカウントでは、共有キーのアクセスを禁止する必要がある
ポリシーの適用 有効
マネージド ID を作成します 無効 修復アクションを実行するロールを作成する場合に有効にする。
マネージド ID の種類 -
システム割り当て ID の場所 -
コンプライアンス非対応のメッセージ 社内ポリシーで禁止されています。 Azure ポリシーによってアクションが拒否された時のメッセージを指定

Azure ポータルからポリシーのページを開きます。
スクリーンショット 2025-08-14 11.42.04.png

サイドタブから「割り当て」をクリックします。
スクリーンショット 2025-08-14 11.56.22.png

「ポリシーの割り当て」をクリックします。
スクリーンショット 2025-08-14 11.57.40.png

スコープの「・・・」をクリックし、割り当て先を選択します。
スクリーンショット 2025-08-14 12.04.33.png
今回は「wada-management-group」の管理グループを選択し、「Select」をクリックします。
スクリーンショット 2025-08-14 12.05.02.png

ポリシー定義の「・・・」をクリックし、割り当てたいポリシーを選択します。
スクリーンショット 2025-08-14 12.07.02.png

「Storage accounts should prevent shared key access」を検索・選択し「追加」をクリックします。
スクリーンショット 2025-08-14 18.27.10.png

設定を確認し「次へ」をクリックします。
スクリーンショット 2025-08-14 18.36.16.png

パラメータにDenyを設定し「次へ」をクリックします。
スクリーンショット 2025-08-14 18.37.01.png

リソースに対して修正アクションは実行しないので、何も選択しないで「次へ」をクリックします。
スクリーンショット 2025-08-14 18.38.28.png

コンプライアンス非対応のメッセージに任意の文字列を入力して「次へ」をクリックします。
※ここでは、ポリシーによってアクションが拒否された時に表示されるメッセージを定義できます
スクリーンショット 2025-08-14 18.39.52.png

設定値を確認して「作成」をクリックします。
スクリーンショット 2025-08-14 18.41.49.png

これでAzure Policyの割り当ては完了です。
ポップアップの通り、検証は15分ほど時間をおいてから行うことを推奨します。
スクリーンショット 2025-08-14 18.44.34.png

動作検証(既存リソースの確認)

Azure Policyの割り当ての画面から、先ほど実施した割り当てをクリックします。
スクリーンショット 2025-08-14 18.56.09.png

sandbox-02にあらかじめ作成しておいたストレージアカウントが、コンプライアンス非対応として検出されていました。
スクリーンショット 2025-08-14 18.59.17.png

動作検証(新規リソースの作成)

続いて、共有キーでアクセス可能なストレージアカウントの新規作成を試みます。

Azure ポータルからストレージアカウントのページを開きます。
スクリーンショット 2025-08-14 19.03.21.png

ストレージ アカウント名を入力し、その他はデフォルトのまま「次へ」をクリックします。
スクリーンショット 2025-08-14 19.06.38.png

先ほど設定したコンプライアンス非対応のメッセージが表示されました。
スクリーンショット 2025-08-14 19.08.17.png

レビューと作成では検証が失敗し、リソースの作成が拒否されました。
スクリーンショット 2025-08-14 19.14.50.png

終わりに

この記事では、組み込みのAzure Policyであるストレージ アカウントでは、共有キーのアクセスを禁止する必要があるを試してみました。

どなたかのお役に立てれば幸いです。

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.