Azure ARM 策略部署拒绝特定 sku.name
Azure ARM policy deployment deny specific sku.name
我对策略的arm部署非常困惑,希望有人能帮我解决这个问题。
我想制定一项政策,根据他们的 Sku.name.
拒绝数据库部署
没错,我想允许创建 standard
或 Basic
的数据库,并拒绝所有其他 sku。
我有这个 json
配置,但它部分有效。
{
"properties": {
"displayName": "Not allowed resource types",
"policyType": "BuiltIn",
"mode": "All",
"description": "This policy enables you to specify the resource types that your organization cannot deploy.",
"parameters": {
"listOfAllowedSKUs": {
"type": "Array",
"metadata": {
"description": "The list of resource types that cannot be deployed.",
"displayName": "Not allowed resource types",
"strongType": "resourceTypes"
}
}
},
"policyRule": {
"if": {
"field": "type",
"in": "[parameters('listOfAllowedSKUs')]"
},
"then": {
"effect": "Deny"
}
}
},
"id": "/providers/Microsoft.Authorization/policyDefinitions/6c112d4e-5bc7-47ae-a041-ea2d9dccd749",
"type": "Microsoft.Authorization/policyDefinitions",
"name": "6c112d4e-5bc7-47ae-a041-ea2d9dccd749"
}
参数:
{
"listOfAllowedSKUs": {
"type": "Array",
"allowedValues": [
"Standard",
"Basic"
],
"metadata": {
"displayName": "Allowed SKUs",
"description": "The list of SKUs that can be specified for databases."
}
}
}
和规则:
{
"if": {
"not": {
"field": "Microsoft.Sql/servers/databases/sku.name",
"in": "[parameters('listOfAllowedSKUs')]"
}
},
"then": {
"effect": "deny"
}
}
当我部署此策略时,我只能部署 Basic Sku,而所有其他(包括 Standard)都被拒绝。
如何允许同时创建 Basic
和 Standard
?
非常感谢愿意花宝贵时间帮助我理解这一点的人。
查看 documentation:
- sku 等级:特定 SKU 的等级或版本,例如基本版、高级版。
- sku名称:SKU的名称,一般为字母+数字代码,如P3.
因此,在您的情况下,您需要在 sku 等级 上进行过滤。
对于 Basic,名称和等级相同。
对于标准,等级是标准,但名称可以是 S1...S12
{
"if": {
"not": {
"field": "Microsoft.Sql/servers/databases/sku.tier",
"in": "[parameters('listOfAllowedSKUs')]"
}
},
"then": {
"effect": "deny"
}
}
我对策略的arm部署非常困惑,希望有人能帮我解决这个问题。
我想制定一项政策,根据他们的 Sku.name.
拒绝数据库部署没错,我想允许创建 standard
或 Basic
的数据库,并拒绝所有其他 sku。
我有这个 json
配置,但它部分有效。
{
"properties": {
"displayName": "Not allowed resource types",
"policyType": "BuiltIn",
"mode": "All",
"description": "This policy enables you to specify the resource types that your organization cannot deploy.",
"parameters": {
"listOfAllowedSKUs": {
"type": "Array",
"metadata": {
"description": "The list of resource types that cannot be deployed.",
"displayName": "Not allowed resource types",
"strongType": "resourceTypes"
}
}
},
"policyRule": {
"if": {
"field": "type",
"in": "[parameters('listOfAllowedSKUs')]"
},
"then": {
"effect": "Deny"
}
}
},
"id": "/providers/Microsoft.Authorization/policyDefinitions/6c112d4e-5bc7-47ae-a041-ea2d9dccd749",
"type": "Microsoft.Authorization/policyDefinitions",
"name": "6c112d4e-5bc7-47ae-a041-ea2d9dccd749"
}
参数:
{
"listOfAllowedSKUs": {
"type": "Array",
"allowedValues": [
"Standard",
"Basic"
],
"metadata": {
"displayName": "Allowed SKUs",
"description": "The list of SKUs that can be specified for databases."
}
}
}
和规则:
{
"if": {
"not": {
"field": "Microsoft.Sql/servers/databases/sku.name",
"in": "[parameters('listOfAllowedSKUs')]"
}
},
"then": {
"effect": "deny"
}
}
当我部署此策略时,我只能部署 Basic Sku,而所有其他(包括 Standard)都被拒绝。
如何允许同时创建 Basic
和 Standard
?
非常感谢愿意花宝贵时间帮助我理解这一点的人。
查看 documentation:
- sku 等级:特定 SKU 的等级或版本,例如基本版、高级版。
- sku名称:SKU的名称,一般为字母+数字代码,如P3.
因此,在您的情况下,您需要在 sku 等级 上进行过滤。
对于 Basic,名称和等级相同。
对于标准,等级是标准,但名称可以是 S1...S12
{
"if": {
"not": {
"field": "Microsoft.Sql/servers/databases/sku.tier",
"in": "[parameters('listOfAllowedSKUs')]"
}
},
"then": {
"effect": "deny"
}
}