|
| 1 | +# AWS Database Encryption SDK for DynamoDB in Go |
| 2 | + |
| 3 | +The AWS Database Encryption SDK (DB-ESDK) for DynamoDB in Go is a client-side encryption |
| 4 | +library that allows you to perform attribute-level encryption, enabling you to encrypt specific |
| 5 | +attribute values within items before storing them in your DynamoDB table. All encryption and |
| 6 | +decryption are performed within your application. This lets you protect sensitive data in-transit |
| 7 | +and at-rest, as data cannot be exposed unless decrypted by your application. |
| 8 | + |
| 9 | +For more details about the design and architecture of the DB-ESDK for DynamoDB, |
| 10 | +see the [AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/). |
| 11 | + |
| 12 | +# Security |
| 13 | + |
| 14 | +If you discover a potential security issue in this project |
| 15 | +we ask that you notify AWS/Amazon Security via our |
| 16 | +[vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). |
| 17 | +Please **do not** create a public GitHub issue. |
| 18 | + |
| 19 | +# Support Policy |
| 20 | + |
| 21 | +See [Support Policy](./SUPPORT_POLICY.rst) for details |
| 22 | +on the current support status of all major versions of this library. |
| 23 | + |
| 24 | +## Giving Feedback |
| 25 | + |
| 26 | +We need your help in making this SDK great. |
| 27 | +Please participate in the community and contribute to this effort by |
| 28 | +submitting issues, |
| 29 | +participating in discussion forums and |
| 30 | +submitting pull requests through the following channels: |
| 31 | + |
| 32 | +- Submit [issues](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues) |
| 33 | + \- this is the **preferred** channel to interact with our team |
| 34 | +- Articulate your |
| 35 | + [feature request](https://github.com/aws/aws-database-encryption-sdk-dynamodb/issues?q=is%3Aopen+is%3Aissue+label%3A%22feature-request%22) |
| 36 | + or upvote existing ones |
| 37 | +- Ask [questions](https://repost.aws/tags/TAc3VKZnkNQyimpHnCHetNOQ/aws-crypto-tools) on AWS re:Post under AWS Crypto Tools tag |
| 38 | + |
| 39 | +# Getting Started |
| 40 | + |
| 41 | +## Required Prerequisites |
| 42 | + |
| 43 | +To use the DB-ESDK for DynamoDB in Go, you must have: |
| 44 | + |
| 45 | +### A supported version of Go |
| 46 | + |
| 47 | +- Go 1.23 or later is required by AWS Encryption SDK for Go. |
| 48 | + |
| 49 | +For more information on downloading and installing Go, see [Go installation](https://go.dev/doc/install) |
| 50 | + |
| 51 | +### AWS Integration |
| 52 | + |
| 53 | +You need an Amazon Web Services (AWS) account to use the DB-ESDK for DynamoDB as it's specifically designed to work with Amazon DynamoDB. Optionally, you can use AWS Key Management Service (AWS KMS) as your main keyring provider. |
| 54 | + |
| 55 | +- **To create an AWS account**, go to |
| 56 | + [Sign In or Create an AWS Account](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html) |
| 57 | + and then choose **I am a new user.** |
| 58 | + Follow the instructions to create an AWS account. |
| 59 | + |
| 60 | +- **(Optional) To create a key in AWS KMS**, see |
| 61 | + [Creating Keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html). |
| 62 | + |
| 63 | +### Amazon Corretto Crypto Provider |
| 64 | + |
| 65 | +Many developers find that the Amazon Corretto Crypto Provider (ACCP) |
| 66 | +significantly improves the performance of the library. |
| 67 | +For help installing and using ACCP, see the |
| 68 | +[amazon-corretto-crypto-provider repository](https://github.com/corretto/amazon-corretto-crypto-provider). |
| 69 | + |
| 70 | +## Using the DB-ESDK for DynamoDB in Java |
| 71 | + |
| 72 | +There are several ways to use the library. |
| 73 | +More details are provided in the |
| 74 | +[AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/). |
| 75 | +Also see the [Examples](Examples/runtimes/go/). |
| 76 | + |
| 77 | +# Contributing |
| 78 | + |
| 79 | +See [CONTRIBUTING](CONTRIBUTING.md) for more information. |
| 80 | + |
| 81 | +# License |
| 82 | + |
| 83 | +This project is licensed under the Apache-2.0 License. |
0 commit comments