与特定 Amazon 账户共享 AMI
您可以在不将 AMI 设为公共的情况下,与特定 Amazon Web Services 账户 共享 AMI。您需要的只是 Amazon Web Services 账户 ID。
注意事项
在与特定 Amazon Web Services 账户 共享 AMI 时,请考虑以下事项。
-
所有权 – 若要共享 AMI,您的 Amazon Web Services 账户 必须拥有 AMI。
-
共享限制 - 有关某一区域内可以共享 AMI 的最大实体数量,请参阅 Amazon EC2 服务限额。
-
标签 – 您无法共享用户定义的标签(附加到 AMI 的标签)。共享 AMI 时,与其共享 AMI 的任何 Amazon Web Services 账户 均无法使用用户定义的标签。
-
加密和密钥 – 您可以共享由未加密和加密快照支持的 AMI。
-
加密快照必须使用 KMS 密钥加密。您无法共享由使用默认 Amazon 托管式密钥加密的快照支持的 AMI。有关更多信息,请参阅共享 Amazon EBS 快照。
-
如果您共享由加密快照支持的 AMI,则必须允许 Amazon Web Services 账户 使用用于加密快照的 KMS 密钥。。
-
-
区域 – AMI 是一种区域性资源。如果您共享 AMI,则它只能在该区域使用。要使 AMI 能够在其他区域使用,请将该 AMI 复制到该区域并进行共享。有关更多信息,请参阅复制 AMI。
-
使用 – 当您共享 AMI 时,用户只能从该 AMI 启动实例。他们无法删除、共享或修改实例。但是,在他们使用您的 AMI 启动实例后,他们可以从其实例创建 AMI。
-
复制共享 AMI – 如果另一个账户中的用户想复制共享 AMI,则必须向他们授予对支持 AMI 的存储的读取权限。有关更多信息,请参阅跨账户复制。
-
账单 – 当其他 Amazon Web Services 账户 使用您的 AMI 启动实例时,您无需付费。使用 AMI 启动实例的账户将为它们启动的实例付费。
共享 AMI(控制台)
共享 AMI (Amazon CLI)
使用 modify-image-attribute 命令(Amazon CLI)共享 AMI,如以下示例所示。
要授予显式启动许可
以下命令向指定 Amazon Web Services 账户 授予指定 AMI 的启动权限。
aws ec2 modify-image-attribute \ --image-id
ami-0abcdef1234567890
\ --launch-permission "Add=[{UserId=123456789012}]"
注意
您不需要为了共享 AMI 而共享 AMI 引用的 Amazon EBS 快照。只需共享 AMI 本身;系统自动为实例提供访问所引用 Amazon EBS 快照的权限以便启动。不过,您确实需要共享用于对 AMI 引用的快照加密的所有 KMS 密钥。有关更多信息,请参阅共享 Amazon EBS 快照。
要删除账户的启动许可
以下命令从指定 Amazon Web Services 账户 中移除指定 AMI 的启动权限。
aws ec2 modify-image-attribute \ --image-id
ami-0abcdef1234567890
\ --launch-permission "Remove=[{UserId=123456789012}]"
要删除所有的启动许可
以下命令从指定 AMI 中删除所有公用和显式启动许可。请注意,AMI 的拥有者始终具有启动许可,因此不受该命令影响。
aws ec2 reset-image-attribute \ --image-id
ami-0abcdef1234567890
\ --attribute launchPermission