A Java library for client-side encryption and signing of data stored in Amazon DynamoDB.
Amazon DynamoDB Encryption Client for Java is a client-side encryption library that enables developers to encrypt and sign sensitive data before storing it in Amazon DynamoDB. It solves the problem of ensuring data confidentiality and integrity at the application level, providing an additional layer of security beyond server-side encryption. The library integrates seamlessly with DynamoDBMapper for transparent protection and offers low-level APIs for advanced use cases.
Java developers building applications on AWS DynamoDB who need to meet regulatory compliance or security requirements for sensitive data, such as personally identifiable information (PII) or financial records.
Developers choose this library because it provides a robust, AWS-supported solution for client-side encryption with minimal code changes, offering both ease of use through DynamoDBMapper integration and flexibility for custom encryption logic. Its signing capability ensures data integrity, and selective encryption annotations allow fine-grained control over protected attributes.
Amazon DynamoDB Encryption Client for Java
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically encrypts and signs all non-primary key attributes when using DynamoDBMapper with annotations like @DoNotEncrypt, enabling transparent protection with minimal code changes.
Supports various EncryptionMaterialsProvider implementations, including symmetric keys, asymmetric keys, and Java keystore integration, allowing customization based on security requirements.
Signs encrypted data to detect unauthorized modifications, ensuring that retrieved items haven't been tampered with, as highlighted in the integrity feature.
Encrypts and signs all attributes except primary keys unless explicitly excluded, providing a strong security baseline without extra configuration.
Changing your data model requires manual steps to update attribute actions, as admitted in the README, which can lead to errors or data corruption if not handled carefully.
Version 2.x lacks features like searchable encryption and improved multitenancy found in the renamed AWS Database Encryption SDK 3.x, making it less future-proof.
Must use SaveBehavior.PUT or CLOBBER to avoid signature corruption, a non-obvious requirement that can cause subtle bugs and data loss if overlooked.