|
1 |
| -# AWS Database Encryption SDK for DynamoDB |
| 1 | +## Building the AWS Database Encryption SDK for DynamoDB |
2 | 2 |
|
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) |
| 3 | +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. |
7 | 4 |
|
8 |
| -This is the official [AWS Database Encryption SDK (DB-ESDK) for DynamoDB in Rust](https://crates.io/crates/aws-db-esdk). |
| 5 | +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. |
9 | 6 |
|
10 |
| -## [CHANGELOG](https://github.com/aws/aws-database-encryption-sdk-dynamodb/blob/main/CHANGELOG.md) |
| 7 | +To setup your project to use the AWS Database Encryption SDK for DynamoDB in Rust, run: |
11 | 8 |
|
12 |
| -## Overview |
| 9 | +``` |
| 10 | +cd DynamoDbEncryption |
| 11 | +# Polymorph smithy to Rust |
| 12 | +make polymorph_rust |
| 13 | +# Transpile Dafny to Rust |
| 14 | +make transpile_rust |
| 15 | +# Build Project |
| 16 | +cd runtimes/rust |
| 17 | +cargo build |
| 18 | +``` |
13 | 19 |
|
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. |
| 20 | +### (Optional) Set up the AWS Database Encryption SDK for DynamoDB to work with AWS KMS |
19 | 21 |
|
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/). |
| 22 | +If you set up the AWS Database Encryption SDK for DynamoDB to use the AWS KMS Keyring, |
| 23 | +the AWS Database Encryption SDK for DynamoDB will make calls to AWS KMS on your behalf, |
| 24 | +using the appropriate AWS SDK. |
22 | 25 |
|
23 |
| -## Examples for AWS Database Encryption SDK in Rust |
| 26 | +However, you must first set up AWS credentials for use with the AWS SDK. |
24 | 27 |
|
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/releases/rust/db_esdk/examples). |
| 28 | +## Testing the AWS Database Encryption SDK for DynamoDB for Rust |
26 | 29 |
|
27 |
| -Please note that some examples MAY require internet access and valid AWS credentials, since calls to KMS are made. |
| 30 | +### Configure AWS credentials |
28 | 31 |
|
29 |
| -## License |
| 32 | +To run the test suite you must first set up AWS credentials for use with the AWS SDK. |
| 33 | +This is required in order to run the integration tests, which use a KMS Keyring against a publicly accessible KMS CMK. |
30 | 34 |
|
31 |
| -This library is licensed under the Apache 2.0 License. |
| 35 | +### Run the tests |
| 36 | + |
| 37 | +Run the test suite with: |
| 38 | + |
| 39 | +``` |
| 40 | +cd DynamoDbEncryption |
| 41 | +make test_rust |
| 42 | +``` |
| 43 | + |
| 44 | +Run tests on examples, to ensure they are up to date: |
| 45 | + |
| 46 | +``` |
| 47 | +cd DynamoDbEncryption/runtimes/rust/ |
| 48 | +cargo test --examples |
| 49 | +``` |
| 50 | + |
| 51 | +Please note that tests require internet access and valid AWS credentials, since calls to KMS and DynamoDB are made as part of the workflow. |
0 commit comments