如何强制 Azure 策略中主机名的名称模式?

Posted

技术标签:

【中文标题】如何强制 Azure 策略中主机名的名称模式?【英文标题】:How to force Name pattern for Hostnames in Azure policies? 【发布时间】:2018-10-15 10:57:56 【问题描述】:

Microsoft 为 Azure 策略提供 JSON 模板:


    "properties": 
        "displayName": "Hostname pattern with match condition.",
        "description": "Enforce a naming pattern on Hostnames with the match condition.",
        "mode": "All",
        "parameters": 
            "namePattern": 
                "type": "String",
                "metadata": 
                    "description": "Pattern to use for Hostnames. Can include ? for letters and # for numbers."
                
            
        ,
        "policyRule": 
            "if": 
                "not": 
                    "field": "name",
                    "match": "[parameters('namePattern')]"
                
            ,
            "then": 
                "effect": "deny"
            
        
    

但是这个 JSON 会检查 Azure 中的所有资源(NIC、磁盘等)。我只想要主机名的策略。

我想我可以在某个地方注入 /Microsoft.Compute/virtualMachines/ 的限定符 - 但在哪里?每次尝试都以无效的 JSON 文件结束。感谢您的帮助!

【问题讨论】:

【参考方案1】:

您可以通过在类型字段上指定检查来限制资源的类型。我们需要添加“allOf”,因为我们需要满足所有拒绝条件。 我认为下面对您的政策规则的更改应该有效。

"policyRule": 
        "if": 
            "allof":[
                
                   "field": "type",
                   "equals": "Microsoft.Compute/VirtualMachines"
                ,
                
                   "not": 
                     "field": "name",
                     "match": "[parameters('namePattern')]"
                   
                
             ]
        ,
        "then": 
            "effect": "deny"
        
    

【讨论】:

以上是关于如何强制 Azure 策略中主机名的名称模式?的主要内容,如果未能解决你的问题,请参考以下文章

配置基于主机名的虚拟主机及HTTPD 加密SSL配置以及HTTPS强制跳转

如何修改Centos服务器主机名称

在CentOS 7上修改主机名的方法

在不公开服务名称和主机名的情况下使用 Android XMPP Smack

Linux更改IP和主机名的方法

如何为Azure中的虚机修改主机名