1

我想知道是否可以通过 CLI 使用默认的预定义 ARM 策略进行分配。

本质上,我注意到有一个默认策略来限制门户内的位置,因此如果您使用门户,您可以选择它,然后它允许您选择一些区域。

如果我从 cli 创建位置策略,我似乎必须创建一个全新的自定义策略定义,该定义与定义页面中的默认策略定义一起显示。

有没有办法简单地使用默认的,但指定哪些区域?

这是自定义定义:

    az policy definition create --name permittedRegions --description "location policy" --rules '{    
  "if" : {
    "not" : {
      "field" : "location",
      "in" : ["westus", "westus2", "centralus", "westcentralus"]
    }
  },
  "then" : {
    "effect" : "deny"
  }
}'

az policy assignment create --name permittedRegionsInSubscription --policy permittedRegions --scope /subscriptions/"$subscriptionId"
4

2 回答 2

0

如果我的理解是正确的,我认为这是可能的。

您可以使用策略分配命令将策略应用于所需范围:

az policy assignment create --name regionPolicyAssignment --policy regionPolicyDefinition --scope /subscriptions/{subscription-id}/resourceGroups/{resource-group-name}

有关此的更多信息,请参阅此链接:使用脚本分配策略

此外,您可以使用 azure cli 2.0 更新您的策略,请参阅此链接

于 2017-06-26T02:25:56.383 回答
0

查看此方法的 Azure CLI 代码,我认为这是不可能的。它接受的唯一参数是策略、名称、显示名称、资源组名称、范围。要使用默认策略,您需要传递参数。

看看这里

Powershell 似乎支持这一点:

New-AzureRmPolicyAssignment -Name <string> -Scope <string> -PolicyDefinition <psobject>
    -PolicyParameter <string> [-DisplayName <string>]
于 2017-06-24T18:02:45.867 回答