Bicep リソース定義
policyAssignments リソースの種類は、次をターゲットとする操作と共にデプロイできます。
各 API バージョンで変更されたプロパティの一覧については、変更ログの
リソースの形式
Microsoft.Authorization/policyAssignments リソースを作成するには、次の Bicep をテンプレートに追加します。
resource symbolicname 'Microsoft.Authorization/policyAssignments@2020-09-01' = {
  scope: resourceSymbolicName or scope
  identity: {
    type: 'string'
  }
  ___location: 'string'
  name: 'string'
  properties: {
    description: 'string'
    displayName: 'string'
    enforcementMode: 'string'
    metadata: any(...)
    nonComplianceMessages: [
      {
        message: 'string'
        policyDefinitionReferenceId: 'string'
      }
    ]
    notScopes: [
      'string'
    ]
    parameters: {
      {customized property}: {
        value: any(...)
      }
    }
    policyDefinitionId: 'string'
  }
}
プロパティ値
Microsoft.Authorization/policyAssignments
| 名前 | 形容 | 価値 | 
|---|---|---|
| ID | ポリシーの割り当てに関連付けられているマネージド ID。 | ID | 
| 位置 | ポリシー割り当ての場所。 マネージド ID を使用する場合にのみ必要です。 | 文字列 | 
| 名前 | リソース名 | string (必須) | 
| プロパティ | ポリシー割り当てのプロパティ。 | PolicyAssignmentProperties の  | 
| スコープ | デプロイ スコープとは異なるスコープでリソースを作成するときに使用します。 | このプロパティをリソースのシンボリック名に設定して、拡張リソースを適用します。 | 
同一性
| 名前 | 形容 | 価値 | 
|---|---|---|
| 型 | ID の種類。 これは、システム割り当て ID をリソースに追加するときに必要な唯一のフィールドです。 | 「なし」 'システム割り当て'  | 
NonComplianceメッセージ
| 名前 | 形容 | 価値 | 
|---|---|---|
| メッセージ | リソースがポリシーに準拠していない理由を説明するメッセージ。 これは、"拒否" エラー メッセージと、リソースの準拠していないコンプライアンスの結果に表示されます。 | string (必須) | 
| policyDefinitionReferenceId (ポリシー定義参照ID) | メッセージの対象となるポリシー セット定義内のポリシー定義参照 ID。 これは、ポリシー割り当てによってポリシー セット定義が割り当てられている場合にのみ適用されます。 これが指定されていない場合、メッセージは、このポリシー割り当てによって割り当てられたすべてのポリシーに適用されます。 | 文字列 | 
パラメータ値
| 名前 | 形容 | 価値 | 
|---|
パラメータ値値
| 名前 | 形容 | 価値 | 
|---|---|---|
| 価値 | パラメーターの値。 | 任意 | 
ポリシー割り当てプロパティ
| 名前 | 形容 | 価値 | 
|---|---|---|
| 形容 | このメッセージは、ポリシー違反が発生した場合の応答の一部になります。 | 文字列 | 
| ディスプレイ名 | ポリシー割り当ての表示名。 | 文字列 | 
| enforcementモード | ポリシー割り当て適用モード。 使用できる値は Default と DoNotEnforce です。 | デフォルト 「強制しない」  | 
| メタデータ | ポリシー割り当てのメタデータ。 メタデータはオープン エンド オブジェクトであり、通常はキーと値のペアのコレクションです。 | 任意 | 
| nonComplianceメッセージ | リソースがポリシーに準拠していない理由を説明するメッセージ。 | 非コンプライアンスメッセージ[] | 
| notScopes (英語) | ポリシーの除外されたスコープ。 | 文字列[] | 
| パラメーター | 割り当てられたポリシー ルールのパラメーター値。 キーはパラメーター名です。 | パラメータ値 | 
| ポリシー定義ID | 割り当てられているポリシー定義またはポリシー セット定義の ID。 | 文字列 | 
使用例
Azure クイック スタートのサンプル
次 Azure クイック スタート テンプレート、このリソースの種類をデプロイするための Bicep サンプルが含まれています。
| Bicep ファイル | 形容 | 
|---|---|
| VM マネージド ディスクを監査する組み込みポリシーを割り当 | このテンプレートでは、組み込みのポリシーをリソース グループ スコープに割り当てて、仮想マシン (VM) マネージド ディスクを監査します。 | 
| Azure Virtual Network Manager とサンプル VNET を作成する | このテンプレートは、Azure Virtual Network Manager とサンプル仮想ネットワークを名前付きリソース グループにデプロイします。 複数の接続トポロジとネットワーク グループ メンバーシップの種類をサポートします。 | 
| ポリシー Def を展開し、複数の Mgmt グループに割り当てる | このテンプレートは、ポリシー定義を作成し、そのポリシーを複数の管理グループに割り当てる管理グループ レベルのテンプレートです。 | 
| ポリシー定義を展開し、管理グループ に割り当てる | このテンプレートは、ポリシー定義を作成し、そのポリシーをターゲット管理グループに割り当てる管理グループ レベルのテンプレートです。 現時点では、このテンプレートは Azure Portal を使用してデプロイすることはできません。 | 
ARM テンプレート リソース定義
policyAssignments リソースの種類は、次をターゲットとする操作と共にデプロイできます。
各 API バージョンで変更されたプロパティの一覧については、変更ログの
リソースの形式
Microsoft.Authorization/policyAssignments リソースを作成するには、次の JSON をテンプレートに追加します。
{
  "type": "Microsoft.Authorization/policyAssignments",
  "apiVersion": "2020-09-01",
  "name": "string",
  "identity": {
    "type": "string"
  },
  "___location": "string",
  "properties": {
    "description": "string",
    "displayName": "string",
    "enforcementMode": "string",
    "metadata": {},
    "nonComplianceMessages": [
      {
        "message": "string",
        "policyDefinitionReferenceId": "string"
      }
    ],
    "notScopes": [ "string" ],
    "parameters": {
      "{customized property}": {
        "value": {}
      }
    },
    "policyDefinitionId": "string"
  }
}
プロパティ値
Microsoft.Authorization/policyAssignments
| 名前 | 形容 | 価値 | 
|---|---|---|
| apiVersion (英語) | API のバージョン | '2020-09-01' | 
| ID | ポリシーの割り当てに関連付けられているマネージド ID。 | ID | 
| 位置 | ポリシー割り当ての場所。 マネージド ID を使用する場合にのみ必要です。 | 文字列 | 
| 名前 | リソース名 | string (必須) | 
| プロパティ | ポリシー割り当てのプロパティ。 | PolicyAssignmentProperties の  | 
| 型 | リソースの種類 | 'Microsoft.Authorization/policyAssignments' | 
同一性
| 名前 | 形容 | 価値 | 
|---|---|---|
| 型 | ID の種類。 これは、システム割り当て ID をリソースに追加するときに必要な唯一のフィールドです。 | 「なし」 'システム割り当て'  | 
NonComplianceメッセージ
| 名前 | 形容 | 価値 | 
|---|---|---|
| メッセージ | リソースがポリシーに準拠していない理由を説明するメッセージ。 これは、"拒否" エラー メッセージと、リソースの準拠していないコンプライアンスの結果に表示されます。 | string (必須) | 
| policyDefinitionReferenceId (ポリシー定義参照ID) | メッセージの対象となるポリシー セット定義内のポリシー定義参照 ID。 これは、ポリシー割り当てによってポリシー セット定義が割り当てられている場合にのみ適用されます。 これが指定されていない場合、メッセージは、このポリシー割り当てによって割り当てられたすべてのポリシーに適用されます。 | 文字列 | 
パラメータ値
| 名前 | 形容 | 価値 | 
|---|
パラメータ値値
| 名前 | 形容 | 価値 | 
|---|---|---|
| 価値 | パラメーターの値。 | 任意 | 
ポリシー割り当てプロパティ
| 名前 | 形容 | 価値 | 
|---|---|---|
| 形容 | このメッセージは、ポリシー違反が発生した場合の応答の一部になります。 | 文字列 | 
| ディスプレイ名 | ポリシー割り当ての表示名。 | 文字列 | 
| enforcementモード | ポリシー割り当て適用モード。 使用できる値は Default と DoNotEnforce です。 | デフォルト 「強制しない」  | 
| メタデータ | ポリシー割り当てのメタデータ。 メタデータはオープン エンド オブジェクトであり、通常はキーと値のペアのコレクションです。 | 任意 | 
| nonComplianceメッセージ | リソースがポリシーに準拠していない理由を説明するメッセージ。 | 非コンプライアンスメッセージ[] | 
| notScopes (英語) | ポリシーの除外されたスコープ。 | 文字列[] | 
| パラメーター | 割り当てられたポリシー ルールのパラメーター値。 キーはパラメーター名です。 | パラメータ値 | 
| ポリシー定義ID | 割り当てられているポリシー定義またはポリシー セット定義の ID。 | 文字列 | 
使用例
Azure のクイック スタート テンプレート
このリソースの種類 デプロイする Azure クイック スタート テンプレート 次に示します。
| テンプレート | 形容 | 
|---|---|
| 
              組み込みポリシーを既存のリソース グループ に割り当てる Azure にデプロイする  | 
このテンプレートは、組み込みのポリシーを既存のリソース グループに割り当てます。 | 
| 
              VM マネージド ディスクを監査する組み込みポリシーを割り当 Azure にデプロイする  | 
このテンプレートでは、組み込みのポリシーをリソース グループ スコープに割り当てて、仮想マシン (VM) マネージド ディスクを監査します。 | 
| 
              Azure Virtual Network Manager とサンプル VNET を作成する Azure にデプロイする  | 
このテンプレートは、Azure Virtual Network Manager とサンプル仮想ネットワークを名前付きリソース グループにデプロイします。 複数の接続トポロジとネットワーク グループ メンバーシップの種類をサポートします。 | 
| 
              ポリシー Def を展開し、複数の Mgmt グループに割り当てる Azure にデプロイする  | 
このテンプレートは、ポリシー定義を作成し、そのポリシーを複数の管理グループに割り当てる管理グループ レベルのテンプレートです。 | 
| 
              ポリシー定義を展開し、管理グループ に割り当てる Azure にデプロイする  | 
このテンプレートは、ポリシー定義を作成し、そのポリシーをターゲット管理グループに割り当てる管理グループ レベルのテンプレートです。 現時点では、このテンプレートは Azure Portal を使用してデプロイすることはできません。 | 
Terraform (AzAPI プロバイダー) リソース定義
policyAssignments リソースの種類は、次をターゲットとする操作と共にデプロイできます。
各 API バージョンで変更されたプロパティの一覧については、変更ログの
リソースの形式
Microsoft.Authorization/policyAssignments リソースを作成するには、次の Terraform をテンプレートに追加します。
resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Authorization/policyAssignments@2020-09-01"
  name = "string"
  parent_id = "string"
  identity {
    type = "string"
    identity_ids = [
      "string"
    ]
  }
  ___location = "string"
  body = {
    properties = {
      description = "string"
      displayName = "string"
      enforcementMode = "string"
      metadata = ?
      nonComplianceMessages = [
        {
          message = "string"
          policyDefinitionReferenceId = "string"
        }
      ]
      notScopes = [
        "string"
      ]
      parameters = {
        {customized property} = {
          value = ?
        }
      }
      policyDefinitionId = "string"
    }
  }
}
プロパティ値
Microsoft.Authorization/policyAssignments
| 名前 | 形容 | 価値 | 
|---|---|---|
| ID | ポリシーの割り当てに関連付けられているマネージド ID。 | ID | 
| 位置 | ポリシー割り当ての場所。 マネージド ID を使用する場合にのみ必要です。 | 文字列 | 
| 名前 | リソース名 | string (必須) | 
| parent_id | この拡張リソースを適用するリソースの ID。 | string (必須) | 
| プロパティ | ポリシー割り当てのプロパティ。 | PolicyAssignmentProperties の  | 
| 型 | リソースの種類 | 「Microsoft.Authorization/policyAssignments@2020-09-01」 | 
同一性
| 名前 | 形容 | 価値 | 
|---|---|---|
| 型 | ID の種類。 これは、システム割り当て ID をリソースに追加するときに必要な唯一のフィールドです。 | 「なし」 'システム割り当て'  | 
NonComplianceメッセージ
| 名前 | 形容 | 価値 | 
|---|---|---|
| メッセージ | リソースがポリシーに準拠していない理由を説明するメッセージ。 これは、"拒否" エラー メッセージと、リソースの準拠していないコンプライアンスの結果に表示されます。 | string (必須) | 
| policyDefinitionReferenceId (ポリシー定義参照ID) | メッセージの対象となるポリシー セット定義内のポリシー定義参照 ID。 これは、ポリシー割り当てによってポリシー セット定義が割り当てられている場合にのみ適用されます。 これが指定されていない場合、メッセージは、このポリシー割り当てによって割り当てられたすべてのポリシーに適用されます。 | 文字列 | 
パラメータ値
| 名前 | 形容 | 価値 | 
|---|
パラメータ値値
| 名前 | 形容 | 価値 | 
|---|---|---|
| 価値 | パラメーターの値。 | 任意 | 
ポリシー割り当てプロパティ
| 名前 | 形容 | 価値 | 
|---|---|---|
| 形容 | このメッセージは、ポリシー違反が発生した場合の応答の一部になります。 | 文字列 | 
| ディスプレイ名 | ポリシー割り当ての表示名。 | 文字列 | 
| enforcementモード | ポリシー割り当て適用モード。 使用できる値は Default と DoNotEnforce です。 | デフォルト 「強制しない」  | 
| メタデータ | ポリシー割り当てのメタデータ。 メタデータはオープン エンド オブジェクトであり、通常はキーと値のペアのコレクションです。 | 任意 | 
| nonComplianceメッセージ | リソースがポリシーに準拠していない理由を説明するメッセージ。 | 非コンプライアンスメッセージ[] | 
| notScopes (英語) | ポリシーの除外されたスコープ。 | 文字列[] | 
| パラメーター | 割り当てられたポリシー ルールのパラメーター値。 キーはパラメーター名です。 | パラメータ値 | 
| ポリシー定義ID | 割り当てられているポリシー定義またはポリシー セット定義の ID。 | 文字列 | 
使用例
Terraformサンプル
ポリシー割り当ての展開の基本的な例。
terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}
provider "azurerm" {
  features {
  }
}
provider "azapi" {
  skip_provider_registration = false
}
variable "resource_name" {
  type    = string
  default = "acctest0001"
}
variable "___location" {
  type    = string
  default = "eastus"
}
data "azurerm_client_config" "current" {
}
data "azapi_resource" "subscription" {
  type                   = "Microsoft.Resources/subscriptions@2021-01-01"
  resource_id            = "/subscriptions/${data.azurerm_client_config.current.subscription_id}"
  response_export_values = ["*"]
}
resource "azapi_resource" "policyDefinition" {
  type      = "Microsoft.Authorization/policyDefinitions@2021-06-01"
  parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}"
  name      = var.resource_name
  body = {
    properties = {
      description = ""
      displayName = "my-policy-definition"
      mode        = "All"
      parameters = {
        allowedLocations = {
          metadata = {
            description = "The list of allowed locations for resources."
            displayName = "Allowed locations"
            strongType  = "___location"
          }
          type = "Array"
        }
      }
      policyRule = {
        if = {
          not = {
            field = "___location"
            in    = "[parameters('allowedLocations')]"
          }
        }
        then = {
          effect = "audit"
        }
      }
      policyType = "Custom"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}
resource "azapi_resource" "policyAssignment" {
  type      = "Microsoft.Authorization/policyAssignments@2022-06-01"
  parent_id = data.azapi_resource.subscription.id
  name      = var.resource_name
  body = {
    properties = {
      displayName     = ""
      enforcementMode = "Default"
      parameters = {
        listOfAllowedLocations = {
          value = [
            "West Europe",
            "West US 2",
            "East US 2",
          ]
        }
      }
      policyDefinitionId = azapi_resource.policyDefinition.id
      scope              = data.azapi_resource.subscription.id
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}