特定 AWS 共享共享 AMI - Amazon Elastic Compute Cloud

特定 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(控制台)

New console

使用控制台授予显式启动许可

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

  3. 在列表中选择您的 AMI,然后选择 Actions(操作)、Modify AMI Permissions(修改 AMI 权限)。

  4. 选择 Private (私有)

  5. Shared accounts(共享账户)下,选择 Add account ID(添加账户 ID)。

  6. 对于 AWS account ID(AWS 账户 ID),输入要与之共享 AMI 的 AWS 账户 ID,然后选择 Share AMI(共享 AMI)。

    要与多账户共享此 AMI,请重复此步骤 5 和 6,直至您添加完所需全部账户 ID。

    注意

    您不需要为了共享 AMI 而共享 AMI 引用的 Amazon EBS 快照。只需共享 AMI 本身;系统自动为实例提供访问所引用 Amazon EBS 快照的权限以便启动。不过,您确实需要共享用于对 AMI 引用的快照加密的所有 KMS 密钥。有关更多信息,请参阅共享 Amazon EBS 快照

  7. 完成后,选择 Save changes(保存更改)。

  8. (可选)要查看您已共享 AMI 的 AWS 账户 ID,请在列表中选择此 AMI,然后选择权限选项卡。要查找与您共享的 AMI,请参阅查找共享 AMI

Old console

使用控制台授予显式启动许可

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

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

  4. AWS 账号字段中指定您想与之共享 AMI 的用户的 AWS 账号,然后选择添加权限

    要与多个用户共享此 AMI,请重复此步骤,直至您添加完所需全部用户。

    注意

    您不需要为了共享 AMI 而共享 AMI 引用的 Amazon EBS 快照。只需共享 AMI 本身;系统自动为实例提供访问所引用 Amazon EBS 快照的权限以便启动。不过,您确实需要共享用于对 AMI 引用的快照加密的所有 KMS 密钥。有关更多信息,请参阅共享 Amazon EBS 快照

  5. 完成后选择 Save (保存)

  6. (可选)要查看您已共享 AMI 的 AWS 账户 ID,请在列表中选择此 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