本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
加密 Amazon Neptune 数据库中的静态数据
Neptune 加密的实例通过防止对基础存储进行未经授权的访问来帮助保护您的数据,提供了额外的一层数据保护。您可以使用 Neptune 加密来增强部署在云中的应用程序的数据保护。您还可以使用它来满足 data-at-rest加密的合规性要求。
要管理用于加密和解密 Neptune 资源的密钥,可以使用 ()。Amazon Key Management ServiceAmazon KMS Amazon KMS将安全、高度可用的硬件和软件相结合,提供可扩展到云端的密钥管理系统。使用Amazon KMS,您可以创建加密密钥并定义控制如何使用这些密钥的策略。 Amazon KMS支持Amazon CloudTrail,因此您可以审核密钥使用情况,以验证密钥的使用是否正确。您可以将Amazon KMS密钥与 Neptune 和支持的Amazon服务结合使用,例如亚马逊简单存储服务 (Amazon S3)、亚马逊弹性区块存储 (Amazon EBS) Block Store 和 Amazon Redshift。有关支持的服务列表Amazon KMS,请参阅《Amazon Key Management Service开发人员指南》Amazon KMS中的Amazon服务使用方式。
可为 Neptune 加密的实例加密所有日志、备份和快照。
为 Neptune 数据库实例启用加密
要为新的 Neptune 数据库实例启用加密,请在 Neptune 控制台的启用加密部分选择是。有关创建 Neptune 数据库实例的信息,请参阅创建 Amazon Neptune 集群。
在创建加密的 Neptune 数据库实例时,您还可以提供加密Amazon KMS密钥的密钥标识符。如果您未指定Amazon KMS密钥标识符,Neptune 会将您的默认 Amazon RDS 加密密钥 (aws/rds) 用于您的新 Neptune 数据库实例。 Amazon KMS为您的账户创建 Neptune 的默认加密密钥。Amazon您的Amazon账户在每个Amazon区域都有不同的默认加密密钥。
创建加密的 Neptune 数据库实例后,您无法更改该实例的加密密钥。因此,请确保先确定您的加密密钥要求,然后再创建加密的 Neptune 数据库实例。
可使用另一账户中的密钥的 Amazon 资源名称 (ARN) 来加密 Neptune 数据库实例。如果您使用拥有用于加密新 Neptune 数据库实例的Amazon KMS加密密钥的相同Amazon账户创建 Neptune 数据库实例,则您传递的Amazon KMS密钥 ID 可以是密钥别名,而不是Amazon KMS密钥的 ARN。
重要
如果 Neptune 失去对 Neptune 数据库实例的加密密钥的访问权限(例如,在撤销对密钥的 Neptune 访问权限时),该加密的数据库实例将被置于最终状态且只能从备份进行还原。我们强烈建议您始终对加密的 Neptune 数据库实例启用备份,以防止数据库中的加密数据丢失。
启用加密时所需的密钥权限
创建加密 Neptune 数据库实例的 IAM 用户或角色必须至少拥有 KMS 密钥的以下权限:
"kms:Encrypt""kms:Decrypt""kms:GenerateDataKey""kms:ReEncryptTo""kms:GenerateDataKeyWithoutPlaintext""kms:CreateGrant""kms:ReEncryptFrom""kms:DescribeKey"
以下是包含必要权限的密钥策略示例:
第一条语句提供对该角色所需的所有内容Amazon KMSAPIs 的访问权限,其范围仅限于 RDS 服务主体。
第二条语句强制该角色不能将此密钥用于任何其他Amazon服务,从而进一步加强了安全性。
也可以通过添加以下内容来进一步缩小 createGrant 权限范围:
"Condition": { "Bool": { "kms:GrantIsForAWSResource": true } }
Neptune 加密的限制
加密 Neptune 集群存在以下限制:
-
您无法将未加密的数据库集群转换为加密的数据库集群。
但是,您可以将未加密的 数据库集群快照还原为加密的 数据库集群。为此,请在从未加密的数据库集群快照还原时指定 KMS 加密密钥。
-
您无法将未加密的数据库实例转换为加密的数据库实例。您只能在创建数据库实例时为其启用加密。
此外,不能将已加密的数据库实例修改为禁用加密。
您无法拥有未加密数据库实例的加密只读副本或加密数据库实例的未加密只读副本。
加密的只读副本的加密密钥必须用与源数据库实例的相同。