在 DynamoDB 中存储敏感信息之前,我需要在这里加密吗?

Do I need encryption here before storing sensitive information in DynamoDB

我在 DynamoDB 中有一个名为“Pin”的字段,它是敏感信息,用户可以使用它来执行某些操作。但它不是密码,如果用户要求,我们确实需要在 UI 上显示“Pin”的值(因此散列不起作用)。

我了解 DynamoDB 是静态加密的。问题是我应该在将它存储在 DDB 之前加密这个值并在发送回它之前解密它吗?这样做有意义吗?

还有什么我应该在这里做的吗?

@paulsm4 已经在他的评论中提到了一些有效的观点,让我进一步阐述。

问题是你想保护自己免受什么伤害。

如果您需要防止有人窃取 SSD,存储数据的前提是能够读取数据或任何其他类型的法规强制您进行静态加密,静态加密就足够了。

如果您想保护自己免受 AWS 管理员读取 table 中的数据,同时仍然能够管理 table 本身,您可以为 [ =10=、dynamodb:Querydynamodb:ScandynamodbBatchGetItem 到他们的角色。

如果您希望此特定属性具有额外的安全级别,您可以在写入之前使用对称加密对其进行加密,并在将其显示给用户之前对其进行解密。您可以使用 KMS 来做到这一点。这样您的管理员可以读取 table 但只会看到加密的 PIN。为了对其进行解密,他们需要访问用于加密该特定字段的密钥。

在这种情况下,您必须确保只允许您的软件访问 encrypt/decrypt PIN 的密钥,并强制执行适当的授权机制以阻止未经授权的用户解密数据。