Azure Arm策略拒绝没有标签的资源组

标签 azure azure-resource-manager

我想编写一个 Azure ARM 策略来拒绝创建没有标签的资源组。这是我当前的政策规则:

{
  "$schema": "http://schema.management.azure.com/schemas/2015-10-01-preview/policyDefinition.json",
  "if": {
    "allOf": [
      {
        "field": "tags",
        "exists": false
      },
      {
        "field": "type",
        "like": "resourceGroup*"
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
} 

这不会阻止创建没有标签的 RG。

如果我将策略规则更改为:

{
  "$schema": "http://schema.management.azure.com/schemas/2015-10-01-preview/policyDefinition.json",
  "if": {
        "field": "tags",
        "exists": false
      },
  "then": {
    "effect": "deny"
  }
} 

然后,如果所有资源(包括 RG)没有标签,则它们都会被拒绝。

因此,我得出结论,它是“字段类型类似于资源组*”条件的一部分,但我找不到正确的语法来使其按我想要的方式工作。

这可能吗?正确的语法是什么?

(我不关心是否在没有标签的情况下创建其他资源类型的原因是我们有一个 Azure 自动化 Runbook,它可以获取 RG 的标签,然后将这些标签应用到子资源 - 这也是我想要的原因确保人们首先创建带有标签的父 RG)。

最佳答案

尝试一下这个策略定义:

    "if": {
      "allOf": [
        {
          "field": "tags",
          "exists": "false"
        },
        {
          "field": "type",
          "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        }
      ]
    },
    "then": {
      "effect": "deny"
    }

注意:我必须等待几分钟才能使其正常工作。

关于Azure Arm策略拒绝没有标签的资源组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48216764/

相关文章:

azure - 使用证书授予应用程序对 Azure Key Vault 的访问权限

azure - 如何在本地 U-SQL 数据库中创建 SQL 凭据

azure - 在资源管理器门户中创建的 azure 虚拟机中安装 exe

c# - Azure资源管理器-获取资源组的所有资源

适用于 1.7 的 Azure Powershell cmdlet,2012 年 6 月 : what's happened to Get-OperationStatus?

c# - 如何正确编码二进制数据以通过 REST api PUT 调用发送

python - 将 python 模块添加到 Azure

powershell - Azure ARM DSC 规模集部署 - 无法找到脚本

azure - 如何下载我在门户中创建的 Azure 资源组的模板 json?

azure - 如何备份 Azure 自定义托管镜像