将 AMI 设为公用 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将 AMI 设为公用

您能与其他 Amazon Web Services 账户 共享您的 AMI。要允许所有 Amazon Web Services 账户 使用 AMI 启动实例,请将该 AMI 设为公共。要仅允许特定账户使用 AMI 启动实例,请参阅 与特定 Amazon 账户共享 AMI

注意事项

在将 AMI 设为公用之前,请考虑以下事项。

  • 所有权 – 若要将 AMI 设为公有,您的 Amazon Web Services 账户 必须拥有 AMI。

  • 有些 AMI 无法设为公共 – 如果您的 AMI 包含以下组件之一,则无法将其设为公共(但您可以将 AMI 与特定 Amazon Web Services 账户 账户共享):

    • 加密卷

    • 加密卷的快照

    • 产品代码

  • 避免泄露敏感数据 – 要避免在共享 AMI 时泄露敏感数据,请阅读 共享 Linux AMI 指导原则 中的安全注意事项并遵循建议的操作。

  • 区域 – AMI 是一种区域性资源。当您共享 AMI 时,则它只能在您共享该 AMI 的区域使用。要使 AMI 能够在其他区域使用,请将该 AMI 复制到该区域并进行共享。有关更多信息,请参阅复制 AMI

  • 使用 – 当您共享 AMI 时,用户只能从该 AMI 启动实例。他们无法删除、共享或修改实例。但是,在他们使用您的 AMI 启动实例后,他们可以从其启动的实例创建 AMI。

  • 自动弃用 – 默认情况下,所有公有 AMI 的弃用日期均设置为自 AMI 创建日期起 2 年。您可以将弃用日期设置为早于两年。要取消弃用日期,或将弃用移至未来某一日期,您必须通过仅将 AMI 与特定 Amazon Web Services 账户 共享来将其设为私有。

  • 账单 – 当其他 Amazon Web Services 账户 使用您的 AMI 启动实例时,您无需付费。使用 AMI 启动实例的账户将为它们启动的实例付费。

与所有 Amazon 账户共享 AMI(控制台)

将 AMI 设置为公有后,当您使用控制台在相同区域启动实例时,Community AMIs (社区 AMI) 中会出现该 AMI。请注意,将某个 AMI 设置为公用之后,可能需要一点时间 Community AMIs 中才会显示该 AMI。在将 AMI 设为私有后,也可能需要一点时间才能将它从 Community AMIs(社群 AMI)中删除。

New console
使用控制台共享公用 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 AMIs

  3. 从列表中选择您的 AMI,然后选择 Actions(操作)、Edit AMI permissions(编辑 AMI 权限)。

  4. 选择 Public(公有),然后选择 Save changes(保存更改)。

Old console
使用控制台共享公用 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 AMIs

  3. 从列表中选择您的 AMI,然后选择 ActionsModify Image Permissions

  4. 选择 Public(公有),然后选择 Save(保存)。

与所有 Amazon Web Services 账户(Amazon CLI)共享 AMI

每个 AMI 都有一个 launchPermission 属性,用于控制允许哪些 Amazon Web Services 账户(包括拥有者账户在内)使用该 AMI 启动实例。通过修改 AMI 的 launchPermission 属性,可以将该 AMI 设为公共(这会向所有 Amazon Web Services 账户 授予启动权限),或仅将其与您指定的 Amazon Web Services 账户 共享。

可以在具有 AMI 启动许可的账户的列表中添加或删除账户 ID。要将 AMI 设为公有,请指定 all 组。公用和显式启动许可都可以指定。

将 AMI 设为公用
  1. 使用 modify-image-attribute 命令可以将 all 组添加到指定 AMI 的 launchPermission 列表中,如下所示。

    aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{Group=all}]"
  2. 要验证 AMI 的启动权限,请使用 describe-image-attribute 命令。

    aws ec2 describe-image-attribute \ --image-id ami-0abcdef1234567890 \ --attribute launchPermission
  3. (可选)要再次将 AMI 设为私有,请从其启动许可中删除 all 组。请注意,AMI 的拥有者始终具有启动许可,因此不受该命令影响。

    aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Remove=[{Group=all}]"