

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

# 使用 Image Builder 导入经过验证的 Windows ISO 磁盘映像
<a name="import-iso-disk"></a>

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

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

## ISO 磁盘映像导入支持的操作系统
<a name="iso-import-supported-os"></a>

Image Builder 支持以下 Windows 操作系统 ISO 磁盘映像：
+ Windows 11 企业版 25H2 (x64)
+ Windows 11 企业版 24H2 (x64)
+ Windows 11 企业版 23H2 (x64)

Image Builder 不支持以下 Windows 操作系统 ISO 磁盘映像：
+ Long-Term 服务渠道 (LTSC) 镜像
+ 通过 Windows 媒体创建工具创建的 ISO 磁盘映像
+ 评估图片

## 导入 ISO 磁盘映像的先决条件
<a name="iso-import-prereq"></a>

**注意**  
在导入过程中，构建实例从亚马逊 S3 下载 Amazon 驱动程序、ec2Launch v2 和 Systems Manager 代理，从公共互联网下载微[软 Defender](https://go.microsoft.com/fwlink/?linkid=2144531)。这些组件已预先配置到输出 AMI 上。构建实例还与 Amazon EC2、Amazon CloudWatch Logs 和 SSM API 通信。  
如果您的 VPC 不在`us-east-1`，则构建实例需要公共互联网访问（例如，通过 NAT 网关）才能从全球 Amazon S3 终端节点 (`ec2-windows-drivers-downloads.s3.amazonaws.com`) 下载 Amazon 驱动程序。如果没有公共互联网接入，这些下载就会失败，导入过程也会失败。  
如果您的 VPC 位于其中`us-east-1`，那么 Amazon S3 网关终端节点足以下载驱动程序。下载驱动程序不需要 NAT 网关。  
但是，无论在哪个地区，Microsoft Defender 都需要访问公共互联网才能下载。如果构建实例无法访问互联网，则导入仍会成功，但输出 AMI 上未安装 Microsoft Defender。  
有关所需的最低限度 VPC 终端节点和 S3 网址的列表，请参阅[私有 VPC 的最低网络要求](#iso-import-network-requirements)。

要导入 ISO 磁盘映像，必须满足以下先决条件：
+ 磁盘映像的操作系统必须是 Image Builder 支持的操作系统。有关支持的操作系统的列表，请参阅[ISO 磁盘映像导入支持的操作系统](#iso-import-supported-os)。
+ 为确保您可以导入 ISO 映像，请从微软 365 管理中心下载该映像。
+ 您必须将 ISO 磁盘文件上传到 Amazon S3，然后才能运行导入流程。 Amazon Web Services 账户 Amazon Web Services 区域 
+ 文件扩展名在导入过程中区分大小写，并且必须`.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)。有关微软软件许可的更多信息，请参阅*亚马逊 Web Services 和 Microsoft 常见问题解答*页面上的[许可](https://www.amazonaws.cn/windows/faq/#licensing-q)。
+ 导入过程使用两个单独的 IAM 角色：  
**执行角色**  
此角色授予 Image Builder Amazon Web Services 服务 代表您调用的权限。您可以指定[AWSServiceRoleForImageBuilder](security-iam-awsmanpol.md#sec-iam-manpol-AWSServiceRoleForImageBuilder)服务相关角色，其中包括执行角色所需的权限，也可以创建自己的角色。  
**实例配置文件角色**  
此角色授予服务在 EC2 实例上执行的操作的权限。您可以在基础设施配置资源中指定实例配置文件角色。将以下托管策略附加到您的实例配置文件角色，以确保您拥有导入过程所需的所有权限：  
  + [https://docs.amazonaws.cn/aws-managed-policy/latest/reference/EC2InstanceProfileForImageBuilder.html](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/EC2InstanceProfileForImageBuilder.html)
  + [https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html](https://docs.amazonaws.cn/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html)
有关更多信息，请参阅 [管理 Image Builder 基础设施配置](manage-infra-config.md)。

## 可选的导入设置
<a name="iso-import-optional-settings"></a>

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

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

**自定义 UEFI 数据**  
您可以提供自定义 UEFI 数据 blob 作为 Base64-encoded 字符串在启动过程中使用，而不是 Image Builder 生成的默认 UEFI 数据。只有启用安全启动（默认）时，才能指定自定义 UEFI 数据。数据最多可以为 64 KB。  
你可以使用网站上的 p [ython-uefivars 工具检查和修改 UE](https://github.com/awslabs/python-uefivars) FI 数据。 GitHub 有关更多信息，请参阅 [Amazon EC2 实例的 UEFI 变量](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/uefi-variables.html)。

**图像索引**  
Windows ISO 文件可以包含具有多个图像索引的`.wim`文件，其中每个索引代表不同的 Windows 版本（例如，家庭版或专业版）。默认情况下，Image Builder 使用 ISO 文件中的第一个有效图像索引。您可以指定一个基于 1 的图像索引，以便从多版本 ISO 文件中选择特定版本。

## 将 ISO 磁盘映像导入 Image Builder
<a name="iso-import"></a>

在开始导入过程之前，请确保您已满足所有要求[先决条件](#iso-import-prereq)。

导入过程会在您的映像上安装以下软件和驱动程序：
+ EC2Launch v2
+ Amazon Systems Manager 代理人
+ Amazon NVMe 驱动程序
+ Amazon ENA 网络驱动程序
+ Amazon PCI 串行驱动程序
+ EC2 Windows 实用程序驱动程序
+ 微软 Defender 更新套件

导入过程会对您的映像进行以下配置更新：
+ 将系统配置为使用 Amazon Time 服务器。

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

------
#### [ Console ]

要使用 Image Builder 控制台导入 ISO 磁盘映像，请执行以下步骤：

1. 打开 EC2 Image Builder 控制台，网址为[https://console.aws.amazon.com/imagebuilder/](https://console.amazonaws.cn/imagebuilder/)。

1. 从导航窗格中，选择**映像**。

1. 要打开导入对话框，请选择**导入图像**。

1. 输入以下**一般**信息：
   + 为您的图片指定一个唯一的**名称**。
   + 指定基本映像的**版本**。采用以下格式：`major.minor.patch`。

1. 选择导入类型：**ISO 导入**。

1. 输入以下 **ISO 导入配置**详细信息。完成后，选择 “**导入图像**”。
   + **S3 URI**-输入存储 ISO 磁盘文件的位置。要浏览文件，请选择 “**浏览 S3**”。
   + **IAM 角色**-要将 IAM 角色与您的导入配置关联，请从 **IAM 角色**下拉列表中选择该**角色，或者选择创建新角色**来创建新角色。如果您创建了新角色，IAM 角色控制台页面将在单独的标签页中打开。

     您可以指定[AWSServiceRoleForImageBuilder](security-iam-awsmanpol.md#sec-iam-manpol-AWSServiceRoleForImageBuilder)服务相关角色，也可以为服务访问指定自己的自定义角色。

1. 您可以选择为导入配置以下高级设置。有关这些设置的更多信息，请参阅 [可选的导入设置](#iso-import-optional-settings)。
   + **安全启动**-默认情况下，安全启动处于启用状态。要为导入的映像禁用安全启动，请清除 “**安全启动**” 复选框。
   + **自定义 UEFI 数据**-要提供自定义 UEFI 数据 blob，请输入字符串。 Base64-encoded 此选项仅在启用安全启动时可用。
   + **图像索引**-要从多版本 ISO 文件中选择特定的 Windows 版本，请输入基于单版本的图像索引。

1. 您可以选择向 Image Builder 图像资源添加标签。在此处添加标签不会将标签添加到您的 AMI。

1. **ISO 基础架构配置**定义了 Image Builder 为托管导入过程而启动的实例的设置。您可以使用 Image Builder 根据服务默认值创建的基础架构配置，也可以使用现有基础设施配置。有关更多信息，请参阅 [管理 Image Builder 基础设施配置](manage-infra-config.md)。

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

1. 要开始导入过程，请选择**导入图像**。

导入完成后，您的图像将出现在您拥有的图像列表中。有关更多详细信息，请参阅[列出映像](image-details-list.md#list-images)。

------
#### [ Amazon CLI ]

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

以下是我们在此示例中指定的参数的摘要：
+ **名称**（字符串，必填）— 要从导入中作为输出而创建的 Image Builder 映像资源的名称。
+ **semanticVersion**（字符串，必填）— 输出映像的语义版本，按以下格式指定版本，每个位置都有数值表示特定版本：<major>.<minor>.<patch>。例如 `1.0.0`。要了解有关 Image Builder 资源的语义版本控制的更多信息，请参阅 [Image Builder 中的语义版本控制](ibhow-semantic-versioning.md)。
+ **描述**（字符串）— 映像配方的描述。
+ e@@ **xecutionRole（字符串）— IAM 角色**的名称或亚马逊资源名称 (ARN)，该角色授予 Image Builder 执行从微软 ISO 文件导入图像的工作流程操作的权限。您可以指定[AWSServiceRoleForImageBuilder](security-iam-awsmanpol.md#sec-iam-manpol-AWSServiceRoleForImageBuilder)服务相关角色，也可以为服务访问指定自己的自定义角色。
+ **平台**（字符串，必填）-ISO 磁盘映像的操作系统平台。有效值包括 `Windows`。
+ **osVersion**（字符串，必填）-ISO 磁盘映像的操作系统版本。有效值包括 `Microsoft Windows 11`。
+ **基础设施 ConfigurationArn**（字符串，必填）— 用于启动构建 ISO 映像的 EC2 实例的基础设施配置资源的 Amazon 资源名称 (ARN)。
+ **uri**（字符串，必填）— 存储在 Amazon S3 中的 ISO 磁盘文件的 URI。
+ **注册 ImageOptions**（对象）-为导入的映像配置安全启动和 UEFI 设置。包含以下字段：
  + **安全 BootEnabled**（布尔值）-指定是否为输出 AMI 启用安全启动。默认值为 `true`。要为自定义的未签名驱动程序禁用安全启动，请`false`将此值设置为。
  + **Uefidat** a（字符串）— 非易失性 UEFI 变量存储的 Base64-encoded 表示形式。只有在为`true`或未指定时`secureBootEnabled`，才能指定此参数。
+ **WindowsC** onfiguration（对象）— 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 "{{AWSServiceRoleForImageBuilder}}" \
    --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}}}'
```

导入完成后，您的图像将出现在您拥有的图像列表中。有关更多详细信息，请参阅[列出映像](image-details-list.md#list-images)。

------
#### [ PowerShell ]

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

以下是我们在此示例中指定的参数的摘要：
+ **名称**（字符串，必填）— 要从导入中作为输出而创建的 Image Builder 映像资源的名称。
+ **semanticVersion**（字符串，必填）— 输出映像的语义版本，按以下格式指定版本，每个位置都有数值表示特定版本：<major>.<minor>.<patch>。例如 `1.0.0`。要了解有关 Image Builder 资源的语义版本控制的更多信息，请参阅 [Image Builder 中的语义版本控制](ibhow-semantic-versioning.md)。
+ **描述**（字符串）— 映像配方的描述。
+ e@@ **xecutionRole（字符串）— IAM 角色**的名称或亚马逊资源名称 (ARN)，该角色授予 Image Builder 执行从微软 ISO 文件导入图像的工作流程操作的权限。您可以指定[AWSServiceRoleForImageBuilder](security-iam-awsmanpol.md#sec-iam-manpol-AWSServiceRoleForImageBuilder)服务相关角色，也可以为服务访问指定自己的自定义角色。
+ **平台**（字符串，必填）-ISO 磁盘映像的操作系统平台。有效值包括 `Windows`。
+ **osVersion**（字符串，必填）-ISO 磁盘映像的操作系统版本。有效值包括 `Microsoft Windows 11`。
+ **基础设施 ConfigurationArn**（字符串，必填）— 用于启动构建 ISO 映像的 EC2 实例的基础设施配置资源的 Amazon 资源名称 (ARN)。
+ **uri**（字符串，必填）— 存储在 Amazon S3 中的 ISO 磁盘文件的 URI。
+ **注册 ImageOptions**（对象）-为导入的映像配置安全启动和 UEFI 设置。包含以下字段：
  + **安全 BootEnabled**（布尔值）-指定是否为输出 AMI 启用安全启动。默认值为 `true`。要为自定义的未签名驱动程序禁用安全启动，请`false`将此值设置为。
  + **Uefidat** a（字符串）— 非易失性 UEFI 变量存储的 Base64-encoded 表示形式。只有在为`true`或未指定时`secureBootEnabled`，才能指定此参数。
+ **WindowsC** onfiguration（对象）— 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 "{{AWSServiceRoleForImageBuilder}}" `
    -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}}
```

导入完成后，您的图像将出现在您拥有的图像列表中。有关更多详细信息，请参阅[列出映像](image-details-list.md#list-images)。

------

## 从输出 AMI 启动实例
<a name="iso-import-launch-instance"></a>

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

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

## 私有 VPC 的最低网络要求
<a name="iso-import-network-requirements"></a>

**所需的 VPC 终端节点：**


| 端点 | Type | 用途 | 
| --- | --- | --- | 
| com.amazonaws.{{{region}}}.s3 | 网关 | 访问 Amazon S3 存储桶（ec2Launch v2、SSM 代理、您的 ISO；如果有的话，还有驱动程序）us-east-1 | 
| 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 代理消息轮询 | 

**以下区域之外的额外要求`us-east-1`：**


| 资源 | 用途 | 
| --- | --- | 
| NAT 网关 | 提供互联网访问以从中下载驱动程序ec2-windows-drivers-downloads.s3.amazonaws.com。否则，导入过程将失败。 | 

**导入期间访问的 Amazon S3 终端节点：**
+ `https://ec2-windows-drivers-downloads.s3.amazonaws.com/NVMe/Latest/AWSNVMe.zip`
+ `https://ec2-windows-drivers-downloads.s3.amazonaws.com/ENA/Latest/AwsEnaNetworkDriver.zip`
+ `https://ec2-windows-drivers-downloads.s3.amazonaws.com/AWSPCISerialDriver/Latest/AWSPCISerialDriver.zip`
+ `https://ec2-windows-drivers-downloads.s3.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`

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

## 后续步骤
<a name="iso-import-next-steps"></a>

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

## ISO 磁盘映像导入疑难解答
<a name="iso-import-troubleshooting"></a>

如果您的 ISO 磁盘映像导入失败，则可以使用 Amaz CloudWatch on Logs 来确定导入出错的地方。构建完成后，Image Builder 将构建 CloudWatch 日志流式传输到日志。要查找要导入的日志，请使用以下日志组和流，{{ImageName}}替换为您为图像提供的名称：

**LogGroup:** `/aws/imagebuilder/{{ImageName}}`

**LogStream:** `{{ImageVersion}}/{{ImageBuildVersion}}`

有关日志中的 Image Builder CloudWatch 日志的更多信息，请参阅[使用 Amazon 日志监控 Image Builder CloudWatch 日志](monitor-cwlogs.md)。有关其它故障排除指南，请参阅[Image Builder 问题疑难解答](troubleshooting.md)。