复制 Amazon EBS 快照 - Amazon EBS

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

复制 Amazon EBS 快照

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

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

如果您希望其他账户能够复制您的快照,则必须修改快照权限以允许访问该账户,或者将快照公开,以便所有 AWS 账户都能复制快照。有关更多信息,请参阅 共享 Amazon EBS 快照

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

使用案例
  • 地理扩张:在新 AWS 地区启动您的应用程序。

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

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

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

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

先决条件

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

  • 您可以复制 AWS Marketplace、虚拟机导入/导出和 Storage Gateway 快照,但必须验证目标区域是否支持该快照。

  • 要复制加密快照,您的用户必须具有以下权限才能使用 Amazon EBS 加密。

    • kms:DescribeKey

    • kms:CreateGrant

    • kms:GenerateDataKey

    • kms:GenerateDataKeyWithoutPlaintext

    • kms:ReEncrypt

    • kms:Decrypt

  • 要复制从其他 AWS 账户共享的加密快照,您必须有权使用用于加密快照的客户托管密钥。有关更多信息,请参阅 共享 KMS 密钥

注意事项

  • 每个目标区域限制并发快照复制请求不得超过 20 个。如果您超出此配额,会收到 ResourceLimitExceeded 错误。如果收到此错误,请等待一个或多个复制请求完成,然后再发出新的快照复制请求。

  • 用户定义的标签不会从源快照复制到新快照。您可以在复制操作期间或之后添加用户定义的标签。

  • 由快照复制操作创建的快照具有任意性的卷 ID,例如 vol-ffffvol-ffffffff。这些任意性的卷 ID 不应用于任何目的。

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

定价

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

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

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

  • 如果使用外部或跨区域数据传输,则将收取额外的 EC2 数据传输费用。而且,如果在启动后删除任何快照,仍需要为已传输的数据付费。

增量快照复制

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

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

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

  • 最新的快照副本尚未存档。

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

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

使用相同的 KMS 密钥在同一账户和区域内执行快照复制操作会生成增量复制。

增量快照复制会缩短复制快照所需的时间,并且不会复制数据,从而节省数据传输和存储成本。

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

要查看您的快照副本是否为增量副本,请查看 CopySn apshot 事件 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 密钥加密

    ** 这是复制快照操作中所指定的 KMS 密钥。将为账户和区域使用此 KMS 密钥,而不是使用默认的 KMS 密钥。

    复制快照

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

    Console
    使用控制台复制快照
    1. 打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

    3. 选择要复制的快照,然后选择 Actions(操作)、Copy snapshot(复制快照)。

    4. (可选)在 Description (描述)中,输入快照副本的简短描述。

      在默认情况下,描述包括源快照的相关信息,以便您能区别副本和原始内容。您可以按需更改此描述。

    5. 对于 Destination Region(目标区域),选择要在其中创建快照副本的区域。

    6. 指定快照副本的加密状态。

      如果源快照已加密,或者您的账户已启用默认加密,快照副本会自动加密,您无法更改其加密状态。

      如果源快照未加密,并且在默认情况下未为您的账户启用加密,则您可以选择启用或禁用加密。要加密快照副本,请在 Encryption(加密)中选择 Encrypt this snapshot(加密快照)。然后,在 KMS key(KMS 密钥)中,选择要用于对目标区域中的快照进行加密的 KMS 密钥。

    7. 选择复制快照

    AWS CLI
    要使用复制快照 AWS CLI

    使用 copy-snapshot 命令。

    Tools for Windows PowerShell
    使用适用于 Windows 的工具复制快照 PowerShell

    使用 Copy-EC2Snapshot 命令。

    检查是否失败

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

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

    如果由于密钥权限不足而导致复制失败,您将看到以下消息:” StateMessage “: “无法访问给定的密钥 ID”

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