Azure ARM策略,通过CLI使用预定义的定义

时间:2017-06-24 13:54:49

标签: azure azure-cli azure-cli2

我想知道是否可以通过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"

2 个答案:

答案 0 :(得分:0)

查看此方法的Azure CLI代码,我认为不可能。它只接受的参数是policy,name,display_name,resource_group_name,scope。要使用默认策略,您需要传递参数。

看看here

Powershell似乎支持:

New-AzureRmPolicyAssignment -Name <string> -Scope <string> -PolicyDefinition <psobject>
    -PolicyParameter <string> [-DisplayName <string>]

答案 1 :(得分:0)

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

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

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

有关此内容的详情,请参阅此链接:Use scripts to assign policy

此外,您可以使用azure cli 2.0更新您的政策,请参阅此link