feat(kms): add an AWS KMS backend (#5553)

This commit is contained in:
Zhengchao An
2026-08-01 14:07:32 +08:00
committed by GitHub
parent 35e4415ed9
commit 322ce21b9a
16 changed files with 1574 additions and 10 deletions
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -1386,7 +1386,8 @@ impl LocalKmsBackend {
crate::config::BackendConfig::Local(local_config) => local_config.clone(),
crate::config::BackendConfig::VaultKv2(_)
| crate::config::BackendConfig::VaultTransit(_)
| crate::config::BackendConfig::Static(_) => {
| crate::config::BackendConfig::Static(_)
| crate::config::BackendConfig::Aws(_) => {
return Err(KmsError::configuration_error("Expected Local backend configuration"));
}
};
+1
View File
@@ -20,6 +20,7 @@ use async_trait::async_trait;
use jiff::Zoned;
use serde::{Deserialize, Serialize};
pub mod aws;
#[cfg(test)]
mod contract_tests;
pub mod local;
@@ -0,0 +1,14 @@
---
source: crates/kms/src/backends/aws.rs
expression: capabilities_snapshot(backend.capabilities())
---
{
"decrypt": true,
"enable_disable": true,
"encrypt": true,
"generate_data_key": true,
"physical_delete": false,
"rotate": true,
"schedule_deletion": true,
"versioning": true
}
+2 -1
View File
@@ -1163,7 +1163,8 @@ impl VaultKmsBackend {
crate::config::BackendConfig::VaultKv2(vault_config) => (**vault_config).clone(),
crate::config::BackendConfig::Local(_)
| crate::config::BackendConfig::VaultTransit(_)
| crate::config::BackendConfig::Static(_) => {
| crate::config::BackendConfig::Static(_)
| crate::config::BackendConfig::Aws(_) => {
return Err(KmsError::configuration_error("Expected Vault KV2 backend configuration"));
}
};
+3 -1
View File
@@ -1012,7 +1012,9 @@ impl VaultTransitKmsBackend {
metadata_key_prefix: vault_config.key_path_prefix.clone(),
tls: vault_config.tls.clone(),
},
crate::config::BackendConfig::Local(_) | crate::config::BackendConfig::Static(_) => {
crate::config::BackendConfig::Local(_)
| crate::config::BackendConfig::Static(_)
| crate::config::BackendConfig::Aws(_) => {
return Err(KmsError::configuration_error("Expected Vault Transit backend configuration"));
}
};