Volver a envolver claves
Puede volver a cifrar las claves de cifrado de datos utilizando la API de IBM® Key Protect.
Cuando se rota una clave raíz en Key Protect, nuevo material de clave pasa a estar disponible para proteger las claves de cifrado de datos (DEK) que están asociadas a la clave raíz. Con la API para volver a envolver, puede volver a cifrar o volver a envolver las DEK sin exponer las claves como texto sin formato.
Para saber cómo el cifrado de sobre le ayuda a controlar la seguridad de los datos en reposo en la nube, consulte Protección de datos con cifrado de sobre.
Cómo volver a envolver las claves utilizando la API
Puede volver a envolver una clave de cifrado de datos (DEK) específica con una clave raíz que gestiona en Key Protect sin exponer la DEK como texto sin formato.
Volver a envolver claves funciona combinando llamadas unwrap y wrap al servicio. Por ejemplo, puede emular una operación de rewrap llamando primero a la API unwrap API para acceder a una DEK,
y después llamando a la API wrap para volver a cifrar la DEK utilizando el material de clave raíz más reciente.
Después de rotar una clave raíz en el servicio, vuelve a girar una clave de cifrado de datos que esté asociada a la clave raíz haciendo un
POSTllamada al punto final siguiente.
https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rewrap
-
Recupere sus credenciales de servicio y de autenticación para trabajar con claves en el servicio.
-
Copie el ID de la clave raíz rotada que ha utilizado para realizar la solicitud inicial de envolvimiento.
Puede recuperar el ID de una clave realizando una solicitud
GET api/v2/keyso visualizando las claves en Key Protect GUI. -
Copie el valor de
ciphertextque se ha devuelto durante la última solicitud de envolvimiento. -
Vuelva a empaquetar la clave con el último material de clave raíz ejecutando lo siguiente mandato
curl.$ curl -X POST \ "https://<region>.kms.cloud.ibm.com/api/v2/keys/<keyID_or_alias>/actions/rewrap" \ -H "accept: application/vnd.ibm.kms.key_action+json" \ -H "authorization: Bearer <IAM_token>" \ -H "bluemix-instance: <instance_ID>" \ -H "content-type: application/vnd.ibm.kms.key_action+json" \ -H "x-kms-key-ring: <key_ring_ID>" \ -H "correlation-id: <correlation_ID>" \ -d '{ "ciphertext": "<encrypted_data_key>", "aad": [ "<additional_data>", "<additional_data>" ] }'Sustituya las variables de la solicitud de ejemplo de acuerdo con la siguiente tabla.
| Variable | Descripción |
|---|---|
| región | Obligatorio. La abreviatura de región, como us-south o eu-gb, que representa el área geográfica donde reside su instancia de Key Protect.Para más información, consulte Puntos finales de servicio regionales. |
| keyID_or_alias | Obligatorio. El identificador o alias exclusivo de la clave raíz que ha utilizado para la solicitud de encapsulado inicial. |
| IAM_token | Obligatorio. Su señal de acceso de IBM Cloud. Incluya el contenido completo de la señal IAM, incluido el valor Bearer, en la solicitud curl. Para más información, consulte Recuperación de un token de acceso. |
| instance_ID | Obligatorio. El único identificador que está asignado a su instancia de servicio de Key Protect. Para obtener más información, consulte Recuperación de un ID de instancia. |
| ID_conjunto_claves | Opcional. El identificador exclusivo del conjunto de claves al que pertenece la clave. Si no se especifica, Key Protect buscará la clave en todos los conjuntos de claves asociados con la instancia especificada. Se recomienda especificar
el ID de conjunto de claves para optimizar la solicitud. Nota: El ID de llavero de las claves que se crean sin una cabecera x-kms-key-ring es: por defecto.For more information, see Teclas de agrupación. |
| correlation_ID | El identificador exclusivo que se ha utilizado para rastrear y correlacionar transacciones. |
| encrypted_data_key | Obligatorio. El valor de texto cifrado devuelto por la operación de envolver original. |
| additional_data | OpcionalLos datos de autenticación adicionales (AAD) que se utilizan para proteger más la clave. Cada serie puede contener hasta 255 caracteres. Si ha suministrado AAD para la llamada wrap inicial, debe especificar los
mismos AAD durante las llamadas unwrap o rewrap subsiguientes. Importante: El servicio Key Protect no guarda datos de autenticación adicionales. Si proporciona AAD, guarde los datos en una ubicación segura para asegurarse de que pueda acceder y proporcionar los mismos AAD durante las llamadas unwrap o rewrap subsiguientes. |
La clave de cifrado de datos recién encapsulada, la versión de clave original (keyVersion) asociada al texto cifrado proporcionado y la última versión de clave (rewrappedKeyVersion) asociada al nuevo texto cifrado,
se devuelve en el cuerpo de entidad de la respuesta. El siguiente objeto JSON muestra un valor devuelto de ejemplo.
{
"ciphertext": "eyJjaX ... h0Ijoi ... c1ZCJ9",
"keyVersion": {
"id": "02fd6835-6001-4482-a892-13bd2085f75d"
},
"rewrappedKeyVersion": {
"id": "12e8c9c2-a162-472d-b7d6-8b9a86b815a6"
}
}
Almacene y utilice el nuevo valor ciphertext para futuras operaciones de cifrado de sobre, de modo que los datos queden protegidos por la clave raíz más reciente.
Validación opcional
Verifique que la clave se ha vuelto a envolver satisfactoriamente mediante la decodificación de base64 del valor ciphertext.
$ echo <ciphertext> | base64 --decode
Sustituya <ciphertext> por el valor codificado en base64 devuelta en el paso anterior. El siguiente objeto JSON muestra una salida de CLI de ejemplo.
{
"ciphertext": "mIzRrwZAA8+WqRckG6gt1ji8HlEEJPSiV+TRBSR4GVr+FlAZlC5KvRriRF0=",
"iv": "lbwxXlAW2DS7+5jGz5Y1Kg==",
"version": "4.0.0",
"handle": "8e309bae-b3ec-4270-9b87-89f8697fe54f"
}