You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制定策略为组织内新建资源自动添加CreatedBy:AccountID标签

原生Azure Policy暂不支持直接在策略表达式中获取资源创建者的Account ID,你当前策略中[????]的位置没有可用的内置模板函数可以直接返回创建者身份信息。你观察到AKS资源自带的CreatedBy标签,是AKS资源提供程序在服务侧自主写入的专属标识,并非通用策略能力实现。

可行实现方案

  • 方案1:Activity Log + 无服务器服务自动打标(最推荐)

    该方案可以100%覆盖所有资源创建场景,不会被绕过:

    1. 配置Azure活动日志警报,触发规则匹配成功创建资源类事件
    2. 警报触发后调用Azure Function/自动化 runbook,从事件的claims字段中提取创建者身份属性:
      • oid字段值即为用户/服务主体在AAD中的Account ID
      • 可按需同时提取upn、name等更易读的身份属性
    3. 调用ARM资源更新接口,为对应资源写入CreatedBy标签值
  • 方案2:部署流程嵌入(适合统一使用基础设施即代码的场景)

    如果组织内所有资源都通过统一的CI/CD流程部署,可以在部署模板(ARM/Bicep/Terraform)中加入参数,在部署时自动注入当前执行部署的身份ID,配合你现有的策略做合规校验。

现有策略优化建议

你当前策略的if条件使用allOf规则,只有当两个标签同时不存在时才会补加标签,建议修改为anyOf,实现缺哪个标签补哪个的效果:

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

注意上述策略中移除了CreatedBy的append规则,因为该字段无法通过原生策略直接赋值,需要配合前述的活动日志方案写入。

内容的提问来源于stack exchange,提问作者Yahav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 20:51:02