-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(KeyStore): Key Store Admin & Storage #788
base: main
Are you sure you want to change the base?
Conversation
Crypto Tools would like to prepare for our next release, but it seems we have stumbled into a few Dafny bugs. The Dafny .NET compiler is struggling with the Storage changes in Additionally, the Smithy-Diff workflow has generated far too much noise. Crypto Tools use GitHub notifications to track customer cut or updated GitHub issues. Tagging a contributor for every commit pushed generates far too much noise. See #717 as evidence that '.github/workflows/block_main.yml' fails if this commit targets main.
The key store now allows for both a default DynamoDB table, or any custom storage system. The important aspect about the key store is the fact that branch keys can be versioned easily, and are cryptographically safe to use. The actual storage medium is not important. See: https://github.com/awslabs/aws-encryption-sdk-specification/blob/master/changes/2024-6-17_key-store-persistance/background.md#background
Beta build of Mutations with several substantial gaps --------- Co-authored-by: seebees <[email protected]>
Crypto Tools, at this time, intends to release Branch Key Mutations without some operations useful for recovering a dropped Mutation Token or dealing with the disagreement of a Mutation Token and a Mutation Lock. Additionally, we intend to release the Key Store Admin with only support for one Key Management Strategy. All checks are green except for Verification. Verification is failing for the Key Store Admin's Index.dfy. Verification for the Key Store Admin's Index.dfy has been failing for a long time.
…#753) This resolves feedback from both @seebees and @josecorella on Mutations branch. Verification failure is due to (just like in #751 ): 1. Key Store Admin's Index.dfy not proving Fresh, which has been a long standing issue with the Admin 2. In `AwsCryptographyKeyStore/test/Storage/TestGetItemsForInitializeMutation.dfy`, the test assumes `type` is in the Encryption Context. It is, but Structure.dfy does not prove that, so it must be proven else where. A .NET MPL job failed due to .NET 48 Sig V4 Auth bug.
* refactor(Storage): Use TransactGet instead of BatchGet for GetInitMut (#753) This resolves feedback from both @seebees and @josecorella on Mutations branch. * chore(Mutations): address #754\#discussion_r1775676091 #754 (comment) * chore(Mutations): Address feedback from #750 See #750 * chore(Mutations): address feedback on #742 See #742
The Key Store Admin client exposes administrative operations for the Branch Keys used by the AWS KMS Hierarchical Keyring. These Operations are: - Create Key - Version Key - Initialize Mutation - Apply Mutation See the Java Examples directory for the AWS Cryptographic Materials Provider for details: `AwsCryptographicMaterialProviders/runtimes/java/src/examples` Changes from rc-1.7.0 - Initialize Mutation now uses `ddb:TransactGetItems` instead of `ddb:BatchGetItems`. - To better facilitate DDB Queries, we changed the type string (sort key in key store table) of the mutation lock from `MUTATION_LOCK` to `branch:MUTATION_LOCK`. This is a breaking change that will corrupt any in-flight mutations. As Branch Key Mutations is only present in release-candidate branches, no customers are impacted by this breaking change.
If the KMS Call, for mutating the Beacon, fails, it MAY indicate the MPL Consumer does not have access to the terminal KMS Key. If the KMS call for verifying a terminal version fails, it MAY indicate the MPL Consumer does not have access to the terminal KMS Key. Also fix some Dafny tests failing verification.
Created via: git merge public_aws/main -s ort -X ours
@josecorella @seebees The Java Examples failure is because we removed the Strings from Opaque, See: smithy-lang/smithy-dafny#619 Thus, I am happy with that test failing. Also, I would like to get this squashed into rc-1.8.0 relatively soon, |
feat: Adding a storage option to the KeyStore #594
The key store now allows for both a default DynamoDB table,
or any custom storage system.
The important aspect about the key store
is the fact that branch keys can be versioned easily,
and are cryptographically safe to use.
The actual storage medium is not important.
See: https://github.com/awslabs/aws-encryption-sdk-specification/blob/master/changes/2024-6-17_key-store-persistance/background.md#background
feat: Key Store Admin
The Key Store Admin client exposes administrative
operations for the Branch Keys used by the
AWS KMS Hierarchical Keyring.
These Operations are:
See the Java Examples directory for the
AWS Cryptographic Materials Provider for details:
AwsCryptographicMaterialProviders/runtimes/java/src/examples
feat(KeyStore): Safely Mutating Branch Keys
TBD
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.