Generar, rotar o revocar una clave desde una aplicación
Crea, rota o revoca una clave de tu tenant desde código en lugar de desde las pantallas de la consola.
Quién puede hacerlo
No el actor criptográfico de una aplicación. El token que una aplicación obtiene con la credencial de su actor no puede crear, rotar ni revocar claves:
- Las operaciones de generación y rotación de claves de la API criptográfica no forman parte de su contrato publicado. El scope que necesita la generación de claves nunca se da a un actor, y una rotación se rechaza con
403para cualquier token que no se haya emitido al servicio de administración, sea cual sea el scope que lleve. - La creación, la rotación y la revocación de claves son operaciones de administración. Las ejecuta un administrador del tenant o un gestor de claves del tenant, desde la consola o desde código, con la CLI de gestión de claves, el Admin SDK o la API de administración. Un superadministrador de plataforma también puede rotar y revocar las claves de un tenant.
Por eso, una aplicación usa las claves que se le conceden; las personas que gestionan las claves las crean y las cambian.
Antes de empezar
- Tienes el rol de administrador del tenant o de gestor de claves del tenant en el tenant.
- El tenant tiene un backend de protección de claves. Hasta que se configure uno, la creación de claves se rechaza.
Pasos
- Crea la clave con las superficies de administración, como se describe en Crear una clave:
- CLI de gestión de claves:
ankasecure-km keys create --kid <id> --algorithm <algorithm> --purpose <purpose>, o--body-filecon la solicitud completa. - Admin SDK:
KeyOperations.create(OrchestrationKeyRequest). - API:
POST /api/v3/admin/tenants/{tenantId}/keys(operacióncreateKey).
- CLI de gestión de claves:
- Rota la clave, lo que la avanza a una nueva versión de material con el mismo identificador de clave:
- CLI de gestión de claves:
ankasecure-km rotation rotate --kid <kid> --body-file <file>. - Admin SDK:
RotationOperations.rotate(kid, RotationRequest). - API:
POST /api/v3/admin/tenants/{tenantId}/keys/{kid}/rotations(operaciónrotateKey).
- CLI de gestión de claves:
- Revoca la clave, indicando el motivo y la causa del ciclo de vida que registra la auditoría:
- CLI de gestión de claves:
ankasecure-km keys revoke --kid <kid> --cause <cause> --reason <reason>. - Admin SDK:
KeyOperations.revoke(kid, RevokeKeyRequest). - API:
POST /api/v3/admin/tenants/{tenantId}/keys/{kid}/revoke(operaciónrevokeKey).
- CLI de gestión de claves:
- Concede al actor de la aplicación las operaciones que necesita sobre la clave con una concesión de capacidad. Hasta que tenga una, cada llamada criptográfica sobre la clave se rechaza con
403.
Qué ves cuando funcionó
La clave aparece en el inventario de claves del tenant con su identificador. Después de una rotación, la clave conserva su identificador e informa su nueva versión de material principal; los datos protegidos con versiones anteriores todavía se pueden leer según lo permita la política de ciclo de vida. Una clave revocada deja de proteger datos nuevos.
Si falla
| Qué ves | Causa | Qué hacer |
|---|---|---|
| Se rechaza una rotación pedida con el token de la aplicación | Solo el servicio de administración de claves rota una clave. El token de una aplicación nunca cumple esa condición | Rota mediante las superficies de administración anteriores |
403 de POST /api/v3/key-management/keys | El token no lleva el scope de generación de claves, que un actor nunca tiene | Crea la clave mediante las superficies de administración anteriores |
403 en una llamada criptográfica con la clave nueva | El actor de la aplicación no tiene ninguna concesión de capacidad sobre la clave | Crea una concesión para el actor |
Sin la consola
| Superficie | Cómo |
|---|---|
| CLI de gestión de claves | ankasecure-km keys create, ankasecure-km rotation rotate, ankasecure-km keys revoke |
| Admin SDK | KeyOperations.create, RotationOperations.rotate, KeyOperations.revoke |
| API de administración | createKey, rotateKey, revokeKey en /api/v3/admin/tenants/{tenantId}/keys |