对标签强制执行的自定义策略

Posted

技术标签:

【中文标题】对标签强制执行的自定义策略【英文标题】:Custom Policy to Enforce on Tag 【发布时间】:2020-04-07 14:28:35 【问题描述】:

我正在尝试创建一个自定义策略,该策略将根据标签值拒绝。标签是“external VM”。然后,该策略允许部署一组已批准的扩展。但是,当我尝试使用"tag.external vm" 添加标签时,它会显示一个错误,这与本文末尾的相同(The value of 'field' property 'Tag' of the policy rule must be one of 'Name, Type, Location, Tags, Kind, FullName, Identity.type' or an alias, e.g.)。


  "mode": "All",
  "policyRule": 
    "if": 
      "allOf": [
        
          "field": "tag.External VM",
          "equals": "Third Party"
        ,
        
          "field": "Microsoft.Compute/virtualMachines/extensions/publisher",
          "equals": "Microsoft.Compute"
        ,
        
          "field": "Microsoft.Compute/virtualMachines/extensions/type",
          "notin": "[parameters('AllowedExtensions')]"
        
      ]
    ,
    "then": 
      "effect": "deny"
    
  ,
  "parameters": 
    "AllowedExtensions": 
      "type": "Array",
      "metadata": 
        "displayName": "AllowedExtensions",
        "description": "Allowed VM Extensions"
      
    
 

参数文件是


    "AllowedExtensions": 
        "type": "Array",
        "metadata": 
            "description": "The list of extensions that will be Allowed.",
            "strongType": "type",
            "displayName": "Allowed extension"
        
    ,
        "tagName": 
        "type": "String",
        "metadata": 
            "description": "The Referenced Tag Name.",
            "displayName": "Tag to Query"
        
    

有没有办法用其中的空格来分配标签名称。还有其他选择是用“external-vm”重新标记它或参数化标记名,例如


  "field": "[parameters('tagName')]",
  "equals": "Third Party"
,

但这给了我错误

The value of 'field' property 'Tag' of the policy rule must be one of 'Name, Type, Location, Tags, Kind, FullName, Identity.type' or an alias, e.g. 

有什么想法吗?

提前致谢。

【问题讨论】:

【参考方案1】:

参数不正确

"[concat('tags[', parameters('tagName'), ']')]",

将其作为参数添加可以解决组织问题。

【讨论】:

将其添加为参数有效。你也可以这样硬编码:"field": "tags['External VM']" @sapphiremirage 感谢您的提示,这真是个好主意,因为它是一个设定值。

以上是关于对标签强制执行的自定义策略的主要内容,如果未能解决你的问题,请参考以下文章

强制 Windows 显示我的自定义文件类型的缩略图

Collection接口下的Set接口TreeSet类中的自定义比较策略

自定义 WebLogic Web 服务策略

具有动态高度的自定义视图作为 UITableView 标题 ios xcode

如何在我的自定义 JSP 标记中将整数值作为参数传递?

将标签和图像动态添加到 Android 中的自定义视图