Cifrado bajo su propia clave
De forma predeterminada, las versiones de un secreto se cifran con una clave administrada por la plataforma. Enlace el secreto a una de sus propias claves KMS al crearla para usarla en su lugar:- Console
- API
- CLI
- Go
En Create Secret, abra la tarjeta Encryption y elija una clave en Encryption key en lugar de Platform-managed key (default).El selector ofrece sus claves simétricas habilitadas (
aes-256) con el uso de encrypt_decrypt en la región seleccionada.enabled, y fijada a encrypt_decrypt. Pase su UUID, CRN completo o nombre de ámbito de cuenta en kms_key. La vinculación mantiene la identidad de clave original incluso si su nombre se reutiliza después de la eliminación. Una clave de reemplazo no puede descifrar el secreto original.
Lo que cambia
Enlazar un secreto a tu clave no cambia la superficie de la API — las lecturas y escrituras devalue se ven idénticas. Lo que cambia es que la tecla se convierte en un control que se sostiene:
- Deshabilitar la clave y las lecturas comienzan a fallar con
409 KMS_KEY_DISABLED. Ese error viaja a usted como él mismo, no como un500— el estado de la clave es suyo, y la reactivación de la clave restaura las lecturas. - Programar la clave para su eliminación y las lecturas fallan con
409 KMS_KEY_PENDING_DELETIONpara toda la ventana. - Deje que esa ventana transcurra y cada versión de cada secreto bajo esa clave es permanentemente ilegible. El texto cifrado todavía está en la base de datos; nada puede abrirlo.
La encuadernación está fija para la vida del secreto.
kms_key solo se acepta en el momento de crear, y PATCH edita solo description y tags — mover un secreto a una clave diferente significa volver a envuelver cada versión, así que cree un nuevo secreto y retire el antiguo en su lugar.Las versiones están ligadas a su secreto
Cualquiera que sea la clave utilizada, el texto cifrado de cada versión se sella con la cuenta del secreto y el id secreto como contexto de cifrado. Por lo tanto, un blob almacenado solo se descifra como la versión del secreto para el que se escribió, no se puede sacar de la base de datos y reproducir como el valor de un secreto diferente, incluso uno cifrado con la misma clave. Si una clave vinculada se elimina permanentemente, las lecturas de metadatos aún devuelven el recurso conkms_key_unavailable: true y sin kms_key_crn. Esto no quita el enlace de cifrado ni selecciona una clave de reemplazo. Fallan las operaciones que requieren la clave eliminada.
