{ "モード": "インデックス付き", "ポリシールール": { 「場合」: { "すべて": [ { "フィールド": "タイプ", "等しい": "Microsoft.Resources/subscriptions/resourceGroups" }、 { "フィールド": "タグ['環境']", 「存在する」: 「偽」 } 】 }、 「その後」: { "効果": "拒否" } } } 「」
* **説明**: このポリシーは、リソースがリソース グループ (`Microsoft.Resources/subscriptions/resourceGroups`) であること、および `Environment` タグが存在しないこと (`exists: false`) をチェックします。両方の条件が true の場合、「拒否」効果により、リソース グループの作成または更新が妨げられます。
- [保存] をクリックします。
3. カスタム ポリシーの割り当て
次に、作成したポリシーを特定のリソース グループに割り当てましょう。
- ポリシー サービスの左側のナビゲーション ウィンドウの [作成] で、割り当て を選択します。
-
「+ ポリシーの割り当て」をクリックします。
-
基本:
- スコープ: 3 つの点 (「...」) をクリックし、ポリシーを適用するサブスクリプションとリソース グループ (例: 「my-resource-group」) を選択します。
- ポリシー定義: 3 つの点 (「...」) をクリックして、作成したポリシー (「リソース グループに環境タグが必要」) を探します。それを選択してください。
- 割り当て名: 自動的に入力されますが、変更することもできます (例:
Attribution-Tag-Environment-RG)。 - 説明: 説明を入力します。
- ポリシーの強制: 「有効」のままにします。
-
「次へ」をクリックします。
-
パラメータ: このポリシーにはパラメータがありません。「次へ」をクリックします。
- 修復: 「DeployIfNotExists」または「Modify」などの効果を持つポリシーの場合、ここで修復タスクを構成します。 「拒否」の場合は適用されません。 「次へ」をクリックします。
- 不適合メッセージ: 必要に応じて、ユーザーが不適合リソースを作成しようとしたときに表示されるメッセージをカスタマイズします。 「次へ」をクリックします。
- 確認+作成: 設定を確認し、作成をクリックします。
4. 必須タグ付けポリシーのテスト
- Azure portal で、割り当ての範囲内 で新しいリソース グループ (
my-resource-group) を作成してみます。 - リソース グループの詳細を入力するときは、
Environmentタグを追加しないでください。 -
リソース グループを作成してみます。
- 予期される結果: リソース グループの作成は失敗し、「Environment」タグが欠落しているため「リソース グループに環境タグが必要」ポリシーによって操作が拒否されたことを示すエラー メッセージが表示されます。
-
ここで、新しいリソース グループを作成し、値を含む
Environmentタグを追加してみます (例:Environment: Development)。- 期待される結果: リソース グループの作成は成功するはずです。
5. イニシアチブ (ポリシー セット) の作成
ストレージ アカウントでの HTTPS や VM ディスクでの暗号化の要求など、共通のセキュリティ ポリシーをグループ化するイニシアティブを作成しましょう。
- ポリシー サービスの左側のナビゲーション ペインの「作成」で、イニシアチブ を選択します。
-
「+イニシアチブ定義」をクリックします。
-
基本:
- 定義の場所: サブスクリプションまたは管理グループを選択します。
- 名前: 「基本セキュリティ イニシアチブ」。
- 説明: 「基本的なコンプライアンスのための重要なセキュリティ ポリシーのセット」。
- カテゴリ: [既存のものを使用] を選択し、[セキュリティ] を選択します。
-
「次へ」をクリックします。
-
ポリシー: 「+ ポリシー定義の追加」をクリックします。
- 「ストレージ アカウントは HTTPS のみを使用する必要がある」や「仮想マシン ディスクは暗号化されている必要がある」などの内部ポリシーを探します。
- それらを選択して「追加」をクリックします。
-
イニシアチブパラメータ: 追加されたポリシーにパラメータがある場合は、ここで設定できます。 「次へ」をクリックします。
- 確認+作成: 設定を確認し、作成をクリックします。
6. イニシアチブの割り当て
セキュリティ イニシアチブをサブスクリプション全体に割り当てて、サブスクリプション内のすべてのポリシーが適用されるようにします。
- ポリシー サービスの左側のナビゲーション ウィンドウの [作成] で、割り当て を選択します。
-
「+ イニシアチブの割り当て」をクリックします。
-
基本:
- 範囲: サブスクリプション全体を選択します。
- イニシアチブ: 「Basic Security Initiative」を検索して選択します。
- 課題名: Ser自動的に入力されます。
- ポリシーの強制: 「有効」のままにします。
-
「次へ」をクリックします。
-
パラメータ: イニシアチブで定義されているパラメータを設定します。 「次へ」をクリックします。
- 修復: 「監査」ポリシーの場合、修復タスクを作成して、非準拠のリソースを修正できます。 「拒否」の場合は適用されません。 「次へ」をクリックします。
- 非準拠メッセージ: 必要に応じて、メッセージをカスタマイズします。 「次へ」をクリックします。
- 確認+作成: 設定を確認し、作成をクリックします。
7. コンプライアンスの見直し
割り当て後、Azure Policy は既存のリソースを評価し、コンプライアンスをレポートするのに時間がかかります。
- ポリシー サービスの左側のナビゲーション ペインの「オーサリング」で、コンプライアンス を選択します。
-
ポリシーとイニシアチブの割り当ての全体的なコンプライアンス ステータスを示すコンプライアンス ダッシュボードが表示されます。
-
割り当てをクリックすると、どのリソースが準拠しているか、どのリソースが準拠していないかなどの詳細が表示されます。 「適合ステータス」でフィルタリングして、非準拠リソースのみを表示できます。
-
「DeployIfNotExists」または「Modify」ポリシーに準拠していないリソースの場合は、修復タスクを作成して、これらのリソースを自動的に修正できます。
- 割り当ての詳細ページで、「修復タスクの作成」をクリックします。
- 修復したいポリシーを選択し、「修復」をクリックします。
セキュリティのヒントとベスト プラクティス
- 「監査」から開始: 新しいポリシーを実装するときは、「監査」効果から開始して、影響を理解し、操作をブロックすることなく非準拠のリソースを特定します。検証後、「Deny」または「Modify」/「DeployIfNotExists」に変更します。
- 適切なスコープ: 可能な限り最高のスコープ (管理グループまたはサブスクリプション) でポリシーを割り当て、必要に応じて、より低いスコープに対して除外を使用します。これにより、広範囲かつ一貫したカバレッジが保証されます。
- イニシアチブを使用する: 関連ポリシーをイニシアチブにグループ化して、管理を簡素化し、完全なルール セットが確実に適用されるようにします。
- 命名規則: 識別と管理を容易にするために、ポリシーの定義、イニシアチブ、割り当てには明確で一貫した命名規則を使用します。
- バージョン管理: カスタム ポリシー定義をバージョン管理システム (Git など) に保存して、変更を追跡し、共同作業し、自動展開を促進します。
- 継続的な監視: Azure Policy コンプライアンス ダッシュボードを定期的に監視します。重大な不適合に対するアラートを設定します。
- Azure DevOps/GitHub Actions との統合: CI/CD パイプラインを使用してポリシーのデプロイを自動化し、ポリシーが一貫性のある追跡可能な方法で適用されるようにします。
- 文書: ポリシー、その目的、効果、および例外についての明確な文書を維持します。
一般的なトラブルシューティング
- リソースが不適切にブロックされました:
- Azure Monitor のアクティビティ ログを確認して、どのポリシーが操作を拒否したかを確認します。通常、エラーにはポリシー名が含まれます。
- ポリシーの定義と割り当てを確認して、条件と範囲が正しいことを確認します。
- ブロックが意図的である場合は、特定のリソースまたはリソースのグループに対して除外を使用することを検討してください。
- 不適合なリソースは検出されていません:
- ポリシーが正しいスコープに割り当てられていること、および適用が「有効」になっていることを確認します。
- ポリシー定義が正しいこと、および不適合リソースの条件が「true」と評価されていることを確認してください。
- ポリシーの変更が反映され、コンプライアンス レポートが更新されるまでに最大 30 分かかる場合があります。
- 修復タスクが失敗します:
- 修復タスクのログを確認して、エラーを特定します。
- ポリシー ロールに割り当てられたマネージド ID に、リソースを変更するために必要なアクセス許可があることを確認してください。
DeployIfNotExistsまたはModifyポリシーには、展開モデルまたは変更操作にエラーがある可能性があります。
- ポリシーは既存のリソースには適用されません:
DenyまたはAuditの効果を持つポリシーは、既存のリソースと新しいリソースを評価します。 「DeployIfNotExists」および「Modify」を含むポリシーには、色の修復タスクが必要です既存のリソースを修正するか、新しい作成/更新のみに対応します。
- ポリシーの競合: 複数のポリシーが同じリソースに適用される場合、通常は最も制限的な効果を持つポリシーが優先されます (例: 「監査」よりも「拒否」)。割り当てと範囲を確認します。
結論
Azure Policy は、効果的なガバナンスを確立し、Azure クラウド内のリソースのコンプライアンスを確保したいと考えている組織にとって、基本的なツールです。 Azure Policy は、リソースのタグ付けから重要なセキュリティ構成に至るまで、ルール適用の自動化を有効にすることで、複雑で絶えず進化する環境において秩序を維持し、リスクを軽減し、コストを最適化するのに役立ちます。カスタム ポリシーを作成し、それらをイニシアチブにグループ化できるため、特定のビジネス要件や規制要件を満たす柔軟性が得られます。この実践的なガイドにより、セキュリティ専門家と IT 管理者は、Azure Policy を構成、検証、管理するための十分な準備を整え、安全で準拠したクラウド ガバナンス戦略のための強固な基盤を構築できます。
参考文献:
[1] Microsoft Learn。 Azure ポリシーとは何ですか?。入手可能場所: https://learn.microsoft.com/pt-br/azure/governance/policy/overview [2] Microsoft Learn。 チュートリアル: コンプライアンスを強制するためのポリシーを作成および管理します。入手可能場所: https://learn.microsoft.com/pt-br/azure/governance/policy/tutorials/create-and-manage [3] Microsoft Learn。 Azure RBAC の Azure Policy 権限。入手可能場所: https://learn.microsoft.com/pt-br/azure/governance/policy/overview#azure-rbac-permissions-in-azure-policy [4] Microsoft Learn。 Azure Policy 定義フレームワーク。入手可能場所: https://learn.microsoft.com/pt-br/azure/governance/policy/concepts/definition-struction [5] Microsoft Learn。 Azure Policy イニシアチブ定義フレームワーク。入手可能場所: https://learn.microsoft.com/pt-br/azure/governance/policy/concepts/initiative-definition-struction [6] Microsoft Learn。 チュートリアル: カスタム ポリシー定義を作成します。入手可能場所: https://learn.microsoft.com/pt-br/azure/governance/policy/tutorials/create-custom-policy-definition [7] Microsoft Learn。 Azure Policy に準拠していないリソースを修復する方法。入手可能場所: https://learn.microsoft.com/pt-br/azure/governance/policy/how-to/remediate-resources