Skip to content

split the AWS KMS keyring specification #83

@mattsb42-aws

Description

@mattsb42-aws

We originally envisioned the AWS KMS keyring as a single thing because it interacts with a single service. However, as we have refined the defined behavior over time, what we have really come away with is two keyrings that each have fundamentally different behavior: the standard KMS keyring and the KMS discovery keyring. I think that we should split the specification into two documents to accurately reflect this.

KMS keyring

The KMS keyring can be configured with a generator key ID and additional key IDs, and behaves exactly as if you were to have a multi-keyring composed of "single-CMK KMS keyrings". (side note: this is actually how the Python KMS keyring is implemented internally). On encrypt, every CMK MUST succeed and on decrypt it MUST only attempt to decrypt EDKs from the specified CMKs.

KMS discovery keyring

The KMS discovery keyring does something completely different: on encrypt it does nothing, while on decrypt it attempts to decrypt any aws-kms EDK for which the client supplier will supply a client.

meta-interface

An important thing to note here is that the interface for creating KMS keyrings does not need to change.

Metadata

Metadata

Assignees

Labels

Doc impactRequires a change to AWS documentation

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions