我想使用 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 Blog
由 Anthony Watherston
介绍如何使用创建者标签标记资源,或者您可以引用此 Github Repo
由 Tom Hollander
创建,介绍如何添加createdBy、ModifiedBy、createdDate 和 ModifiedDate 等标签。
关于azure - ARM 模板和针对 AAD 的强制标签值验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71052910/