Azure Policy の効果についてUnderstand Azure Policy effects

Azure Policy 内の各ポリシー定義には単一の効果があります。Each policy definition in Azure Policy has a single effect. その効果によって、ポリシー規則が一致すると評価されたときの動作が決まります。That effect determines what happens when the policy rule is evaluated to match. 効果の動作は、対象 (新しいリソース、更新されたリソース、または既存のリソース) によって異なります。The effects behave differently if they are for a new resource, an updated resource, or an existing resource.

現在、ポリシー定義では次の効果がサポートされています。These effects are currently supported in a policy definition:

次の効果は_非推奨_となっています。The following effects are being deprecated:

重要

EnforceOPAConstraint 効果または EnforceRegoPolicy 効果の代わりに、リソース プロバイダー モード Microsoft.Kubernetes.DataAuditDeny を使用します。In place of the EnforceOPAConstraint or EnforceRegoPolicy effects, use audit and deny with Resource Provider mode Microsoft.Kubernetes.Data. 組み込みのポリシー定義が更新されています。The built-in policy definitions have been updated. これらの組み込みポリシー定義の既存のポリシー割り当てが変更された場合、effect パラメーターは、更新された allowedValues リスト内の値に変更する必要があります。When existing policy assignments of these built-in policy definitions are modified, the effect parameter must be changed to a value in the updated allowedValues list.

評価の順序Order of evaluation

リソースの作成または更新の要求は、まず Azure Policy によって評価されます。Requests to create or update a resource are evaluated by Azure Policy first. Azure Policy では、リソースに適用されるすべての割り当ての一覧が作成された後、各定義に対してリソースが評価されます。Azure Policy creates a list of all assignments that apply to the resource and then evaluates the resource against each definition. リソース マネージャー モードの場合、Azure Policy では、適切なリソース プロバイダーに要求が渡される前に、さまざまな効果が処理されます。For a Resource Manager mode, Azure Policy processes several of the effects before handing the request to the appropriate Resource Provider. この順序で処理することで、リソースが意図された Azure Policy のガバナンス コントロールを満たさない場合に、リソース プロバイダーによって不要な処理が行われるのを防止します。This order prevents unnecessary processing by a Resource Provider when a resource doesn't meet the designed governance controls of Azure Policy. リソース プロバイダー モードを使用すると、リソース プロバイダーは評価と結果を管理し、その結果を Azure Policy に報告します。With a Resource Provider mode, the Resource Provider manages the evaluation and outcome and reports the results back to Azure Policy.

  • Disabled は、ポリシー規則を評価する必要があるかどうかを判断するために、最初に確認されます。Disabled is checked first to determine if the policy rule should be evaluated.
  • AppendModify は、その後で評価されます。Append and Modify are then evaluated. これらいずれかによって要求が変更される可能性があるため、その変更によって、Audit または Deny の効果がトリガーされるのが止められる場合があります。Since either could alter the request, a change made may prevent an audit or deny effect from triggering. これらの効果は、リソース マネージャー モードでのみ使用できます。These effects are only available with a Resource Manager mode.
  • 次に、Deny が評価されます。Deny is then evaluated. Audit の前に Deny を評価することによって、不要なリソースの二重のログ記録が回避されます。By evaluating deny before audit, double logging of an undesired resource is prevented.
  • Audit が最後に評価されます。Audit is evaluated last.

リソース マネージャー モードの要求では、リソース プロバイダーによって成功コードが返された後、AuditIfNotExistsDeployIfNotExists が評価され、追加のコンプライアンスのログ記録またはアクションが必要かどうかが判断されます。After the Resource Provider returns a success code on a Resource Manager mode request, AuditIfNotExists and DeployIfNotExists evaluate to determine if additional compliance logging or action is required.

AppendAppend

Append は、作成中または更新中に要求されたリソースにフィールドを追加するために使用します。Append is used to add additional fields to the requested resource during creation or update. 一般的な例としては、ストレージ リソースに対して許可される IP の指定が挙げられます。A common example is specifying allowed IPs for a storage resource.

重要

Append は、タグ以外のプロパティで使用することを目的としています。Append is intended for use with non-tag properties. Append では、作成要求または更新要求時にリソースにタグを追加することができますが、タグに対しては Modify 効果を使用することをお勧めします。While Append can add tags to a resource during a create or update request, it's recommended to use the Modify effect for tags instead.

Append の評価Append evaluation

リソースを作成中または更新中に、リソース プロバイダーによって要求が処理される前に Append による評価が行われます。Append evaluates before the request gets processed by a Resource Provider during the creation or updating of a resource. Append では、ポリシー規則の if 条件が満たされた場合、リソースにフィールドが追加されます。Append adds fields to the resource when the if condition of the policy rule is met. Append 効果によって元の要求の値が別の値でオーバーライドされる場合、Append は Deny 効果として機能し、要求は拒否されます。If the append effect would override a value in the original request with a different value, then it acts as a deny effect and rejects the request. 新しい値を既存の配列に追加するには、 [*] バージョンの別名を使用します。To append a new value to an existing array, use the [*] version of the alias.

Append 効果を使用するポリシー定義が評価サイクルの一部として実行される場合、既存のリソースに対する変更は行われません。When a policy definition using the append effect is run as part of an evaluation cycle, it doesn't make changes to resources that already exist. 代わりに、if 条件を満たすリソースが非準拠とマークされます。Instead, it marks any resource that meets the if condition as non-compliant.

Append のプロパティAppend properties

Append 効果には必須の details 配列が 1 つだけあります。An append effect only has a details array, which is required. details は配列なので、1 つまたは複数の field/value のペアをとることができます。As details is an array, it can take either a single field/value pair or multiples. 許容可能なフィールドの一覧については、定義の構造を参照してください。Refer to definition structure for the list of acceptable fields.

Append の例Append examples

例 1:非 [*] 別名と配列 value を使用してストレージ アカウントに IP 規則を設定する単一の field/value のペア。Example 1: Single field/value pair using a non-[*] alias with an array value to set IP rules on a storage account. [*] 別名が配列の場合、この効果により、value が配列全体として追加されます。When the non-[*] alias is an array, the effect appends the value as the entire array. 配列が既に存在する場合は、競合から拒否イベントが発生します。If the array already exists, a deny event occurs from the conflict.

"then": {
    "effect": "append",
    "details": [{
        "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules",
        "value": [{
            "action": "Allow",
            "value": "134.5.0.0/21"
        }]
    }]
}

例 2: [*] 別名と配列 value を使用してストレージ アカウントに IP 規則を設定する単一の field/value のペア。Example 2: Single field/value pair using an [*] alias with an array value to set IP rules on a storage account. [*] 別名を使用することで、この効果により、value が事前に存在している可能性のある配列に追加されます。By using the [*] alias, the effect appends the value to a potentially pre-existing array. 配列がまだ存在しない場合は、配列が作成されます。If the array doesn't exist yet, it's created.

"then": {
    "effect": "append",
    "details": [{
        "field": "Microsoft.Storage/storageAccounts/networkAcls.ipRules[*]",
        "value": {
            "value": "40.40.40.40",
            "action": "Allow"
        }
    }]
}

AuditAudit

非準拠のリソースが評価された場合、Audit を使用してアクティビティ ログに警告イベントが作成されますが、要求は停止されません。Audit is used to create a warning event in the activity log when evaluating a non-compliant resource, but it doesn't stop the request.

Audit の評価Audit evaluation

Audit は、リソースの作成中または更新中に Azure Policy によって確認される最後の効果です。Audit is the last effect checked by Azure Policy during the creation or update of a resource. リソース マネージャー モードの場合、その後でリソースが Azure Policy によってリソース プロバイダーに送信されます。For a Resource Manager mode, Azure Policy then sends the resource to the Resource Provider. Audit は、リソース要求でも評価サイクルでも同じように動作します。Audit works the same for a resource request and an evaluation cycle. Azure Policy によって Microsoft.Authorization/policies/audit/action 操作がアクティビティ ログに追加され、リソースが非準拠としてマークされます。Azure Policy adds a Microsoft.Authorization/policies/audit/action operation to the activity log and marks the resource as non-compliant.

Audit のプロパティAudit properties

リソース マネージャー モードの場合、Audit 効果には、ポリシー定義の then 条件で使用するためのその他のプロパティはありません。For a Resource Manager mode, the audit effect doesn't have any additional properties for use in the then condition of the policy definition.

Microsoft.Kubernetes.Data のリソース プロバイダー モードの場合、Audit 効果の details には次のサブプロパティが追加されます。For a Resource Provider mode of Microsoft.Kubernetes.Data, the audit effect has the following additional subproperties of details.

  • constraintTemplate (必須)constraintTemplate (required)
    • 新しい制約を定義する、制約テンプレート CustomResourceDefinition (CRD) です。The Constraint template CustomResourceDefinition (CRD) that defines new Constraints. このテンプレートは、Rego ロジック、制約スキーマに加えて、Azure Policy からの values で渡される制約パラメーターを定義します。The template defines the Rego logic, the Constraint schema, and the Constraint parameters that are passed via values from Azure Policy.
  • constraint (必須)constraint (required)
    • 制約テンプレートの CRD 実装です。The CRD implementation of the Constraint template. {{ .Values.<valuename> }} のように values で渡されるパラメーターを使用します。Uses parameters passed via values as {{ .Values.<valuename> }}. 次の例 2 では、これらの値は {{ .Values.excludedNamespaces }} および {{ .Values.allowedContainerImagesRegex }} です。In example 2 below, these values are {{ .Values.excludedNamespaces }} and {{ .Values.allowedContainerImagesRegex }}.
  • values (省略可能)values (optional)
    • 制約に渡すすべてのパラメーターと値を定義します。Defines any parameters and values to pass to the Constraint. それぞれの値は、制約テンプレート CRD に含まれている必要があります。Each value must exist in the Constraint template CRD.

Audit の例Audit example

例 1:リソース マネージャー モードで Audit 効果を使用する。Example 1: Using the audit effect for Resource Manager modes.

"then": {
    "effect": "audit"
}

例 2:Microsoft.Kubernetes.Data のリソース プロバイダー モードで Audit 効果を使用する。Example 2: Using the audit effect for a Resource Provider mode of Microsoft.Kubernetes.Data. details の追加情報では、許可されるコンテナー イメージを制限するために Kubernetes で使用する制約テンプレートと CRD を定義します。The additional information in details defines the Constraint template and CRD to use in Kubernetes to limit the allowed container images.

"then": {
    "effect": "audit",
    "details": {
        "constraintTemplate": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-allowed-images/template.yaml",
        "constraint": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-allowed-images/constraint.yaml",
        "values": {
            "allowedContainerImagesRegex": "[parameters('allowedContainerImagesRegex')]",
            "excludedNamespaces": "[parameters('excludedNamespaces')]"
        }
    }
}

AuditIfNotExistsAuditIfNotExists

AuditIfNotExists は、if 条件に一致するリソースに_関連する_リソースで監査を有効にしますが、then 条件の details で指定されるプロパティはありません。AuditIfNotExists enables auditing of resources related to the resource that matches the if condition, but don't have the properties specified in the details of the then condition.

AuditIfNotExists の評価AuditIfNotExists evaluation

AuditIfNotExists は、リソース プロバイダーでリソースの作成または更新要求が処理され、成功を示す状態コードが返された後で実行されます。AuditIfNotExists runs after a Resource Provider has handled a create or update resource request and has returned a success status code. 関連するリソースがない場合、または ExistenceCondition によって定義されたリソースが true と評価されない場合、監査が発生します。The audit occurs if there are no related resources or if the resources defined by ExistenceCondition don't evaluate to true. Audit 効果と同じ方法で、Azure Policy によって Microsoft.Authorization/policies/audit/action 操作がアクティビティ ログに追加されます。Azure Policy adds a Microsoft.Authorization/policies/audit/action operation to the activity log the same way as the audit effect. トリガーされた場合、if 条件を満たしているリソースは、非準拠としてマークされているリソースです。When triggered, the resource that satisfied the if condition is the resource that is marked as non-compliant.

AuditIfNotExists のプロパティAuditIfNotExists properties

AuditIfNotExists 効果の details プロパティは、照合する関連リソースを定義するすべてのサブプロパティを含みます。The details property of the AuditIfNotExists effects has all the subproperties that define the related resources to match.

  • Type (必須)Type (required)
    • 照合する関連リソースの型を指定します。Specifies the type of the related resource to match.
    • details.typeif 条件リソース下にあるリソースの型である場合、この type のリソースが、ポリシーによって評価対象リソースのスコープ内から照会されます。If details.type is a resource type underneath the if condition resource, the policy queries for resources of this type within the scope of the evaluated resource. それ以外の場合は、評価対象リソースと同じリソース グループ内から照会されます。Otherwise, policy queries within the same resource group as the evaluated resource.
  • Name (省略可能)Name (optional)
    • 照合するリソースの正確な名前を指定して、指定した型のすべてのリソースではなく 1 つの特定のリソースを取得します。Specifies the exact name of the resource to match and causes the policy to fetch one specific resource instead of all resources of the specified type.
    • if.field.typethen.details.type の条件値が一致する場合、Name は "必須" になり、[field('name')] であることが必要です。When the condition values for if.field.type and then.details.type match, then Name becomes required and must be [field('name')]. ただし、代わりに audit の影響を考慮する必要があります。However, an audit effect should be considered instead.
  • ResourceGroupName (省略可能)ResourceGroupName (optional)
    • 別のリソース グループに由来する関連リソースを照合できるようにします。Allows the matching of the related resource to come from a different resource group.
    • typeif 条件リソースの下にあるリソースである場合は適用されません。Doesn't apply if type is a resource that would be underneath the if condition resource.
    • 既定値は、if 条件リソースのリソース グループです。Default is the if condition resource's resource group.
  • ExistenceScope (省略可能)ExistenceScope (optional)
    • 使用できる値は SubscriptionResourceGroup です。Allowed values are Subscription and ResourceGroup.
    • 照合する関連リソースを取得する範囲を設定します。Sets the scope of where to fetch the related resource to match from.
    • typeif 条件リソースの下にあるリソースである場合は適用されません。Doesn't apply if type is a resource that would be underneath the if condition resource.
    • ResourceGroup の場合は、if 条件リソースのリソース グループまたは ResourceGroupName で指定されたリソース グループに制限されます。For ResourceGroup, would limit to the if condition resource's resource group or the resource group specified in ResourceGroupName.
    • Subscription の場合は、関連リソースのサブスクリプション全体を検索します。For Subscription, queries the entire subscription for the related resource.
    • 既定値は ResourceGroup です。Default is ResourceGroup.
  • ExistenceCondition (省略可能)ExistenceCondition (optional)
    • 指定されない場合、type の関連リソースは効果を満たしているため、監査はトリガーされません。If not specified, any related resource of type satisfies the effect and doesn't trigger the audit.
    • if 条件のポリシー規則と同じ言語が使用されますが、それぞれの関連リソースに対して個別に評価されます。Uses the same language as the policy rule for the if condition, but is evaluated against each related resource individually.
    • 照合する関連リソースのいずれかが true と評価された場合、効果は条件を満たしているため、監査はトリガーされません。If any matching related resource evaluates to true, the effect is satisfied and doesn't trigger the audit.
    • [field()] を使用して、if 条件の値と等しいことを確認できます。Can use [field()] to check equivalence with values in the if condition.
    • たとえば、(if 条件内の) 親リソースが照合する関連リソースと同じリソースの場所にあることを検証できます。For example, could be used to validate that the parent resource (in the if condition) is in the same resource location as the matching related resource.

AuditIfNotExists の例AuditIfNotExists example

例:仮想マシンを評価してマルウェア対策の拡張機能が存在するかどうかを判定し、ない場合に監査します。Example: Evaluates Virtual Machines to determine if the Antimalware extension exists then audits when missing.

{
    "if": {
        "field": "type",
        "equals": "Microsoft.Compute/virtualMachines"
    },
    "then": {
        "effect": "auditIfNotExists",
        "details": {
            "type": "Microsoft.Compute/virtualMachines/extensions",
            "existenceCondition": {
                "allOf": [{
                        "field": "Microsoft.Compute/virtualMachines/extensions/publisher",
                        "equals": "Microsoft.Azure.Security"
                    },
                    {
                        "field": "Microsoft.Compute/virtualMachines/extensions/type",
                        "equals": "IaaSAntimalware"
                    }
                ]
            }
        }
    }
}

拒否Deny

Deny は、ポリシーを通して定義された基準に一致していないために失敗するリソース要求を防ぐために使用されます。Deny is used to prevent a resource request that doesn't match defined standards through a policy definition and fails the request.

Deny の評価Deny evaluation

リソース マネージャー モードで照合されたリソースを作成または更新する場合、Deny は、リソース プロバイダーに要求が送信されないようにします。When creating or updating a matched resource in a Resource Manager mode, deny prevents the request before being sent to the Resource Provider. 要求は 403 (Forbidden) として返されます。The request is returned as a 403 (Forbidden). ポータルでは、ポリシーの割り当てによって阻止されたデプロイの状態として、この Forbidden を表示できます。In the portal, the Forbidden can be viewed as a status on the deployment that was prevented by the policy assignment. リソース プロバイダー モードでは、リソース プロバイダーによってリソースの評価が管理されます。For a Resource Provider mode, the resource provider manages the evaluation of the resource.

既存のリソースの評価では、Deny ポリシー定義と一致するリソースは、非準拠としてマークされます。During evaluation of existing resources, resources that match a deny policy definition are marked as non-compliant.

Deny のプロパティDeny properties

リソース マネージャー モードの場合、Deny 効果には、ポリシー定義の then 条件で使用するためのその他のプロパティはありません。For a Resource Manager mode, the deny effect doesn't have any additional properties for use in the then condition of the policy definition.

Microsoft.Kubernetes.Data のリソース プロバイダー モードの場合、Deny 効果の details には次のサブプロパティが追加されます。For a Resource Provider mode of Microsoft.Kubernetes.Data, the deny effect has the following additional subproperties of details.

  • constraintTemplate (必須)constraintTemplate (required)
    • 新しい制約を定義する、制約テンプレート CustomResourceDefinition (CRD) です。The Constraint template CustomResourceDefinition (CRD) that defines new Constraints. このテンプレートは、Rego ロジック、制約スキーマに加えて、Azure Policy からの values で渡される制約パラメーターを定義します。The template defines the Rego logic, the Constraint schema, and the Constraint parameters that are passed via values from Azure Policy.
  • constraint (必須)constraint (required)
    • 制約テンプレートの CRD 実装です。The CRD implementation of the Constraint template. {{ .Values.<valuename> }} のように values で渡されるパラメーターを使用します。Uses parameters passed via values as {{ .Values.<valuename> }}. 次の例 2 では、これらの値は {{ .Values.excludedNamespaces }} および {{ .Values.allowedContainerImagesRegex }} です。In example 2 below, these values are {{ .Values.excludedNamespaces }} and {{ .Values.allowedContainerImagesRegex }}.
  • values (省略可能)values (optional)
    • 制約に渡すすべてのパラメーターと値を定義します。Defines any parameters and values to pass to the Constraint. それぞれの値は、制約テンプレート CRD に含まれている必要があります。Each value must exist in the Constraint template CRD.

Deny の例Deny example

例 1:リソース マネージャー モードで Deny 効果を使用する。Example 1: Using the deny effect for Resource Manager modes.

"then": {
    "effect": "deny"
}

例 2:Microsoft.Kubernetes.Data のリソース プロバイダー モードで Deny 効果を使用する。Example 2: Using the deny effect for a Resource Provider mode of Microsoft.Kubernetes.Data. details の追加情報では、許可されるコンテナー イメージを制限するために Kubernetes で使用する制約テンプレートと CRD を定義します。The additional information in details defines the Constraint template and CRD to use in Kubernetes to limit the allowed container images.

"then": {
    "effect": "deny",
    "details": {
        "constraintTemplate": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-allowed-images/template.yaml",
        "constraint": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-allowed-images/constraint.yaml",
        "values": {
            "allowedContainerImagesRegex": "[parameters('allowedContainerImagesRegex')]",
            "excludedNamespaces": "[parameters('excludedNamespaces')]"
        }
    }
}

DeployIfNotExistsDeployIfNotExists

AuditIfNotExists と同様に、DeployIfNotExists ポリシー定義は条件が満たされたときにテンプレートのデプロイを実行します。Similar to AuditIfNotExists, a DeployIfNotExists policy definition executes a template deployment when the condition is met.

注意

deployIfNotExists入れ子になったテンプレートがサポートされていますが、リンク済みテンプレートは現在サポートされていません。Nested templates are supported with deployIfNotExists, but linked templates are currently not supported.

DeployIfNotExists の評価DeployIfNotExists evaluation

DeployIfNotExists は、リソースプロバイダーでリソースの作成または更新要求が処理され、成功を示す状態コードが返されてから約 15 分後に実行されます。DeployIfNotExists runs about 15 minutes after a Resource Provider has handled a create or update resource request and has returned a success status code. 関連するリソースがない場合、または ExistenceCondition によって定義されたリソースが true と評価されない場合、テンプレートのデプロイが発生します。A template deployment occurs if there are no related resources or if the resources defined by ExistenceCondition don't evaluate to true. デプロイの時間は、テンプレートに含まれるリソースの複雑さによって異なります。The duration of the deployment depends on the complexity of resources included in the template.

評価サイクル中は、リソースを照合する DeployIfNotExists 効果があるポリシー定義は非準拠としてマークされ、リソースに対するアクションは実行されません。During an evaluation cycle, policy definitions with a DeployIfNotExists effect that match resources are marked as non-compliant, but no action is taken on that resource. 準拠していない既存のリソースは、修復タスクで修復できます。Existing non-compliant resources can be remediated with a remediation task.

DeployIfNotExists のプロパティDeployIfNotExists properties

DeployIfNotExists 効果の details プロパティは、照合する関連リソースおよび実行するテンプレートのデプロイを定義するすべてのサブプロパティを含みます。The details property of the DeployIfNotExists effect has all the subproperties that define the related resources to match and the template deployment to execute.

  • Type (必須)Type (required)

    • 照合する関連リソースの型を指定します。Specifies the type of the related resource to match.
    • 最初に if 条件リソースの下にあるリソースを取得しようとし、次に if 条件リソースと同じリソース グループ内を検索します。Starts by trying to fetch a resource underneath the if condition resource, then queries within the same resource group as the if condition resource.
  • Name (省略可能)Name (optional)

    • 照合するリソースの正確な名前を指定して、指定した型のすべてのリソースではなく 1 つの特定のリソースを取得します。Specifies the exact name of the resource to match and causes the policy to fetch one specific resource instead of all resources of the specified type.
    • if.field.typethen.details.type の条件値が一致する場合、Name は "必須" になり、[field('name')] であることが必要です。When the condition values for if.field.type and then.details.type match, then Name becomes required and must be [field('name')].
  • ResourceGroupName (省略可能)ResourceGroupName (optional)

    • 別のリソース グループに由来する関連リソースを照合できるようにします。Allows the matching of the related resource to come from a different resource group.
    • typeif 条件リソースの下にあるリソースである場合は適用されません。Doesn't apply if type is a resource that would be underneath the if condition resource.
    • 既定値は、if 条件リソースのリソース グループです。Default is the if condition resource's resource group.
    • テンプレートのデプロイが実行される場合は、この値のリソース グループにデプロイされます。If a template deployment is executed, it's deployed in the resource group of this value.
  • ExistenceScope (省略可能)ExistenceScope (optional)

    • 使用できる値は SubscriptionResourceGroup です。Allowed values are Subscription and ResourceGroup.
    • 照合する関連リソースを取得する範囲を設定します。Sets the scope of where to fetch the related resource to match from.
    • typeif 条件リソースの下にあるリソースである場合は適用されません。Doesn't apply if type is a resource that would be underneath the if condition resource.
    • ResourceGroup の場合は、if 条件リソースのリソース グループまたは ResourceGroupName で指定されたリソース グループに制限されます。For ResourceGroup, would limit to the if condition resource's resource group or the resource group specified in ResourceGroupName.
    • Subscription の場合は、関連リソースのサブスクリプション全体を検索します。For Subscription, queries the entire subscription for the related resource.
    • 既定値は ResourceGroup です。Default is ResourceGroup.
  • ExistenceCondition (省略可能)ExistenceCondition (optional)

    • 指定されない場合、type の関連リソースは効果を満たすため、デプロイはトリガーされません。If not specified, any related resource of type satisfies the effect and doesn't trigger the deployment.
    • if 条件のポリシー規則と同じ言語が使用されますが、それぞれの関連リソースに対して個別に評価されます。Uses the same language as the policy rule for the if condition, but is evaluated against each related resource individually.
    • 照合する関連リソースのいずれかが true と評価された場合、効果は条件を満たしているため、デプロイはトリガーされません。If any matching related resource evaluates to true, the effect is satisfied and doesn't trigger the deployment.
    • [field()] を使用して、if 条件の値と等しいことを確認できます。Can use [field()] to check equivalence with values in the if condition.
    • たとえば、(if 条件内の) 親リソースが照合する関連リソースと同じリソースの場所にあることを検証できます。For example, could be used to validate that the parent resource (in the if condition) is in the same resource location as the matching related resource.
  • roleDefinitionIds (必須)roleDefinitionIds (required)

    • このプロパティには、サブスクリプションでアクセス可能なロールベースのアクセス制御ロール ID と一致する文字列の配列を含める必要があります。This property must include an array of strings that match role-based access control role ID accessible by the subscription. 詳細については、修復 - ポリシー定義を構成するを参照してください。For more information, see remediation - configure policy definition.
  • DeploymentScope (省略可能)DeploymentScope (optional)

    • 使用できる値は SubscriptionResourceGroup です。Allowed values are Subscription and ResourceGroup.
    • トリガーされるデプロイの種類を設定します。Sets the type of deployment to be triggered. Subscriptionサブスクリプション レベルでのデプロイを示し、ResourceGroup はリソース グループへのデプロイを示します。Subscription indicates a deployment at subscription level, ResourceGroup indicates a deployment to a resource group.
    • サブスクリプション レベルのデプロイを使用する場合は、Deploymentlocation プロパティを指定する必要があります。A location property must be specified in the Deployment when using subscription level deployments.
    • 既定値は ResourceGroup です。Default is ResourceGroup.
  • Deployment (必須)Deployment (required)

    • このプロパティは Microsoft.Resources/deployments PUT API に渡されるため、完全なテンプレートのデプロイを含める必要があります。This property should include the full template deployment as it would be passed to the Microsoft.Resources/deployments PUT API. 詳細については、Deployments REST API をご覧ください。For more information, see the Deployments REST API.

    注意

    Deployment プロパティ内のすべての関数が、ポリシーではなくテンプレートのコンポーネントとして評価されます。All functions inside the Deployment property are evaluated as components of the template, not the policy. 例外は、ポリシーからテンプレートに値を渡す parameters プロパティです。The exception is the parameters property that passes values from the policy to the template. このセクションのテンプレート パラメーター名の value は、この値渡しを実行するために使用されます (DeployIfNotExists の例の fullDbName を参照)。The value in this section under a template parameter name is used to perform this value passing (see fullDbName in the DeployIfNotExists example).

DeployIfNotExists の例DeployIfNotExists example

例:SQL Server データベースを評価して、transparentDataEncryption が有効になっているかどうかを判断します。Example: Evaluates SQL Server databases to determine if transparentDataEncryption is enabled. 有効になっていない場合は、有効にするためのデプロイが実行されます。If not, then a deployment to enable is executed.

"if": {
    "field": "type",
    "equals": "Microsoft.Sql/servers/databases"
},
"then": {
    "effect": "DeployIfNotExists",
    "details": {
        "type": "Microsoft.Sql/servers/databases/transparentDataEncryption",
        "name": "current",
        "roleDefinitionIds": [
            "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}",
            "/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}"
        ],
        "existenceCondition": {
            "field": "Microsoft.Sql/transparentDataEncryption.status",
            "equals": "Enabled"
        },
        "deployment": {
            "properties": {
                "mode": "incremental",
                "template": {
                    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
                    "contentVersion": "1.0.0.0",
                    "parameters": {
                        "fullDbName": {
                            "type": "string"
                        }
                    },
                    "resources": [{
                        "name": "[concat(parameters('fullDbName'), '/current')]",
                        "type": "Microsoft.Sql/servers/databases/transparentDataEncryption",
                        "apiVersion": "2014-04-01",
                        "properties": {
                            "status": "Enabled"
                        }
                    }]
                },
                "parameters": {
                    "fullDbName": {
                        "value": "[field('fullName')]"
                    }
                }
            }
        }
    }
}

無効Disabled

この効果は、状況をテストする場合や、効果がポリシー定義によってパラメーター化されている場合に役立ちます。This effect is useful for testing situations or for when the policy definition has parameterized the effect. この柔軟性により、ポリシーのすべての割り当てを無効にするのではなく、単一の割り当てを無効にすることができます。This flexibility makes it possible to disable a single assignment instead of disabling all of that policy's assignments.

無効にした効果の代替は、ポリシー割り当てに設定されている enforcementMode です。An alternative to the Disabled effect is enforcementMode, which is set on the policy assignment. enforcementMode[無効] の場合、リソースは引き続き評価されます。When enforcementMode is Disabled, resources are still evaluated. アクティビティ ログなどのログ記録や、ポリシーの効果はありません。Logging, such as Activity logs, and the policy effect don't occur. 詳細については、ポリシー割り当て - 強制モードに関するページを参照してください。For more information, see policy assignment - enforcement mode.

EnforceOPAConstraintEnforceOPAConstraint

この効果は、Microsoft.Kubernetes.Data のポリシー定義_モード_で使用されます。This effect is used with a policy definition mode of Microsoft.Kubernetes.Data. これは、OPA Constraint FrameworkOpen Policy Agent (OPA) に対して定義された Gatekeeper v3 受付制御ルールを、Azure 上の Kubernetes クラスターに渡すために使用されます。It's used to pass Gatekeeper v3 admission control rules defined with OPA Constraint Framework to Open Policy Agent (OPA) to Kubernetes clusters on Azure.

注意

Kubernetes 用の Azure Policy はプレビュー中であり、Linux ノード プールと組み込みのポリシー定義のみをサポートします。Azure Policy for Kubernetes is in Preview and only supports Linux node pools and built-in policy definitions. 組み込みのポリシー定義は、Kubernetes カテゴリ内にあります。Built-in policy definitions are in the Kubernetes category. EnforceOPAConstraint 効果を持つ限定プレビュー ポリシー定義と、関連する Kubernetes Service カテゴリは、_非推奨_になっています。The limited preview policy definitions with EnforceOPAConstraint effect and the related Kubernetes Service category are being deprecated. 代わりに、リソース プロバイダー モード Microsoft.Kubernetes.DataAudit 効果と Deny 効果を使用します。Instead, use the effects audit and deny with Resource Provider mode Microsoft.Kubernetes.Data.

EnforceOPAConstraint の評価EnforceOPAConstraint evaluation

Open Policy Agent アドミッション コントローラーは、クラスター上の新しい要求をリアルタイムで評価します。The Open Policy Agent admission controller evaluates any new request on the cluster in real time. 15 分ごとにクラスターのフル スキャンが完了し、結果が Azure Policy に報告されます。Every 15 minutes, a full scan of the cluster is completed and the results reported to Azure Policy.

EnforceOPAConstraint のプロパティEnforceOPAConstraint properties

EnforceOPAConstraint 効果の details プロパティには、Gatekeeper v3 受付制御ルールを記述するサブプロパティがあります。The details property of the EnforceOPAConstraint effect has the subproperties that describe the Gatekeeper v3 admission control rule.

  • constraintTemplate (必須)constraintTemplate (required)
    • 新しい制約を定義する、制約テンプレート CustomResourceDefinition (CRD) です。The Constraint template CustomResourceDefinition (CRD) that defines new Constraints. このテンプレートは、Rego ロジック、制約スキーマに加えて、Azure Policy からの values で渡される制約パラメーターを定義します。The template defines the Rego logic, the Constraint schema, and the Constraint parameters that are passed via values from Azure Policy.
  • constraint (必須)constraint (required)
    • 制約テンプレートの CRD 実装です。The CRD implementation of the Constraint template. {{ .Values.<valuename> }} のように values で渡されるパラメーターを使用します。Uses parameters passed via values as {{ .Values.<valuename> }}. 次の例では、これらの値は {{ .Values.cpuLimit }} および {{ .Values.memoryLimit }} です。In the example below, these values are {{ .Values.cpuLimit }} and {{ .Values.memoryLimit }}.
  • values (省略可能)values (optional)
    • 制約に渡すすべてのパラメーターと値を定義します。Defines any parameters and values to pass to the Constraint. それぞれの値は、制約テンプレート CRD に含まれている必要があります。Each value must exist in the Constraint template CRD.

EnforceOPAConstraint の例EnforceOPAConstraint example

例:Kubernetes でコンテナーの CPU とメモリのリソース制限を設定する、Gatekeeper v3 の受付制御ルールです。Example: Gatekeeper v3 admission control rule to set container CPU and memory resource limits in Kubernetes.

"if": {
    "allOf": [
        {
            "field": "type",
            "in": [
                "Microsoft.ContainerService/managedClusters",
                "AKS Engine"
            ]
        },
        {
            "field": "location",
            "equals": "westus2"
        }
    ]
},
"then": {
    "effect": "enforceOPAConstraint",
    "details": {
        "constraintTemplate": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-resource-limits/template.yaml",
        "constraint": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/Kubernetes/container-resource-limits/constraint.yaml",
        "values": {
            "cpuLimit": "[parameters('cpuLimit')]",
            "memoryLimit": "[parameters('memoryLimit')]"
        }
    }
}

EnforceRegoPolicyEnforceRegoPolicy

この効果は、Microsoft.ContainerService.Data のポリシー定義_モード_で使用されます。This effect is used with a policy definition mode of Microsoft.ContainerService.Data. これは、Rego で定義されている Gatekeeper v2 受付制御ルールを Azure Kubernetes Service 上の Open Policy Agent (OPA) に渡すために使用されます。It's used to pass Gatekeeper v2 admission control rules defined with Rego to Open Policy Agent (OPA) on Azure Kubernetes Service.

注意

Kubernetes 用の Azure Policy はプレビュー中であり、Linux ノード プールと組み込みのポリシー定義のみをサポートします。Azure Policy for Kubernetes is in Preview and only supports Linux node pools and built-in policy definitions. 組み込みのポリシー定義は、Kubernetes カテゴリ内にあります。Built-in policy definitions are in the Kubernetes category. EnforceRegoPolicy 効果を持つ限定プレビュー ポリシー定義と、関連する Kubernetes Service カテゴリは、_非推奨_になっています。The limited preview policy definitions with EnforceRegoPolicy effect and the related Kubernetes Service category are being deprecated. 代わりに、リソース プロバイダー モード Microsoft.Kubernetes.DataAudit 効果と Deny 効果を使用します。Instead, use the effects audit and deny with Resource Provider mode Microsoft.Kubernetes.Data.

EnforceRegoPolicy の評価EnforceRegoPolicy evaluation

Open Policy Agent アドミッション コントローラーは、クラスター上の新しい要求をリアルタイムで評価します。The Open Policy Agent admission controller evaluates any new request on the cluster in real time. 15 分ごとにクラスターのフル スキャンが完了し、結果が Azure Policy に報告されます。Every 15 minutes, a full scan of the cluster is completed and the results reported to Azure Policy.

EnforceRegoPolicy のプロパティEnforceRegoPolicy properties

EnforceRegoPolicy 効果の details プロパティには、Gatekeeper v2 受付制御ルールを記述するサブプロパティがあります。The details property of the EnforceRegoPolicy effect has the subproperties that describe the Gatekeeper v2 admission control rule.

  • policyId (必須)policyId (required)
    • Rego 受付制御規則にパラメーターとして渡される一意の名前。A unique name passed as a parameter to the Rego admission control rule.
  • policy (必須)policy (required)
    • Rego 受付制御規則の URI を指定します。Specifies the URI of the Rego admission control rule.
  • policyParameters (省略可能)policyParameters (optional)
    • rego ポリシーに渡すパラメーターと値を定義します。Defines any parameters and values to pass to the rego policy.

EnforceRegoPolicy の例EnforceRegoPolicy example

例:AKS で指定されたコンテナー イメージのみを許可する Gatekeeper v2 受付制御ルール。Example: Gatekeeper v2 admission control rule to allow only the specified container images in AKS.

"if": {
    "allOf": [
        {
            "field": "type",
            "equals": "Microsoft.ContainerService/managedClusters"
        },
        {
            "field": "location",
            "equals": "westus2"
        }
    ]
},
"then": {
    "effect": "EnforceRegoPolicy",
    "details": {
        "policyId": "ContainerAllowedImages",
        "policy": "https://raw.githubusercontent.com/Azure/azure-policy/master/built-in-references/KubernetesService/container-allowed-images/limited-preview/gatekeeperpolicy.rego",
        "policyParameters": {
            "allowedContainerImagesRegex": "[parameters('allowedContainerImagesRegex')]"
        }
    }
}

変更Modify

Modify は、作成時または更新時にリソースのタグを追加、更新、または削除するために使用されます。Modify is used to add, update, or remove tags on a resource during creation or update. 一般的な例としては、コスト センターなどのリソースでタグを更新することが挙げられます。A common example is updating tags on resources such as costCenter. ターゲット リソースがリソース グループでない限り、変更ポリシーでは常に mode[インデックス設定済み] に設定されている必要があります。A Modify policy should always have mode set to Indexed unless the target resource is a resource group. 準拠していない既存のリソースは、修復タスクで修復できます。Existing non-compliant resources can be remediated with a remediation task. 1 つの Modify 規則には、任意の数の操作を含めることができます。A single Modify rule can have any number of operations.

重要

Modify は現在、タグでのみ使用されます。Modify is currently only for use with tags. タグを管理している場合は、Append ではなく Modify を使用することをお勧めします。Modify では、追加の操作タイプが使用でき、既存のリソースを修復する機能が提供されます。If you are managing tags, it's recommended to use Modify instead of Append as Modify provides additional operation types and the ability to remediate existing resources. ただし、マネージド ID を作成できない場合は、Append を追加することをお勧めします。However, Append is recommended if you aren't able to create a managed identity.

Modify の評価Modify evaluation

リソースを作成中または更新中に、リソース プロバイダーによって要求が処理される前に Modify による評価が行われます。Modify evaluates before the request gets processed by a Resource Provider during the creation or updating of a resource. Modify では、ポリシー規則の if 条件が満たされた場合、リソースのフィールドが追加または更新されます。Modify adds or updates tags on a resource when the if condition of the policy rule is met.

Modify 効果を使用するポリシー定義が評価サイクルの一部として実行される場合、既存のリソースに対する変更は行われません。When a policy definition using the Modify effect is run as part of an evaluation cycle, it doesn't make changes to resources that already exist. 代わりに、if 条件を満たすリソースが非準拠とマークされます。Instead, it marks any resource that meets the if condition as non-compliant.

Modify のプロパティModify properties

Modify 効果の details プロパティには、修復に必要なアクセス許可を定義するすべてのサブプロパティと、タグ値の追加、更新、または削除に使用する operations が含まれます。The details property of the Modify effect has all the subproperties that define the permissions needed for remediation and the operations used to add, update, or remove tag values.

  • roleDefinitionIds (必須)roleDefinitionIds (required)
    • このプロパティには、サブスクリプションでアクセス可能なロールベースのアクセス制御ロール ID と一致する文字列の配列を含める必要があります。This property must include an array of strings that match role-based access control role ID accessible by the subscription. 詳細については、修復 - ポリシー定義を構成するを参照してください。For more information, see remediation - configure policy definition.
    • 定義されたロールには、Contributor ロールに与えられているすべての操作が含まれている必要があります。The role defined must include all operations granted to the Contributor role.
  • conflictEffect (省略可能)conflictEffect (optional)
    • 複数のポリシー定義によって同じプロパティが変更された場合に、どのポリシー定義が "優先" されるかを決定します。Determines which policy definition "wins" in the event that more than one policy definition modifies the same property.
      • 新規または更新されたリソースについては、Deny を持つポリシー定義が優先されます。For new or updated resources, the policy definition with deny takes precedence. Audit のポリシー定義では、すべての operations がスキップされます。Policy definitions with audit skip all operations. 複数のポリシー定義に Deny がある場合、その要求は競合として拒否されます。If more than one policy definition has deny, the request is denied as a conflict. すべてのポリシー定義に Audit がある場合、競合しているポリシー定義のどの operations も処理されません。If all policy definitions have audit, then none of the operations of the conflicting policy definitions are processed.
      • 既存のリソースについては、複数のポリシー定義に Deny がある場合、コンプライアンス状態は_競合_になります。For existing resources, if more than one policy definition has deny, the compliance status is Conflict. Deny があるポリシー定義が 1 つ以下の場合、各割り当ては_非準拠_のコンプライアンス状態を返します。If one or fewer policy definitions have deny, each assignment returns a compliance status of Non-compliant.
    • 使用可能な値は、AuditDenyDisabled です。Available values: audit, deny, disabled.
    • 既定値は Deny です。Default value is deny.
  • operations (必須)operations (required)
    • 一致するリソースで完了されるすべてのタグ操作の配列です。An array of all tag operations to be completed on matching resources.
    • プロパティ:Properties:
      • operation (必須)operation (required)
        • 一致するリソースに対して実行するアクションを定義します。Defines what action to take on a matching resource. オプションは、addOrReplaceAddRemove です。Options are: addOrReplace, Add, Remove. Add は、Append 効果に似た動作をします。Add behaves similar to the Append effect.
      • field (必須)field (required)
        • 追加、置換、または削除するタグです。The tag to add, replace, or remove. タグ名は、他の fields と同じ名前付け規則に従う必要があります。Tag names must adhere to the same naming convention for other fields.
      • value (オプション)value (optional)
        • タグに設定する値です。The value to set the tag to.
        • このプロパティは、operationaddOrReplace または Add の場合に必要です。This property is required if operation is addOrReplace or Add.

Modify の操作Modify operations

operations プロパティ配列を使用すると、1 つのポリシー定義から複数のタグを異なる方法で変更できます。The operations property array makes it possible to alter several tags in different ways from a single policy definition. 各操作は operationfield、および value の各プロパティで構成されます。Each operation is made up of operation, field, and value properties. operation では、修復タスクがタグに対して行う処理を決定し、field では、どのタグを変更するかを決定し、value では、そのタグの新しい設定を定義します。Operation determines what the remediation task does to the tags, field determines which tag is altered, and value defines the new setting for that tag. 下記の例では、以下のタグ変更が実行されます。The example below makes the following tag changes:

  • environment タグを "Test" に設定する (異なる値で既に存在している場合でも)。Sets the environment tag to "Test", even if it already exists with a different value.
  • タグ TempResource を削除する。Removes the tag TempResource.
  • Dept タグを、ポリシーの割り当てで構成されたポリシー パラメーター DeptName に設定する。Sets the Dept tag to the policy parameter DeptName configured on the policy assignment.
"details": {
    ...
    "operations": [
        {
            "operation": "addOrReplace",
            "field": "tags['environment']",
            "value": "Test"
        },
        {
            "operation": "Remove",
            "field": "tags['TempResource']",
        },
        {
            "operation": "addOrReplace",
            "field": "tags['Dept']",
            "value": "[parameters('DeptName')]"
        }
    ]
}

operation プロパティには、次のオプションが用意されています。The operation property has the following options:

操作Operation 説明Description
addOrReplaceaddOrReplace 定義済みのタグと値をリソースに追加します (タグに別の値が既に存在する場合でも)。Adds the defined tag and value to the resource, even if the tag already exists with a different value.
追加Add 定義済みのタグと値をリソースに追加します。Adds the defined tag and value to the resource.
[削除]Remove 定義済みのタグをリソースから削除します。Removes the defined tag from the resource.

Modify の例Modify examples

例 1:environment タグを追加し、既存の environment タグを "Test" に置き換えます。Example 1: Add the environment tag and replace existing environment tags with "Test":

"then": {
    "effect": "modify",
    "details": {
        "roleDefinitionIds": [
            "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
        ],
        "operations": [
            {
                "operation": "addOrReplace",
                "field": "tags['environment']",
                "value": "Test"
            }
        ]
    }
}

例 2:env タグを削除し、environment タグを追加するか、既存の environment タグをパラメーター化された値に置き換えます。Example 2: Remove the env tag and add the environment tag or replace existing environment tags with a parameterized value:

"then": {
    "effect": "modify",
    "details": {
        "roleDefinitionIds": [
            "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c"
        ],
        "conflictEffect": "deny",
        "operations": [
            {
                "operation": "Remove",
                "field": "tags['env']"
            },
            {
                "operation": "addOrReplace",
                "field": "tags['environment']",
                "value": "[parameters('tagValue')]"
            }
        ]
    }
}

ポリシー定義を階層化するLayering policy definitions

リソースは複数の割り当ての影響を受ける可能性があります。A resource may be impacted by several assignments. これらの割り当てのスコープは、同じ場合も異なっている場合もあります。These assignments may be at the same scope or at different scopes. これらの各割り当てにもさまざまな効果が定義されている可能性があります。Each of these assignments is also likely to have a different effect defined. 各ポリシーの条件と効果は個別に評価されます。The condition and effect for each policy is independently evaluated. 次に例を示します。For example:

  • ポリシー 1Policy 1
    • リソースの場所を 'westus' に制限するRestricts resource location to 'westus'
    • サブスクリプション A に割り当てるAssigned to subscription A
    • Deny 効果Deny effect
  • ポリシー 2Policy 2
    • リソースの場所を 'eastus' に制限するRestricts resource location to 'eastus'
    • サブスクリプション A のリソース グループ B に割り当てるAssigned to resource group B in subscription A
    • Audit 効果Audit effect

この設定の結果は次のようになります。This setup would result in the following outcome:

  • リソース グループ B の既存のリソースで、場所が 'eastus' のリソースは、ポリシー 2 に準拠しているが、ポリシー 1 には準拠していないAny resource already in resource group B in 'eastus' is compliant to policy 2 and non-compliant to policy 1
  • リソース グループ B に既に存在するが、場所が 'eastus' でない既存のリソースは、ポリシー 2 に準拠せず、場所が 'westus' でない場合はポリシー 1 にも準拠していないAny resource already in resource group B not in 'eastus' is non-compliant to policy 2 and non-compliant to policy 1 if not in 'westus'
  • サブスクリプション A の新しいリソースで、場所が 'westus' でないリソースは、ポリシー 1 によって拒否されるAny new resource in subscription A not in 'westus' is denied by policy 1
  • サブスクリプション A のリソース グループ B の新しいリソースで、場所が 'westus' であるリソースは作成されるが、ポリシー 2 には準拠していないAny new resource in subscription A and resource group B in 'westus' is created and non-compliant on policy 2

ポリシー 1 とポリシー 2 の両方に Deny 効果がある場合、状況は次のように変化します。If both policy 1 and policy 2 had effect of deny, the situation changes to:

  • リソース グループ B に既に存在するが、場所が 'eastus' でないリソースは、ポリシー 2 に準拠していないAny resource already in resource group B not in 'eastus' is non-compliant to policy 2
  • リソース グループ B に既に存在するが、場所が 'westus' でないリソースは、ポリシー 1 に準拠していないAny resource already in resource group B not in 'westus' is non-compliant to policy 1
  • サブスクリプション A の新しいリソースで、場所が 'westus' でないリソースは、ポリシー 1 によって拒否されるAny new resource in subscription A not in 'westus' is denied by policy 1
  • サブスクリプション A のリソース グループ B の新しいリソースは、すべて拒否されるAny new resource in resource group B of subscription A is denied

各割り当ては個別に評価されます。Each assignment is individually evaluated. そのため、スコープの違いによって発生する隙間をリソースがすり抜けるチャンスはありません。As such, there isn't an opportunity for a resource to slip through a gap from differences in scope. ポリシー定義の階層化による最終的な結果は、累積的に最も制限が厳しいと考えられます。The net result of layering policy definitions is considered to be cumulative most restrictive. たとえば、ポリシー 1 とポリシー 2 の両方に拒否効果が設定されている場合、重複するポリシー定義と競合するポリシー定義によって、リソースがブロックされます。As an example, if both policy 1 and 2 had a deny effect, a resource would be blocked by the overlapping and conflicting policy definitions. リソースを対象のスコープ内に必ず作成する必要がある場合は、それぞれの割り当ての除外を見直して、適切なポリシー割り当てが適切なスコープに影響を与えていることを確認してください。If you still need the resource to be created in the target scope, review the exclusions on each assignment to validate the right policy assignments are affecting the right scopes.

次のステップNext steps