docs(kms): correct the stale backend_info and rotation error claims

Two claims in docs/operations/kms-backend-security.md described code that
later changes removed or replaced.

The Vault KV2 section promised a `backend_info` metadata report of
`at_rest_protection: vault-kv2-acl`. That implementation and its assertion
test were removed by #5501 (76b3c085b5); the KMS crate has no BackendInfo
type at all today. The surviving field-level expression of the boundary is
the backup contract, where VaultKv2 maps to AtRestProtection::StorageOnly
and is serialized into a bundle manifest's at_rest_protection field as
`storage-only`. Say that instead, and say plainly that nothing reports the
boundary at runtime.

The rotation section named `InvalidOperation` as the error Local and Static
return. Neither backend advertises `rotate` in capabilities(), so rotate_key
falls through to the default trait impl and returns UnsupportedCapability,
which the contract tests already pin. InvalidOperation survives only in the
cfg(test) LocalKmsClient::rotate_key, off the product path. The "rotation is
rejected" conclusion was correct; only the error type was wrong.

Also drop the same dead vault-kv2-acl claim from the AtRestProtection
doc comment so the two do not drift apart again.

Documentation only; no behavior change.
This commit is contained in:
overtrue
2026-08-02 11:07:14 +08:00
parent 8e3e552576
commit 3acc74dc26
2 changed files with 3 additions and 4 deletions
+1 -2
View File
@@ -65,8 +65,7 @@ pub enum AtRestProtection {
/// for bundling purposes: re-wrap is mandatory.
LegacyUnspecified,
/// Vault KV2 as currently shipped: material confidentiality relies on
/// Vault ACLs, KV2 at-rest encryption, and TLS only (the backend reports
/// `at_rest_protection = "vault-kv2-acl"`); RustFS applies no
/// Vault ACLs, KV2 at-rest encryption, and TLS only; RustFS applies no
/// cryptographic wrapping of its own.
StorageOnly,
/// Vault KV2 with material wrapped by Vault Transit before storage. Not