DynamoDB:我们可以同时使用加密和跨区域复制吗?
DynamoDB: can we use encryption and cross-region replication together?
DynamoDB:我们可以同时使用加密和跨区域复制吗?
我们正在为我们的新应用程序评估 DynamoDB。我们的要求是:
- 静态数据加密
- 用于灾难恢复的跨区域复制。我们在某个地区的应用程序必须仅依赖该地区的服务
我们的要求可以通过使用 AWS 提供的 Java 库来单独满足。解决方案是:
但是,我们不确定这些解决方案是否可以协同工作。我们担心我们将无法解密跨区域复制的记录。客户端加密解决方案建议在根部使用 KMS 管理的密钥建立密钥层次结构。 KMS 是区域特定的,因此如果我们将记录复制到另一个区域,我们将无法解密记录。加密密钥无法在其他区域访问。
问题是:
- 加密密钥在KMS中是不是不能解密或跨地域复制记录?
- 是否有推荐的方法来复制加密的 DynamoDB 记录?有人做过吗?
- 有没有我们应该考虑的替代方案?
你是对的。照原样,设置将不起作用,因为 KMS 密钥无法跨区域共享。
假设您正在将数据从区域 R1 复制到 R2,它们分别具有 KMS 密钥 K1 和 K2。我可以建议以下替代方案:
- 稍微修改库,使其在复制过程中使用 K1 解密来自 R1 的数据并使用 K2 重新加密。您会对 DynamoDBStreamsRecordTransformer class.
感兴趣
- 在 R1 和 R2 中导入您自己的密钥 material。检查相关文档 here。
- 警告:操作上可能会很痛苦,具体取决于您的用例。
更新:也加上你的想法,这样它可以帮助以后遇到这个问题的人:
- 创建您自己的纯文本数据密钥(可能使用 KMS 的 GenerateRandom API), encrypt it using both K1 and K2 (using the Encrypt API),并将生成的密文与您的数据一起存储在两个区域中。
- 注意:跨区域调用每次更新。在选项 #1 中,更新是异步的。
DynamoDB:我们可以同时使用加密和跨区域复制吗?
我们正在为我们的新应用程序评估 DynamoDB。我们的要求是:
- 静态数据加密
- 用于灾难恢复的跨区域复制。我们在某个地区的应用程序必须仅依赖该地区的服务
我们的要求可以通过使用 AWS 提供的 Java 库来单独满足。解决方案是:
但是,我们不确定这些解决方案是否可以协同工作。我们担心我们将无法解密跨区域复制的记录。客户端加密解决方案建议在根部使用 KMS 管理的密钥建立密钥层次结构。 KMS 是区域特定的,因此如果我们将记录复制到另一个区域,我们将无法解密记录。加密密钥无法在其他区域访问。
问题是:
- 加密密钥在KMS中是不是不能解密或跨地域复制记录?
- 是否有推荐的方法来复制加密的 DynamoDB 记录?有人做过吗?
- 有没有我们应该考虑的替代方案?
你是对的。照原样,设置将不起作用,因为 KMS 密钥无法跨区域共享。
假设您正在将数据从区域 R1 复制到 R2,它们分别具有 KMS 密钥 K1 和 K2。我可以建议以下替代方案:
- 稍微修改库,使其在复制过程中使用 K1 解密来自 R1 的数据并使用 K2 重新加密。您会对 DynamoDBStreamsRecordTransformer class. 感兴趣
- 在 R1 和 R2 中导入您自己的密钥 material。检查相关文档 here。
- 警告:操作上可能会很痛苦,具体取决于您的用例。
更新:也加上你的想法,这样它可以帮助以后遇到这个问题的人:
- 创建您自己的纯文本数据密钥(可能使用 KMS 的 GenerateRandom API), encrypt it using both K1 and K2 (using the Encrypt API),并将生成的密文与您的数据一起存储在两个区域中。
- 注意:跨区域调用每次更新。在选项 #1 中,更新是异步的。