View a markdown version of this page

使用水印追踪 AMI 血统 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用水印追踪 AMI 血统

AMI 水印是用于跟踪计算机图像历史记录的简单文本标签。您可以在图像配方中添加水印名称,Image Builder 会在构建过程中将其附加到输出 AMI。

当您将 AMI 复制或分发给其他地区或账户时,水印会自动复制。您的 AMI 的所有副本都带有相同的水印。这可以帮助您追踪图像的历史记录。

您不能将带水印的 AMI 设为公开。如果您的配方包含水印或者您的源 AMI 有水印,Image Builder 会拒绝将启动权限设置为公开的分发配置。

AMI 水印的主要特征:

  • 目的 — 跨副本和发行版跟踪 AMI 谱系。

  • 范围-仅限元数据。水印不会影响实例性能或运行时行为。

  • 可见性限制-带水印的 AMI 不能公开。

水印限制

以下限制适用于 Image Builder 图像配方中的 AMI 水印。

约束

每个食谱都有水印

1 到 5

名字长度

3 到 128 个字符

允许使用的字符

字母、数字、空格和以下特殊字符:( ) [ ] . / - ' @ _

边缘角色

名称不能以空格开头或结尾

区分大小写

水印名称区分大小写

重复

不允许在同一个食谱中使用重复的名字

每个输出的总数 AMI

来源 AMI 水印加食谱水印不能超过 5

先决条件

在使用 AMI 水印之前,请验证以下要求。

  • AMI 水印仅支持图像配方,不支持容器配方。

  • 您的 Image Builder 执行角色必须包含的ec2:AttachImageWatermark权限arn:aws:ec2:*::image/*。如果您使用 Image Builder 服务相关角色,则会自动包含此权限。

为图像配方添加水印

在创建图像配方或现有配方的新版本时,可以添加水印。选择以下选项卡之一以获取说明。

Console
向图像配方添加水印
  1. 在创建图像配方或对其进行版本控制时,在配方配置部分中,展开 AMI 水印

  2. 输入水印名称(3 到 128 个字符)。选择 “添加水印” 可添加更多姓名(总共最多 5 个)。

  3. 完成剩余的食谱创建步骤,然后选择 “创建食谱”。

Amazon CLI

要使用添加水印 Amazon CLI,请在create-image-recipe命令的 JSON 输入文件中包含该amiWatermarks参数。

以下示例显示了配置了水印的配方 JSON 文件。

{ "name": "MyWatermarkedRecipe", "description": "Recipe with AMI watermarks for lineage tracking.", "parentImage": "ami-1234567890abcdef1", "semanticVersion": "1.0.0", "components": [ { "componentArn": "arn:aws:imagebuilder:us-west-2:111122223333:component/my-component/1.0.0/1" } ], "amiWatermarks": [ "ProductionV1", "team-alpha" ] }

运行以下命令来创建配方。

aws imagebuilder create-image-recipe --cli-input-json file://create-watermarked-recipe.json

以下列表描述了该amiWatermarks参数。

  • amiWaterMark s(字符串数组,可选)— 要附加到根据此配方构建的输出 AMI 的水印名称列表。指定 1 到 5 个名称。每个名称必须包含 3 到 128 个字符,可以包含字母、数字、空格和以下特殊字符:( ) [ ] . / - ' @ _

Amazon CloudFormation

您可以使用AmiWatermarks属性在AWS::ImageBuilder::ImageRecipe资源中指定 AMI 水印。

以下示例显示了配置了水印的最小图像配方模板。

Resources: WatermarkedRecipe: Type: AWS::ImageBuilder::ImageRecipe Properties: Name: MyWatermarkedRecipe Version: 1.0.0 ParentImage: arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2023-x86/x.x.x Components: - ComponentArn: arn:aws:imagebuilder:us-west-2:111122223333:component/my-component/1.0.0/1 AmiWatermarks: - ProductionV1 - team-alpha

只能在创建时设置该AmiWatermarks属性。由于图像配方是不可变的,因此更改水印需要新的配方版本。

有关该AmiWatermarks属性的更多信息,请参阅《Amazon CloudFormation 模板参考》ImageRecipe中的AWS::ImageBuilder::

查看现有食谱上的水印

您可以通过调用中的get-image-recipe命令来查看为配方配置的水印。 Amazon CLI

aws imagebuilder get-image-recipe --image-recipe-arn arn:aws:imagebuilder:us-west-2:111122223333:image-recipe/my-watermarked-recipe/1.0.0

如果为该配方版本配置了水印,则响应将包含amiWatermarks数组。

注意事项

使用 AMI 水印时,请记住以下几点。

  • 来自源 AMI 的水印加配方中定义的水印组合在输出 AMI 上。总数不能超过 5。如果组合计数超过 5,则生成失败。

  • 如果您将带水印的 AMI 分发给其他地区或账户,则水印会自动传播。

  • Image Builder 会验证带水印的 AMI 在创建图像时是否未设置为公开。如果您的配方有水印(或者源 AMI 有水印),并且分发配置将启动权限设置为公开,则 Image Builder 会返回错误InvalidParameterCombinationException