チュートリアル:コンプライアンスを強制するポリシーの作成と管理Tutorial: Create and manage policies to enforce compliance

Azure でポリシーを作成および管理する方法を理解することは、企業の標準とサービス レベル アグリーメントへの準拠を維持するために重要です。Understanding how to create and manage policies in Azure is important for staying compliant with your corporate standards and service level agreements. このチュートリアルでは、Azure Policy を使用して、組織全体のポリシーの作成、割り当て、および管理に関連する次のような一般的なタスクをいくつか実行します。In this tutorial, you learn to use Azure Policy to do some of the more common tasks related to creating, assigning, and managing policies across your organization, such as:

  • 今後作成するリソースに条件を強制するポリシーを割り当てるAssign a policy to enforce a condition for resources you create in the future
  • 複数のリソースについてコンプライアンスを追跡するイニシアチブ定義を作成して割り当てるCreate and assign an initiative definition to track compliance for multiple resources
  • 準拠していないリソースまたは拒否されたリソースを解決するResolve a non-compliant or denied resource
  • 組織全体で新しいポリシーを実施するImplement a new policy across an organization

既存のリソースの現在のコンプライアンス状態を識別するためのポリシーを割り当てる方法については、クイック スタートの記事で詳しく説明しています。If you would like to assign a policy to identify the current compliance state of your existing resources, the quickstart articles go over how to do so.

前提条件Prerequisites

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

ポリシーを割り当てるAssign a policy

Azure Policy でコンプライアンスを強制する最初の手順は、ポリシー定義の割り当てです。The first step in enforcing compliance with Azure Policy is to assign a policy definition. ポリシー定義は、ポリシーを適用する条件とその効果を定義します。A policy definition defines under what condition a policy is enforced and what effect to take. この例では、"存在しない場合は、リソース グループからタグを継承する" という組み込みのポリシー定義を割り当てて、タグが存在しない新しいリソースまたは更新されたリソースに対し、親リソース グループの値を引き継ぐ特定のタグを追加します。In this example, assign the built-in policy definition called Inherit a tag from the resource group if missing to add the specified tag with its value from the parent resource group to new or updated resources missing the tag.

  1. ポリシーを割り当てるには、Azure portal に移動します。Go to the Azure portal to assign policies. Policy を検索して選択します。Search for and select Policy.

    検索バーで Policy を検索する操作のスクリーンショット。

  2. Azure Policy ページの左側にある [割り当て] を選択します。Select Assignments on the left side of the Azure Policy page. 割り当ては、特定のスコープ内で実行するように割り当てられたポリシーです。An assignment is a policy that has been assigned to take place within a specific scope.

    [ポリシーの概要] ページで [割り当て] ノードを選択する操作のスクリーンショット。

  3. [ポリシー - 割り当て] ページの上部で [ポリシーの割り当て] を選択します。Select Assign Policy from the top of the Policy - Assignments page.

    [割り当て] ページで [ポリシーの割り当て] ボタンを選択する操作のスクリーンショット。

  4. [ポリシーの割り当て] ページの [基本] タブで、省略記号を選択し、管理グループまたはサブスクリプションのどちらかを選択して、 [スコープ] を選択します。On the Assign Policy page and Basics tab, select the Scope by selecting the ellipsis and selecting either a management group or subscription. 任意でリソース グループを選択します。Optionally, select a resource group. スコープによって、ポリシー割り当てを強制するリソースまたはリソースのグループが決まります。A scope determines what resources or grouping of resources the policy assignment gets enforced on. 次に、 [スコープ] ページの下部にある [選択] を選択します。Then select Select at the bottom of the Scope page.

    この例では、Contoso サブスクリプションを使用しています。This example uses the Contoso subscription. お客様によってサブスクリプションは異なります。Your subscription will differ.

  5. リソースは スコープ に基づいて除外できます。Resources can be excluded based on the Scope. 除外スコープ のレベルよりも 1 つ下のレベルで開始されます。Exclusions start at one level lower than the level of the Scope. 除外 は省略可能です。ここでは空のまま残してください。Exclusions are optional, so leave it blank for now.

  6. [ポリシー定義] の省略記号を選択して、使用可能な定義の一覧を開きます。Select the Policy definition ellipsis to open the list of available definitions. ポリシー定義の [種類][ビルトイン] でフィルター処理して、すべてを表示し、その説明を読むことができます。You can filter the policy definition Type to Built-in to view all and read their descriptions.

  7. [存在しない場合は、リソース グループからタグを継承する] を選択します。Select Inherit a tag from the resource group if missing. すぐに見つからない場合は、検索ボックスに「タグを継承」と入力して Enter キーを押すか、検索ボックスの外側を選択します。If you can't find it right away, type inherit a tag into the search box and then press ENTER or select out of the search box. ポリシー定義を見つけて選択したら、 [使用可能な定義] ページの下部にある [選択] を選択します。Select Select at the bottom of the Available Definitions page once you have found and selected the policy definition.

    ポリシー定義選択時の検索フィルターのスクリーンショット。

  8. [割り当て名] には選択したポリシー名が自動的に入力されますが、この名前は変更できます。The Assignment name is automatically populated with the policy name you selected, but you can change it. この例では、 [存在しない場合は、リソース グループからタグを継承する] のままにします。For this example, leave Inherit a tag from the resource group if missing. 必要に応じて、説明 を追加することもできます。You can also add an optional Description. 説明では、このポリシーの割り当ての詳細を示します。The description provides details about this policy assignment.

  9. [ポリシーの適用] を "有効" のままにしておきます。Leave Policy enforcement as Enabled. "無効" になっている場合、この設定によって、効果をトリガーせずにポリシーの結果をテストできます。When Disabled, this setting allows testing the outcome of the policy without triggering the effect. 詳細については、「適用モード」を参照してください。For more information, see enforcement mode.

  10. [割り当て担当者] は、ログイン ユーザーに基づいて自動的に入力されます。Assigned by is automatically filled based on who is logged in. このフィールドは任意です。カスタム値を入力できます。This field is optional, so custom values can be entered.

  11. ウィザードの上部にある [パラメーター] タブを選択します。Select the Parameters tab at the top of the wizard.

  12. [タグ名] に「Environment」と入力します。For Tag Name, enter Environment.

  13. ウィザードの上部にある [修復] タブを選択します。Select the Remediation tab at the top of the wizard.

  14. [修復タスクを作成する] のチェックをオフのままにします。Leave Create a remediation task unchecked. このボックスを利用すると、新規または更新されたリソースだけでなく、既存のリソースを変更するタスクを作成できます。This box allows you to create a task to alter existing resources in addition to new or updated resources. 詳細については、修復リソースに関する記事をご覧ください。For more information, see remediate resources.

  15. このポリシー定義では modify 効果を使用しているため、 [マネージド ID を作成します] のチェックが自動的にオンになります。Create a Managed Identity is automatically checked since this policy definition uses the modify effect. [アクセス許可] は、自動的にポリシー定義に基づく "共同作成者" に設定されます。Permissions is set to Contributor automatically based on the policy definition. 詳しくは、マネージド ID および修復セキュリティのしくみに関するページをご覧ください。For more information, see managed identities and how remediation security works.

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

  17. [Non-compliance message](コンプライアンス違反メッセージ)[This resource doesn't have the required tag](このリソースには必要なタグがありません) に設定します。Set the Non-compliance message to This resource doesn't have the required tag. このカスタム メッセージは、リソースが拒否されたときに表示されるほか、コンプライアンス違反のリソースについては、通常の評価時に表示されます。This custom message is displayed when a resource is denied or for non-compliant resources during regular evaluation.

  18. ウィザードの上部にある [Review + create](確認と作成) タブを選択します。Select the Review + create tab at the top of the wizard.

  19. 選択内容を確認してから、ページ下部にある [作成] を選択します。Review your selections, then select Create at the bottom of the page.

新しいカスタム ポリシーを実施するImplement a new custom policy

組み込みのポリシー定義を割り当てたので、Azure Policy でさらに多くのことを行うことができます。Now that you've assigned a built-in policy definition, you can do more with Azure Policy. 次に、G シリーズの仮想マシンをお客様の環境に作成できないことを確認することでコストを節約する新しいカスタム ポリシーを作成します。Next, create a new custom policy to save costs by validating that virtual machines created in your environment can't be in the G series. そのようにすると、組織内のユーザーが G シリーズで仮想マシンを作成しようとするたびに、要求が拒否されます。This way, every time a user in your organization tries to create a virtual machine in the G series, the request is denied.

  1. Azure Policy ページの左側にある [作成] の下の [定義] を選択します。Select Definitions under Authoring in the left side of the Azure Policy page.

    [作成] グループの下にある [定義] ページのスクリーンショット。

  2. ページの上部にある [+ ポリシー定義] を選択します。Select + Policy definition at the top of the page. このボタンをクリックすると [ポリシー定義] ページが開きます。This button opens to the Policy definition page.

  3. 次の情報を入力します。Enter the following information:

    • ポリシー定義を保存する管理グループまたはサブスクリプション。The management group or subscription in which the policy definition is saved. [定義の場所] の省略記号を使用して選択します。Select by using the ellipsis on Definition location.

      注意

      このポリシー定義を複数のサブスクリプションに適用する場合、この場所は、ポリシーを割り当てるサブスクリプションを含む管理グループである必要があります。If you plan to apply this policy definition to multiple subscriptions, the location must be a management group that contains the subscriptions you assign the policy to. これはイニシアティブ定義の場合も同様です。The same is true for an initiative definition.

    • ポリシー定義の名前 - "G シリーズにない VM SKU を必須にする"The name of the policy definition - Require VM SKUs not in the G series

    • そのポリシー定義の目的の説明 - "このポリシー定義では、コストを削減するために、このスコープ内で作成するすべての仮想マシンが、G シリーズ以外の SKU を使用することを強制しています。 "The description of what the policy definition is intended to do – This policy definition enforces that all virtual machines created in this scope have SKUs other than the G series to reduce cost.

    • このポリシー定義用のカテゴリを既存のオプション ("コンピューティング" など) から選択するか、新規に作成します。Choose from existing options (such as Compute), or create a new category for this policy definition.

    • 次の JSON コードをコピーし、必要に応じて以下のものを使用して更新します。Copy the following JSON code and then update it for your needs with:

      • ポリシー パラメーター。The policy parameters.
      • ポリシー ルール/条件。この例では、VM SKU サイズが G シリーズと同じサイズです。The policy rules/conditions, in this case – VM SKU size equal to G series
      • ポリシーの効果。この例では、Deny です。The policy effect, in this case – Deny.

    JSON の作成例は次のとおりです。Here's what the JSON should look like. 変更後のコードを Azure Portal に貼り付けます。Paste your revised code into the Azure portal.

    {
        "policyRule": {
            "if": {
                "allOf": [{
                        "field": "type",
                        "equals": "Microsoft.Compute/virtualMachines"
                    },
                    {
                        "field": "Microsoft.Compute/virtualMachines/sku.name",
                        "like": "Standard_G*"
                    }
                ]
            },
            "then": {
                "effect": "deny"
            }
        }
    }
    

    ポリシー ルールの field プロパティは、サポートされている値にする必要があります。The field property in the policy rule must be a supported value. 値の完全な一覧については、ポリシー定義構造のフィールドに関する記事を参照してください。A full list of values is found on policy definition structure fields. "Microsoft.Compute/VirtualMachines/Size" はエイリアスの 1 つの例です。An example of an alias might be "Microsoft.Compute/VirtualMachines/Size".

    Azure Policy の他のサンプルについては、「Azure Policy のサンプル」を参照してください。To view more Azure Policy samples, see Azure Policy samples.

  4. [保存] を選択します。Select Save.

REST API を使用したポリシー定義の作成Create a policy definition with REST API

Azure Policy 定義用の REST API を使用して、ポリシーを作成することができます。You can create a policy with the REST API for Azure Policy Definitions. REST API を使用すると、ポリシー定義の作成と削除、既存の定義に関する情報の取得を実行できます。The REST API enables you to create and delete policy definitions, and get information about existing definitions. ポリシー定義を作成するには、次の例を使用します。To create a policy definition, use the following example:

PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.authorization/policydefinitions/{policyDefinitionName}?api-version={api-version}

要求の本文は次の例のようになります。Include a request body similar to the following example:

{
    "properties": {
        "parameters": {
            "allowedLocations": {
                "type": "array",
                "metadata": {
                    "description": "The list of locations that can be specified when deploying resources",
                    "strongType": "location",
                    "displayName": "Allowed locations"
                }
            }
        },
        "displayName": "Allowed locations",
        "description": "This policy enables you to restrict the locations your organization can specify when deploying resources.",
        "policyRule": {
            "if": {
                "not": {
                    "field": "location",
                    "in": "[parameters('allowedLocations')]"
                }
            },
            "then": {
                "effect": "deny"
            }
        }
    }
}

PowerShell を使用したポリシー定義の作成Create a policy definition with PowerShell

PowerShell の例に進む前に、Azure PowerShell Az モジュールの最新バージョンがインストール済みであることを確認してください。Before proceeding with the PowerShell example, make sure you've installed the latest version of the Azure PowerShell Az module.

New-AzPolicyDefinition コマンドレットを使用してポリシー定義を作成することができます。You can create a policy definition using the New-AzPolicyDefinition cmdlet.

ファイルからポリシー定義を作成するには、ファイルへのパスを渡します。To create a policy definition from a file, pass the path to the file. 外部ファイルの場合は、次の例を使用します。For an external file, use the following example:

$definition = New-AzPolicyDefinition `
    -Name 'denyCoolTiering' `
    -DisplayName 'Deny cool access tiering for storage' `
    -Policy 'https://raw.githubusercontent.com/Azure/azure-policy-samples/master/samples/Storage/storage-account-access-tier/azurepolicy.rules.json'

ローカル ファイルの場合は、次の例を使用します。For a local file use, use the following example:

$definition = New-AzPolicyDefinition `
    -Name 'denyCoolTiering' `
    -Description 'Deny cool access tiering for storage' `
    -Policy 'c:\policies\coolAccessTier.json'

インライン ルールでポリシー定義を作成するには、次の例を使用します。To create a policy definition with an inline rule, use the following example:

$definition = New-AzPolicyDefinition -Name 'denyCoolTiering' -Description 'Deny cool access tiering for storage' -Policy '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "field": "kind",
                "equals": "BlobStorage"
            },
            {
                "field": "Microsoft.Storage/storageAccounts/accessTier",
                "equals": "cool"
            }
        ]
    },
    "then": {
        "effect": "deny"
    }
}'

出力は、ポリシー割り当ての際に使用される $definition オブジェクトに格納されます。The output is stored in a $definition object, which is used during policy assignment. 次の例では、パラメーターを含むポリシー定義を作成しています。The following example creates a policy definition that includes parameters:

$policy = '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "not": {
                    "field": "location",
                    "in": "[parameters(''allowedLocations'')]"
                }
            }
        ]
    },
    "then": {
        "effect": "Deny"
    }
}'

$parameters = '{
    "allowedLocations": {
        "type": "array",
        "metadata": {
            "description": "The list of locations that can be specified when deploying storage accounts.",
            "strongType": "location",
            "displayName": "Allowed locations"
        }
    }
}'

$definition = New-AzPolicyDefinition -Name 'storageLocations' -Description 'Policy to specify locations for storage accounts.' -Policy $policy -Parameter $parameters

PowerShell を使用したポリシー定義の表示View policy definitions with PowerShell

サブスクリプション内のすべてのポリシー定義を表示するには、次のコマンドを使用します。To see all policy definitions in your subscription, use the following command:

Get-AzPolicyDefinition

組み込みのポリシーを含め、すべての使用可能なポリシー定義が返されます。It returns all available policy definitions, including built-in policies. 各ポリシーは、次の形式で返されます。Each policy is returned in the following format:

Name               : e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceId         : /providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceName       : e56962a6-4747-49cd-b67b-bf8b01975c4c
ResourceType       : Microsoft.Authorization/policyDefinitions
Properties         : @{displayName=Allowed locations; policyType=BuiltIn; description=This policy enables you to
                     restrict the locations your organization can specify when deploying resources. Use to enforce
                     your geo-compliance requirements.; parameters=; policyRule=}
PolicyDefinitionId : /providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c

Azure CLI を使用したポリシー定義の作成Create a policy definition with Azure CLI

az policy definition コマンドによって、Azure CLI を使用してポリシー定義を作成します。You can create a policy definition using Azure CLI with the az policy definition command. インライン ルールでポリシー定義を作成するには、次の例を使用します。To create a policy definition with an inline rule, use the following example:

az policy definition create --name 'denyCoolTiering' --description 'Deny cool access tiering for storage' --rules '{
    "if": {
        "allOf": [{
                "field": "type",
                "equals": "Microsoft.Storage/storageAccounts"
            },
            {
                "field": "kind",
                "equals": "BlobStorage"
            },
            {
                "field": "Microsoft.Storage/storageAccounts/accessTier",
                "equals": "cool"
            }
        ]
    },
    "then": {
        "effect": "deny"
    }
}'

Azure CLI を使用したポリシー定義の表示View policy definitions with Azure CLI

サブスクリプション内のすべてのポリシー定義を表示するには、次のコマンドを使用します。To see all policy definitions in your subscription, use the following command:

az policy definition list

組み込みのポリシーを含め、すべての使用可能なポリシー定義が返されます。It returns all available policy definitions, including built-in policies. 各ポリシーは、次の形式で返されます。Each policy is returned in the following format:

{
    "description": "This policy enables you to restrict the locations your organization can specify when deploying resources. Use to enforce your geo-compliance requirements.",
    "displayName": "Allowed locations",
    "id": "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c",
    "name": "e56962a6-4747-49cd-b67b-bf8b01975c4c",
    "policyRule": {
        "if": {
            "not": {
                "field": "location",
                "in": "[parameters('listOfAllowedLocations')]"
            }
        },
        "then": {
            "effect": "Deny"
        }
    },
    "policyType": "BuiltIn"
}

イニシアチブ定義の作成と割り当てCreate and assign an initiative definition

イニシアチブ定義では、複数のポリシー定義をグループ化して、1 つの包括的な目標を実現することができます。With an initiative definition, you can group several policy definitions to achieve one overarching goal. イニシアチブは、割り当てのスコープ内のリソースについて、含まれているポリシーに準拠しているかどうかを評価します。An initiative evaluates resources within scope of the assignment for compliance to the included policies. イニシアティブ定義の詳細については、Azure Policy の概要に関するページを参照してください。For more information about initiative definitions, see Azure Policy overview.

イニシアチブ定義を作成するCreate an initiative definition

  1. Azure Policy ページの左側にある [作成] の下の [定義] を選択します。Select Definitions under Authoring in the left side of the Azure Policy page.

    [作成] グループの下にある [定義] ページのスクリーンショット。

  2. ページの上部にある [+ イニシアティブ定義] を選択して イニシアティブ定義 ウィザードを開きます。Select + Initiative Definition at the top of the page to open the Initiative definition wizard.

    [イニシアティブ定義] ページと設定するプロパティのスクリーンショット。

  3. [イニシアティブの場所] の省略記号を使用して、管理グループと、定義を格納するサブスクリプションを選択します。Use the Initiative location ellipsis to select a management group or subscription to store the definition. 前のページのスコープが 1 つの管理グループまたはサブスクリプションであった場合、 [イニシアティブの場所] は自動的に設定されます。If the previous page was scoped to a single management group or subscription, Initiative location is automatically populated.

  4. イニシアティブの 名前説明 を入力します。Enter the Name and Description of the initiative.

    この例では、セキュリティ保護に関するポリシー定義にリソースが準拠していることを確認します。This example validates that resources are in compliance with policy definitions about getting secure. イニシアティブに "セキュリティ保護" という名前を付け、"このイニシアティブは、リソースのセキュリティ保護に関連するすべてのポリシー定義を処理するために作成されました" という説明を入力します。Name the initiative Get Secure and set the description as: This initiative has been created to handle all policy definitions associated with securing resources.

  5. [カテゴリ] で、カテゴリを既存のオプションから選択するか、新規に作成します。For Category, choose from existing options or create a new category.

  6. イニシアティブの [バージョン] を設定します (1.0 など)。Set a Version for the initiative, such as 1.0.

    注意

    バージョン値は厳密にメタデータであり、Azure Policy サービスによる更新やプロセスには使用されません。The version value is strictly metadata and isn't used for updates or any process by the Azure Policy service.

  7. ページの下部にある [次へ] を選択するか、ウィザードの上部にある [ポリシー] タブを選択します。Select Next at the bottom of the page or the Policies tab at the top of the wizard.

  8. [ポリシー定義の追加] ボタンを選択し、一覧を参照します。Select Add policy definition(s) button and browse through the list. このイニシアティブに追加するポリシー定義を選択します。Select the policy definition(s) you want added to this initiative. セキュリティ保護 イニシアティブの場合、ポリシー定義の横にあるチェックボックスをオンにして、次の組み込みポリシー定義を追加します。For the Get Secure initiative, add the following built-in policy definitions by selecting the checkbox next to the policy definition:

    • 許可される場所Allowed locations
    • Endpoint Protection の欠落の Azure Security Center での監視Monitor missing Endpoint Protection in Azure Security Center
    • インターネットに接続されていない仮想マシンをネットワーク セキュリティ グループで保護する必要がありますNon-internet-facing virtual machines should be protected with network security groups
    • Virtual Machines に対して Azure Backup を有効にする必要があるAzure Backup should be enabled for Virtual Machines
    • 仮想マシンでディスク暗号化を適用する必要があるDisk encryption should be applied on virtual machines
    • リソースでタグを追加または置換する (このポリシー定義を 2 回追加する)Add or replace a tag on resources (add this policy definition twice)

    各ポリシー定義をリストから選択したら、リストの下部にある [追加] を選択します。After selecting each policy definition from the list, select Add at the bottom of the list. これは 2 回追加されるため、"リソースのタグを追加または置換する" ポリシー定義がそれぞれ異なる "参照 ID" を受け取ります。Since it's added twice, the Add or replace a tag on resources policy definitions each get a different reference ID.

    [イニシアティブ定義] ページで、ポリシー定義がその参照 ID とグループと共に選択されているスクリーンショット。

    注意

    選択したポリシー定義をグループに追加するには、追加された定義を 1 つ以上選択し、 [選択したポリシーをグループに追加します] を選択します。The selected policy definitions can be added to groups by selecting one or more added definitions and selecting Add selected policies to a group. まずグループが存在している必要があります。ウィザードの [グループ] タブで作成できます。The group must exist first and can be created on the Groups tab of the wizard.

  9. ページの下部にある [次へ] を選択するか、ウィザードの上部にある [グループ] タブを選択します。Select Next at the bottom of the page or the Groups tab at the top of the wizard. このタブから新しいグループを追加できます。このチュートリアルでは、グループは追加しません。New groups can be added from this tab. For this tutorial, we aren't adding any groups.

  10. ページの下部にある [次へ] を選択するか、ウィザードの上部にある [イニシアティブ パラメーター] タブを選択します。Select Next at the bottom of the page or the Initiative parameters tab at the top of the wizard. 1 つ以上の含まれているポリシー定義に渡すために、イニシアティブにパラメーターが存在するようにする場合は、パラメーターがここで定義され、 [ポリシー パラメーター] タブで使用されます。このチュートリアルでは、イニシアティブ パラメーターは追加しません。If we wanted a parameter to exist at the initiative for passing to one or more included policy definitions, the parameter is defined here and then used on the Policy parameters tab. For this tutorial, we aren't adding any initiative parameters.

    注意

    イニシアティブ定義に保存したイニシアティブ パラメーターは、イニシアティブから削除することはできません。Once saved to an initiative definition, initiative parameters can't be deleted from the initiative. イニシアティブ パラメーターが不要になった場合は、ポリシー定義パラメーターによって使用されないように削除します。If an initiative parameter is no longer needed, remove it from use by any policy definition parameters.

  11. ページの下部にある [次へ] を選択するか、ウィザードの上部にある [ポリシー パラメーター] タブを選択します。Select Next at the bottom of the page or the Policy parameters tab at the top of the wizard.

  12. パラメーターを持つイニシアティブに追加されたポリシー定義は、グリッドに表示されます。Policy definition added to the initiative that have parameters are displayed in a grid. [値の型] には、[既定値]、[値の設定]、または [イニシアティブ パラメーターを使用する] を指定できます。The value type can be 'Default value', 'Set value', or 'Use Initiative Parameter'. [値の設定] が選択されている場合、関連する値が [値] の下に入力されます。If 'Set value' is selected, the related value is entered under Value(s). ポリシー定義のパラメーターに許可された値のリストが含まれている場合、入力ボックスはドロップダウン セレクターになります。If the parameter on the policy definition has a list of allowed values, the entry box is a drop-down selector. [イニシアティブ パラメーターを使用する] が選択されている場合は、 [イニシアティブ パラメーター] タブで作成されたイニシアティブ パラメーターの名前がドロップダウン リストに表示されます。If 'Use Initiative Parameter' is selected, a drop-down select is provided with the names of initiative parameters created on the Initiative parameters tab.

    [イニシアティブ定義] ページの [ポリシー パラメーター] タブで "許可されている場所" 定義パラメーターに対する許可されている値のオプションのスクリーンショット。

    注意

    一部の strongType パラメーターでは、値の一覧を自動的に決定することができません。In the case of some strongType parameters, the list of values cannot be automatically determined. このような場合、パラメーター行の右側に省略記号が表示されます。In these cases, an ellipsis appears to the right of the parameter row. それを選択すると、[パラメーターのスコープ (<パラメーター名>)] ページが開きます。Selecting it opens the 'Parameter scope (<parameter name>)' page. このページで、値のオプションの指定に使用するサブスクリプションを選択します。On this page, select the subscription to use for providing the value options. このパラメーターの範囲は、イニシアチブ定義の作成時にのみ使用され、ポリシーの評価またはイニシアチブ (割り当てられる場合) の範囲には影響しません。This parameter scope is only used during creation of the initiative definition and has no impact on policy evaluation or the scope of the initiative when assigned.

    "許可されている場所" の [値の型] を [値の設定] に設定し、ドロップダウンから '米国東部 2' を選択します。Set the 'Allowed locations' value type to 'Set value' and select 'East US 2' from the drop-down. "リソースのタグを追加または置換する" ポリシー定義の 2 つのインスタンスについては、次に示すように、Tag Name パラメーターを ' Env ' と 'CostCenter' に、Tag Value パラメーターを 'Test' および 'Lab' に設定します。For the two instances of the Add or replace a tag on resources policy definitions, set the Tag Name parameters to 'Env' and 'CostCenter and the Tag Value parameters to 'Test' and 'Lab' as shown below. 他は [既定値] のままにします。Leave the others as 'Default value'. イニシアティブで同じ定義を 2 回使用 (ただしパラメーターが異なる) すると、この構成によって、割り当てのスコープ内のリソースで、'Env' タグの場合は値 'Test'、'CostCenter' タグの場合は値 'Lab' が追加されるかこれらの値に置換されます。Using the same definition twice in the initiative but with different parameters, this configuration adds or replace an 'Env' tag with the value 'Test' and a 'CostCenter' tag with the value of 'Lab' on resources in scope of the assignment.

    [イニシアティブ定義] ページの [ポリシー パラメーター] タブで &quot;許可されている場所&quot; 定義パラメーターに対する許可されている値に入力されたオプションと、両方のタグ パラメーターに設定されている値のスクリーンショット。

  13. ページの下部またはウィザードの上部にある [確認と作成] を選択します。Select Review + create at the bottom of the page or at the top of the wizard.

  14. 設定を確認し、 [作成] を選択します。Review the settings and select Create.

Azure CLI を使用したポリシー イニシアチブ定義の作成Create a policy initiative definition with Azure CLI

az policy set-definition コマンドによって、Azure CLI を使用してポリシー イニシアチブ定義を作成できます。You can create a policy initiative definition using Azure CLI with the az policy set-definition command. 既存のポリシー定義によってポリシー イニシアチブ定義を作成するには、次の例を使用します。To create a policy initiative definition with an existing policy definition, use the following example:

az policy set-definition create -n readOnlyStorage --definitions '[
        {
            "policyDefinitionId": "/subscriptions/mySubId/providers/Microsoft.Authorization/policyDefinitions/storagePolicy",
            "parameters": { "storageSku": { "value": "[parameters(\"requiredSku\")]" } }
        }
    ]' \
    --params '{ "requiredSku": { "type": "String" } }'

Azure PowerShell によるポリシー イニシアチブ定義の作成Create a policy initiative definition with Azure PowerShell

New-AzPolicySetDefinition コマンドレットによって、Azure PowerShell を使用してポリシー イニシアチブ定義を作成できます。You can create a policy initiative definition using Azure PowerShell with the New-AzPolicySetDefinition cmdlet. 既存のポリシー定義によってポリシー イニシアチブ定義を作成するには、次のポリシー イニシアチブ定義ファイルを VMPolicySet.json として使用します。To create a policy initiative definition with an existing policy definition, use the following policy initiative definition file as VMPolicySet.json:

[
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/2a0e14a6-b0a6-4fab-991a-187a4f81c498",
        "parameters": {
            "tagName": {
                "value": "Business Unit"
            },
            "tagValue": {
                "value": "Finance"
            }
        }
    },
    {
        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/464dbb85-3d5f-4a1d-bb09-95a9b5dd19cf"
    }
]
New-AzPolicySetDefinition -Name 'VMPolicySetDefinition' -Metadata '{"category":"Virtual Machine"}' -PolicyDefinition C:\VMPolicySet.json

イニシアチブ定義を割り当てるAssign an initiative definition

  1. Azure Policy ページの左側にある [作成] の下の [定義] を選択します。Select Definitions under Authoring in the left side of the Azure Policy page.

  2. 前に作成した セキュリティ保護 イニシアティブ定義を見つけて選択します。Locate the Get Secure initiative definition you previously created and select it. ページの上部にある [割り当て] を選択して [セキュリティ保護: イニシアティブの割り当て] ページを開きます。Select Assign at the top of the page to open to the Get Secure: Assign initiative page.

    [イニシアティブ定義] ページの [割り当て] ボタンのスクリーンショット。

    また、選択した行を右クリックするか、行の末尾にある省略記号を選択して、コンテキスト メニューを表示することもできます。You can also right-click on the selected row or select the ellipsis at the end of the row for a contextual menu. 次に、 [割り当て] を選択します。Then select Assign.

    割り当て機能を選択するためのイニシアティブのコンテキスト メニューのスクリーンショット。

  3. [セキュリティ保護: イニシアティブの割り当て] ページに、次のサンプル情報を入力します。Fill out the Get Secure: Assign Initiative page by entering the following example information. 独自の情報を使用することもできます。You can use your own information.

    • スコープ:イニシアティブを保存した管理グループまたはサブスクリプションが既定値になります。Scope: The management group or subscription you saved the initiative to becomes the default. スコープを変更して、保存場所内のサブスクリプションまたはリソース グループにイニシアティブを割り当てることができます。You can change scope to assign the initiative to a subscription or resource group within the save location.
    • 除外: イニシアティブ割り当てが適用されないように、スコープ内の任意のリソースを構成します。Exclusions: Configure any resources within the scope to prevent the initiative assignment from being applied to them.
    • イニシアティブ定義と割り当て名: セキュリティ保護 (割り当てられるイニシアティブの名前として事前に入力されます)。Initiative definition and Assignment name: Get Secure (pre-populated as name of initiative being assigned).
    • 説明:このイニシアティブ割り当ては、このポリシー定義グループを強制するために調整されています。Description: This initiative assignment is tailored to enforce this group of policy definitions.
    • ポリシーの適用: 既定の " [有効] " のままにします。Policy enforcement: Leave as the default Enabled.
    • 割り当て担当者: ログイン ユーザーに基づいて自動的に入力されます。Assigned by: Automatically filled based on who is logged in. このフィールドは任意です。カスタム値を入力できます。This field is optional, so custom values can be entered.
  4. ウィザードの上部にある [パラメーター] タブを選択します。Select the Parameters tab at the top of the wizard. 前の手順でイニシアチブ パラメーターを構成した場合は、ここで値を設定します。If you configured an initiative parameter in previous steps, set a value here.

  5. ウィザードの上部にある [修復] タブを選択します。Select the Remediation tab at the top of the wizard. [マネージド ID を作成します] のチェックは外しておいてください。Leave Create a Managed Identity unchecked. このボックスは、割り当てられるポリシーまたはイニシアティブに deployIfNotExists または modify 効果を利用したポリシーが含まれる場合に、チェックをオンにする "必要があります"。This box must be checked when the policy or initiative being assigned includes a policy with the deployIfNotExists or modify effects. このチュートリアルで使用するポリシーにはそれが含まれないため、空のままにします。As the policy used for this tutorial doesn't, leave it blank. 詳しくは、マネージド ID および修復セキュリティのしくみに関するページをご覧ください。For more information, see managed identities and how remediation security works.

  6. ウィザードの上部にある [Review + create](確認と作成) タブを選択します。Select the Review + create tab at the top of the wizard.

  7. 選択内容を確認してから、ページ下部にある [作成] を選択します。Review your selections, then select Create at the bottom of the page.

初期のコンプライアンスを確認するCheck initial compliance

  1. Azure Policy ページの左側にある [コンプライアンス] を選択します。Select Compliance in the left side of the Azure Policy page.

  2. [Get Secure](セキュリティ保護) イニシアチブを探します。Locate the Get Secure initiative. おそらくまだ [コンプライアンスの状態][未開始] です。It's likely still in Compliance state of Not started. 割り当ての詳細情報を取得するには、イニシアティブを選択します。Select the initiative to get full details of the assignment.

    イニシアティブ コンプライアンス ページのスクリーンショット。割り当て評価が [未開始] 状態です。

  3. イニシアティブの割り当てが完了すると、コンプライアンス ページが更新されて、 [コンプライアンスの状態][準拠している] になります。Once the initiative assignment has been completed, the compliance page is updated with the Compliance state of Compliant.

    イニシアティブ コンプライアンス ページのスクリーンショット。割り当て評価が完了しており、[準拠している] 状態です。

  4. イニシアティブ コンプライアンス ページ上の任意のポリシーを選択すると、そのポリシーのコンプライアンス詳細ページが開きます。Selecting any policy on the initiative compliance page opens the compliance details page for that policy. このページでは、コンプライアンスのリソース レベルの詳細が提供されます。This page provides details at the resource level for compliance.

準拠していないまたは拒否されたリソースを除外してスコープから削除するRemove a non-compliant or denied resource from the scope with an exclusion

特定の場所を要求するようにポリシー イニシアチブを割り当てた後は、別の場所に作成されたリソースはすべて拒否されます。After assigning a policy initiative to require a specific location, any resource created in a different location is denied. このセクションでは、単一のリソース グループに対する除外を作成することで、リソースを作成する要求の拒否を解決する手順について説明します。In this section, you walk through resolving a denied request to create a resource by creating an exclusion on a single resource group. 除外することで、そのリソース グループに対してポリシー (またはイニシアティブ) が適用されなくなります。The exclusion prevents enforcement of the policy (or initiative) on that resource group. 次の例では、除外されたリソース グループ内で任意の場所が許可されています。In the following example, any location is allowed in the excluded resource group. 除外は、サブスクリプション、リソース グループ、または個々のリソースに適用できます。An exclusion can apply to a subscription, a resource group, or an individual resources.

注意

ポリシーの適用除外を使用して、リソースの評価をスキップすることもできます。A policy exemption can also be used skip the evaluation of a resource. 詳細については、Azure Policy のスコープに関するページを参照してください。For additional information, see Scope in Azure Policy.

割り当てられたポリシーまたはイニシアチブによって阻止されたデプロイは、デプロイの対象となるリソース グループ上で閲覧できます。ページの左側にある [デプロイ] を選択し、失敗したデプロイの デプロイ名 を選択します。Deployments prevented by an assigned policy or initiative can be viewed on the resource group targeted by the deployment: Select Deployments in the left side of the page, then select the Deployment Name of the failed deployment. 拒否されたリソースが、"禁止" ステータスで表示されます。The resource that was denied is listed with a status of Forbidden. リソースを拒否したポリシーまたはイニシアティブと割り当てを確認するには、[デプロイの概要] ページの [失敗しました。詳細については、ここをクリックしてください] をクリックします。To determine the policy or initiative and assignment that denied the resource, select Failed. Click here for details -> on the Deployment Overview page. ページの右側にウィンドウが開き、エラー情報が表示されます。A window opens on the right side of the page with the error information. [エラーの詳細] には、関連するポリシー オブジェクトの GUID が表示されます。Under Error Details are the GUIDs of the related policy objects.

ポリシー割り当てで拒否されたデプロイ失敗のスクリーンショット。

Azure Policy ページでの操作: ページの左側にある [コンプライアンス] を選択し、セキュリティ保護 のポリシー イニシアチブを選択します。On the Azure Policy page: Select Compliance in the left side of the page and select the Get Secure policy initiative. このページでは、ブロックされたリソースに対する [拒否] カウントが増加しています。On this page, there is an increase in the Deny count for blocked resources. [イベント] タブ下には、ポリシー定義によって拒否されたリソースの作成またはデプロイを試行したユーザーに関する詳細が示されます。Under the Events tab are details about who tried to create or deploy the resource that was denied by the policy definition.

[イニシアティブ コンプライアンス] ページの [イベント] タブとポリシー イベント詳細のスクリーンショット。

この例では、Contoso における仮想化のシニアスペシャリストの 1 人である Trent Baker が必要な作業を行っていました。In this example, Trent Baker, one of Contoso's Sr. Virtualization specialists, was doing required work. Trent に例外のスペースを付与する必要があります。We need to grant Trent a space for an exception. 新しいリソース グループ LocationsExcluded を作成してから、このポリシー割り当てへの例外を付与します。Created a new resource group, LocationsExcluded, and next grant it an exception to this policy assignment.

除外による割り当ての更新Update assignment with exclusion

  1. Azure Policy ページの左側にある [作成] の下の [割り当て] を選択します。Select Assignments under Authoring in the left side of the Azure Policy page.

  2. すべてのポリシー割り当て一覧から、セキュリティ保護 のポリシー割り当てを開きます。Browse through all policy assignments and open the Get Secure policy assignment.

  3. 省略記号を選択し、除外するリソース グループ (この例では、LocationsExcluded) を選択して、 [除外] を設定します。Set the Exclusion by selecting the ellipsis and selecting the resource group to exclude, LocationsExcluded in this example. [選択したスコープに追加] を選択してから、 [保存] を選択します。Select Add to Selected Scope and then select Save.

    [イニシアティブ割り当て] ページにある、除外されたリソース グループをポリシー割り当てに追加するための [除外] オプションのスクリーンショット。

    注意

    ポリシー定義とその効果に応じて、割り当てのスコープ内にあるリソース グループの中の特定のリソースに除外を付与することもできます。Depending on the policy definition and its effect, the exclusion could also be granted to specific resources within a resource group inside the scope of the assignment. このチュートリアルでは Deny 効果が使用されたため、既に存在する特定のリソースに除外を設定することには意味がありません。As a Deny effect was used in this tutorial, it wouldn't make sense to set the exclusion on a specific resource that already exists.

  4. [Review + save](確認と保存) を選択して、 [保存] を選択します。Select Review + save and then select Save.

このセクションでは、単一のリソース グループに対する除外を作成することによって、拒否された要求を解決しました。In this section, you resolved the denied request by creating an exclusion on a single resource group.

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

このチュートリアルからリソースに対する作業を完了したら、次の手順を使用して、ここで作成したポリシー割り当てまたは定義をすべて削除します。If you're done working with resources from this tutorial, use the following steps to delete any of the policy assignments or definitions created above:

  1. Azure Policy ページの左側にある [作成] の下の [定義] (または割り当てを削除する場合は [割り当て] ) を選択します。Select Definitions (or Assignments if you're trying to delete an assignment) under Authoring in the left side of the Azure Policy page.

  2. 削除する新しいイニシアティブまたはポリシー定義 (または割り当て) を見つけます。Search for the new initiative or policy definition (or assignment) you want to remove.

  3. 行を右クリックするか、定義 (または割り当て) の末尾にある省略記号を選択し、 [定義の削除] (または [割り当ての削除] ) を選択します。Right-click the row or select the ellipses at the end of the definition (or assignment), and select Delete definition (or Delete assignment).

確認Review

このチュートリアルでは、以下のタスクを完了しました。In this tutorial, you successfully accomplished the following tasks:

  • 今後作成するリソースに条件を強制するポリシーを割り当てるAssigned a policy to enforce a condition for resources you create in the future
  • 複数のリソースについてコンプライアンスを追跡するイニシアチブ定義を作成して割り当てるCreated and assign an initiative definition to track compliance for multiple resources
  • 準拠していないリソースまたは拒否されたリソースを解決するResolved a non-compliant or denied resource
  • 組織全体で新しいポリシーを実施するImplemented a new policy across an organization

次のステップNext steps

ポリシー定義の構造の詳細については、次の記事を参照してください。To learn more about the structures of policy definitions, look at this article: