Azure Policy 定义结构别名

可以使用属性别名来访问资源类型的特定属性。 通过别名,可限制允许用于资源属性的值和条件。 每个别名会映射到给定资源类型不同 API 版本的路径。 在策略评估期间,策略引擎会获取该 API 版本的属性路径。

别名列表始终不断增长。 若要查找 Azure Policy 支持的别名,请使用以下方法:

  • Azure PowerShell

    # Login first with Connect-AzAccount
    Connect-AzAccount -Environment AzureChinaCloud
    
    # Use Get-AzPolicyAlias to list available providers
    Get-AzPolicyAlias -ListAvailable
    
    # Use Get-AzPolicyAlias to list aliases for a Namespace (such as Azure Compute -- Microsoft.Compute)
    (Get-AzPolicyAlias -NamespaceMatch 'compute').Aliases
    

    注意

    若要查找可用于修改效果的别名,请在 Azure PowerShell 4.6.0 或更高版本中使用以下命令:

    Get-AzPolicyAlias | Select-Object -ExpandProperty 'Aliases' | Where-Object { $_.DefaultMetadata.Attributes -eq 'Modifiable' }
    
  • Azure CLI

    # Login first with following commands
    az cloud set -n AzureChinaCloud
    az login
    
    # List namespaces
    az provider list --query [*].namespace
    
    # Get Azure Policy aliases for a specific Namespace (such as Azure Compute -- Microsoft.Compute)
    az provider show --namespace Microsoft.Compute --expand "resourceTypes/aliases" --query "resourceTypes[].aliases[].name"
    
  • REST API

    GET https://management.chinacloudapi.cn/providers/?api-version=2019-10-01&$expand=resourceTypes/aliases
    

了解数组别名

多个可用别名都有一个显示为正常名称的版本,以及一个附加有 [*] 的版本,即数组别名。 例如:

  • Microsoft.Storage/storageAccounts/networkAcls.ipRules

  • Microsoft.Storage/storageAccounts/networkAcls.ipRules[*]

  • 正常别名将字段表示为单个值。 当整个值集必须与定义的完全一致时,此字段适用于精确匹配的比较方案。

  • 数组别名 [*] 表示从数组资源属性的元素中所选的值的集合。 例如:

Alias 选定值
Microsoft.Storage/storageAccounts/networkAcls.ipRules[*] ipRules 数组的元素。
Microsoft.Storage/storageAccounts/networkAcls.ipRules[*].action ipRules 数组的每个元素中的 action 属性的值。

字段条件中使用数组别名时,可以将每个单独的数组元素与目标值进行比较。 与 count 表达式结合使用时,可以执行以下操作:

  • 检查数组的大小。
  • 检查是否所有/任意/没有任何数组元素满足复杂条件。
  • 检查是否恰好有 n 个数组元素满足复杂条件。

有关详细信息和示例,请参阅引用数组资源属性

后续步骤