您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

对虚拟机认证进行故障排除

当你将虚拟机 (VM) 映像发布到 Azure 市场时,Azure 团队会对映像进行验证,以确保它可启动、与 Azure 兼容并且是安全的。 如果 VM 映像未通过任何高质量测试,则不会发布该映像。 你将收到一条说明此问题的错误消息。

本文介绍 VM 映像发布过程中的常见错误消息,以及相关解决方案。

备注

如果你对本文有疑问或想提出改进建议,请联系合作伙伴中心支持

VM 扩展失败

查看映像是否支持 VM 扩展。

启用 VM 扩展:

  1. 选择 Linux VM。

  2. 转到“诊断设置”。

  3. 通过更新“存储帐户”启用基础映像矩阵。

  4. 选择“保存”。

    屏幕截图显示如何启用来宾级别监视。

验证 VM 扩展是否已正确激活:

  1. 在 VM 中,选择“VM 扩展”选项卡,然后验证“Linux 诊断扩展”的状态 。

  2. 检查预配状态。

    • 如果状态为“预配成功”,说明已通过扩展测试用例。
    • 如果状态为“预配失败”,说明扩展测试用例失败,需要设置强化标志。

    屏幕截图显示预配成功。

    如果 VM 扩展失败,请参阅使用 Linux 诊断扩展监视指标和日志以启用该扩展。 如果不希望启用 VM 扩展,请联系支持团队,要求其禁用该扩展。

VM 预配问题

在提交产品/服务之前,请检查并确保已严格遵循 VM 预配流程。 若要查看用于预配 VM 的 JSON 格式,请参阅测试虚拟机映像

预配问题可能包括以下故障场景:

方案 错误 Reason 解决方案
1 虚拟硬盘 (VHD) 无效 如果 VHD 页脚中指定的 cookie 值不正确,VHD 将被视为无效。 重新创建映像并提交请求。
2 Blob 类型无效 VM 预配失败,原因是使用的 blob 是块类型而不是页类型。 将映像重新创建为页类型并提交请求。
3 预配超时或未正确泛化 VM 泛化出现问题。 重新创建泛化映像并提交请求。

备注

有关 VM 泛化的详细信息,请参阅:

备注

如果预配因 VM 映像需要自定义 ARM 模板进行部署而失败,请勾选合作伙伴中心的“技术配置”页中的“需要自定义 ARM 模板进行部署”复选框。 这样,认证团队就可以针对此请求采取适当的措施,而不会让它因预配问题而无法通过认证。

“自定义 ARM 模板”复选框

VHD 规范

“conectix”字符串是 VHD 规范的一部分。 它在 VHD 页脚中定义为 8 字节 cookie,用于标识文件创建器。 Microsoft 创建的所有 VHD 文件都有此 cookie。

VHD 格式的 Blob 应具有以下格式的 512 字节页脚:

硬盘页脚字段 大小(字节)
Cookie 8
功能 4
文件格式版本 4
数据偏移 8
时间戳 4
创建器应用程序 4
创建器版本 4
创建器主机操作系统 4
原始大小 8
当前大小 8
磁盘几何 4
磁盘类型 4
校验和 4
唯一 ID 16
保存状态 1
保留 427

VHD 规范

若要确保发布体验流畅,请确保 VHD 满足以下条件:

  • Cookie 包含字符串“conectix”。
  • 磁盘类型是固定的。
  • VHD 的虚拟大小至少为 20 MB。
  • VHD 已对齐。 虚拟大小必须是 1 MB 的倍数。
  • VHD Blob 长度等于虚拟大小加上 VHD 页脚长度 (512)。

下载 VHD 规范

Windows 的软件合规性

如果 Windows 映像请求因软件合规性问题而被拒绝,说明你可能使用了安装的 SQL Server 实例创建了 Windows 映像。 但你需要从 Azure 市场获取相关的 SQL Server 版本基础映像。

请勿使用其上安装的 SQL Server 创建自己的 Windows 映像。 应使用 Azure 市场中已批准的 SQL Server 基础映像(企业/标准/Web)。

如果你正在尝试安装 Visual Studio 或任何 Office 许可的产品,请联系支持团队以获得预先批准。

有关选择批准的基础映像的详细信息,请参阅通过批准的基础映像创建虚拟机

工具包测试用例执行失败

Microsoft 认证工具包可帮助运行测试用例,并验证 VHD 或映像是否与 Azure 环境兼容。

下载 Microsoft 认证工具包

Linux 测试用例

下表列出了工具包将运行的 Linux 测试用例。 描述中说明了测试验证。

方案 测试用例 描述
1 Bash 历史记录 应在创建 VM 映像之前清除 Bash 历史记录文件。
2 Linux 代理版本 应安装 Azure Linux 代理 2.2.41 或更高版本。
3 必需的内核参数 验证是否已设置以下内核参数:
console=ttyS0
earlyprintk=ttyS0
rootdelay=300
4 OS 磁盘上的交换分区 验证是否未在 OS 磁盘上创建交换分区。
5 OS 磁盘上的根分区 为 OS 磁盘创建一个根分区。
6 OpenSSL 版本 OpenSSL 版本应为 v0.9.8 或更高版本。
7 Python 版本 强烈建议使用 Python 2.6 或更高版本。
8 客户端活动间隔 将 ClientAliveInterval 设置为 180。 可设置为 30 至 235,具体取决于应用程序需要。 如果要为最终用户启用 SSH,必须按照说明设置此值。
9 操作系统体系结构 仅支持 64 位操作系统。
10 自动更新 确定是否已启用 Linux 代理自动更新。

常见的测试用例错误

有关运行测试用例时可能会看到的常见错误,请参阅下表:

方案 测试用例 错误 解决方案
1 Linux 代理版本测试用例 最低 Linux 代理版本为 2.2.41 或更高版本。 此要求自 2020 年 5 月 1 日起成为强制性要求。 更新 Linux 代理版本。 应为 2.241 或更高版本。 有关详细信息,请访问 Linux 代理版本更新页
2 Bash 历史记录测试用例 如果提交的映像中的 Bash 历史记录大小超过 1 KB,则会发生错误。 大小限制为 1 KB,以确保 Bash 历史记录文件不包含任何可能敏感的信息。 解决方法是将 VHD 装载到另一台工作 VM,并进行更改以将大小减小到 1 KB 或更少。 例如,删除 .bash_history 文件。
3 必需的内核参数测试用例 console 的值未设置为 ttyS0 时,会收到此错误。 运行以下命令进行检查:
cat /proc/cmdline
console 的值设置为 ttyS0,然后重新提交请求。
4 ClientAlive 间隔测试用例 如果工具包指示此测试用例结果失败,则说明 ClientAliveInterval 的值不恰当。 ClientAliveInterval 的值设置为小于或等于 235,然后重新提交请求。

Windows 测试用例

下表列出了工具包将运行的 Windows 测试用例,以及测试验证的描述:

方案 测试事例 描述
1 操作系统体系结构 Azure 仅支持 64 位操作系统。
2 用户帐户依赖项 应用程序的执行不应依赖于管理员帐户。
3 故障转移群集 目前不支持 Windows Server 故障转移群集功能。 应用程序不应依赖于此功能。
4 IPV6 Azure 环境目前不支持 IPv6。 应用程序不应依赖于此功能。
5 DHCP 目前不支持动态主机配置协议服务器角色。 应用程序不应依赖于此功能。
6 Hyper-V 目前不支持 Hyper-V 服务器角色。 应用程序不应依赖于此功能。
7 远程访问 目前不支持远程访问(直接访问)服务器角色。 应用程序不应依赖于此功能。
8 权限管理服务 权限管理服务。 目前不支持该服务器角色。 应用程序不应依赖于此功能。
9 Windows 部署服务 Windows 部署服务。 目前不支持该服务器角色。 应用程序不应依赖于此功能。
10 BitLocker 驱动器加密 BitLocker 驱动器加密在操作系统硬盘上不受支持,但它可在数据磁盘上使用。
11 Internet 存储名称服务器 目前不支持 Internet 存储名称服务器功能。 应用程序不应依赖于此功能。
12 多路径 I/O 多路径 I/O。 此服务器功能目前不受支持。 应用程序不应依赖于此功能。
13 Network Load Balancing 网络负载均衡。 目前不支持此服务器功能。 应用程序不应依赖于此功能。
14 对等名称解析协议 对等名称解析协议。 目前不支持此服务器功能。 应用程序不应依赖于此功能。
15 SNMP 服务 目前上不支持简单网络管理协议 (SNMP) 服务功能。 应用程序不应依赖于此功能。
16 Windows Internet 名称服务 Windows Internet 名称服务。 目前不支持此服务器功能。 应用程序不应依赖于此功能。
17 无线 LAN 服务 无线 LAN 服务。 目前不支持此服务器功能。 应用程序不应依赖于此功能。

如果前面有测试用例失败,请参阅表中的“描述”列,获取该解决方案。 有关详细信息,请联系支持团队。

数据磁盘大小验证

大于 1023 GB 的数据磁盘请求不会获得批准。 本规则同时适用于 Linux 和 Windows。

重新提交小于或等于 1023 GB 的请求。

OS 磁盘大小验证

有关 OS 磁盘大小的限制,请参阅以下规则。 提交任何请求时,验证 OS 磁盘大小是否在 Linux 或 Windows 的限制范围内。

OS 建议的 VHD 大小
Linux 1 GB 到 1023 GB
Windows 30 GB 到 250 GB

因为 VM 允许访问基础操作系统,所以请确保 VHD 大小对于该 VHD 而言足够大。 如果不停机,磁盘无法进行扩展。 使用 30 GB 到 50 GB 的磁盘大小。

VHD 大小 实际占用的大小 解决方案
>500 TiB 不适用 请联系支持团队以获取例外批准。
250-500 TiB 与 Blob 大小的差异 >200 GiB 请联系支持团队以获取例外批准。

备注

磁盘越大,成本就越高,并且大型数据磁盘会导致在设置和复制过程中出现延迟。 由于这种延迟和成本,支持团队可能会要求提供例外批准的理由。

Windows 的 WannaCry 修补程序验证测试

若要防范与 WannaCry 病毒相关的潜在攻击,请确保使用最新的修补程序更新所有 Windows 映像请求。

可从 C:\windows\system32\drivers\srv.syssrv2.sys 验证映像文件版本。

下表显示了 Windows Server 的最低修补版本:

(OS) Version
Windows Server 2008 R2 6.1.7601.23689
Windows Server 2012 6.2.9200.22099
Windows Server 2012 R2 6.3.9600.18604
Windows Server 2016 10.0.14393.953
Windows Server 2019 NA

备注

Windows Server 2019 没有任何强制性版本要求。

SACK 漏洞修补程序验证

提交 Linux 映像时,你的请求可能会因为内核版本问题而被拒绝。

将内核更新为已批准的版本,然后重新提交请求。 可在下表中查找已批准的内核版本。 版本号应等于或大于此处列出的编号。

如果你的映像没有安装以下任一内核版本,请使用正确的修补程序更新它。 在用以下必需的修补程序更新映像后,请向支持团队请求所需批准:

  • CVE-2019-11477
  • CVE-2019-11478
  • CVE-2019-11479
OS 系列 版本 内核
Ubuntu 14.04 LTS 4.4.0-151
14.04 LTS 4.15.0-1049-*-azure
16.04 LTS 4.15.0-1049
18.04 LTS 4.18.0-1023
18.04 LTS 5.0.0-1025
18.10 4.18.0-1023
19.04 5.0.0-1010
19.04 5.3.0-1004
RHEL 和 Cent OS 6.10 2.6.32-754.15.3
7.2 3.10.0-327.79.2
7.3 3.10.0-514.66.2
7.4 3.10.0-693.50.3
7.5 3.10.0-862.34.2
7.6 3.10.0-957.21.3
7.7 3.10.0-1062.1.1
8.0 4.18.0-80.4.2
8.1 4.18.0-147
“7-RAW”(7.6)
“7-LVM”(7.6) 3.10.0-957.21.3
RHEL-SAP 7.4 TBD
RHEL-SAP 7.5 TBD
SLES SLES11SP4(包括 SAP) 3.0.101-108.95.2
适用于 SAP 的 SLES12SP1 3.12.74-60.64.115.1
适用于 SAP 的 SLES12SP2 4.4.121-92.114.1
SLES12SP3 4.4180-4.31.1 (kernel-azure)
适用于 SAP 的 SLES12SP3 4.4.180-94.97.1
SLES12SP4 4.12.14-6.15.2 (kernel-azure)
适用于 SAP 的 SLES12SP4 4.12.14-95.19.1
SLES15 4.12.14-5.30.1 (kernel-azure)
适用于 SAP 的 SLES15 4.12.14-5.30.1 (kernel-azure)
SLES15SP1 4.12.14-5.30.1 (kernel-azure)
Oracle 6.10 UEK2 2.6.39-400.312.2
UEK3 3.8.13-118.35.2
RHCK 2.6.32-754.15.3
7.0-7.5 UEK3 3.8.13-118.35.2
UEK4 4.1.12-124.28.3
RHCK 遵循上述 RHEL
7.6 RHCK 3.10.0-957.21.3
UEK5 4.14.35-1902.2.0
CoreOS Stable 2079.6.0 4.19.43*
Beta 2135.3.1 4.19.50*
Alpha 2163.2.1 4.19.50*
Debian jessie(安全性) 3.16.68-2
jessie 向后移植 4.9.168-1+deb9u3
stretch(安全性) 4.9.168-1+deb9u3
Debian GNU/Linux 10 (buster) Debian 6.3.0-18+deb9u1
buster、sid(延伸向后移植) 4.19.37-5

映像大小应为兆字节的倍数

Azure 上的所有 VHD 必须已将虚拟大小调整为 1 MB 的倍数。 如果 VHD 不符合建议的虚拟大小,你的请求可能会被拒绝。

将原始磁盘转换为 VHD 时,请遵循指导原则。 确保原始磁盘大小为 1 MB 的倍数。 有关详细信息,请参阅有关未认可分发版的信息

VM 访问被拒绝

在 VM 上运行测试用例时出现的访问被拒绝问题可能是由于权限不足引起的。

检查是否已为运行自测试用例的帐户启用了正确的访问权限。 如果未启用,请启用运行测试用例所需的访问权限。 如果不希望启用访问权限,可以将自测试用例结果分享给支持团队。

通过禁用 SSH 的映像来提交请求以进行认证:

  1. 在映像上运行适用于 Azure VM 的最新认证测试工具

  2. 提交一个支持票证。 确保附加了工具包报告并提供产品/服务详细信息:

    • 产品名称
    • 发布者名称
    • 规划 ID/SKU 和版本
  3. 重新提交认证请求。

备注

如果要发布已禁用或限制 ssh 的锁定 VM 映像,请勾选合作伙伴中心的“技术配置”页中的“远程桌面或 SSH 已禁用”复选框。 这样就会告知认证团队这是设计使然,该团队就会对映像进行正确的验证,而不会因为访问受限问题而让其无法通过认证。

锁定复选框

下载失败

使用共享访问签名 (SAS) URL 下载 VM 映像时如果出现问题,可参考下表。

错误 Reason 解决方案
找不到 Blob VHD 可能已被删除或已从指定位置移走。
Blob 正在使用中 VHD 被另一个内部进程使用。 使用 SAS URL 下载 VHD 时,VHD 应处于已使用状态。
SAS URL 无效 VHD 关联的 SAS URL 不正确。 获取正确的 SAS URL。
签名无效 VHD 关联的 SAS URL 不正确。 获取正确的 SAS URL。
HTTP 条件性标头 SAS URL 无效。 获取正确的 SAS URL。
VHD 名称无效 检查 VHD 名称中是否存在任何特殊字符,如百分号 % 或引号 " 通过删除特殊字符来重命名 VHD 文件。

VM 映像必须具有 1 MB 可用空间

备注

从 2021 年 9 月 30 日起,如果正在将映像发布到 Azure(使用 GPT 分区),请确保操作系统磁盘的首个 2048 扇区 (1 MB) 为空。 否则,你的发布将失败。 该要求使 Azure 能够将重要位添加到映像(示例将位包含在内,以缩短客户的启动时间,改善计费和其他细节)。

如果要构建自己的映像,请确保 OS 磁盘的前 2048 个扇区 (1 MB) 为空。 否则,你的发布将失败。 此要求仅适用于 OS 磁盘(而非数据磁盘)。 如果要从已批准的基础映像构建映像,可跳过这一要求。

如何在一个空的 VHD 上保留 1 MB 的可用空间(2048 个扇区,每个扇区 512 字节)

这些步骤仅适用于 Linux。

  1. 创建任意类型的 Linux VM,如 Ubuntu、Cent OS 或其他类型。 填写必填字段,然后选择“下一步: 磁盘 >”。

    屏幕截图显示“创建虚拟机”页,其中突出显示了“下一步: 磁盘命令”按钮。

  2. 为 VM 创建非托管磁盘。

    使用默认值,或为 NIC、NSG 和公共 IP 等字段指定任意值。

    “创建虚拟机”流中“数据磁盘”页的屏幕截图。

  3. 创建 VM 后,在左窗格中选择“磁盘”。

    显示如何为 VM 选择磁盘的屏幕截图。

  4. 将 VHD 作为数据磁盘附加到 VM 以创建分区表。

    1. 选择“添加 DataDisk” > “现有 Blob” 。

      显示如何将数据磁盘添加到 VHD 的屏幕截图。

    2. 查找你的 VHD 存储帐户。

    3. 选择“容器”,然后选择 VHD。

    4. 选择“确定”。

      “附加托管磁盘”页的屏幕截图。

      VHD 将添加为数据磁盘 LUN 0。

    5. 重启 VM。

  5. 重启 VM 后,使用 Putty 或其他客户端登录到 VM,并运行 sudo -i 命令以获取根访问权限。

    Putty 客户端命令行屏幕截图显示 sudo -i 命令。

  6. 在 VHD 上创建分区。

    1. 输入 fdisk /dev/sdb 命令。

    2. 若要从 VHD 查看现有分区列表,请输入 p

    3. 输入 d 以删除 VHD 中所有可用的现有分区。 如果不需要,可以跳过此步骤。

      Putty 客户端命令行屏幕截图显示了用于删除现有分区的命令。

    4. 输入 n 以创建新分区,并选择 p 作为主分区。

    5. 输入 2048 作为第一个扇区值。 可保留最后一个扇区作为默认值。

      重要

      对于 2048 扇区之前的扇区,所有现有数据都将被清除(每个扇区 512 字节)。 创建新分区之前先备份 VHD。

      Putty 客户端命令行屏幕截图显示针对已清除的数据的命令和输出。

    6. 键入 w 以确认创建分区。

      Putty 客户端命令行屏幕截图显示了用于创建分区的命令。

    7. 可通过运行命令 n fdisk /dev/sdb 并键入 p 来验证分区表。 你将看到创建的分区的偏移值为 2048。

      Putty 客户端命令行屏幕截图显示了用于创建 2048 偏移的命令。

  7. 从 VM 中分离 VHD 并删除 VM。

如何通过移动 VHD 上的现有数据来保留 1 MB 的可用空间(2048 个扇区,每个扇区 512 字节)

这些步骤仅适用于 Linux。

  1. 创建任意类型的 Linux VM,如 Ubuntu、Cent OS 或其他类型。 填写必填字段,然后选择“下一步: 磁盘 >”。

    屏幕截图显示“创建虚拟机”页,其中突出显示了“下一步: 磁盘命令”按钮。

  2. 为 VM 创建非托管磁盘。

    “创建虚拟机”流中“数据磁盘”页的屏幕截图。

    使用默认值,或为 NIC、NSG 和公共 IP 等字段指定任意值。

  3. 创建 VM 后,在左窗格中选择“磁盘”。

    显示如何为 VM 选择磁盘的屏幕截图。

  4. 将 VHD 作为数据磁盘附加到 VM 以创建分区表。

    1. 将 VHD 作为数据磁盘附加到 VM 以创建分区表。

    2. 选择“添加 DataDisk” > “现有 Blob” 。

      显示如何将数据磁盘添加到 VHD 的屏幕截图。

    3. 查找你的 VHD 存储帐户。

    4. 选择“容器”,然后选择 VHD。

    5. 选择“确定”。

      “附加托管磁盘”页的屏幕截图。

      VHD 将添加为数据磁盘 LUN 0。

    6. 重启 VM。

  5. 使用 Putty 或其他客户端登录到 VM,并运行 sudo -i 命令来获取根访问权限。

    Putty 客户端命令行屏幕截图显示登录和 sudo -i 命令。

  6. 运行命令 echo '+1M,' | sfdisk --move-data /dev/sdc -N 1

    Putty 客户端命令行屏幕截图显示命令的执行。

    备注

    此命令可能需要一些时间才能完成,因为它取决于磁盘的大小。

  7. 从 VM 中分离 VHD 并删除 VM。

默认凭据

切勿将默认凭据与已提交的 VHD 一起发送。 添加默认凭据会使 VHD 更容易受到安全威胁的攻击。 请改为在提交 VHD 时创建自己的凭据。

DataDisk 映射不正确

当提交的请求包含多个未按顺序排列的数据磁盘时,可能会出现映射问题。 例如,三个数据磁盘的编号顺序必须是 0、1、2。 任何其他顺序都被视为映射问题。

使用正确的数据磁盘顺序重新提交请求。

OS 映射不正确

创建映像时,它可能被映射到或被分配了错误的 OS 标签。 例如,在创建映像时,如果选择 Windows 作为 OS 名称的一部分,那么 OS 磁盘在安装时应仅附带 Windows。 这一要求也适用于 Linux。

VM 未泛化

如果要重复使用从 Azure 市场获取的所有映像,则必须泛化操作系统 VHD。

  • 对于 Linux,以下过程将泛化 Linux VM,并将其重新部署为单独的 VM。

    在 SSH 窗口中,输入以下命令:sudo waagent -deprovision+user

  • 对于 Windows,通过使用 sysreptool 来泛化 Windows 映像。

    有关 sysreptool 工具的详细信息,请参阅系统准备 (Sysprep) 概述

DataDisk 错误

有关与数据磁盘相关的错误的解决方案,请使用下表:

错误 Reason 解决方案
DataDisk- InvalidUrl: 此错误可能是由于提交产品/服务时逻辑单元号 (LUN) 无效所导致的。 验证合作伙伴中心是否存在数据磁盘的该 LUN 编号序列。
DataDisk- NotFound: 出现此错误的原因可能是数据磁盘未位于指定的 SAS URL。 验证数据磁盘是否位于指定的 SAS URL。

远程访问问题

如果没有为 Windows 映像启用远程桌面协议 (RDP) 选项,则会出现此错误。

提交 Windows 映像之前为其启用 RDP 访问。

Bash 历史记录失败

如果提交的映像中的 Bash 历史记录大小超过 1 KB,则会出现此错误。 大小限制为 1 KB,以限制文件包含敏感信息的可能性。

删除 Bash 历史记录:

  1. 部署 VM,并选择 Azure 门户上的“运行命令”选项。

    显示左窗格中“运行命令”选项的 Azure 门户屏幕截图。

  2. 选择第一个选项 RunShellScript,然后运行以下命令:cat /dev/null > ~/.bash_history && history -c

    Azure 门户上的“运行命令脚本”页面的屏幕截图。

  3. 成功运行该命令后,重启 VM。

  4. 泛化 VM,获取映像 VHD,然后停止 VM。

  5. 重新提交泛化映像。

针对所选测试请求 VM 映像例外

发布者可以为 VM 认证期间执行的几个测试请求例外。 在发布者提供了证据来支持请求的情况下,一般很少会允许例外。 认证团队保留随时拒绝或批准例外的权利。

本节介绍发布者请求例外的一般情况以及请求例外的方式。

例外情况

发布者通常在下列情况下请求例外:

  • 一个或多个测试用例的例外。 联系合作伙伴中心支持以请求测试用例的例外。

  • 锁定的 VM/无根访问权限。 有少数发布者存在这样的情况:由于其 VM 上安装了防火墙之类的软件,因此需要锁定 VM。 对于这种情况,请下载已认证的测试工具,并在合作伙伴中心支持处提交报告。

  • 自定义模板。 某些发布者发布的 VM 映像需要自定义 Azure 资源管理器 (ARM) 模板来部署 VM。 对于这种情况,请在合作伙伴中心支持处提交自定义模板,以便认证团队可以使用该模板进行验证。

要提供的例外情况信息

联系合作伙伴中心支持,为其中某种情况请求例外,并提供以下信息:

  • 发布者 ID。 键入合作伙伴中心门户发布者 ID。

  • 产品/服务 ID/名称。 输入产品/服务 ID 或名称。

  • SKU/计划 ID。 键入 VM 产品/服务计划 ID 或 SKU。

  • 版本。 输入需要例外的 VM 产品/服务版本。

  • 异常类型。 从测试、锁定的 VM 或自定义模板中选择。

  • 请求原因。 包含请求例外的原因,以及有关免除测试的任何信息。

  • 时间线。 输入所需例外的结束日期。

  • 附件。 附加重要证据文档:

    • 对于锁定的 VM,请附加测试报告。
    • 对于自定义模板,请提供自定义 ARM 模板作为附件。

    如果未包含这些附件,请求将被拒绝。

解决 VM 产品/服务中的漏洞或攻击

本节介绍在某个 VM 映像中发现漏洞或攻击时如何提供新的 VM 映像。 这仅适用于发布到 Azure 市场的 Azure VM 产品/服务。

备注

不能从计划中删除最后一个 VM 映像,也不能停止销售产品/服务的最后一个计划。

执行下列操作之一:

提供固定的 VM 映像

若要提供固定的 VM 映像来替换有漏洞或易受攻击的 VM 映像,请执行以下操作:

  1. 提供新的 VM 映像来解决安全漏洞或攻击。
  2. 删除具有安全漏洞或易受攻击的 VM 映像。
  3. 重新发布产品/服务。

提供新的 VM 映像来解决安全漏洞或攻击

若要完成这些步骤,请为要添加的 VM 映像准备技术资产。 有关详细信息,请参阅使用已批准的基础映像创建虚拟机使用自己的映像创建虚拟机,以及为 VM 映像生成 SAS URI

  1. 登录合作伙伴中心

  2. 在“主页”上,选择“市场产品/服务”磁贴。

  3. 在“产品/服务别名”列中,选择产品/服务。

  4. 选择“计划概览”选项卡,然后选择适当的计划。

  5. 在“技术配置”选项卡的“VM 映像”下,选择“+ 添加 VM 映像” 。

    备注

    一次只能向一个计划添加一个 VM 映像。 若要添加多个 VM 映像,请先发布第一个 VM 映像,然后再添加下一个 VM 映像。

  6. 在出现的框中,提供新的磁盘版本和虚拟机映像。

  7. 选择“保存草稿”。

接下来,删除具有安全漏洞的 VM 映像。

删除具有安全漏洞或易受攻击的 VM 映像

  1. 登录合作伙伴中心
  2. 在“主页”上,选择“市场产品/服务”磁贴。
  3. 在“产品/服务别名”列中,选择产品/服务。
  4. 选择“计划概览”选项卡,然后选择适当的计划。
  5. 在“技术配置”选项卡的“VM 映像”下,在要删除的 VM 映像旁边选择“删除 VM 映像” 。
  6. 在对话框中,选择“继续”。
  7. 选择“保存草稿”。

接下来,重新发布产品/服务。

重新发布产品/服务

  1. 选择“查看和发布”。
  2. 如果需要向认证团队提供任何信息,请将信息添加到“认证说明”框中。
  3. 选择“发布”。

若要完成发布过程,请参阅查看和发布产品/服务

具有有限访问权限或需要自定义模板的 VM 映像

锁定的(或)禁用了 SSH 的产品/服务

在禁用 SSH(对于 Linux)或禁用 RDP(对于 Windows)的情况下发布的映像将被视为锁定的 VM。 有一些特殊的业务方案,出于其特殊性,发布者不向任何用户/只向少数用户提供有限的访问权限。

在验证检查期间,锁定的 VM 可能不允许执行某些认证命令。

自定义模板

通常,在单个 VM 产品/服务下发布的所有映像都将遵循标准 ARM 模板进行部署。 但在某些情况下,发布者在部署 VM 时可能需要进行自定义(例如配置多个 NIC)。

根据以下方案(非详尽),发布者将使用自定义模板部署 VM:

  • VM 需要额外的网络子网。
  • ARM 模板中要插入其他元数据。
  • 执行 ARM 模板前作为先决条件的命令。

VM 扩展

Azure 虚拟机 (VM) 扩展是小型应用程序,可在 Azure VM 上提供部署后配置和自动化任务。 例如,如果某个虚拟机需要安装软件、防病毒保护或运行脚本,便可以使用 VM 扩展。

Linux VM 扩展验证要求映像包含以下内容:

  • 高于 2.2.41 的 Azure Linux 代理版本
  • 高于 2.8 的 Python 版本

有关详细信息,请访问 VM 扩展

后续步骤