通过使用策略,组织可以在整个企业中强制实施各种约定和规则。 强制实施所需行为有助于消除风险,同时为组织的成功做出贡献。 本文介绍如何使用 Azure 资源管理器策略,为组织中的虚拟机定义所需的行为。
有关策略简介,请参阅使用策略管理资源并控制访问。
允许的虚拟机
若要确保组织的虚拟机与应用程序兼容,可以限制获准操作系统。 在以下策略示例中,只允许创建 Windows Server 2012 R2 数据中心虚拟机:
JSON复制
{"if": {"allOf": [ {"field":"type","in": ["Microsoft.Compute/disks","Microsoft.Compute/virtualMachines","Microsoft.Compute/VirtualMachineScaleSets"] }, {"not": {"allOf": [ {"field":"Microsoft.Compute/imagePublisher","in": ["MicrosoftWindowsServer"] }, {"field":"Microsoft.Compute/imageOffer","in": ["WindowsServer"] }, {"field":"Microsoft.Compute/imageSku","in": ["2012-R2-Datacenter"] }, {"field":"Microsoft.Compute/imageVersion","in": ["latest"] } ] } } ] },"then": {"effect":"deny"}}
使用通配符将上述策略修改为允许任何 Windows Server Datacenter 映像:
JSON复制
{"field":"Microsoft.Compute/imageSku","like":"*Datacenter"}
使用 anyOf 将上述策略修改为允许任何 Windows Server 2012 R2 Datacenter 或更高版本的映像:
JSON复制
{"anyOf": [ {"field":"Microsoft.Compute/imageSku","like":"2012-R2-Datacenter*"}, {"field":"Microsoft.Compute/imageSku","like":"2016-Datacenter*"} ]}
有关策略字段的信息,请参阅策略别名。
托管磁盘
如果需要使用托管磁盘,请使用以下策略:
JSON复制
{"if": {"anyOf": [ {"allOf": [ {"field":"type","equals":"Microsoft.Compute/virtualMachines"}, {"field":"Microsoft.Compute/virtualMachines/osDisk.uri","exists":true} ] }, {"allOf": [ {"field":"type","equals":"Microsoft.Compute/VirtualMachineScaleSets"}, {"anyOf": [ {"field":"Microsoft.Compute/VirtualMachineScaleSets/osDisk.vhdContainers","exists":true}, {"field":"Microsoft.Compute/VirtualMachineScaleSets/osdisk.imageUrl","exists":true} ] } ] } ] },"then": {"effect":"deny"}}
虚拟机映像
出于安全考虑,可要求仅在环境中部署已批准的自定义映像。 可以指定包含已批准映像的资源组,或特定已批准映像。
下例需要来自已批准资源组的映像:
JSON复制
{"if": {"allOf": [ {"field":"type","in": ["Microsoft.Compute/virtualMachines","Microsoft.Compute/VirtualMachineScaleSets"] }, {"not": {"field":"Microsoft.Compute/imageId","contains":"resourceGroups/CustomImage"} } ] },"then": {"effect":"deny"}}
下例指定已批准的映像 ID:
JSON复制
{"field":"Microsoft.Compute/imageId","in": ["{imageId1}","{imageId2}"]}
虚拟机扩展
可能想要禁止使用某些类型的扩展。 例如,扩展名可能与某些自定义虚拟机映像不兼容。 下例演示如何阻止特定扩展。 该示例使用发布者和类型来确定要阻止的扩展。
JSON复制
{"if": {"allOf": [ {"field":"type","equals":"Microsoft.Compute/virtualMachines/extensions"}, {"field":"Microsoft.Compute/virtualMachines/extensions/publisher","equals":"Microsoft.Compute"}, {"field":"Microsoft.Compute/virtualMachines/extensions/type","equals":"{extension-type}"} ] },"then": {"effect":"deny"}}
Azure 混合使用权益
如果具有本地许可证,可在虚拟机上保存许可证费用。 如果没有许可证,应禁用此选项。 以下策略禁止使用 Azure 混合使用权益 (AHUB):
JSON复制
{"if": {"allOf": [ {"field":"type","in":["Microsoft.Compute/virtualMachines","Microsoft.Compute/VirtualMachineScaleSets"] }, {"field":"Microsoft.Compute/licenseType","exists":true} ] },"then": {"effect":"deny"}}
后续步骤
有关资源策略的简介,请参阅资源策略概述。
有关企业可如何使用 Resource Manager 有效管理订阅的指南,请参阅Azure 企业基架 - 出于合规目的监管订阅。立即访问http://market.azure.cn