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

时间:2016-11-09 17:12:02

标签: amazon-web-services encryption amazon-dynamodb replication aws-kms

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

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

  • 静止时的数据加密
  • 用于灾难恢复的跨区域复制。我们在某个地区的应用只能依赖该地区的服务

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

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

问题是:

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

1 个答案:

答案 0 :(得分:5)

你是对的。因此,设置将无法正常工作,因为无法跨区域共享KMS密钥。

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

  1. 稍微修改一下库,以便在复制期间使用K1从R1解密数据并使用K2重新加密。您对DynamoDBStreamsRecordTransformer课程感兴趣。
  2. 在R1和R2中导入您自己的密钥材料。查看相关文档here
    • 警告:根据您的使用情况,可能会在操作上感到痛苦。
  3. 更新:添加您的想法,以便以后可以帮助任何人绊倒这个问题:

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