如何强制 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强制跳转