DynamoDB 如何使用 AWS KMS

Amazon DynamoDB 是一种完全托管的可扩展式 NoSQL 数据库服务。DynamoDB 与 AWS Key Management Service (AWS KMS) 集成以支持静态加密服务器端加密功能。

利用静态加密,DynamoDB 可以透明方式对 DynamoDB 表中的所有客户数据进行加密,包括其主键及本地和全局二级索引,只要该表已保存到磁盘。(如果表具有排序键,则标记范围边界的一些排序键将以明文形式存储在表元数据中。) 当您访问表时,DynamoDB 会以透明方式解密表数据。您无需更改应用程序即可使用或管理加密表。

此外,在将 DynamoDB 流全局表备份保存到持久性媒体时,静态加密可以保护这些对象。有关本主题中表的语句也适用于这些对象。

将对所有 DynamoDB 表进行加密。没有为新表或现有表启用或禁用加密的选项。默认情况下,在 DynamoDB 服务账户中的 AWS 拥有的客户主密钥 (CMK) 下对所有表进行加密。不过,您可以选择用于在账户中的适用于 DynamoDB 的 AWS 托管 CMK 下对部分或所有表进行加密的选项。静态加密不支持客户托管 CMK

使用 CMK 和数据密钥

DynamoDB 静态加密功能使用一个 AWS KMS 客户主密钥 (CMK) 和一个数据密钥层次结构来保护您的表数据。在将 DynamoDB 流、全局表和备份写入持久性媒体时,DynamoDB 使用相同的密钥层次结构来保护这些对象 。

客户主密钥 (CMK)

静态加密功能在 AWS KMS 客户主密钥 (CMK) 下保护 DynamoDB 表。默认情况下,它使用 AWS 托管 CMK,但 DynamoDB 支持用于在 AWS 账户中的适用于 DynamoDB (aws/dynamodb) 的 AWS 托管 CMK下对部分或所有表进行加密的选项。您可以在创建或更新表时为表选择 CMK,并且可以为每个表做出不同的选择。静态加密功能不支持使用客户托管的 CMK

如果您需要以下任意功能,请使用 AWS 托管 CMK:

  • 您可以查看 CMK 及其密钥策略。(您无法更改密钥策略。)
  • 您可以通过在 AWS CloudTrail 日志中检查针对 AWS KMS 的 DynamoDB API 调用来审计 DynamoDB 表的加密和解密。

不过,AWS 拥有的 CMK 是免费的。对于每个 API 调用,AWS 托管 CMK 会产生费用

可通过以下方式随时更改表的 CMK:在 DynamoDB 控制台中或使用 UpdateTable 操作。在更改 CMK 时,DynamoDB 会生成新的表密钥。然后,它使用新的表密钥来重新加密数据加密密钥。

无论您选择哪种 CMK,使用 CMK 创建表密钥的过程都是相同的。

表密钥

DynamoDB 对表使用 CMK 来生成和加密表的唯一数据密钥(也称作表密钥)。该表密钥将在加密表的生命周期内保留。

表密钥用作密钥加密密钥。DynamoDB 使用此表密钥来保护用于加密表数据的数据加密密钥。DynamoDB 会为表中的每个底层结构生成唯一的数据加密密钥,但多个表项目可能受相同的数据加密密钥的保护。

原文地址:https://www.cnblogs.com/cloudrivers/p/11617382.html

时间: 2024-08-01 06:18:44

DynamoDB 如何使用 AWS KMS的相关文章

DynamoDB 流 和 AWS Lambda 触发器

Amazon DynamoDB 与 AWS Lambda 集成,使您能够创建触发器 — 自动响应 DynamoDB 流 中的事件的代码片段.利用触发器,您可以创建应对 DynamoDB 表中的数据修改的应用程序. 如果您在表中启用 DynamoDB 流,则可以将流 Amazon 资源名称 (ARN) 与您编写的 AWS Lambda 函数关联起来.在修改表中的项目之后,表的流中都将出现一条新记录.AWS Lambda 将轮询流并在检测到新的流记录时同步调用 Lambda 函数. Lambda 函

DynamoDB 静态加密

DynamoDB 静态加密 存储在 Amazon DynamoDB 中的所有用户数据完全处于静态加密之中.DynamoDB 静态加密使用 AWS Key Management Service (AWS KMS) 中存储的加密密钥来加密您的所有静态数据,提供了增强的安全性.此功能可以帮助减少在保护敏感数据时涉及的操作负担和复杂性.通过静态加密,您可以构建符合严格的加密合规性和法规要求的安全敏感型应用程序. DynamoDB 静态加密通过在加密表中保护数据来提供额外的一层数据保护,包括其主键.本地和

AWS 数据库(七)

数据库概念 关系型数据库 关系数据库提供了一个通用接口,使用户可以使用使用 编写的命令或查询从数据库读取和写入数据. 关系数据库由一个或多个表格组成,表格由与电子表格相似的列和行组成. 以行列形式存储数据,行包含一个条目的所有信息,列是分离不同数据点的属性 架构固定,输入数据前要先锁定列 查询方式是SQL语句 支持垂直扩展属性 每一张表都有主键, 通过引用记录的主键,表中的一条记录可以与另一个表中的记录相关.这个指针或引用被称为外键. 关系数据库可以分为联机事务处理OLTP 和 联机分析处理OL

AWS & ASP.NET

https://dotnetcodr.com/amazon-cloud/ Amazon cloud Big Data overall architecture Architecture of a Big Data messaging and aggregation system using Amazon Web Services part 1 Architecture of a Big Data messaging and aggregation system using Amazon Web

开始准备AWS Developer认证考试--服务器端加密保护数据S3

您有三个互斥选项,具体取决于您选择如何管理加密密钥: 使用具有 Amazon S3 托管密钥的服务器端加密 (SSE-S3) – 使用唯一密钥加密每个对象.作为额外的保护,它将使用定期轮换的主密钥对密钥本身进行加密.Amazon S3 服务器端加密使用可用的最强数据块密码之一(即 256 位高级加密标准 (AES-256))来加密您的数据.有关更多信息,请参阅 使用具有 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据. 使用具有 AWS KMS 托管密钥的服务器端加密

实现混合数据库系统的最佳实践 DynamoDB

在某些情况下,从一个或多个关系数据库管理系统 (RDBMS) 迁移到 DynamoDB 可能无益.在这些情况下,创建混合系统可能更可取. 如果不想将所有内容迁移到 DynamoDB 例如,一些组织大笔投资于生成会计和运营所需众多报告的代码.生成报告所花时间对这些组织并不重要.关系系统的灵活性非常适合此类任务,在 NoSQL 上下文中重新创建这些报告可能过于困难. 某些组织将收购或继承的大量过时关系系统保留了几十年.为了证明此工作是合理的而迁移这些系统的数据,可能太过冒险和昂贵. 但是,相同的组织

在 CodePipeline 中创建使用另一个 AWS 账户的资源的管道

您可能希望创建一个使用由另一个 AWS 账户创建或管理的资源的管道.例如,您可能希望将一个账户用于您的管道,将另一个账户用于您的 CodeDeploy 资源. 在此示例中,您必须创建一个要使用的 AWS Key Management Service (AWS KMS) 密钥,将该密钥添加到管道,并设置账户策略和角色以启用跨账户访问.对于 AWS KMS 密钥,您可以使用密钥 ID.密钥 ARN 或别名 ARN. 注意 仅在创建了客户主密钥 (CMK) 的账户中识别别名.对于跨账户操作,您只能使用

AWS Key Management Service 概念

数据密钥 数据密钥 是可用于加密数据的加密密钥,包括大量数据和其他数据加密密钥. 您可以使用 AWS KMS 客户主密钥 (CMK) 生成.加密和解密数据密钥.但是,AWS KMS 不会存储.管理或跟踪您的数据密钥,也不会使用数据密钥执行加密操作.您必须在 AWS KMS 之外使用和管理数据密钥. 创建数据密钥 要创建数据密钥,请调用 GenerateDataKey 操作.AWS KMS 使用您指定的 CMK 来生成数据密钥.此操作会返回数据密钥的明文副本和借助 CMK 加密的数据密钥的副本,如

Amazon S3

1. Buckets: Buckets form the top-level namespace for Amazon S3, and bucket names are global. This means that your bucket names must be unique across all AWS accounts, much like Domain Name System (DNS) domain names, not just within your own account.