• 使用 Azure 资源管理器向 Windows VM 应用策略


    通过使用策略,组织可以在整个企业中强制实施各种约定和规则。 强制实施所需行为有助于消除风险,同时为组织的成功做出贡献。 本文介绍如何使用 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"
        }
    }
    

    后续步骤

  • 相关阅读:
    ionic2简单分析
    mvc的真实含义
    JavaSE学习总结(十七)—— IO流
    vs2010快捷键;sql server 2008快捷;IE9快捷键
    设计模式之六大设计原则
    通过peview分析PE文件
    游戏限制多开原理及对应方法
    inline hook原理和实现
    vm tools安装包为空
    Linux下PWN环境搭建
  • 原文地址:https://www.cnblogs.com/zangdalei/p/7910710.html
Copyright © 2020-2023  润新知