- Newest
- Most votes
- Most comments
Is it possible to hide some columns or a whole table from IAM users but have lambda functions still able to access it?
Yes, you can use Fine Grained Access Control
Is it possible to encrypt the data using a kms key such that only the client app or cognito users can access that key to encrypt and decrypt the data clientside?
Each KMS key can have its own access policy, which you can define who has access to what key. You can use the Encryption Client in combination with KMS to encrypt/decrypt sensitive data.
I believe that DDB Encryption client allowing client-side encryption is what you're looking for:
https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/what-is-ddb-encrypt.html
The DynamoDB Encryption Client is designed to be implemented in new, unpopulated databases. Encrypting your sensitive data in transit and at rest helps ensure that your plaintext data isn’t available to any third party, including AWS. The DynamoDB Encryption Client is provided free of charge under the Apache 2.0 license.
Relevant content
- asked a year ago
- asked 6 months ago
- AWS OFFICIALUpdated 9 months ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 7 months ago
- AWS OFFICIALUpdated 9 months ago
Thank you for your answer, I have been looking at the encryption client and it does seem to do what I want in terms of encrypting data. However, it seems as though it is using a key (for example from kms) which I will have access to as a developer. This means that I am still able to decrypt the data using that key to view the sensitive information. Do you know if it is possible to solve that problem without forcing the user to be responsible for their encryption key? Can I hide the encryption key from developers?
No, if you managed the keys properly with KMS, even the developer won't see the content in the production database. Each KMS key can have its own access policy, where you restrict which principals can use the key or not.