Encripta y desencripta datos con una clave simétrica

En esta página, se muestra cómo usar Cloud Key Management Service (Cloud KMS) para realizar las siguientes operaciones con claves simétricas:

  • Encriptar texto o contenido binario (sin formato) con una clave de Cloud KMS
  • Desencriptar cifrado que se encriptó con una clave de Cloud KMS

Si quieres usar una clave asimétrica para la encriptación, consulta Encripta y desencripta datos con una clave asimétrica. Para obtener información sobre la encriptación simétrica sin procesar, consulta Encriptación simétrica sin procesar.

Antes de comenzar

  1. Crea un llavero de claves y crea una clave.

  2. Asegúrate de que el usuario que llama a los métodos de encriptación y desencriptación tenga los permisos cloudkms.cryptoKeyVersions.useToEncrypt y cloudkms.cryptoKeyVersions.useToDecrypt sobre la clave.

    Una forma de permitirle a un usuario que encripte o desencripte es agregar el usuario a las funciones de IAM roles/cloudkms.cryptoKeyEncrypter, roles/cloudkms.cryptoKeyDecrypter o roles/cloudkms.cryptoKeyEncrypterDecrypter para esa clave. La función roles/cloudkms.admin no proporciona estos dos permisos. Para obtener más información, consulta el artículo sobre permisos y funciones.

Encriptar

gcloud

Para usar Cloud KMS en la línea de comandos, primero instala o actualiza a la versión más reciente de Google Cloud CLI.

gcloud kms encrypt \
    --key KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION  \
    --plaintext-file FILE_TO_ENCRYPT \
    --ciphertext-file ENCRYPTED_OUTPUT

Reemplaza lo siguiente:

  • KEY_NAME: Es el nombre de la clave que deseas usar para la encriptación.
  • KEY_RING: el nombre del llavero de claves que incluye la clave
  • LOCATION: Es la ubicación de Cloud KMS que contiene el llavero de claves.
  • FILE_TO_ENCRYPT: Es la ruta de acceso al archivo que deseas encriptar.
  • ENCRYPTED_OUTPUT: Es la ruta de acceso en la que deseas guardar el resultado encriptado.

Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con la marca --help.

C#

Para ejecutar este código, primero configura un entorno de desarrollo de C# e instala el SDK de C# para Cloud KMS.


using Google.Cloud.Kms.V1;
using Google.Protobuf;
using System.Text;

public class EncryptSymmetricSample
{
    public byte[] EncryptSymmetric(
      string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key",
      string message = "Sample message")
    {
        // Create the client.
        KeyManagementServiceClient client =