View a markdown version of this page

使用映像生成器导入经过验证的 Windows ISO 磁盘映像 - EC2 Image Builder

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用映像生成器导入经过验证的 Windows ISO 磁盘映像

Windows 操作系统 ISO 文件是一个磁盘映像文件,其中包含特定版本 Windows 操作系统的完整安装包。微软提供官方的Windows操作系统ISO文件供下载,可以直接从其网站下载,也可以通过授权经销商下载。为避免潜在的恶意软件或未经授权的版本,请从可信的合法来源获取 ISO 文件。

EC2 映像生成器使用build-image-from-iso导入工作流程导入 ISO 磁盘文件并从中创建辅助卷。配置完成后,映像生成器会拍摄其在导入过程中创建的卷的快照,并使用它来创建亚马逊系统映像 (AMI)。

导入 ISO 磁盘映像的安全注意事项

您提供的 ISO 磁盘映像为输出 AMI 提供操作系统。在导入过程中,映像生成器会挂载 ISO 并应用其包含的 Windows 映像。

导入过程运行从 ISO 和应用的 Windows 映像解析的可执行文件。这些可执行文件在构建实例上以 SYSTEM 权限运行,使用您为导入指定的基础架构配置中的实例配置文件角色。

由于 ISO 提供操作系统,因此获取真实媒体是您的责任。来自不可信来源的 ISO 可能会影响输出 AMI 以及您从中启动的任何实例。从微软或授权经销商处获取 ISO 文件。

针对基础架构配置启动导入的权限包括在该配置的实例配置文件角色下运行的能力。Image Builder 会在您创建基础架构配置iam:PassRole时进行评估,而不是在您开始导入时进行评估。我们建议您仅向您信任的具有实例配置文件角色的委托人授予开始导入的权限。

有关更多信息,请参阅 数据保护和 AWS 映像生成器中的责任共担模型。

导入 ISO 磁盘映像支持的操作系统

映像生成器支持以下 Windows 操作系统 ISO 磁盘映像:

  • Windows 11 企业版 25H2 (x64)

  • Windows 11 企业版 24H2 (x64)

  • Windows 11 企业版 23H2 (x64)

映像生成器不支持以下 Windows 操作系统 ISO 磁盘映像:

  • Long-Term 服务频道 (LTSC) 图片

  • 通过 Windows 媒体创建工具创建的 ISO 磁盘映像

  • 评估图片

导入 ISO 磁盘映像的先决条件

注意

在导入过程中,编译实例会从亚马逊 S3 下载 AWS 驱动程序、EC2Launch v2 和系统管理器代理,并从公共互联网下载微软 Defender 。这些组件已预置到输出 AMI 上。构建实例还与亚马逊 EC2、亚马逊 CloudWatch 日志和 SSM API 进行通信。

构建实例从运行导入的同一 AWS 区域 区域 Amazon S3 存储桶中下载 AWS 驱动程序。由于这些流量停留在该区域内,因此 Amazon S3 Gateway 终端节点足以在任何区域下载驱动程序。

但是,无论哪个地区,微软Defender都需要公共互联网访问才能下载。如果构建实例无法访问互联网,则导入仍会成功,但不会在输出 AMI 上安装 Microsoft Defender。

有关所需的最低 VPC 终端节点和 S3 URL 的列表,请参阅私有 VPC 的最低网络要求。

要导入 ISO 磁盘映像,必须满足以下先决条件:

  • 磁盘映像的操作系统必须是映像生成器支持的操作系统。有关支持的操作系统的列表,请参阅导入 ISO 磁盘映像支持的操作系统。

  • 为确保你可以导入 ISO 镜像,请从微软 365 管理中心下载该镜像。

  • 在运行导入过程之前,您必须将您的 AWS 账户 ISO 磁盘文件上传到导入 AWS 区域 所在位置的 Amazon S3。

  • 文件扩展名在导入过程中区分大小写,必须.ISO区分大小写。如果您的文件扩展名为小写,请运行以下命令之一对其进行重命名:

    Command
    aws s3 cp s3://amzn-s3-demo-bucket/Win11_24H2_English.iso s3://amzn-s3-demo-bucket/Win11_24H2_English.ISO
    PowerShell
    Copy-S3Object -BucketName amzn-s3-demo-bucket -Key Win11_24H2_English.iso -DestinationKey Win11_24H2_English.ISO
  • Microsoft 许可不会自动包含在导入中。您必须自备许可证 (BYOL)。有关微软软件许可的更多信息,请参阅亚马逊网络服务和微软常见问题解答页面上的许可。

  • 导入过程使用两个单独的 IAM 角色:

    执行角色

    此角色授予Image Builder AWS 服务 在导入过程中代表您调用的权限。

    重要

    我们建议您不要将AWSServiceRoleForImageBuilder服务相关角色作为执行角色传递。相反,创建自定义 IAM 角色并附加EC2ImageBuilderExecutionPolicy AWS 托管策略。此政策授予的权限与映像生成器 AWS 服务 代表您调用所需的权限相同。使用自定义角色可以完全控制映像生成器使用的权限。它还可以使您的服务控制策略 (SCP) 和资源控制策略 (RCP) 在 Image Builder 代表您执行的操作中保持有效。

    实例配置文件角色

    此角色授予服务在 EC2 实例上执行操作的权限。您可以在基础设施配置资源中指定实例配置文件角色。将以下托管策略附加到您的实例配置文件角色,以确保您拥有导入过程所需的所有权限:

    该EC2InstanceProfileForImageBuilder策略包括构建实例用于下载您的 ISO 文件的s3:GetObject权限。此访问权限适用于您自己的账户中具有 ISO 文件扩展名的对象。因此,您无需为 ISO 授予额外的 Amazon S3 权限。

    注意

    我们建议您仅向实例配置文件角色授予导入所需的权限。导入过程在此角色下以 SYSTEM 权限运行 ISO 和应用的 Windows 映像中的可执行文件。您授予的任何其他权限也适用于这些可执行文件。

    有关更多信息,请参阅 管理 Image Builder 基础设施配置、EC2InstanceProfileForImageBuilder policy 和 导入 ISO 磁盘映像的安全注意事项。

可选的导入设置

导入 ISO 磁盘映像时,您可以选择配置以下设置。这些设置控制导入映像的安全启动、UEFI 数据和映像索引选择。

安全启动

安全启动是一项 UEFI 安全功能,可确保在启动过程中仅运行可信软件。默认情况下,为 ISO 磁盘映像导入启用安全启动。如果您需要使用自定义的未签名驱动程序进行测试或旧版应用程序兼容性,则可以禁用 Secure Boot。

自定义 UEFI 数据

您可以将自定义 UEFI 数据 blob 作为 Base64-encoded 字符串提供,以供在启动过程中使用,而不是映像生成器生成的默认 UEFI 数据。只有在启用 “安全启动”(默认)时,才能指定自定义 UEFI 数据。数据最多可为 64 KB。

你可以使用网站上的 python-uefivars 工具检查和修改 UEF I 数据。 GitHub 有关更多信息,请参阅 Amazon EC2 实例的 UEFI 变量。

图像索引

Windows ISO 文件可以包含具有多个图像索引的.wim文件,其中每个索引代表不同的 Windows 版本(例如,家庭版或专业版)。默认情况下,映像生成器使用 ISO 文件中的第一个有效图像索引。您可以指定基于一个的图像索引,以从多版本 ISO 文件中选择特定版本。

将 ISO 磁盘映像导入映像生成器

在开始导入过程之前,请确保您已满足所有要求先决条件。

导入过程会在您的映像上安装以下软件和驱动程序:

  • EC2Launch v2

  • AWS Systems Manager 代理人

  • AWS NVMe 驱动程序

  • AWS ENA 网络驱动程序

  • AWS PCI 串行驱动程序

  • EC2 Windows 实用程序驱动程序

  • 微软卫士更新套件

导入过程会对您的映像进行以下配置更新:

  • 将系统配置为使用亚马逊时间服务器。

选择一个选项卡来查看您的首选方法的导入步骤:

Console

要使用映像生成器控制台导入 ISO 磁盘映像,请执行以下步骤:

  1. 在以下位置打开 EC2 映像生成器控制台https://console.aws.amazon.com/imagebuilder/。

  2. 从导航窗格中,选择映像。

  3. 要打开导入对话框,请选择导入图像。

  4. 输入以下一般信息:

    • 为您的图像指定一个唯一的名称。

    • 指定基本映像的版本。采用以下格式:major.minor.patch。

  5. 选择导入类型:ISO 导入。

  6. 输入以下 ISO 导入配置详细信息。然后在完成后选择 “导入图像”。

    • S3 URI — 输入 ISO 磁盘文件的存储位置。要浏览该文件,请选择 “浏览 S3” 。

    • IAM 角色 — 要将 IAM 角色与您的导入配置相关联,请从 IAM 角色下拉列表中选择该角色,或选择创建新角色来创建新角色。如果您创建了新角色,IAM 角色控制台页面将在单独的标签页中打开。

      您可以指定AWSServiceRoleForImageBuilder服务相关角色,也可以为服务访问指定自己的自定义角色。

  7. 您可以选择为导入配置以下高级设置。有关这些设置的更多信息,请参阅 可选的导入设置。

    • 安全启动 — 默认情况下,安全启动处于启用状态。要对导入的映像禁用安全启动,请清除 “安全启动” 复选框。

    • 自定义 UEFI 数据 -要提供自定义 UEFI 数据 blob,请输入字符串。 Base64-encoded 此选项仅在启用安全启动时可用。

    • 图像索引 -要从多版本的 ISO 文件中选择特定的 Windows 版本,请输入基于一个版本的图像索引。

  8. 您可以选择向图像生成器图像资源添加标签。在此处添加标签不会将标签添加到您的 AMI。

  9. ISO 基础架构配置定义了映像生成器为托管导入过程而启动的实例的设置。您可以使用Image Builder根据服务默认值创建的基础架构配置,也可以使用现有基础架构配置。有关更多信息,请参阅 管理 Image Builder 基础设施配置。

    要创建新的基础架构配置,请选择创建基础架构配置。这将在单独的选项卡中打开。创建完新资源后,您可以返回导入配置并选择 “使用现有基础架构配置” 。

  10. 要启动导入过程,请选择导入图像。

导入完成后,您的图像将出现在您拥有的图像列表中。有关更多详细信息,请参阅列出映像。

AWS CLI

以下示例显示如何从 ISO 磁盘文件导入映像并使用该镜像创建 AMI AWS CLI。

以下是我们在此示例中指定的参数的摘要:

  • 名称(字符串,必填)— 要从导入中作为输出而创建的 Image Builder 映像资源的名称。

  • semanticVersion(字符串,必填)— 输出映像的语义版本,按以下格式指定版本,每个位置都有数值表示特定版本:<major>.<minor>.<patch>。例如 1.0.0。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅 Image Builder 中的语义版本控制。

  • 描述(字符串)— 映像配方的描述。

  • ExecutionRole(字符串)— IAM 角色的名称或亚马逊资源名称 (ARN),该角色授予映像生成器执行从微软 ISO 文件导入图像的工作流程操作的权限。我们建议您指定一个附加了EC2ImageBuilderExecutionPolicy AWS 托管策略的自定义角色。

  • 平台(字符串,必填)— ISO 磁盘映像的操作系统平台。有效值包括 Windows。

  • osVersion(字符串,必填)— ISO 磁盘映像的操作系统版本。有效值包括 Microsoft Windows 11。

  • 基础架构 ConfigurationArn(字符串,必填)— 基础设施配置资源的亚马逊资源名称 (ARN),用于启动构建 ISO 映像的 EC2 实例。

  • uri(字符串,必填)— 存储在 Amazon S3 中的 ISO 磁盘文件的 URI。

  • 注册 ImageOptions(对象)-为导入的映像配置安全启动和 UEFI 设置。包含以下字段:

    • 安全 BootEnabled(布尔值)-指定是否为输出 AMI 启用安全启动。默认值为 true。要禁用自定义未签名驱动程序的安全启动,请将此值设置为。false

    • UEFIData(字符串)— 非易失性 UEFI 变量存储的 Base64-encoded 表示形式。只有在 “secureBootEnabled是” true 或 “未指定” 时才能指定此参数。

  • WindowsConfiguration(对象)— ISO 导入的Windows-specific 配置设置。包含以下字段:

    • imageIndex(整数)— 基于 1 的索引,用于指定要从多版本的 Windows ISO 文件中安装哪个 Windows 版本。Windows ISO 可以包含具有多个图像索引的.wim文件,每个索引代表不同的版本。

aws imagebuilder import-disk-image \ --name "example-iso-disk-import" \ --semantic-version "1.0.0" \ --description "Import an ISO disk image" \ --execution-role "ImageBuilderExecutionRole" \ --platform "Windows" \ --os-version "Microsoft Windows 11" \ --infrastructure-configuration-arn "arn:aws:imagebuilder:us-east-1:111122223333:infrastructure-configuration/example-infrastructure-configuration-123456789abc" \ --uri "s3://amzn-s3-demo-source-bucket/examplefile.ISO" \ --register-image-options '{"secureBootEnabled": true, "uefiData": "custom-base64-encoded-uefi-data"}' \ --windows-configuration '{"imageIndex": 1}'

导入完成后,您的图像将出现在您拥有的图像列表中。有关更多详细信息,请参阅列出映像。

PowerShell

以下示例说明如何从 ISO 磁盘文件导入映像并使用该镜像创建 AMI PowerShell。

以下是我们在此示例中指定的参数的摘要:

  • 名称(字符串,必填)— 要从导入中作为输出而创建的 Image Builder 映像资源的名称。

  • semanticVersion(字符串,必填)— 输出映像的语义版本,按以下格式指定版本,每个位置都有数值表示特定版本:<major>.<minor>.<patch>。例如 1.0.0。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅 Image Builder 中的语义版本控制。

  • 描述(字符串)— 映像配方的描述。

  • ExecutionRole(字符串)— IAM 角色的名称或亚马逊资源名称 (ARN),该角色授予映像生成器执行从微软 ISO 文件导入图像的工作流程操作的权限。我们建议您指定一个附加了EC2ImageBuilderExecutionPolicy AWS 托管策略的自定义角色。

  • 平台(字符串,必填)— ISO 磁盘映像的操作系统平台。有效值包括 Windows。

  • osVersion(字符串,必填)— ISO 磁盘映像的操作系统版本。有效值包括 Microsoft Windows 11。

  • 基础架构 ConfigurationArn(字符串,必填)— 基础设施配置资源的亚马逊资源名称 (ARN),用于启动构建 ISO 映像的 EC2 实例。

  • uri(字符串,必填)— 存储在 Amazon S3 中的 ISO 磁盘文件的 URI。

  • 注册 ImageOptions(对象)-为导入的映像配置安全启动和 UEFI 设置。包含以下字段:

    • 安全 BootEnabled(布尔值)-指定是否为输出 AMI 启用安全启动。默认值为 true。要禁用自定义未签名驱动程序的安全启动,请将此值设置为。false

    • UEFIData(字符串)— 非易失性 UEFI 变量存储的 Base64-encoded 表示形式。只有在 “secureBootEnabled是” true 或 “未指定” 时才能指定此参数。

  • WindowsConfiguration(对象)— ISO 导入的Windows-specific 配置设置。包含以下字段:

    • imageIndex(整数)— 基于 1 的索引,用于指定要从多版本的 Windows ISO 文件中安装哪个 Windows 版本。Windows ISO 可以包含具有多个图像索引的.wim文件,每个索引代表不同的版本。

Import-EC2IBDiskImage ` -Name "example-iso-disk-import" ` -SemanticVersion "1.0.0" ` -Description "Import an ISO disk image" ` -ExecutionRole "ImageBuilderExecutionRole" ` -Platform "Windows" ` -OsVersion "Microsoft Windows 11" ` -InfrastructureConfigurationArn "arn:aws:imagebuilder:us-east-1:111122223333:infrastructure-configuration/example-infrastructure-configuration-123456789abc" ` -Uri "s3://amzn-s3-demo-source-bucket/examplefile.ISO" ` -RegisterImageOptions_SecureBootEnabled $true ` -RegisterImageOptions_UefiData "custom-base64-encoded-uefi-data" ` -WindowsConfiguration_ImageIndex 1

导入完成后,您的图像将出现在您拥有的图像列表中。有关更多详细信息,请参阅列出映像。

从输出 AMI 启动实例

现在,您可以将输出 AMI 用作常规 AMI 并从中启动实例。当你从输出 AMI 启动实例时,Windows 操作系统会运行 Sysprep Specialization 来完成实例配置。

注意

本页描述的网络要求仅适用于导入构建过程。成功完成导入后,从输出 AMI 启动实例将遵循标准 Amazon EC2 联网要求。成功导入并不能保证实例成功启动——您的启动可能仍会失败,具体取决于您的网络配置。

私有 VPC 的最低网络要求

所需的 VPC 端点:

端点 Type 用途
com.amazonaws.{region}.s3 网关 访问 Amazon S3 存储桶(EC2Launch v2、SSM 代理、 AWS 驱动程序和您的 ISO)
com.amazonaws.{region}.ec2 接口 创建快照并描述卷
com.amazonaws.{region}.logs 接口 将编译日志写入 CloudWatch 日志
com.amazonaws.{region}.ssm 接口 SSM API 调用 (SendCommand, DescribeInstanceInformation)
com.amazonaws.{region}.ssmmessages 接口 SSM 代理数据通道(接收命令、发送输出)
com.amazonaws.{region}.ec2messages 接口 SSM 代理消息轮询

导入期间访问的 Amazon S3 端点:

  • https://ec2-windows-drivers-downloads-{region}.s3.dualstack.{region}.amazonaws.com/NVMe/Latest/AWSNVMe.zip

  • https://ec2-windows-drivers-downloads-{region}.s3.dualstack.{region}.amazonaws.com/ENA/Latest/AwsEnaNetworkDriver.zip

  • https://ec2-windows-drivers-downloads-{region}.s3.dualstack.{region}.amazonaws.com/AWSPCISerialDriver/Latest/AWSPCISerialDriver.zip

  • https://ec2-windows-drivers-downloads-{region}.s3.dualstack.{region}.amazonaws.com/EC2WinUtil/Latest/EC2WinUtil.zip

  • https://amazon-ec2launch-v2-{region}.s3.dualstack.{region}.amazonaws.com/windows/amd64/latest/AmazonEC2Launch.msi

  • https://amazon-ssm-{region}.s3.{region}.amazonaws.com/latest/windows_amd64/AmazonSSMAgentSetup.exe

注意

在中us-east-1,驱动程序存储桶名称没有区域后缀。编译实例ec2-windows-drivers-downloads.s3.dualstack.us-east-1.amazonaws.com改为从中下载驱动程序。在这两种情况下,存储桶与导入位于同一区域,因此 Amazon S3 网关终端节点就足够了。

这表示导入在私有子网中运行所需的最低配置。根据您的 VPC 设置和预期结果,您可能需要额外的网络配置来允许构建实例和 VPC 终端节点之间的流量。

后续步骤

您可以像使用任何其他 AMI 一样使用输出 AMI,直接从中启动实例,或者在 Image Builder 中将其用作基础映像来进一步构建和自定义。有关更多信息,请参阅 使用 Image Builder 创建自定义映像。

排除 ISO 磁盘映像导入故障

如果您的 ISO 磁盘映像导入失败,您可以使用亚马逊 CloudWatch 日志来确定导入错误的地方。构建完成后,映像生成器将构建 CloudWatch 日志流式传输到日志。要查找要导入的日志,请使用以下日志组和直播,ImageName替换为您提供的图像名称:

LogGroup: /aws/imagebuilder/ImageName

LogStream: ImageVersion/ImageBuildVersion

有关日志中镜像生成器 CloudWatch 日志的更多信息,请参阅使用 Amazon 日志监控 Image Builder CloudWatch 日志。有关其它故障排除指南,请参阅Image Builder 问题疑难解答。