Cifrar y descifrar datos

En este documento se describe cómo cifrar y descifrar datos con claves del sistema de gestión de claves (KMS) mediante la CLI gdcloud.

Este documento está dirigido a los usuarios del grupo de operadores de aplicaciones que necesitan realizar operaciones criptográficas en proyectos de GDC. Para obtener más información, consulta el artículo Audiencias para la documentación de GDC en entornos aislados.

Antes de empezar

Antes de cifrar o descifrar datos, debes tener los permisos necesarios y preparar tu entorno.

Solicitar roles de gestión de identidades y accesos

Para cifrar y descifrar datos, ponte en contacto con el administrador de gestión de identidades y accesos de tu organización para solicitar el rol de desarrollador de KMS (kms-developer) en el espacio de nombres de tu proyecto.

Preparar tu entorno

Cifrar datos

Para cifrar datos, usa el comando gdcloud kms keys encrypt. Este comando cifra un archivo de texto sin formato determinado con la clave AEAD y lo escribe en un archivo de texto cifrado con nombre.

  • Para cifrar datos, introduce el nombre de la clave y lo siguiente:

    gdcloud kms keys encrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
      --plaintext-file=PLAINTEXT_PATH \
      --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
      --ciphertext-file=CIPHERTEXT_PATH
    

    Sustituye las siguientes variables:

    • NAMESPACE: el espacio de nombres del proyecto (por ejemplo, kms-test1).
    • KEY_NAME: el nombre de la clave utilizada para cifrar el texto sin formato (por ejemplo, key-1).
    • PLAINTEXT_PATH: la ruta al archivo que contiene el texto sin formato que se va a cifrar.
    • ADDITIONAL_AUTHENTICATED_DATA_FILE: un archivo opcional que contiene datos autenticados adicionales (AAD). Los AAD se utilizan para comprobar la integridad y proteger los datos de ataques de "confused deputy". Los AAD y el texto sin formato tienen un límite de tamaño de 64 KB.
    • CIPHERTEXT_PATH: la ruta al archivo que contiene el texto sin formato cifrado.

    Después de ejecutar el comando, verás un archivo que has especificado en la marca --ciphertext-file que contiene el contenido cifrado del archivo de texto sin formato.

Descifrar datos

Para descifrar datos, usa el comando gdcloud kms keys decrypt. Este comando descifra un archivo de texto cifrado determinado con la clave AEAD y lo escribe en un archivo de texto sin formato con nombre.

  • Para descifrar texto cifrado, introduce el nombre de la clave y lo siguiente:

    gdcloud kms keys decrypt namespaces/NAMESPACE/aeadKeys/KEY_NAME \
     --ciphertext-file=CIPHERTEXT_PATH \
     --additional-authenticated-data-file=ADDITIONAL_AUTHENTICATED_DATA_FILE \
     --plaintext-file=PLAINTEXT_PATH
    

    Sustituye las siguientes variables:

    • NAMESPACE: el espacio de nombres del proyecto.
    • KEY_NAME: el nombre de la clave utilizada para cifrar el texto sin formato.
    • CIPHERTEXT_PATH: la ruta al archivo que quieres descifrar.
    • ADDITIONAL_AUTHENTICATED_DATA_FILE: un archivo opcional que contiene datos autenticados adicionales (AAD). Los AAD se utilizan para comprobar la integridad y proteger los datos de ataques de "confused deputy". Los AAD y el texto sin formato tienen un límite de tamaño de 64 KB.
    • PLAINTEXT_PATH: la ruta al archivo que contiene el texto sin formato descifrado.

    Después de ejecutar el comando, verás un archivo que has especificado en la marca --plaintext-file que contiene los datos descifrados.