通过使用策略,组织可以在整个企业中强制实施各种约定和规则。 强制实施所需行为有助于消除风险,同时为组织的成功做出贡献。 本文介绍如何使用 Azure 资源管理器策略,为组织中的虚拟机定义所需的行为。

有关策略简介,请参阅使用策略管理资源并控制访问

允许的虚拟机

若要确保组织的虚拟机与应用程序兼容,可以限制获准操作系统。 在以下策略示例中,只允许创建 Windows Server 2012 R2 数据中心虚拟机:

JSON复制
  1. {
  2. "if": {
  3. "allOf": [
  4. {
  5. "field": "type",
  6. "in": [
  7. "Microsoft.Compute/disks",
  8. "Microsoft.Compute/virtualMachines",
  9. "Microsoft.Compute/VirtualMachineScaleSets"
  10. ]
  11. },
  12. {
  13. "not": {
  14. "allOf": [
  15. {
  16. "field": "Microsoft.Compute/imagePublisher",
  17. "in": [
  18. "MicrosoftWindowsServer"
  19. ]
  20. },
  21. {
  22. "field": "Microsoft.Compute/imageOffer",
  23. "in": [
  24. "WindowsServer"
  25. ]
  26. },
  27. {
  28. "field": "Microsoft.Compute/imageSku",
  29. "in": [
  30. "2012-R2-Datacenter"
  31. ]
  32. },
  33. {
  34. "field": "Microsoft.Compute/imageVersion",
  35. "in": [
  36. "latest"
  37. ]
  38. }
  39. ]
  40. }
  41. }
  42. ]
  43. },
  44. "then": {
  45. "effect": "deny"
  46. }
  47. }

使用通配符将上述策略修改为允许任何 Windows Server Datacenter 映像:

JSON复制
  1. {
  2. "field": "Microsoft.Compute/imageSku",
  3. "like": "*Datacenter"
  4. }

使用 anyOf 将上述策略修改为允许任何 Windows Server 2012 R2 Datacenter 或更高版本的映像:

JSON复制
  1. {
  2. "anyOf": [
  3. {
  4. "field": "Microsoft.Compute/imageSku",
  5. "like": "2012-R2-Datacenter*"
  6. },
  7. {
  8. "field": "Microsoft.Compute/imageSku",
  9. "like": "2016-Datacenter*"
  10. }
  11. ]
  12. }

有关策略字段的信息,请参阅策略别名

托管磁盘

如果需要使用托管磁盘,请使用以下策略:

JSON复制
  1. {
  2. "if": {
  3. "anyOf": [
  4. {
  5. "allOf": [
  6. {
  7. "field": "type",
  8. "equals": "Microsoft.Compute/virtualMachines"
  9. },
  10. {
  11. "field": "Microsoft.Compute/virtualMachines/osDisk.uri",
  12. "exists": true
  13. }
  14. ]
  15. },
  16. {
  17. "allOf": [
  18. {
  19. "field": "type",
  20. "equals": "Microsoft.Compute/VirtualMachineScaleSets"
  21. },
  22. {
  23. "anyOf": [
  24. {
  25. "field": "Microsoft.Compute/VirtualMachineScaleSets/osDisk.vhdContainers",
  26. "exists": true
  27. },
  28. {
  29. "field": "Microsoft.Compute/VirtualMachineScaleSets/osdisk.imageUrl",
  30. "exists": true
  31. }
  32. ]
  33. }
  34. ]
  35. }
  36. ]
  37. },
  38. "then": {
  39. "effect": "deny"
  40. }
  41. }

虚拟机映像

出于安全考虑,可要求仅在环境中部署已批准的自定义映像。 可以指定包含已批准映像的资源组,或特定已批准映像。

下例需要来自已批准资源组的映像:

JSON复制
  1. {
  2. "if": {
  3. "allOf": [
  4. {
  5. "field": "type",
  6. "in": [
  7. "Microsoft.Compute/virtualMachines",
  8. "Microsoft.Compute/VirtualMachineScaleSets"
  9. ]
  10. },
  11. {
  12. "not": {
  13. "field": "Microsoft.Compute/imageId",
  14. "contains": "resourceGroups/CustomImage"
  15. }
  16. }
  17. ]
  18. },
  19. "then": {
  20. "effect": "deny"
  21. }
  22. }

下例指定已批准的映像 ID:

JSON复制
  1. {
  2. "field": "Microsoft.Compute/imageId",
  3. "in": ["{imageId1}","{imageId2}"]
  4. }

虚拟机扩展

可能想要禁止使用某些类型的扩展。 例如,扩展名可能与某些自定义虚拟机映像不兼容。 下例演示如何阻止特定扩展。 该示例使用发布者和类型来确定要阻止的扩展。

JSON复制
  1. {
  2. "if": {
  3. "allOf": [
  4. {
  5. "field": "type",
  6. "equals": "Microsoft.Compute/virtualMachines/extensions"
  7. },
  8. {
  9. "field": "Microsoft.Compute/virtualMachines/extensions/publisher",
  10. "equals": "Microsoft.Compute"
  11. },
  12. {
  13. "field": "Microsoft.Compute/virtualMachines/extensions/type",
  14. "equals": "{extension-type}"
  15. }
  16. ]
  17. },
  18. "then": {
  19. "effect": "deny"
  20. }
  21. }

Azure 混合使用权益

如果具有本地许可证,可在虚拟机上保存许可证费用。 如果没有许可证,应禁用此选项。 以下策略禁止使用 Azure 混合使用权益 (AHUB):

JSON复制
  1. {
  2. "if": {
  3. "allOf": [
  4. {
  5. "field": "type",
  6. "in":[ "Microsoft.Compute/virtualMachines","Microsoft.Compute/VirtualMachineScaleSets"]
  7. },
  8. {
  9. "field": "Microsoft.Compute/licenseType",
  10. "exists": true
  11. }
  12. ]
  13. },
  14. "then": {
  15. "effect": "deny"
  16. }
  17. }

后续步骤

使用 Azure 资源管理器向 Windows VM 应用策略的更多相关文章

  1. 如何使用 Azure PowerShell 在 Azure Marketplace 中查找 Windows VM 映像

    本主题介绍如何使用 Azure PowerShell 在 Azure Marketplace 中查找 VM 映像. 创建 Windows VM 时使用此信息来指定 Marketplace 映像. 确保 ...

  2. Visual C# 2010 实现资源管理器

    演练:使用设计器创建带有 ListView 和 TreeView 控件的资源管理器样式的界面 Visual Studio 2010     其他版本     此主题尚未评级 - 评价此主题   Vis ...

  3. 通过新的 Azure 媒体服务资源管理器工具管理媒体工作流

    Xavier Pouyat    Azure 媒体服务高级项目经理 几个月前,一家广播公司找到了我,希望我向他们提供一种图形界面工具,好让他们使用 Azure媒体服务来上传.管理资产并对资产进行编 ...

  4. Windows 7 在资源管理器中显示软件快捷方式

    该方法是利用资源管理器中储存网络位置的文件夹实现的, 不需要修改注册表. 效果如图: 操作方法: 在资源管理器中打开路径 "%appdata%\Microsoft\Windows\Netwo ...

  5. 怎样在Windows资源管理器中添加右键菜单以及修改右键菜单顺序

    有时,我们需要在Windows资源管理器的右键菜单中添加一些项,以方便使用某些功能或程序. 比如我的电脑上有一个免安装版的Notepad++,我想在所有文件的右键菜单中添加一项用Notepad++打开 ...

  6. 使用Windows Form 制作一个简易资源管理器

    自制一个简易资源管理器----TreeView控件 第一步.新建project,进行基本设置:(Set as StartUp Project:View/Toolbox/TreeView) 第二步.开始 ...

  7. SVN has atopping svn已停止工作 or windows资源管理器无限重启

    准备在空间时间用用linux,就在自己的win7系统上安装了属性系统,用easyBCD安装的,谁知安装好之后win7系统下的svn客户端不能使用了,点击报错“SVN已停止工作”,随后怀疑是linux引 ...

  8. 20160223 - Windows 10 的文件资源管理器下出现重复文件夹的解决办法

    现象: 安装 OneDrive 从 Windows 7.8.8.1 升级来的 Windows 10 的电脑,可能会出现文件资源管理器左侧面板中出现重复的文件夹. 通常有:视频.图片.文档.下载.音频. ...

  9. 使用windows资源管理器的排序规则

    对于windows资源管理器 abc_1_def是要排到abc_10_def前面的 而一般的排序规则, 都会吧_10_排到前面 所以为了使用习惯, 最好用资源管理器的排序规则, windows有个AP ...

随机推荐

  1. Java实现排行榜基于Redis

    访问我的博客 前言 排行榜作为互联网应用中几乎必不可少的一个元素,其能够勾起人类自身对比的欲望,从而来增加商品的销量.排行榜的实现方式基本大同小异,大部分都基于 Redis 的有序集合 sorted ...

  2. 【详解】JNI (Java Native Interface) (二)

    案例二:传递参数给C代码,并从其获取结果 注:这里传递的参数是基本类型的参数,在C代码中有直接的映射类型. 此案例所有生成的所有文件如下: (1)编写案例二的Java代码,如下: 这里我们定义了一个n ...

  3. 软件架构设计学习总结(1):标准Web系统的架构分层

    1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层的技术都需要使用.例如:一 ...

  4. Python模块: 文件和目录os+shutil

    一 常用函数 os模块 os.sep 表示默认的文件路径分隔符,windows为\, linux为/os.walk(spath): 用来遍历目录下的文件和子目录os.listdir(dirname): ...

  5. JSP 基础(二)

    五 注释  5.1 JSP注释     <%--注释内容--%> 5.2 HTML注释    <!--注释内容--> 5.3 Java注释 六 JSP指令 在JSP中有三种类型 ...

  6. js设计模式总结1

    js设计模式有很多种,知道不代表会用,更不代表理解,为了更好的理解每个设计模式,对每个设计模式进行总结,以后只要看到总结,就能知道该设计模式的作用,以及模式存在的优缺点,使用范围. 本文主要参考张容铭 ...

  7. [javaSE] 看博客学习多线程的创建方式和优劣比较和PHP多线程

    通过实现Runnable接口创建线程 获取Thread对象,new出来,构造函数参数:Runnable对象 Runnable是一个接口,定义一个类MyRunnable实现Runnable接口,实现ru ...

  8. Java - 线程优先级和守护线程

    Java多线程系列--“基础篇”10之 线程优先级和守护线程 概要 本章,会对守护线程和线程优先级进行介绍.涉及到的内容包括:1. 线程优先级的介绍2. 线程优先级的示例3. 守护线程的示例 转载请注 ...

  9. java设计模式-----23、命令模式

    概念: Command模式也叫命令模式 ,是行为设计模式的一种.Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数. 命令模式(Command Pattern)是一种 ...

  10. JAVA设计模式详解(三)----------装饰者模式

    今天LZ带给大家的是装饰者模式,提起这个设计模式,LZ心里一阵激动,这是LZ学习JAVA以来接触的第一个设计模式,也许也是各位接触的第一个设计模式.记得当初老师在讲IO的时候就提到过它:“是你还有你, ...