你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用社区库共享映像

要与所有 Azure 用户共享库,可以创建社区库。 任何拥有 Azure 订阅的人都可以使用社区库。 创建 VM 的人可使用门户、REST 或 Azure CLI 浏览与社区共享的映像。

将映像共享到社区是 Azure Compute Gallery 中的一项新功能。 可以公开映像库并与将其共享给所有 Azure 客户。 如果某个库被标记为社区库,则该库下的所有映像都将作为 Microsoft.Compute/communityGalleries 下的新资源类型提供给所有 Azure 客户。 所有 Azure 客户均可查看这些库并使用它们来创建 VM。 Microsoft.Compute/galleries 类型的原始资源仍位于订阅中,并且是专用资源。

重要

Microsoft 不为共享到社区的映像提供支持。

Azure 计算库中有三种共享映像的主要方法,具体取决于要与谁共享:

共享对象: 人员 Service Principal 特定订阅(或)租户中的所有用户 与 Azure 中的所有用户公开共享
RBAC 共享
RBAC + 直接共享库
RBAC + 社区库 No

注意

请注意,映像可在具有读取权限的情况下用于部署虚拟机和磁盘。

使用直接共享库时,映像将广泛分发给订阅/租户中的所有用户,而社区库则会公开分发映像。 建议谨慎共享包含知识产权的映像,以防止广泛分发。

免责声明

Microsoft 不会验证或测试社区映像和关联的发布者信息。 你对部署或使用的任何社区映像全权负责。 你负责与映像发布者的交易。 有关已批准的操作系统基础映像,请参阅:已批准的基础映像。 有关经验证的发布者创建的其他映像,请参阅 Azure 市场

共享给社区的映像的限制

将库共享到社区存在一些限制:

  • 无法将现有的专用库(已启用 RBAC 的库)转换为社区库。
  • 不能使用市场中的第三方映像并将其发布到社区。 有关已批准的操作系统基础映像的列表,请参阅:已批准的基础映像
  • 不支持加密的映像
  • 需要在库所在的同一区域中创建映像资源。 例如,如果在美国西部创建库,并希望提供映像定义和映像版本,则应在美国西部创建它们。
  • 不能将 VM 应用程序共享到社区。

与社区共享的工作原理

Microsoft.Compute/Galleries创建库资源,然后选择 community 作为共享选项。

准备就绪后,将库标记为已准备好公开共享。 只有订阅的所有者或在订阅或库级别具有 Compute Gallery Sharing Admin 角色的用户或服务主体才能将库公开给社区。 此时,Azure 基础结构会在 Microsoft.Compute/CommunityGalleries 下创建代理只读区域公开资源。

最终用户只能与代理资源交互,他们永远不会与专用资源交互。 作为专用资源的发布者,你应将专用资源视为公共代理资源的句柄。 将创建库时提供的 prefix 与唯一的 GUID 结合使用,以为库创建面向公众的名称。

Azure 用户可在门户中查看共享给社区的最新映像版本,也可使用 CLI 查询这些版本。 社区库中仅列出最新版本的映像。

创建社区库时,需要提供映像的联系人信息。 此信息的目的和基本意图是促进映像使用者与发布者之间的通信,例如,如果使用者需要帮助。 Microsoft 不提供对这些映像的支持。 此信息将公开显示,因此在提供该信息时要小心:

  • 社区库前缀
  • 发布者支持电子邮件
  • 发布者 URL
  • 法律协议 URL(请勿在“法律协议 URL”字段中输入机密、密码、SASURI 等)

映像定义中的信息也将公开提供,例如为发布者、套餐和 SKU 提供的信息。

警告

如果要停止公开共享库,可以更新库以停止共享,但将库设置为专用会阻止现有的虚拟机规模集用户缩放其资源。

为什么与社区共享?

作为内容发布者,你可能希望与社区共享库:

  • 如果你有要在 Azure 上广泛共享的非商业、非专有内容。

  • 你希望更好地控制版本数、区域数和映像可用性的持续时间。

  • 你希望与客户快速共享白天或夜间的生成。

  • 在 Azure 上与多个租户共享时,你不想处理多租户身份验证的复杂性。

你可能会出于多种原因想要使用 Azure 市场映像而不是社区库映像。 选择 Azure 市场映像的主要原因是 Microsoft 支持这些映像,而社区映像则不受支持。

为什么使用市场映像?

  • Microsoft 认证映像
  • 可用于生产工作负载
  • 第一方和第三方映像
  • 具有其他软件产品/服务的付费映像
  • 受 Microsoft 支持

何时使用社区映像?

  • 你信任并知道如何联系发布者
  • 你正在寻找开放源代码社区发布的映像的社区版本
  • 使用映像进行测试
  • 社区映像是免费的
  • 受映像所有者(而不是 Microsoft)支持。

报告与社区映像有关的问题

使用社区提交的虚拟机映像存在多种风险。 映像可能包含恶意软件、安全漏洞或侵犯某人的知识产权。 为了帮助为社区创建安全可靠的体验,可以在发现这些问题时报告映像。

报告社区图库问题的最简单方法是使用门户,该门户将预先填写报告信息:

  • 对于映像定义字段中的链接或其他信息的问题,请选择“报告社区映像”。
  • 如果映像版本包含恶意代码或特定版本的映像存在其他问题,请选择映像版本表中“报告版本”列下的“报告”。

还可以使用以下链接来报告问题,但系统不会预先填充表单:

最佳实践

  • 发布到社区库的映像应是已移除敏感信息或计算机特定信息的通用映像。 有关准备映像的详细信息,请参阅 LinuxWindows 的 OS 特定信息。
  • 如果想要阻止在组织级别将映像共享到社区,请使用以下策略规则创建一个 Azure 策略,以拒绝与社区共享。
  "policyRule": {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.Compute/galleries"
          },
          {
            "field": "Microsoft.Compute/galleries/sharingProfile.permissions",
            "equals": "Community"
          }
        ]
      },
      "then": {
        "effect": "[parameters('effect')]"
      }
    }

常见问题

问:使用共享给社区的库如何收费?

答:可以免费使用该服务。 但是,内容发布者将按以下方式收费:

  • 每个区域(源和目标)中的应用程序版本和副本的存储费用。 这些费用取决于所选的存储帐户类型。
  • 跨区域复制的网络出口费用。

如果基础映像使用包含付费软件的 Azure 市场映像,则该映像的使用者可能需要支付额外的软件费用。

问:使用共享到社区的映像是否安全?

:用户在使用来自未经验证的源的映像时应保持谨慎,因为这些映像没有经过验证,梅雨进行恶意软件/漏洞扫描,并且发布者详细信息也未经验证。

问:如果共享给社区的映像不起作用,我应该联系谁以获得支持?

答:Azure 不对用户在使用社区共享的映像时可能遇到的任何问题负责。 支持由映像发布者提供。 请查找映像发布者联系人信息,并与其联系以获取任何支持。

问:社区库共享功能是否是 Azure 市场的一部分?

:否,社区库共享不是 Azure 市场的一部分,它是“Azure Compute Gallery”的一项功能。 拥有 Azure 订阅的任何人都可以使用“社区库”并公开其映像。

问:我对映像有疑问,应该联系谁?

答:对于共享到社区的映像的问题:

  • 若要报告恶意映像,请联系滥用报告
  • 若要报告可能侵犯知识产权的映像,请联系侵权报告

问:如何请求将共享到社区的映像复制到特定区域?

答:只有内容发布者才能控制其映像可用的区域。 如果在特定区域中找不到映像,请直接与发布者联系。

开始公开共享

要公开共享库,需要将其创建为社区库。 有关详细信息,请参阅创建社区库

准备好公开发布库后,使用 az sig share enable-community 启用社区库。 只有 Owner 角色定义中的用户才能为社区共享启用库。

az sig share enable-community \
   --gallery-name $galleryName \
   --resource-group $resourceGroup 

若要仅返回到基于 RBAC 的共享,请使用 az sig share reset 命令。

若要删除共享到社区的库,必须先运行 az sig share reset 以停止共享,然后才能删除库。

重要

如果你被列为订阅的所有者,但在公开共享库时遇到问题,则可能需要显式再次将自己添加为所有者

若要仅返回到基于 RBAC 的共享,请使用 az sig share reset 命令。

若要删除共享到社区的库,必须先运行 az sig share reset 以停止共享,然后才能删除库。

后续步骤

创建映像定义和映像版本

从社区库中的通用专用映像创建 VM。