以电子邮件格式强制实施 Azure Policy 标记值

Enforcing Azure Policy Tag value in email format

提问人:ts ts 提问时间:10/31/2023 更新时间:10/31/2023 访问量:28

问:

我正在尝试在资源组级别构建一个 Azure 标记策略,其中标记的值必须采用电子邮件格式并以“contoso.com”结尾。计划是使用内置 MSFT 策略的副本,并在为每个标记分配时指定标记名称。

我已经尝试了以下代码的许多排列,但它不起作用。据我了解,匹配运算符不是基于正则表达式的,所以我使用的是 Like 运算符。但是,* 未按预期触发。对此的任何想法或解决方案将不胜感激。

引用的代码将强制执行所需的标记“CreatedBy”,但不会强制执行电子邮件格式的值。例如,如果我提供“12345”的值,它将接受并创建资源组。

    {
      "mode": "All",
      "policyRule": {
      "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.Resources/subscriptions/resourceGroups"
        },
        {
          "field": "[concat('tags[', parameters('tagName'), ']')]",
          "exists": false
        },
        {
          "field": "tags['CreatedBy']",
          "notLike": "*@contoso.com"
        }
      ]
    },
    "then": {
      "effect": "deny"
    }
  },
  "parameters": {
    "tagName": {
      "type": "String",
      "metadata": {
        "displayName": "Tag Name",
        "description": "Name of the tag, such as 'environment'"
      }
    }
  }
}
azure-policy

评论


答:

0赞 Niclas 12/6/2023 #1

看看我在这里创建的策略:https://github.com/Azure/Community-Policy/blob/main/policyDefinitions/Tags/validate-email-tag-on-subscription/azurepolicy.json

您只需要将其修改为 而不是 .resourceGroupsMicrosoft.Resources/subscriptions