Azure Policyを使って共通キーでアクセス可能なストレージアカウントの作成を拒否する
はじめに
Azure環境において、ストレージアカウントに共有キーでアクセスすることは推奨されず、Entra IDによる認証が推奨されています。
このブログではAzure Policyを使って、環境内で共有キーでアクセス可能なストレージアカウントの作成を制限してみます。
Azure Policy とは
Azure Policyは、Azureリソースの統制・管理を行うサービスです。
Policyを管理グループ、サブスクリプション、リソースグループに適用することができ、その効果は下位の管理グループ、サブスクリプション、リソースグループに継承されます。
Azure Policyの効果 (effect) は下記の通りです。
- addToNetworkGroup
- append
- audit
- auditIfNotExists
- deny
- denyAction
- deployIfNotExists
- disabled
- manual
- modify
- mutate
Azure Policyはカスタムで作成することもできますが、すでに用意された組み込みポリシーを使うこともできます。
この記事では、組み込みのAzure Policyであるストレージ アカウントでは、共有キーのアクセスを禁止する必要があるを使ってみます。
ストレージ アカウントでは、共有キーのアクセスを禁止する必要がある
ストレージ アカウントでは、共有キーのアクセスを禁止する必要があるの効果 (effect) は Audit、Deny、Disabledが選択可能で、要約するとそれぞれ以下の仕様になっています。
- Audit
- 共有キーでアクセス可能なストレージアカウントをコンプライアンス非対応として検出
- Deny
- 共有キーでアクセス可能なストレージアカウントの新規作成を拒否
- 共有キーでアクセス可能な既存のストレージアカウントをコンプライアンス非対応として検出
- Disabled
- ポリシーの割り当てを無効にする
やってみる
この検証では以下の管理グループ、サブスクリプションを使用します。
sandbox-02には共有キーでアクセス可能なストレージアカウントがすでに存在します。
- Tenant Root Group
- wada-management-group ←ここにDenyポリシーをアタッチ
- sandbox-01
- sandbox-02
- wada-management-group ←ここにDenyポリシーをアタッチ
Azure Policy の割り当て
次にAzure Policyの割り当てを行います。
主要なパラメータは以下の通り設定します。
項目 | 設定値 | 備考 |
---|---|---|
スコープ | wada-management-group | 割り当てる管理グループ,サブスクリプション,リソースグループを指定可能 |
除外 | - | 割り当てから除外するリソースを定義できる |
ポリシー定義 | ストレージ アカウントでは、共有キーのアクセスを禁止する必要がある | 割り当てるAzure Policyを選択 |
割り当て名 | ストレージ アカウントでは、共有キーのアクセスを禁止する必要がある | |
ポリシーの適用 | 有効 | |
マネージド ID を作成します | 無効 | 修復アクションを実行するロールを作成する場合に有効にする。 |
マネージド ID の種類 | - | |
システム割り当て ID の場所 | - | |
コンプライアンス非対応のメッセージ | 社内ポリシーで禁止されています。 | Azure ポリシーによってアクションが拒否された時のメッセージを指定 |
Azure ポータルからポリシーのページを開きます。
サイドタブから「割り当て」をクリックします。
「ポリシーの割り当て」をクリックします。
スコープの「・・・」をクリックし、割り当て先を選択します。
今回は「wada-management-group」の管理グループを選択し、「Select」をクリックします。
ポリシー定義の「・・・」をクリックし、割り当てたいポリシーを選択します。
「Storage accounts should prevent shared key access」を検索・選択し「追加」をクリックします。
設定を確認し「次へ」をクリックします。
パラメータにDenyを設定し「次へ」をクリックします。
リソースに対して修正アクションは実行しないので、何も選択しないで「次へ」をクリックします。
コンプライアンス非対応のメッセージに任意の文字列を入力して「次へ」をクリックします。
※ここでは、ポリシーによってアクションが拒否された時に表示されるメッセージを定義できます
設定値を確認して「作成」をクリックします。
これでAzure Policyの割り当ては完了です。
ポップアップの通り、検証は15分ほど時間をおいてから行うことを推奨します。
動作検証(既存リソースの確認)
Azure Policyの割り当ての画面から、先ほど実施した割り当てをクリックします。
sandbox-02にあらかじめ作成しておいたストレージアカウントが、コンプライアンス非対応として検出されていました。
動作検証(新規リソースの作成)
続いて、共有キーでアクセス可能なストレージアカウントの新規作成を試みます。
Azure ポータルからストレージアカウントのページを開きます。
ストレージ アカウント名を入力し、その他はデフォルトのまま「次へ」をクリックします。
先ほど設定したコンプライアンス非対応のメッセージが表示されました。
レビューと作成では検証が失敗し、リソースの作成が拒否されました。
終わりに
この記事では、組み込みのAzure Policyであるストレージ アカウントでは、共有キーのアクセスを禁止する必要があるを試してみました。
どなたかのお役に立てれば幸いです。