共享数据库集群快照 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

共享数据库集群快照

使用 Amazon RDS,您可以按以下方式共享手动数据库集群快照:

  • 共享手动数据库集群快照(无论是否加密)可允许经授权的 Amazon 账户复制快照。

  • 共享手动数据库集群快照(无论是否加密)可允许经授权的 Amazon 账户直接从快照还原数据库集群,无需复制数据库集群再从中进行还原。

注意

要共享自动数据库集群快照,请通过复制自动快照来创建手动数据库集群快照,然后共享该副本。此过程也适用于 Amazon Backup 生成的资源。

有关复制快照的更多信息,请参阅复制数据库集群快照。有关从数据库集群快照还原数据库实例的更多信息,请参阅从数据库集群快照还原

有关从数据库群集快照还原数据库群集的更多信息,请参阅 备份和还原 Aurora 数据库集群的概述

您可以与最多 20 个其他 Amazon Web Services 账户共享手动快照。

与其它 Amazon Web Services 账户共享手动快照时存在以下限制:

  • 当使用 Amazon Command Line Interface (Amazon CLI) 或 Amazon RDS API 从共享的快照还原数据库集群时,您必须指定共享快照的 Amazon 资源名称(ARN)作为快照标识符。

共享公有快照

您也可以将未加密的手动快照作为公有快照进行共享,这样所有 Amazon Web Services 账户均可使用此快照。当以公有快照形式共享快照时,确保不要将您的私有信息包含在公有快照之中。

公开共享快照时,它会授予所有 Amazon Web Services 账户复制快照并从中创建数据库集群的权限。

您不需要为其他账户拥有的公有快照的备份存储付费。您只需为您拥有的快照付费。

如果您复制公有快照,则您拥有该副本。您需要为快照副本的备份存储付费。如果您从公有快照创建数据库集群,则需要为该数据库集群付费。有关 Amazon Aurora 定价信息,请参阅 Aurora 定价页面

您只能删除您拥有的公有快照。要删除共享或公有快照,务必登录到拥有快照的 Amazon Web Services 账户。

查看其它 Amazon Web Services 账户拥有的公有快照

您可以在 Amazon RDS 控制台的快照页面的公有选项卡上查看特定 Amazon Web Services 区域中其它账户拥有的公有快照。您的快照(由您账户拥有的快照)不会显示在此选项卡上。

要查看公有快照
  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

  3. 选择 Public (公有) 选项卡。

    此时将显示公有快照。您可以在 Owner (拥有者) 列中查看哪个账户拥有公有快照。

    注意

    您可能需要通过选择 Public snapshots (公有快照) 列表右上角的齿轮图标来修改页面首选项,才能看到此列。

查看您拥有的公有快照

您可以使用以下 Amazon CLI 命令(仅限 Unix)查看您的 Amazon Web Services 账户在特定 Amazon Web Services 区域中拥有的公有快照。

aws rds describe-db-cluster-snapshots --snapshot-type public --include-public | grep account_number

如果您有公共快照,则返回的输出与以下示例类似。

"DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:myclustersnapshot1", "DBClusterSnapshotArn": "arn:aws:rds:us-west-2:123456789012:cluster-snapshot:myclustersnapshot2",

共享快照

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 共享数据库集群快照。

使用 Amazon RDS 控制台,可以与多达 20 个 Amazon Web Services 账户共享手动数据库集群快照。您还可以使用该控制台停止与一个或多个账户共享手动快照。

使用 Amazon RDS 控制台共享手动数据库集群快照
  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

  3. 选择要共享的手动快照。

  4. 对于 Actions(操作),请选择 Share snapshot(共享快照)。

  5. DB snapshot visibility (数据库快照可见性) 选择以下一个选项。

    • 如果源未加密,则选择公有以允许所有 Amazon Web Services 账户从您的手动数据库集群快照还原数据库集群,或选择私有以仅允许您指定的 Amazon Web Services 账户从手动数据库集群快照还原数据库集群。

      警告

      如果将数据库快照可见性设置为公有,则所有 Amazon Web Services 账户均可从您的手动数据库集群快照还原数据库集群,并且可访问您的数据。请勿将包含私密信息的任何手动数据库集群快照以公开形式共享。

    • 如果源已加密,由于已加密的快照无法公开共享,DB snapshot visibility (数据库快照可见性) 将设为 Private (私密)

      注意

      无法共享已使用默认 Amazon KMS key 加密的快照。有关如何解决此问题的信息,请参阅共享加密的快照

  6. 对于 Amazon 账户 ID,输入您想要允许从您的手动快照还原数据库集群的账户的 Amazon Web Services 账户标识符,然后选择添加。重复操作以加入其它 Amazon Web Services 账户标识符,最多可包含 20 个 Amazon Web Services 账户。

    如果您在许可账户列表中错加了某个 Amazon Web Services 账户标识符,可以选择错误 Amazon Web Services 账户标识符右侧的删除将其从列表中删除。

    
                                允许 Amazon Web Services 账户还原手动数据库集群快照
  7. 为您想要允许还原手动快照的所有 Amazon Web Services 账户添加标识符以后,选择保存以保存您的更改。

要共享数据库集群快照,请使用 aws rds modify-db-cluster-snapshot-attribute 命令。使用 --values-to-add 参数添加有权还原手动快照的 Amazon Web Services 账户的 ID 列表。

例 与单个账户共享快照

以下示例使 Amazon Web Services 账户标识符 123456789012 能够还原名为 cluster-3-snapshot 的数据库集群快照。

对于 Linux、macOS 或 Unix:

aws rds modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier cluster-3-snapshot \ --attribute-name restore \ --values-to-add 123456789012

对于 Windows:

aws rds modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier cluster-3-snapshot ^ --attribute-name restore ^ --values-to-add 123456789012
例 与多个账户共享快照

以下示例使两个 Amazon Web Services 账户标识符(111122223333444455556666)能够还原名为 manual-cluster-snapshot1 的数据库集群快照。

对于 Linux、macOS 或 Unix:

aws rds modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier manual-cluster-snapshot1 \ --attribute-name restore \ --values-to-add {"111122223333","444455556666"}

对于 Windows:

aws rds modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier manual-cluster-snapshot1 ^ --attribute-name restore ^ --values-to-add "[\"111122223333\",\"444455556666\"]"
注意

使用 Windows 命令提示符时,必须在 JSON 代码中转义双引号 ("),方法是使用反斜杠 (\) 作为其前缀。

要列出能够用于还原快照的 Amazon Web Services 账户,请使用 describe-db-cluster-snapshot-attributes Amazon CLI 命令。

您还可以使用 Amazon RDS API 与其它 Amazon Web Services 账户共享手动数据库集群快照。为此,请调用 ModifyDBClusterSnapshotAttribute 操作。为 AttributeName 指定 restore,并使用 ValuesToAdd 参数添加有权还原手动快照的 Amazon Web Services 账户的 ID 列表。

要将手动快照设为公有并允许所有 Amazon Web Services 账户进行还原,请使用值 all。但请注意,若任何手动快照包含您不想向所有 Amazon Web Services 账户公开的私有信息,则不要添加 all 值。此外,由于此类快照不支持公开共享,请不要为已加密的快照指定 all

要列出有权还原快照的所有 Amazon Web Services 账户,请使用 DescribeDBClusterSnapshotAttributes API 操作。

共享加密的快照

您可共享使用 AES-256 加密算法“静态”加密的数据库集群快照,如加密 Amazon Aurora 资源中所述。

以下限制适用于共享加密快照:

  • 您无法公开共享加密的快照。

  • 如果某个快照已使用共享该快照的 Amazon Web Services 账户的默认 KMS 密钥进行加密,则您无法共享该快照。

要解决默认 KMS 密钥问题,请执行以下任务:

创建客户自主管理型密钥并授予对它的访问权限

首先,在加密数据库集群快照所在的同一个 Amazon Web Services 区域中创建一个自定义 KMS 密钥。在创建客户自主管理型密钥时,您可以为另一个 Amazon Web Services 账户提供对它的访问权限。

创建客户自主管理型密钥并授予对它的访问权限
  1. 从源 Amazon Web Services 账户登录 Amazon Web Services Management Console。

  2. https://console.aws.amazon.com/kms 打开 Amazon KMS 控制台。

  3. 要更改 Amazon Web Services 区域,请使用页面右上角的区域选择器。

  4. 在导航窗格中,选择客户托管密钥

  5. 选择 Create key

  6. 配置密钥页面上:

    1. 对于密钥类型,选择对称

    2. 对于密钥用途,选择加密和解密

    3. 展开 Advanced options (高级选项)

    4. 对于密钥材料来源,选择 KMS

    5. 对于区域性,请选择单区域密钥

    6. 选择下一步

  7. 添加标签页面上:

    1. 对于别名,输入您的 KMS 密钥的显示名称,例如 share-snapshot

    2. (可选)为 KMS 密钥输入描述。

    3. (可选)向 KMS 密钥添加标签。

    4. 选择下一步

  8. 定义密钥管理权限页面上,选择下一步

  9. 定义密钥使用权限页面上:

    1. 对于其它 Amazon Web Services 账户,选择添加另一个 Amazon Web Services 账户

    2. 输入您要向其授予访问权限的 Amazon Web Services 账户的 ID。

      您可以向多个 Amazon Web Services 账户授予访问权限。

    3. 选择下一步

  10. 查看您的 KMS 密钥,然后选择完成

从源账户复制和共享快照

接下来,使用客户自主管理型密钥将源数据库集群快照复制到新快照。然后,您将与目标 Amazon Web Services 账户共享它。

复制和共享快照
  1. 从源 Amazon Web Services 账户登录 Amazon Web Services Management Console。

  2. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

  4. 选择要复制的数据库集群快照。

  5. 对于 Actions (操作),请选择 Copy snapshot (复制快照)

  6. 复制快照页面上:

    1. 对于目标区域,选择您在上一个过程中创建客户自主管理型密钥的 Amazon Web Services 区域。

    2. New DB Snapshot Identifier (新数据库实例标识符) 中输入数据库集群快照副本的名称。

    3. 对于 Amazon KMS key,选择您创建的客户自主管理型密钥。

      
                                    选择客户自主管理型密钥。
    4. 选择复制快照

  7. 当快照副本可用时,将其选中。

  8. 对于 Actions(操作),请选择 Share snapshot(共享快照)。

  9. 快照权限页面上:

    1. 输入您要与之共享快照副本的 Amazon Web Services 账户 ID,然后选择添加

    2. 选择 Save(保存)。

    共享此快照。

复制目标账户中的共享快照

现在,您可以复制目标 Amazon Web Services 账户中的共享快照。

复制共享快照
  1. 从目标 Amazon Web Services 账户登录 Amazon Web Services Management Console。

  2. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

  4. 选择与我共享选项卡。

  5. 选择共享快照。

  6. 对于 Actions (操作),请选择 Copy snapshot (复制快照)

  7. 按照前面的过程选择用于复制快照的设置,但要使用属于目标账户的 Amazon KMS key。

    选择复制快照

停止快照共享

要停止共享数据库集群快照,请删除目标 Amazon Web Services 账户的权限。

停止与 Amazon Web Services 账户共享手动数据库集群快照
  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

  3. 选择要停止共享的手动快照。

  4. 选择 Actions(操作),然后选择 Share snapshot(共享快照)。

  5. 要移除 Amazon Web Services 账户的权限,请从授权账户列表中选择该账户的 Amazon 账户标识符所对应的删除

  6. 选择保存,保存您的更改。

要从列表中删除 Amazon Web Services 账户标识符,请使用 --values-to-remove 参数。

例 停止共享快照

以下示例禁止 Amazon Web Services 账户 ID 444455556666 还原快照。

对于 Linux、macOS 或 Unix:

aws rds modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier manual-cluster-snapshot1 \ --attribute-name restore \ --values-to-remove 444455556666

对于 Windows:

aws rds modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier manual-cluster-snapshot1 ^ --attribute-name restore ^ --values-to-remove 444455556666

要移除 Amazon Web Services 账户的共享权限,请使用 ModifyDBClusterSnapshotAttribute 操作(AttributeName 设置为 restore)和 ValuesToRemove 参数。要将手动快照标记为私有,请将值 allrestore 属性的值列表中删除。