チュートリアル: クラウド環境でリソースの種類を禁止する

クラウド ガバナンスの一般的な目標の 1 つは、環境内で許可されるリソースの種類を制限することです。 企業がリソースの種類を制限する背景には、多くの動機があります。 たとえば、リソースの種類によっては、コストが高かったり、ビジネスの標準や戦略に反している場合があります。 個々のリソースの種類に多くのポリシーを使用するのではなく、Azure Policy では、この目標を達成するための 2 つの組み込みポリシーを提供します。

名前
(Azure portal)
説明 結果 バージョン
(GitHub)
許可されるリソースの種類 このポリシーでは、組織でデプロイできるリソースの種類を指定できるようになります。 このポリシーの影響を受けるのは、'tags' と 'location' をサポートするリソースの種類のみです。 すべてのリソースを制限するには、このポリシーを複製し、'mode' を 'All' に変更します。 拒否 1.0.0
許可されないリソースの種類 環境にデプロイできるリソースの種類を制限します。 リソースの種類を制限することで、環境の複雑さと攻撃対象領域を削減しつつ、コストの管理にも役立てるとができます。 コンプライアンス対応の結果は、準拠していないリソースについてのみ表示されます。 Audit、Deny、Disabled 2.0.0

このチュートリアルでは、許可されていないリソースの種類ポリシーを適用し、Microsoft Azure portal を使用してリソースの種類を大規模に管理します。

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

ポリシー定義を割り当てる

リソースの種類を無効にする最初の手順は、許可されていないリソースの種類ポリシー定義を割り当てることです。

  1. Azure portal で [許可されていないリソースの種類] に移動します。

    Screenshot of definition details screen for 'Not allowed resource types' policy.

  2. ページの上部にある [割り当て] ボタンを選択します。

  3. [基本] タブで、省略記号を選択し、管理グループ、サブスクリプション、またはリソース グループを選択して、スコープを設定します。 選択したスコープに少なくとも 1 つのサブスコープがあることを確認します。 次に、[スコープ] ページの下部にある [選択] をクリックします。

    この例では、Contoso サブスクリプションを使用しています。

    Note

    このポリシー定義をルート管理グループのスコープに割り当てると、ポータルは許可されていないリソースの種類を検出し、[すべてのサービス] ビューでそれらを無効にして、ポータル ユーザーが許可されていないリソースをデプロイする前に制限を認識できるようにします。

  4. リソースはスコープに基づいて除外できます。 除外スコープのレベルよりも 1 つ下のレベルで開始されます。 除外は省略可能です。ここでは空のまま残してください。

  5. [割り当て名] には、選択したポリシー定義名が自動的に入力されますが、それは変更することができます。 オプションの [説明] を追加して、このポリシー割り当ての詳細を指定することもできます。

  6. [ポリシーの適用] を "有効" のままにしておきます。 "無効" になっている場合、この設定によって、効果をトリガーせずにポリシーの結果をテストできます。 詳細については、「適用モード」を参照してください。

  7. [割り当て担当者] は、ログイン ユーザーに基づいて自動的に入力されます。 このフィールドは任意です。カスタム値を入力できます。

  8. ウィザードの上部にある [パラメーター] タブを選択します。 このチュートリアルでは、[詳細設定] タブをスキップします。

  9. [許可されていないリソースの種類] パラメーターでは、ドロップダウンを使用して、クラウド環境で許可すべきでないリソースの種類を検索して選択します。

  10. このポリシー定義には modify 効果または deployIfNotExists 効果がないため、修復タスクはサポートされません。 このチュートリアルでは、修復 タブをスキップします。

  11. ウィザードの上部にある [Non-compliance messages](コンプライアンス違反メッセージ) タブを選択します。

  12. [コンプライアンス違反メッセージ][このリソースの種類は許可されていません] に設定します。 このカスタム メッセージは、リソースが拒否されたときに表示されるほか、コンプライアンス違反のリソースについては、通常の評価時に表示されます。

  13. ウィザードの上部にある [Review + create](確認と作成) タブを選択します。

  14. 選択内容を確認してから、ページ下部にある [作成] を選択します。

Azure portal で無効なリソースの種類を表示する

この手順は、ルート管理グループのスコープでポリシーが割り当てられている場合にのみ適用されます。

組み込みのポリシー定義を割り当てたので、[すべてのサービス] に移動します。 Azure portal は、このポリシー割り当てで許可されていないリソースの種類を認識し、それらを [すべてのサービス] ページで無効にします。 [作成] オプションは、無効なリソースの種類では使用できません。

Note

このポリシー定義をルート管理グループに割り当てると、ユーザーが初めてサインインしたとき、またはサインイン後にポリシーが変更された場合に、次の通知がユーザーに表示されます。

管理者によって変更されたポリシー 管理者がアカウントのポリシーに変更を加えました。 更新されたポリシーを使用するには、ポータルを更新することをお勧めします。

Screenshot of disallowed resources in All Services blade.

除外を作成する

ここで、このポリシーによって無効にされたリソースの種類を 1 つのサブスコープで設定できるようにする必要があるとします。 このスコープで除外を作成して、通常は制限されているリソースをそのスコープにデプロイできるようにしましょう。

警告

このポリシー定義をルート管理グループのスコープに割り当てると、Azure portal はそのスコープより下位のスコープで除外を検出できません。 ポリシー割り当てによって許可されていないリソースは、[すべてのサービス] リストに無効として表示され、[作成] オプションは使用できません。 ただし、Azure CLI、Azure PowerShell、Azure Resource Manager テンプレートなどのクライアントを使い、除外されたスコープ内にリソースを作成できます。

  1. Azure Policy ページの左側にある [作成] の下の [割り当て] を選択します。

  2. 作成したポリシー割り当てを検索します。

  3. ページの上部にある [除外の作成] ボタンを選択します。

  4. [基本] タブで、[除外スコープ] を選択します。これは、このポリシー割り当てによって制限されたリソースを設定できるようにする必要があるサブスコープです。

  5. [除外名] に目的のテキストを入力し、[除外カテゴリ] を既定値の [免除] のままにします。 この除外には有効期限が設定されないため、[除外の有効期限の設定] を切り替えないでください。 必要に応じて、[除外の説明] を追加し、[確認と作成] を選択します。

  6. このチュートリアルでは、[詳細設定] タブをバイパスします。[確認と作成] タブで、[作成] を選択します。

  7. 除外を表示するには、Azure Policy ページの左側にある [作成][除外] を選択します。

これで、ポリシーによって許可されていないリソースの種類をサブスコープで設定できるようになりました。

リソースをクリーンアップする

このチュートリアルのリソースの作業が完了したら、次の手順を使用して、このチュートリアルで作成したポリシー割り当てまたは定義をすべて削除します。

  1. Azure Policy ページの左側にある [作成] の下の [定義] (または割り当てを削除する場合は [割り当て] ) を選択します。

  2. 削除する新しいイニシアティブまたはポリシー定義 (または割り当て) を見つけます。

  3. 行を右クリックするか、定義 (または割り当て) の末尾にある省略記号を選択し、 [定義の削除] (または [割り当ての削除] ) を選択します。

確認

このチュートリアルでは、以下のタスクを完了しました。

  • 許可されていないリソースの種類の作成を拒否する許可されていないリソースの種類の組み込みポリシーを割り当てました
  • サブスコープでこのポリシー割り当ての除外を作成しました

この組み込みポリシーでは、許可されていないリソースの種類を指定しました。 これに代わる、より制限の厳しいアプローチは、許可されているリソースの種類の組み込みポリシーを使用して、許可されているリソースの種類を指定することです。

Note

Azure portal の [すべてのサービス] は、modeAll に設定されており、ポリシーがルート管理グループに割り当てられている場合に限り、許可されているリソースの種類ポリシーで指定されていないリソースを無効にします。 これは、tagslocations に関係なく、すべてのリソースの種類がチェックされるためです。 ポータルでこの動作を行う場合は、許可されているリソースの種類の組み込みポリシーを複製し、その modeIndexed から All に変更した後、それをルート管理グループのスコープに割り当てます。

次のステップ

ポリシー定義、割り当て、除外の構造の詳細については、次の記事を参照してください。

組み込みのポリシーの例の完全な一覧を表示するには、次の記事を参照してください。