复制 Amazon EBS 快照 - Amazon Elastic Compute Cloud

复制 Amazon EBS 快照

利用 Amazon EBS,您可以创建卷的时间点快照,我们为您将其存储在 Amazon S3 中。创建快照并且已完成到 Amazon S3 的复制(快照状态为 completed 时)后,您可将快照从一个 AWS 区域复制到另一个区域,也可在相同区域内复制。Amazon S3 服务器端加密(256 位 AES)可在复制操作期间保护传输中的快照数据。快照副本将获得与原始快照 ID 不同的 ID。

要将多卷快照复制到另一个 AWS 区域,请使用您在创建快照时应用于多卷快照集的标签检索快照。然后分别将快照复制到另一个区域。

如果希望另一账户能够复制您的快照,您必须修改快照权限以允许访问该账户,或使快照公开可用,以便所有 AWS 账户均可复制它。有关更多信息,请参阅共享 Amazon EBS 快照

有关复制 Amazon RDS 快照的信息,请参阅 Amazon RDS 用户指南 中的复制数据库快照

使用案例

  • 地理扩展:在新 AWS 区域中启动您的应用程序。

  • 迁移:将应用程序迁移到新区域,以实现更好的可用性以及最大限度地降低成本。

  • 灾难恢复:在不同的地理位置定期备份您的数据和日志。出现灾难情况时,您可以使用辅助区域存储的时间点备份恢复您的应用程序。该操作能够让数据丢失和恢复时间降至最低。

  • 加密:对之前未加密的快照进行加密、更改用于加密快照的密钥,或创建您拥有的副本以从中创建卷(用于与您共享的加密快照)。

  • 数据保留和审计要求:将您的加密 EBS 快照从一个 AWS 账户复制到另一个账户,以保留数据日志或其他文件,便于进行审计或数据保留。使用不同的账户有助于防止意外删除快照,并在您的主要 AWS 账户遭到泄露时为您提供保护。

Prerequisites

  • 您可以复制任何状态为 completed 的可访问快照,包括共享快照和您创建的快照。

  • 您可以复制 AWS Marketplace 、VM Import/Export 和 Storage Gateway 快照,但必须确认目标区域支持该快照。

Considerations

  • 每个账户最多可以向单个目标区域发出 20 个并发快照复制请求。

  • 用户定义的标签不会从源快照复制到新快照。您可以在复制操作期间或之后添加用户定义的标签。有关更多信息,请参阅标记 Amazon EC2 资源

  • 由快照复制操作创建的快照具有一个不应用于任何用途的任意卷 ID。

  • 为快照复制操作指定的资源级权限仅适用于新快照。您不能为源快照指定资源级权限。有关示例,请参阅示例:复制快照

Pricing

  • 有关跨 AWS 区域和账户复制快照的定价信息,请参阅 Amazon EBS 定价

  • 只要快照副本的加密状态不更改,单个账户和区域内的快照复制操作就完全不会复制任何实际数据,因此是免费的。

  • 如果将快照复制到新 KMS 密钥并将其加密,则会创建完整(非增量)副本。这会产生额外的存储成本。

  • 如果将快照复制到新区域,则会创建完整(非增量)副本。这会产生额外的存储成本。同一快照的后续副本是增量副本。

增量快照复制

快照副本是否为增量副本是由最近完成的快照复制决定的。在跨区域或账户复制快照时,如果满足以下条件,则副本为增量副本:

  • 快照以前已复制到目标区域或账户。

  • 最新的快照副本仍位于目标区域或账户中。

  • 目标区域或账户中的所有快照副本均未加密,或者是使用同一 KMS 密钥加密的。

如果删除了最新的快照副本,则下一个副本是完整副本,而不是增量副本。如果某个副本在您启动另一个副本时仍处于挂起状态,则第二个副本仅在第一个副本完成后才开始。

我们建议您使用卷 ID 和创建时间来标记快照,以便在目标区域或账户中跟踪卷的最新快照副本。

要确定快照副本是否为增量副本,请检查 copySnapshot CloudWatch 事件。

加密和快照复制

在复制快照时,您可以加密副本,也可以指定一个与原始快照不同的 KMS 密钥,这样,生成的快照副本将使用新 KMS 密钥。但是,在复制操作过程中更改快照的加密状态会生成完整(非增量)副本,这可能产生更多的数据传输和存储费用。

要复制从其他 AWS 账户共享的加密快照,您必须拥有使用该快照以及用于加密快照的客户主密钥 (CMK) 的权限。使用与您共享的加密快照时,我们建议您使用您拥有的 KMS 密钥复制快照以对其进行重新加密。这样,即使原始 KMS 密钥泄露或拥有者将其撤销,您也不会失去对使用快照创建的任何加密卷的访问权限。有关更多信息,请参阅共享 Amazon EBS 快照

您可以将 Encrypted 参数设置为 true,以将加密应用到 EBS 快照副本。(如果启用了默认加密Encrypted 参数是可选的)。

或者,您可以使用 KmsKeyId 指定要用于加密快照副本的自定义密钥。(即使启用了默认加密,也必须将 Encrypted 参数设置为 true。) 如果未指定 KmsKeyId,则用于加密的密钥取决于源快照的加密状态及其所有权。

下表描述了每种可能的设置组合的加密结果。

加密结果:复制您拥有的快照

默认加密 是否设置了 Encrypted 参数? 源快照加密状态 默认值(未指定 KMS 密钥) 自定义(已指定 KMS 密钥)
已禁用 未加密 未加密 不适用
已加密 由 AWS 托管密钥 加密
未加密 由默认 KMS 密钥加密 由指定的 KMS 密钥加密**
已加密 由默认 KMS 密钥加密
已启用 未加密 由默认 KMS 密钥加密 不适用
已加密 由默认 KMS 密钥加密
未加密 由默认 KMS 密钥加密 由指定的 KMS 密钥加密**
已加密 由默认 KMS 密钥加密

** 这是为复制操作指定的客户托管密钥。将为AWS账户和区域使用此客户托管密钥,而不是使用默认的客户托管密钥。

加密结果:复制与您共享的快照

默认加密 是否设置了 Encrypted 参数? 源快照加密状态 默认值(未指定 KmsKeyId) 自定义(已指定 KmsKeyId)
已禁用 未加密 未加密 不适用

已加密

由 AWS 托管密钥 加密
未加密 由默认 KMS 密钥加密 由指定的 KMS 密钥加密**

已加密

由默认 KMS 密钥加密
已启用 未加密 由默认 KMS 密钥加密 不适用

已加密

由默认 KMS 密钥加密
未加密 由默认 KMS 密钥加密 由指定的 KMS 密钥加密**

已加密

由默认 KMS 密钥加密

** 这是为复制操作指定的客户托管密钥。将为AWS账户和区域使用此客户托管密钥,而不是使用默认的客户托管密钥。

复制快照

要复制快照,请使用以下方法之一。

Console

使用控制台复制快照

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

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

  3. 选择要复制的快照,然后从 Actions (操作) 列表中选择 Copy (复制)

  4. Copy Snapshot (复制快照) 对话框中,根据需要进行以下更新:

    • 目标区域:选择要在其中写入快照副本的区域。

    • Description (描述):默认情况下,描述包括源快照的相关信息,以便您能区别副本和原始内容。必要时,您可以更改此描述。

    • 加密:如果源快照未加密,则可选择对副本进行加密。如果启用了默认加密,则会设置加密选项,无法从快照控制台中取消设置该选项。如果设置了 Encryption (加密) 选项,则可以选择将其加密到客户托管 CMK(方法为在字段中选择一个 CMK),如下所述。

      无法从加密的快照中去除加密。

    • Master Key (主密钥):将用于对此快照进行加密的客户主密钥 (CMK)。最初会显示您账户的默认密钥,但您可以选择性地从账户中的主密钥中选择,也可以从其他账户键入/粘贴密钥的 ARN。您可在 AWS KMS 控制台中创建新的加密主密钥。

  5. 选择 Copy (复制)

  6. 复制快照确认对话框中,选择快照以转至指定区域的快照页面,或选择关闭

    要查看复制过程的进度,请切换到目标区域,然后刷新快照页面。该页面的顶部将列出正在进行的复制。

AWS CLI

使用命令行复制快照

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

检查是否失败

如果您在未获得加密密钥使用权限的情况下试图复制加密快照,则操作将失败,且系统不会提示。您刷新页面后,控制台才会显示错误状态。您还可以通过命令行检查快照的状态,如以下示例所示。

aws ec2 describe-snapshots --snapshot-id snap-0123abcd

如果复制因密钥权限不足而失败,您将看到以下消息:"StateMessage": "Given key ID is not accessible"

在复制加密的快照时,您必须对默认 CMK 具有 DescribeKey 权限。显式拒绝这些权限将导致复制失败。有关管理 CMK 密钥的信息,请参阅控制对客户主密钥的访问权限