你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft.Authorization 策略定义 2016-04-01

Bicep 资源定义

可以使用目标操作部署 policydefinitions 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Authorization/policydefinitions 资源,请将以下 Bicep 添加到模板。

resource symbolicname 'Microsoft.Authorization/policydefinitions@2016-04-01' = {
  name: 'string'
  properties: {
    description: 'string'
    displayName: 'string'
    policyRule: any(...)
    policyType: 'string'
  }
}

属性值

Microsoft.Authorization/policydefinitions

名字 描述 价值
名字 资源名称 string (必需)
性能 策略定义属性。 PolicyDefinitionProperties

PolicyDefinitionProperties

名字 描述 价值
描述 策略定义说明。 字符串
displayName 策略定义的显示名称。 字符串
policyRule 策略规则。 任何
policyType 策略定义的类型。 可能的值为 NotSpecified、BuiltIn 和 Custom。 “BuiltIn”
“Custom”
“NotSpecified”

用法示例

Bicep 示例

部署授权策略定义的基本示例。

targetScope = 'subscription'

param resourceName string = 'acctest0001'

resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2021-06-01' = {
  name: resourceName
  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'
  }
}

Azure 快速入门示例

以下 Azure 快速入门模板 包含用于部署此资源类型的 Bicep 示例。

Bicep 文件 描述
创建 Azure 虚拟网络管理器和示例 VNET 此模板将 Azure 虚拟网络管理器和示例虚拟网络部署到命名资源组中。 它支持多个连接拓扑和网络组成员身份类型。
部署策略 def 并将其分配给多个 Mgmt 组 此模板是一个管理组级模板,用于创建策略定义并将该策略分配给多个管理组。
部署策略定义并分配给管理组 此模板是一个管理组级模板,用于创建策略定义并将该策略分配给目标管理组。 目前,无法通过 Azure 门户部署此模板。

ARM 模板资源定义

可以使用目标操作部署 policydefinitions 资源类型:

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Authorization/policydefinitions 资源,请将以下 JSON 添加到模板。

{
  "type": "Microsoft.Authorization/policydefinitions",
  "apiVersion": "2016-04-01",
  "name": "string",
  "properties": {
    "description": "string",
    "displayName": "string",
    "policyRule": {},
    "policyType": "string"
  }
}

属性值

Microsoft.Authorization/policydefinitions

名字 描述 价值
apiVersion API 版本 '2016-04-01'
名字 资源名称 string (必需)
性能 策略定义属性。 PolicyDefinitionProperties
类型 资源类型 “Microsoft.Authorization/policydefinitions”

PolicyDefinitionProperties

名字 描述 价值
描述 策略定义说明。 字符串
displayName 策略定义的显示名称。 字符串
policyRule 策略规则。 任何
policyType 策略定义的类型。 可能的值为 NotSpecified、BuiltIn 和 Custom。 “BuiltIn”
“Custom”
“NotSpecified”

用法示例

Azure 快速入门模板

以下 Azure 快速入门模板 部署此资源类型。

模板 描述
创建 Azure 虚拟网络管理器和示例 VNET

部署到 Azure
此模板将 Azure 虚拟网络管理器和示例虚拟网络部署到命名资源组中。 它支持多个连接拓扑和网络组成员身份类型。
部署策略 def 并将其分配给多个 Mgmt 组

部署到 Azure
此模板是一个管理组级模板,用于创建策略定义并将该策略分配给多个管理组。
部署策略定义并分配给管理组

部署到 Azure
此模板是一个管理组级模板,用于创建策略定义并将该策略分配给目标管理组。 目前,无法通过 Azure 门户部署此模板。

Terraform (AzAPI 提供程序)资源定义

可以使用目标操作部署 policydefinitions 资源类型:

  • Subscription

有关每个 API 版本中已更改属性的列表,请参阅 更改日志

资源格式

若要创建 Microsoft.Authorization/policydefinitions 资源,请将以下 Terraform 添加到模板。

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Authorization/policydefinitions@2016-04-01"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      description = "string"
      displayName = "string"
      policyRule = ?
      policyType = "string"
    }
  }
}

属性值

Microsoft.Authorization/policydefinitions

名字 描述 价值
名字 资源名称 string (必需)
性能 策略定义属性。 PolicyDefinitionProperties
类型 资源类型 “Microsoft.Authorization/policydefinitions@2016-04-01”

PolicyDefinitionProperties

名字 描述 价值
描述 策略定义说明。 字符串
displayName 策略定义的显示名称。 字符串
policyRule 策略规则。 任何
policyType 策略定义的类型。 可能的值为 NotSpecified、BuiltIn 和 Custom。 “BuiltIn”
“Custom”
“NotSpecified”

用法示例

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" {
}

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    = ["*"]
}