特定 AWS 共享共享 AMI
您可以在不将 AMI 设为公用的情况下,与特定 AWS 账户共享 AMI。您需要的只是 AWS 账户 ID。
注意事项
在与特定 AWS 账户共享 AMI 时,请考虑以下事项。
-
没有共享限制 – 可以共享 AMI 的AWS账户数量没有限制。
-
标签 – 您附加到共享 AMI 的用户定义标签仅适用于您的AWS账户,而不适用于您与其共享该 AMI 的其他账户。
-
加密和密钥 – 您可以共享由未加密和加密快照支持的 AMI。
-
加密快照必须使用客户托管式密钥加密。您无法共享由使用默认 AWS 托管式密钥加密的快照支持的 AMI。有关更多信息,请参阅共享 Amazon EBS 快照。
-
如果您共享由加密快照支持的 AMI,则必须允许AWS账户,以使用用于加密快照的客户托管式密钥。有关更多信息,请参阅允许企业和 OU 使用 KMS 密钥。
-
-
区域 – AMI 是一种区域性资源。如果您共享 AMI,则它只能在该区域使用。要使 AMI 能够在其他区域使用,请将该 AMI 复制到该区域并进行共享。有关更多信息,请参阅复制 AMI。
-
使用 – 当您共享 AMI 时,用户只能从该 AMI 启动实例。他们无法删除、共享或修改实例。但是,在他们使用您的 AMI 启动实例后,他们可以从其实例创建 AMI。
-
复制共享 AMI – 如果另一个账户中的用户想复制共享 AMI,则必须向他们授予对支持 AMI 的存储的读取权限。有关更多信息,请参阅跨账户复制。
-
账单 – 当其它AWS账户使用您的 AMI 启动实例时,您无需付费。使用 AMI 启动实例的账户将为它们启动的实例付费。
共享 AMI(控制台)
共享 AMI (Tools for Windows PowerShell)
使用 Edit-EC2ImageAttribute 命令 (Tools for Windows PowerShell) 可以共享 AMI,如以下示例所示。
要授予显式启动许可
以下命令向指定 AWS 账户授予指定 AMI 的启动许可。
PS C:\>
Edit-EC2ImageAttribute -ImageId
ami-0abcdef1234567890
-Attribute launchPermission -OperationType add -UserId "123456789012"
您不需要为了共享 AMI 而共享 AMI 引用的 Amazon EBS 快照。只需共享 AMI 本身;系统自动为实例提供访问所引用 Amazon EBS 快照的权限以便启动。不过,您确实需要共享用于对 AMI 引用的快照加密的所有 KMS 密钥。有关更多信息,请参阅共享 Amazon EBS 快照。
要删除账户的启动许可
以下命令从指定 AWS 账户中删除指定 AMI 的启动许可:
PS C:\>
Edit-EC2ImageAttribute -ImageId
ami-0abcdef1234567890
-Attribute launchPermission -OperationType remove -UserId "123456789012"
要删除所有的启动许可
以下命令从指定 AMI 中删除所有公用和显式启动许可。请注意,AMI 的拥有者始终具有启动许可,因此不受该命令影响。
PS C:\>
Reset-EC2ImageAttribute -ImageId
ami-0abcdef1234567890
-Attribute launchPermission
共享 AMI (AWS CLI)
使用 modify-image-attribute 命令 (AWS CLI) 可以共享 AMI,如以下示例所示。
要授予显式启动许可
以下命令向指定 AWS 账户授予指定 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 快照 。
要删除账户的启动许可
以下命令从指定 AWS 账户中删除指定 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