View a markdown version of this page

使用水印追踪 AMI 血统 - EC2 Image Builder

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

使用水印追踪 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. 完成剩余的食谱创建步骤,然后选择 “创建食谱”。

AWS CLI

要使用添加水印 AWS 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 个字符,可以包含字母、数字、空格和以下特殊字符:( ) [ ] . / - ' @ _

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属性的更多信息,请参阅《AWS CloudFormation 模板参考》ImageRecipe中的AWS::ImageBuilder::

查看现有食谱上的水印

您可以通过调用中的get-image-recipe命令来查看为配方配置的水印。 AWS 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