共享 Amazon EBS 快照 - Amazon Elastic Compute Cloud

共享 Amazon EBS 快照

如果您想与其他AWS账户共享快照,可以修改快照的权限。您可以与所有其他AWS账户共享快照,或者您可以私下与您指定的个人AWS账户共享快照。您已授权的用户可以使用您共享的快照来创建自己的 EBS 卷,同时您的原始快照不受影响。

重要

共享快照时,您可以让其他人访问快照上的所有数据。仅与您信任的人共享所有快照数据的快照。

共享快照之前

共享快照时需考虑以下事项:

  • 快照受限于在其中创建它们的区域。要与其他区域共享快照,请将快照复制到该区域,然后分享副本。有关更多信息,请参阅复制 Amazon EBS 快照

  • 您无法共享使用默认 AWS 托管密钥 加密的快照。您只能共享使用客户托管密钥加密的快照。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的创建密钥

  • 您只能公开共享未加密的快照。

  • 共享加密快照时,还必须共享用于加密快照的客户托管密钥。有关更多信息,请参阅共享 KMS 密钥

共享快照

您可以使用本节介绍的方法之一共享快照。

Console

共享快照

  1. 打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Snapshots (快照)

  3. 选择快照,然后依次选择 Actions (操作)Modify Permissions (修改权限)

  4. 使快照公开可用或与特定 AWS 账户共享快照,如下所示:

    • 要使快照公开可用,请选择 Public

    • 要与一个或多个 AWS 账户共享快照,请选择 Private (私有),在 AWS Account Number (亚马逊云科技账号) 中输入AWS账户 ID(无连字符),然后选择 Add Permission (添加权限)。对任何其他 AWS 账户重复此步骤。

  5. 选择 Save

AWS CLI

使用快照的 createVolumePermission 属性指定快照的权限。要使快照公开可用,请将组设置为 all。要将快照与特定 AWS 账户共享,请将用户设置为 AWS 账户的 ID。

公开共享快照

使用以下命令之一。

  • modify-snapshot-attribute (AWS CLI)

    对于 --attribute,请指定 createVolumePermission。对于 --operation-type,请指定 add。对于 --group-names,请指定 all

    $ aws ec2 modify-snapshot-attribute --snapshot-id 1234567890abcdef0 --attribute createVolumePermission --operation-type add --group-names all
  • Edit-EC2SnapshotAttribute(AWS Tools for Windows PowerShell)

    对于 -Attribute,请指定 CreateVolumePermission。对于 -OperationType,请指定 Add。对于 -GroupName,请指定 all

    PS C:\> Edit-EC2SnapshotAttribute -SnapshotId 1234567890abcdef0 -Attribute CreateVolumePermission -OperationType Add -GroupName all

私密共享快照

使用以下命令之一。

  • modify-snapshot-attribute (AWS CLI)

    对于 --attribute,请指定 createVolumePermission。对于 --operation-type,请指定 add。对于 --user-ids,请指定要与之共享快照的AWS账户的 12 位 ID。

    $ aws ec2 modify-snapshot-attribute --snapshot-id 1234567890abcdef0 --attribute createVolumePermission --operation-type add --user-ids 123456789012
  • Edit-EC2SnapshotAttribute(AWS Tools for Windows PowerShell)

    对于 -Attribute,请指定 CreateVolumePermission。对于 -OperationType,请指定 Add。对于 UserId,请指定要与之共享快照的AWS账户的 12 位 ID。

    PS C:\> Edit-EC2SnapshotAttribute -SnapshotId 1234567890abcdef0 -Attribute CreateVolumePermission -OperationType Add -UserId 123456789012

共享 KMS 密钥

共享加密快照时,还必须共享用于加密快照的客户托管密钥。您可以在创建客户托管密钥时或以后的某个时间向客户托管密钥应用跨账户权限。

必须为正在访问加密快照的共享客户托管密钥用户授予对密钥执行以下操作的权限:

  • kms:DescribeKey

  • kms:CreateGrant

  • kms:GenerateDataKey

  • kms:ReEncrypt

  • kms:Decrypt

有关如何控制对客户托管密钥的访问权限的更多信息,请参阅 AWS Key Management Service 开发人员指南中的使用 AWS KMS 中的密钥策略

要共享客户托管密钥,请使用 AWS KMS 控制台

  1. 在 AWS KMShttps://console.aws.amazon.com/kms 打开 控制台。

  2. 要更改 AWS 区域,请使用页面右上角的 Region selector (区域选择器)。

  3. 在导航窗格中,选择 Customer managed keys (客户托管密钥)

  4. Alias (别名) 列中,选择用于加密快照的客户托管密钥的别名(文本链接)。密钥详细信息将在新页面中打开。

  5. Key policy (密钥策略) 部分,您会看到策略视图默认视图。策略视图显示密钥策略文档。默认视图显示 Key administrators (密钥管理员)Key deletion (密钥删除)Key Use (密钥使用)Other AWS accounts (其他亚马逊云科技账户) 几个部分。如果您在控制台中创建了策略,但尚未对其进行自定义,则会显示默认视图。如果默认视图不可用,则需要在策略视图中手动编辑策略。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的查看密钥策略(控制台)

    使用策略视图或默认视图(具体取决于您可以访问哪个视图)向策略添加一个或多个 AWS 账户 ID,如下所示:

    • (策略视图)选择 Edit (编辑)。将一个或多个 AWS 账户 ID 添加到以下语句:"Allow use of the key""Allow attachment of persistent resources"。选择保存更改。在以下示例中,会将 AWS 账户 ID 444455556666 添加到策略中。

      { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KeyUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KeyUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }
    • (默认视图)向下滚动到 Other AWS accounts (其他亚马逊云科技账户)。选择 Add other AWS accounts(添加其他亚马逊云科技账户),并按提示输入AWS账户 ID。要添加其他 AWS 账户,选择 Add another AWS account (添加其他亚马逊云科技账户) 并输入AWS账户 ID。添加完所有 AWS 账户后,选择 Save changes(保存更改)。

查看与您共享的快照

您可以使用以下方法之一查看与您共享的快照。

Console

使用控制台查看共享快照

  1. 打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Snapshots (快照)

  3. 筛选列出的快照。在屏幕的左上角,选择以下选项之一:

    • Private snapshots (私有快照) – 仅查看与您私下共享的快照。

    • Public snapshots (公有快照) – 仅查看与您公开共享的快照。

AWS CLI

使用命令行查看快照权限

使用以下命令之一:

使用与您共享的快照

使用共享的未加密快照

按 ID 或描述查找共享快照。有关更多信息,请参阅查看与您共享的快照。您可以像使用账户中拥有的任何其他快照一样使用此快照。例如,您可以从快照中创建卷或将卷复制到其他区域。

使用共享的已加密快照

按 ID 或描述查找共享快照。有关更多信息,请参阅查看与您共享的快照。在您的账户中创建共享快照的副本,并使用您拥有的 KMS 密钥对副本进行加密。然后,您可以使用副本创建卷,也可以将其复制到不同的区域。

确定共享快照的用途

您可以使用 AWS CloudTrail 监控是否已复制与他人共享的快照或使用它来创建卷。在 CloudTrail 中登录以下事件:

  • SharedSnapshotCopyInitiated — 正在复制共享快照。

  • SharedSnapshotVolumeCreated — 正在使用共享快照创建卷。

有关使用 CloudTrail 的更多信息,请参阅使用 AWS CloudTrail 记录 Amazon EC2 和 Amazon EBS API 调用