azure - ARM 模板和针对 AAD 的强制标签值验证

标签 azure azure-rm-template azure-policy

我想使用 ARM 模板为新创建的资源创建策略,这些资源已自动预填充或验证标签(例如 CreatedBy 或 BusinessOwner),并且它们的值将包括创建它们或负责的用户的名称用于分配给 Azure 资源的预算。

我希望策略指定,如果创建资源并设置标签值,则针对 AAD 用户验证该值。如果 ARM 内置函数存在并且模板看起来像这样,那就最好了:

    CreatedBy
    {
      "mode": "All",
      "policyRule": {
        "if": {
          "allOf": [
            {
              "field": "tags['CreatedBy']",
              "exists": "false"
            }
          ]
        },
        "then": {
          "effect": "append",
          "details": [
            {
              "field": "tags['CreatedBy']",
              "value": "[GetAADUsername()]"
            }
          ]
        }
      },
      "parameters": {}
    }

根据 ARM 模板当前支持的函数列表,这是不可能的,请参阅。 https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions .

但我想问是否有人已经解决了这个问题,并且没有一个解决方案来为这些基本标签定义策略,并且它们的值不仅仅是临时字符串,而是针对 AAD 中真实对象的验证值。

谢谢。

最佳答案

目前,无法使用 Azure 策略添加基于 Azure AD UPN 的创建者或更新者。

作为替代方案,您可以使用 Azure 事件中心和 Azure Functions 创建标签,以便根据创建或修改者来管理订阅资源。

您可以关注此 Azure Community BlogAnthony Watherston 介绍如何使用创建者标签标记资源,或者您可以引用此 Github RepoTom Hollander 创建,介绍如何添加createdBy、ModifiedBy、createdDate 和 ModifiedDate 等标签。

关于azure - ARM 模板和针对 AAD 的强制标签值验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71052910/

相关文章:

Azure 策略 'modify' 效果与修复

azure - [Azure Policy]应用标签并添加帐户信息

azure - 通过策略启用 Azure NSG FlowLogs

c# - CloudQueueMessage 没有 byte[] ctor,有什么解释吗?

azure - 在 Visual Studio Mac 上从 Azure 运行入门 Xamarin 项目时出错

azure - 如何在 "NO RESULTS FOUND"时将 Azure Application Insights Analytics 查询固定到仪表板

azure - Bicep/ARM 创建存储帐户,其端点链接到已创建的 A 记录的现有 DNS 区域

azure - 系统组成员身份无法更改

Azure 应用服务托管内部技术

azure - ARM 模板: concatenate each element of an array with constant value