Skip to content

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 403 para 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

  1. 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-file con la solicitud completa.
    • Admin SDK: KeyOperations.create(OrchestrationKeyRequest).
    • API: POST /api/v3/admin/tenants/{tenantId}/keys (operación createKey).
  2. 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ón rotateKey).
  3. 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ón revokeKey).
  4. 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

Relacionado