加密 Amazon Aurora 资源 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

加密 Amazon Aurora 资源

Amazon Aurora 可以加密您的 Amazon Aurora 数据库集群。静态加密的数据包括数据库集群的基础存储、其自动化备份、只读副本和快照。

Amazon Aurora 加密的数据库集群使用行业标准 AES-256 加密算法来对托管 Amazon Aurora 数据库集群的服务器上的数据进行加密。在加密数据后,Amazon Aurora 将以透明方式处理访问的身份验证和数据的解密,并且对性能产生的影响最小。您无需修改数据库客户端应用程序来使用加密。

注意

对于加密和未加密数据库集群,将对在源与只读副本之间发送的数据进行加密,即使在 Amazon 区域之间复制时也是如此。

Amazon Aurora 资源加密概览

Amazon Aurora 加密的数据库集群通过保护您的数据免受未经授权的访问来为基础存储提供额外一层数据保护。您可以使用 Amazon Aurora 加密来增强对云中部署的应用程序的数据保护,并满足静态数据加密的合规性要求。

对于 Amazon Aurora 加密的数据库集群,所有数据库实例日志、备份和快照均会被加密。您还可以对已加密的 Amazon Aurora 集群的只读副本进行加密。Amazon Aurora 使用 Amazon KMS key 加密这些资源。有关 KMS 密钥的更多信息,请参阅 Amazon Key Management Service 开发人员指南中的 Amazon KMS keys。数据库集群中的每个数据库实例都使用与数据库集群相同的 KMS 密钥进行加密。如果复制加密快照,则可以使用不同于用于加密源快照的 KMS 密钥来加密目标快照。

您可以使用 Amazon 托管式密钥,也可以创建客户托管的密钥。要管理用于加密和解密 Amazon Aurora 资源的客户托管密钥,您可以使用 Amazon Key Management Service(Amazon KMS)。Amazon KMS 将安全、高度可用的硬件和软件结合起来,提供可扩展到云的密钥管理系统。利用 Amazon KMS,您可创建客户托管密钥并定义控制这些客户托管密钥的使用方式的策略。Amazon KMS 支持 CloudTrail,因此,您可审核 KMS 密钥使用情况以验证客户托管密钥是否使用得当。您可以将客户托管式密钥与 Amazon Aurora 和支持的 Amazon 服务(例如 Amazon S3、Amazon EBS 和 Amazon Redshift)结合使用。有关与 Amazon KMS 集成的服务的列表,请参阅 Amazon 服务集成

为 Amazon Aurora 数据库集群启用加密

要为新数据库集群启用加密,请在控制台上选择 Enable encryption (启用加密)。​ 有关创建数据库集群的信息,请参阅创建 Amazon Aurora 数据库集群

如果使用 create-db-cluster Amazon CLI 命令创建加密的数据库集群,请设置 --storage-encrypted 参数。如果使用 CreateDBCluster API 操作,请将 StorageEncrypted 参数设置为 true。

创建加密数据库集群时,您可以为 Amazon Aurora 选择客户托管密钥或 Amazon 托管式密钥 来加密数据库集群。如果您没有为客户托管密钥指定密钥标识符,则 Amazon Aurora 会将 Amazon 托管式密钥 用于您的新数据库实例。Amazon Aurora 将为您的 Amazon 账户创建 Amazon Aurora 的 Amazon 托管式密钥。您的 Amazon 账户在每个 Amazon 区域都有用于 Amazon Aurora 的不同 Amazon 托管式密钥。

创建加密的数据库集群后,您无法更改该数据库集群使用的 KMS 密钥。因此,请确保先确定您的 KMS 密钥要求,然后再创建加密的数据库集群。

如果使用 Amazon CLI create-db-cluster 命令创建带有客户托管密钥的加密数据库集群,请将 --kms-key-id 参数设置为 KMS 密钥的任何密钥标识符。如果您使用 Amazon RDS API CreateDBInstance 操作,请将 KmsKeyId 参数设置为 KMS 密钥的任何密钥标识符。要在其他 Amazon 账户中使用客户托管密钥,请指定密钥 ARN 或别名 ARN。

重要

Amazon Aurora 可能会失去对数据库集群的 KMS 密钥的访问权限。例如,当 KMS 密钥被禁用或者撤销对 KMS 密钥的 RDS 访问权限时,RDS 将失去访问权限。在这些情况下,加密的数据库集群会进入 inaccessible-encryption-credentials-recoverable 状态。数据库集群将保持此状态七天。在此期间启动数据库集群时,它会检查 KMS 密钥是否处于活动状态,如果处于活动状态则恢复 KMS 密钥。

如果 KMS 密钥未恢复,则加密的数据库集群将进入终端 inaccessible-encryption-credentials 状态。在此情况下,您只能从备份还原数据库集群。强烈建议您始终对加密的数据库实例启用备份以防止数据库中的加密数据丢失。

确定是否为数据库集群开启加密

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 确定是否为数据库集群开启静态加密。

要确定是否为数据库集群开启静态加密

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases (数据库)

  3. 选择要检查的数据库集群的名称以显示其详细信息。

  4. 选择 Configuration(配置)选项卡,然后检查 Encryption(加密)值。

    它显示 Enabled(已启用)或 Not enabled(未启用)。

    
                                    检查数据库集群的静态加密

要使用 Amazon CLI 确定是否已为数据库集群启用静态加密,请使用以下选项调用 describe-db-clusters 命令:

  • --db-cluster-identifier – 数据库集群的名称。

下面的示例使用查询就 mydb 数据库集群的静态加密返回 TRUEFALSE

aws rds describe-db-clusters --db-cluster-identifier mydb --query "*[].{StorageEncrypted:StorageEncrypted}" --output text

要使用 Amazon RDS API 确定是否已为数据库集群启用静态加密,请使用以下参数调用 DescribeDBClusters 操作:

  • DBClusterIdentifier – 数据库集群的名称。

Amazon Aurora 加密的可用性

Amazon Aurora 加密当前可用于所有数据库引擎和存储类型。

注意

Amazon Aurora 加密不适用于 db.t2.micro 数据库实例类。

Amazon Aurora 加密的数据库集群的限制

Amazon Aurora 加密的数据库集群存在以下限制:

  • 您无法在加密的数据库集群上禁用加密。

  • 您无法创建未加密数据库集群的加密快照。

  • 加密数据库集群的快照必须使用与数据库集群相同的 KMS 密钥进行加密。

  • 您无法将未加密的数据库集群转换为加密的数据库集群。但是,您可以将未加密的快照还原为加密的 Aurora 数据库集群。为此,请在从未加密的快照还原时指定 KMS 密钥。

  • 您无法从未加密的 Aurora 数据库集群创建已加密的 Aurora 副本。您无法从加密的 Aurora 数据库集群创建未加密的 Aurora 副本。

  • 要将已加密快照从一个 Amazon 区域复制到另一个区域,您必须指定目标 Amazon 区域的 KMS 密钥。这是因为 KMS 密钥特定于在其中创建它们的 Amazon 区域。

    源快照在复制过程中保持加密状态。Amazon Aurora 使用信封加密在复制过程中保护数据。有关信封加密的更多信息,请参阅Amazon Key Management Service开发人员指南中的信封加密

  • 您无法对加密数据库集群取消加密。但是,您可以从加密的数据库集群中导出数据,然后将数据导入未加密的数据库集群