创建 Azure 资源策略来强制用户?

Posted

技术标签:

【中文标题】创建 Azure 资源策略来强制用户?【英文标题】:Create Azure Resource Policy to enforce user? 【发布时间】:2017-09-11 20:05:28 【问题描述】:

我正在寻找强制用户使用特定图像的选项,我正在尝试修改以下代码以使用 HuB 图像

。下面是我尝试修改以强制执行 windows HuB 的代码

"if": 
  "allOf": [
    
      "field": "type",
      "in": [ "Microsoft.Compute/virtualMachines", "Microsoft.Compute/VirtualMachineScaleSets" ]
    ,
    
      "field": "Microsoft.Compute/licenseType",
      "exists": Windows_Server
    
  ]
,
"then": 
  "effect": "deny"

【问题讨论】:

【参考方案1】:

如果我的理解是正确的,你可以先找到 Hub 图片的 SKU。

对于 Windows 服务器:

PS C:\Program Files\> Get-AzureRmVMImagesku -Location westus -PublisherName MicrosoftWindowsServer -Offer WindowsServer-Hub|select Skus

Skus
----
2008-R2-SP1-HUB
2012-Datacenter-HUB
2012-R2-Datacenter-HUB
2016-Datacenter-HUB

对于 Windows 客户端:

PS C:\Program Files> Get-AzureRMVMImageSku -Location "West US" -Publisher "MicrosoftWindowsServer" -Offer "Windows-HUB"|select Skus

Skus
----
Windows-10-HUB

更多信息请参考blog和link。

根据official document。也许你可以修改你的政策如下:


  "if":
   
     "anyOf": [
       
         "field": "Microsoft.Compute/imageSku",
         "like": "2016-Datacenter-HUB*"
       ,
       
         "field": "Microsoft.Compute/imageSku",
         "like": "Windows-10-HUB*"
       ,
       
       .....
       
     ] 
   
  ,
 "then": 
        "effect": "deny"
    

【讨论】:

非常感谢,我正在考虑使用 "field":"Microsoft.Compute/licenseType", "contains": Windows_Server" 我相信您的方法要好得多,再次感谢。 $PolicyAssignmentName = "LimitVMHuBTest" $RG = Get-AzureRmResourceGroup -Name "AzurePolicyTest" $Scope = "/subscriptions/$($Sub.Subscription.SubscriptionId)/resourceGroups/$($RG.ResourceGroupName )" 抛出错误,希望我写的范围正确吗? 当我尝试分配策略时出现以下错误,New-AzureRmPolicyAssignment -Name $PolicyAssignmentName -PolicyDefinition $PolicyDefinition -Scope $Scope New-AzureRmPolicyAssignment :管道已停止。在 line:1 char:1 + New-AzureRmPolicyAssignment -Name $PolicyAssignmentName -PolicyDefini ...New-AzureRmPolicyAssignment : SubscriptionNotFound : 找不到订阅“resourceGroups”。 @techie 你能问一个关于这个的新问题吗,cmets 很难阅读。 对不起,是的,我会的,谢谢 walter

以上是关于创建 Azure 资源策略来强制用户?的主要内容,如果未能解决你的问题,请参考以下文章

创建没有标记的资源组时 Azure Policy 的奇怪行为

在可能存在多个选项的情况下,如何创建策略以强制标记?

使用Azure Policy(策略)强制实现资源Tag的坑

未强制执行 Azure 策略

azure 是不是有可能制定强制执行定价层的政策?

Azure 策略强制在任何新数据库中使用弹性池