aws / aws/aws-encryption-sdk-java

Allow to pass overrideConfiguration per request

Open
#2,107 1 comment 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.