aws / aws/aws-encryption-sdk-java
Allow to pass overrideConfiguration per request
- Dominant language
- Java
- Stars
- 240
- Forks
- 125
- PR merge metrics
- No merged PRs in 30d
Description
### Security issue notifications
If you discover a potential security issue in the AWS Encryption SDK we ask that you notify AWS Security via our [vulnerability reporting page](https://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public GitHub issue.
### Problem:
If i want to pass additional headers with Decrypt call (e.g Confused Deputy protection). I need to provide for each account own KmsClient. Instead in SdkV2 i can call .overrideConfiguration on request (you already use it for API_NAMESPACE).
If it will be possible to add .overrideConfiguration per call encrypt/decrypt i can use the same KmsClient for all accounts.
### Solution:
A description of the possible solution in terms of Encryption SDK architecture.
I see 2 options:
1. in AwsCrypto.decryptData/ecryptData provide additional argument with options
2. When construct KmsMasterKeyProvider ask for supplier for override. But there we need to send something in addition to identify context of request
### Out of scope:
Is there anything the solution will intentionally NOT address?
[//]: # (NOTE: If you believe this might be a security issue, please email aws-security@amazon.com instead of creating a GitHub issue. For more details, see the AWS Vulnerability Reporting Guide: https://aws.amazon.com/security/vulnerability-reporting/ )
Contributor guide
Research direction
Start by tracing AwsCrypto.decryptData/encryptData and KmsMasterKeyProvider to understand where per-request AWS SDK v2 overrideConfiguration could enter. Compare the existing API_NAMESPACE usage with the two proposed options, then define the request context and API shape needed for encrypt and decrypt. Done means one KmsClient can serve requests for multiple accounts while additional headers reach the KMS call.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, java
- Domain
- backend-api-design, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100