DynamoDB:我们可以一起使用加密和跨区域复制吗?

ez1*_*1sl 5 encryption replication amazon-web-services amazon-dynamodb aws-kms

DynamoDB:我们可以一起使用加密和跨区域复制吗?

我们正在为新应用程序评估DynamoDB.我们的要求是:

  • 静态数据加密
  • 用于灾难恢复的跨区域复制.我们在某个地区的应用程序必须仅依赖该地区的服务

使用AWS提供的Java库可以单独满足我们的要求.解决方案是:

但是,我们不确定这些解决方案是否可以协同工作.我们担心我们将无法解密跨区域复制记录.客户端加密解决方案建议在根目录下使用KMS管理的密钥建立密钥层次结构.KMS是区域特定的,因此如果我们将记录复制到另一个区域,我们将无法解密记录.加密密钥在其他区域无法访问.

问题是:

  • 如果加密密钥在KMS中,解密或跨区域复制记录是否正确?
  • 是否有推荐的方法来复制加密的DynamoDB记录?有没有人这样做过?
  • 我们应该考虑哪些替代方案?

ket*_*iya 5

你是对的.因此,设置将不起作用,因为不能跨区域共享KMS密钥.

假设您正在从区域R1复制数据到R2,它们分别具有KMS密钥K1和K2.我可以建议以下替代方案:

  1. 稍微修改库,以便在复制期间使用K1从R1解密数据并使用K2重新加密.你会对DynamoDBStreamsRecordTransformer类感兴趣.
  2. 在R1和R2中导入您自己的密钥材料.在此查看相关文档.
    • 警告:根据您的使用情况,可能会出现操作上的痛苦.

更新:添加您的想法,以便它可以帮助任何人在将来遇到这个问题:

  1. 创建您自己的纯文本数据密钥(可能使用KMS的GenerateRandom API),使用K1和K2(使用加密 API)对其进行加密,并将生成的密码文本与您的数据一起存储在两个区域中.
    • 警告:跨区域调用每次更新.在选项#1中,更新是异步的.