天蓝色政策只允许创建特定标签
Posted
技术标签:
【中文标题】天蓝色政策只允许创建特定标签【英文标题】:azure policy to only allow specific tags to be created 【发布时间】:2020-12-07 19:48:22 【问题描述】:我需要配置一个 azure 策略,以确保 azure 贡献者使用一组非常具体的“允许”标签创建资源。 允许的标签示例:应用程序、所有者、环境、描述、团队
如果某些人创建资源并使用标签“env”,则策略将启动并拒绝创建资源,因为“env”不是允许的标签之一。
这在 azure 中可行吗?
【问题讨论】:
这取决于,当您说“azure 贡献者”时,您指的是 RBAC 角色还是指任何授权用户?策略无法基于 RBAC 进行过滤。否则,此政策是一个非常直接的拒绝政策。 另外值得注意的是,限制标签可能会产生不良影响。许多资源(如数据块)默认创建标签,如果您创建了拒绝某些标签的策略,则资源中的所有默认标签也将遵守相同的规则。您可以在策略中围绕这些资源类型构建过滤,但您必须在遇到此类问题时加以解决。查看一些内置的标签合规政策docs.microsoft.com/en-us/azure/azure-resource-manager/… 以获得想法 【参考方案1】:以下是一个策略规则示例,该规则要求您在指定范围内的所有资源上使用您列出的所有标签。 (这可能太多了,测试一下就知道了)
"policyRule":
"if":
"anyOf": [
"field": "tags['application']",
"exists": false
,
"field": "tags['owner']",
"exists": false
,
"field": "tags['environment']",
"exists": false
,
"field": "tags['description']",
"exists": false
,
"field": "tags['team']",
"exists": false
]
,
"then":
"effect": "deny"
这是一个将其缩小到资源类型的示例。仅像虚拟机。
"policyRule":
"if":
"allOf":[
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
,
"anyOf": [
"field": "tags['application']",
"exists": false
,
"field": "tags['owner']",
"exists": false
,
"field": "tags['environment']",
"exists": false
,
"field": "tags['description']",
"exists": false
,
"field": "tags['team']",
"exists": false
]
]
,
"then":
"effect": "deny"
请参阅附加到主要问题的我的 cmets。此策略可能过于严格,因为某些 Azure 资源具有内置的默认标记。这些标签也将遵守此合规规则,因此,如果您在大型组织中实施此规则,请小心,您可能会无意中妨碍某些用户。
如果您想将其缩小到一个资源组,您可以在您的策略分配中执行此操作,但是如果您想在您的定义中执行此操作,您可以使用资源类型 Microsoft.Resources/subscriptions/resourceGroups
还可以查看 Azure 内置的其他一些与标签相关的策略。 https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/tag-policies
【讨论】:
以上是关于天蓝色政策只允许创建特定标签的主要内容,如果未能解决你的问题,请参考以下文章