你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Bicep 资源定义
可以使用目标操作部署 policyAssignments 资源类型:
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Authorization/policyAssignments 资源,请将以下 Bicep 添加到模板。
resource symbolicname 'Microsoft.Authorization/policyAssignments@2019-09-01' = {
scope: resourceSymbolicName or scope
identity: {
type: 'string'
}
location: 'string'
name: 'string'
properties: {
description: 'string'
displayName: 'string'
enforcementMode: 'string'
metadata: any(...)
notScopes: [
'string'
]
parameters: {
{customized property}: {
value: any(...)
}
}
policyDefinitionId: 'string'
scope: 'string'
}
sku: {
name: 'string'
tier: 'string'
}
}
属性值
Microsoft.Authorization/policyAssignments
| 名字 | 描述 | 价值 |
|---|---|---|
| 标识 | 与策略分配关联的托管标识。 | 标识 |
| 位置 | 策略分配的位置。 仅当使用托管标识时才需要。 | 字符串 |
| 名字 | 资源名称 | string (必需) |
| 性能 | 策略分配的属性。 | PolicyAssignmentProperties |
| 作用域 | 在与部署范围不同的范围内创建资源时使用。 | 将此属性设置为资源的符号名称,以应用 扩展资源。 |
| SKU | 策略 SKU。 此属性是可选的、过时的,将被忽略。 | 策略 Sku |
身份
| 名字 | 描述 | 价值 |
|---|---|---|
| 类型 | 标识类型。 这是将系统分配的标识添加到资源时的唯一必填字段。 | “None” “SystemAssigned” |
参数值
| 名字 | 描述 | 价值 |
|---|
参数值值
| 名字 | 描述 | 价值 |
|---|---|---|
| 价值 | 参数的值。 | 任何 |
PolicyAssignmentProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 描述 | 如果发生策略冲突,此消息将是响应的一部分。 | 字符串 |
| displayName (显示名称) | 策略分配的显示名称。 | 字符串 |
| enforcementMode | 策略分配强制模式。 可能的值为 Default 和 DoNotEnforce。 | “Default” “DoNotEnforce” |
| 元数据 | 策略分配元数据。 元数据是一个开放结束的对象,通常是键值对的集合。 | 任何 |
| notScopes | 策略的排除范围。 | 字符串[] |
| 参数 | 分配的策略规则的参数值。 键是参数名称。 | 参数值 |
| policyDefinitionId | 要分配的策略定义或策略集定义的 ID。 | 字符串 |
| 作用域 | 策略分配的范围。 | 字符串 |
策略 Sku
| 名字 | 描述 | 价值 |
|---|---|---|
| 名字 | 策略 SKU 的名称。 可能的值为 A0 和 A1。 | string (必需) |
| 分层 | 策略 SKU 层。 可能的值为 Free 和 Standard。 | 字符串 |
用法示例
Bicep 示例
部署策略分配的基本示例。
targetScope = 'subscription'
param resourceName string = 'acctest0001'
resource policyAssignment 'Microsoft.Authorization/policyAssignments@2022-06-01' = {
name: resourceName
properties: {
displayName: ''
enforcementMode: 'Default'
parameters: {
listOfAllowedLocations: {
value: [
'West Europe'
'West US 2'
'East US 2'
]
}
}
policyDefinitionId: policyDefinition.id
scope: subscription().id
}
}
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 验证模块 可用于部署此资源类型。
| 模块 | 描述 |
|---|---|
| 授权 - 策略分配 | AVM 授权资源模块 - 策略分配 |
| 授权 - 策略分配 - 管理组范围 | AVM授权子模块 - 策略分配 - 管理组范围 |
| 授权 - 策略分配 - 资源组范围 | AVM授权子模块 - 策略分配 - 资源组范围 |
| 授权 - 策略分配 - 订阅范围 | AVM 子模块授权 - 策略分配 - 订阅范围 |
Azure 快速入门示例
以下 Azure 快速入门模板 包含用于部署此资源类型的 Bicep 示例。
| Bicep 文件 | 描述 |
|---|---|
| 分配内置策略以审核 VM 托管磁盘 | 此模板将内置策略分配给资源组范围以审核虚拟机(VM)托管磁盘。 |
| 创建 Azure 虚拟网络管理器和示例 VNET | 此模板将 Azure 虚拟网络管理器和示例虚拟网络部署到命名资源组中。 它支持多个连接拓扑和网络组成员身份类型。 |
| 部署策略 def 并将其分配给多个 Mgmt 组 | 此模板是一个管理组级模板,用于创建策略定义并将该策略分配给多个管理组。 |
| 部署策略定义并分配给管理组 | 此模板是一个管理组级模板,用于创建策略定义并将该策略分配给目标管理组。 目前,无法通过 Azure 门户部署此模板。 |
ARM 模板资源定义
可以使用目标操作部署 policyAssignments 资源类型:
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Authorization/policyAssignments 资源,请将以下 JSON 添加到模板。
{
"type": "Microsoft.Authorization/policyAssignments",
"apiVersion": "2019-09-01",
"name": "string",
"identity": {
"type": "string"
},
"location": "string",
"properties": {
"description": "string",
"displayName": "string",
"enforcementMode": "string",
"metadata": {},
"notScopes": [ "string" ],
"parameters": {
"{customized property}": {
"value": {}
}
},
"policyDefinitionId": "string",
"scope": "string"
},
"sku": {
"name": "string",
"tier": "string"
}
}
属性值
Microsoft.Authorization/policyAssignments
| 名字 | 描述 | 价值 |
|---|---|---|
| apiVersion | API 版本 | '2019-09-01' |
| 标识 | 与策略分配关联的托管标识。 | 标识 |
| 位置 | 策略分配的位置。 仅当使用托管标识时才需要。 | 字符串 |
| 名字 | 资源名称 | string (必需) |
| 性能 | 策略分配的属性。 | PolicyAssignmentProperties |
| SKU | 策略 SKU。 此属性是可选的、过时的,将被忽略。 | 策略 Sku |
| 类型 | 资源类型 | “Microsoft.Authorization/policyAssignments” |
身份
| 名字 | 描述 | 价值 |
|---|---|---|
| 类型 | 标识类型。 这是将系统分配的标识添加到资源时的唯一必填字段。 | “None” “SystemAssigned” |
参数值
| 名字 | 描述 | 价值 |
|---|
参数值值
| 名字 | 描述 | 价值 |
|---|---|---|
| 价值 | 参数的值。 | 任何 |
PolicyAssignmentProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 描述 | 如果发生策略冲突,此消息将是响应的一部分。 | 字符串 |
| displayName (显示名称) | 策略分配的显示名称。 | 字符串 |
| enforcementMode | 策略分配强制模式。 可能的值为 Default 和 DoNotEnforce。 | “Default” “DoNotEnforce” |
| 元数据 | 策略分配元数据。 元数据是一个开放结束的对象,通常是键值对的集合。 | 任何 |
| notScopes | 策略的排除范围。 | 字符串[] |
| 参数 | 分配的策略规则的参数值。 键是参数名称。 | 参数值 |
| policyDefinitionId | 要分配的策略定义或策略集定义的 ID。 | 字符串 |
| 作用域 | 策略分配的范围。 | 字符串 |
策略 Sku
| 名字 | 描述 | 价值 |
|---|---|---|
| 名字 | 策略 SKU 的名称。 可能的值为 A0 和 A1。 | string (必需) |
| 分层 | 策略 SKU 层。 可能的值为 Free 和 Standard。 | 字符串 |
用法示例
Azure 快速入门模板
以下 Azure 快速入门模板 部署此资源类型。
| 模板 | 描述 |
|---|---|
|
将内置策略分配给现有资源组 |
此模板将内置策略分配给现有资源组。 |
|
分配内置策略以审核 VM 托管磁盘 |
此模板将内置策略分配给资源组范围以审核虚拟机(VM)托管磁盘。 |
|
创建 Azure 虚拟网络管理器和示例 VNET |
此模板将 Azure 虚拟网络管理器和示例虚拟网络部署到命名资源组中。 它支持多个连接拓扑和网络组成员身份类型。 |
|
部署策略 def 并将其分配给多个 Mgmt 组 |
此模板是一个管理组级模板,用于创建策略定义并将该策略分配给多个管理组。 |
|
部署策略定义并分配给管理组 |
此模板是一个管理组级模板,用于创建策略定义并将该策略分配给目标管理组。 目前,无法通过 Azure 门户部署此模板。 |
Terraform (AzAPI 提供程序)资源定义
可以使用目标操作部署 policyAssignments 资源类型:
- 租户* 管理组* 订阅* 资源组
有关每个 API 版本中已更改属性的列表,请参阅 更改日志。
资源格式
若要创建 Microsoft.Authorization/policyAssignments 资源,请将以下 Terraform 添加到模板。
resource "azapi_resource" "symbolicname" {
type = "Microsoft.Authorization/policyAssignments@2019-09-01"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
location = "string"
body = {
properties = {
description = "string"
displayName = "string"
enforcementMode = "string"
metadata = ?
notScopes = [
"string"
]
parameters = {
{customized property} = {
value = ?
}
}
policyDefinitionId = "string"
scope = "string"
}
sku = {
name = "string"
tier = "string"
}
}
}
属性值
Microsoft.Authorization/policyAssignments
| 名字 | 描述 | 价值 |
|---|---|---|
| 标识 | 与策略分配关联的托管标识。 | 标识 |
| 位置 | 策略分配的位置。 仅当使用托管标识时才需要。 | 字符串 |
| 名字 | 资源名称 | string (必需) |
| parent_id | 要向其应用此扩展资源的资源的 ID。 | string (必需) |
| 性能 | 策略分配的属性。 | PolicyAssignmentProperties |
| SKU | 策略 SKU。 此属性是可选的、过时的,将被忽略。 | 策略 Sku |
| 类型 | 资源类型 | “Microsoft.Authorization/policyAssignments@2019-09-01” |
身份
| 名字 | 描述 | 价值 |
|---|---|---|
| 类型 | 标识类型。 这是将系统分配的标识添加到资源时的唯一必填字段。 | “None” “SystemAssigned” |
参数值
| 名字 | 描述 | 价值 |
|---|
参数值值
| 名字 | 描述 | 价值 |
|---|---|---|
| 价值 | 参数的值。 | 任何 |
PolicyAssignmentProperties
| 名字 | 描述 | 价值 |
|---|---|---|
| 描述 | 如果发生策略冲突,此消息将是响应的一部分。 | 字符串 |
| displayName (显示名称) | 策略分配的显示名称。 | 字符串 |
| enforcementMode | 策略分配强制模式。 可能的值为 Default 和 DoNotEnforce。 | “Default” “DoNotEnforce” |
| 元数据 | 策略分配元数据。 元数据是一个开放结束的对象,通常是键值对的集合。 | 任何 |
| notScopes | 策略的排除范围。 | 字符串[] |
| 参数 | 分配的策略规则的参数值。 键是参数名称。 | 参数值 |
| policyDefinitionId | 要分配的策略定义或策略集定义的 ID。 | 字符串 |
| 作用域 | 策略分配的范围。 | 字符串 |
策略 Sku
| 名字 | 描述 | 价值 |
|---|---|---|
| 名字 | 策略 SKU 的名称。 可能的值为 A0 和 A1。 | string (必需) |
| 分层 | 策略 SKU 层。 可能的值为 Free 和 Standard。 | 字符串 |
用法示例
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 = ["*"]
}