|
1 | 1 | # AWS Database Encryption SDK for DynamoDB
|
2 | 2 |
|
3 |
| -AWS Database Encryption SDK for DynamoDB |
| 3 | +[](https://github.com/aws/aws-database-encryption-sdk-dynamodb/actions/workflows/daily_ci.yml) |
| 4 | +[](https://crates.io/crates/aws-db-esdk) |
| 5 | +[](https://docs.rs/aws-db-esdk) |
| 6 | +[](https://img.shields.io/badge/rust-1.81%2B-orange.svg) |
4 | 7 |
|
5 |
| -## Using the AWS Database Encryption SDK for DynamoDB for Rust |
| 8 | +This is the official [AWS Database Encryption SDK (DB-ESDK) for DynamoDB in Rust](https://crates.io/crates/aws-db-esdk). |
6 | 9 |
|
7 |
| -The AWS Database Encryption SDK for DynamoDB is available on [Crates.io](https://www.crates.io/). |
| 10 | +## [CHANGELOG](https://github.com/aws/aws-database-encryption-sdk-dynamodb/blob/main/CHANGELOG.md) |
8 | 11 |
|
9 |
| -## Building the AWS Database Encryption SDK for DynamoDB |
| 12 | +## Overview |
10 | 13 |
|
11 |
| -To build, the AWS Database Encryption SDK for DynamoDB requires the most up to date version of [Dafny](https://github.com/dafny-lang/dafny) on your PATH. |
| 14 | +The AWS Database Encryption SDK (DB-ESDK) for DynamoDB is a client-side encryption |
| 15 | +library that allows you to perform attribute-level encryption, enabling you to encrypt specific |
| 16 | +attribute values within items before storing them in your DynamoDB table. All encryption and |
| 17 | +decryption are performed within your application. This lets you protect sensitive data in-transit |
| 18 | +and at-rest, as data cannot be exposed unless decrypted by your application. |
12 | 19 |
|
13 |
| -You will also need to ensure that you fetch all submodules using either `git clone --recursive ...` when cloning the repository or `git submodule update --init` on an existing clone. |
| 20 | +For more details about the design and architecture of the DB-ESDK for DynamoDB, |
| 21 | +see the [AWS Database Encryption SDK Developer Guide](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/). |
14 | 22 |
|
15 |
| -To setup your project to use the AWS Database Encryption SDK for DynamoDB in Rust, run: |
| 23 | +## Examples for AWS Database Encryption SDK in Rust |
16 | 24 |
|
17 |
| -``` |
18 |
| -cd DynamoDbEncryption |
19 |
| -# Polymorph smithy to Rust |
20 |
| -make polymorph_rust |
21 |
| -# Transpile Dafny to Rust |
22 |
| -make transpile_rust |
23 |
| -# Build Project |
24 |
| -cd runtimes/rust |
25 |
| -cargo build |
26 |
| -``` |
| 25 | +Please look at the Examples on how to use the AWS Database Encryption SDK in Rust [here](https://github.com/aws/aws-database-encryption-sdk-dynamodb/tree/main/DynamoDbEncryption/runtimes/rust/examples). |
27 | 26 |
|
28 |
| -### (Optional) Set up the AWS Database Encryption SDK for DynamoDB to work with AWS KMS |
29 |
| - |
30 |
| -If you set up the AWS Database Encryption SDK for DynamoDB to use the AWS KMS Keyring, |
31 |
| -the AWS Database Encryption SDK for DynamoDB will make calls to AWS KMS on your behalf, |
32 |
| -using the appropriate AWS SDK. |
33 |
| - |
34 |
| -However, you must first set up AWS credentials for use with the AWS SDK. |
35 |
| - |
36 |
| -## Testing the AWS Database Encryption SDK for DynamoDB for Rust |
37 |
| - |
38 |
| -### Configure AWS credentials |
39 |
| - |
40 |
| -To run the test suite you must first set up AWS credentials for use with the AWS SDK. |
41 |
| -This is required in order to run the integration tests, which use a KMS Keyring against a publicly accessible KMS CMK. |
42 |
| - |
43 |
| -### Run the tests |
44 |
| - |
45 |
| -Run the test suite with: |
46 |
| - |
47 |
| -``` |
48 |
| -cd AwsEncryptionSDK |
49 |
| -make test_rust |
50 |
| -``` |
51 |
| - |
52 |
| -Run tests on examples, to ensure they are up to date: |
53 |
| - |
54 |
| -``` |
55 |
| -cd AwsEncryptionSDK/runtimes/rust/ |
56 |
| -cargo test --examples |
57 |
| -``` |
58 |
| - |
59 |
| -Please look at the Examples on how to use the Encryption SDK in Rust [here](examples). |
60 |
| - |
61 |
| -Please note that tests and test vectors require internet access and valid AWS credentials, since calls to KMS are made as part of the test workflow. |
| 27 | +Please note that some examples MAY require internet access and valid AWS credentials, since calls to KMS are made. |
62 | 28 |
|
63 | 29 | ## License
|
64 | 30 |
|
|
0 commit comments