Crea claves de encriptación con Cloud KMS
En esta guía de inicio rápido, se muestra cómo crear y usar claves de encriptación con Cloud Key Management Service en un proyecto de tu propiedad. En estas instrucciones, se usa la consola deCloud de Confiance para crear llaveros de claves, claves y versiones de claves en Cloud KMS. Para obtener instrucciones que usan otros métodos, consulta Descripción general de las claves automáticas, Crea un llavero de claves y Crea una clave.
En esta guía de inicio rápido, se usa la línea de comandos para enviar solicitudes a la API de Cloud KMS. A fin de ver ejemplos de programación que usen las bibliotecas cliente para enviar solicitudes a la API de Cloud KMS, consulta Encriptación y desencriptación.
Antes de comenzar
-
Install the Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Create or select a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Cloud de Confiance project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Cloud de Confiance project you are creating. -
Select the Cloud de Confiance project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Cloud de Confiance project name.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
Enable the Cloud KMS API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudkms.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/cloudkms.admin, roles/cloudkms.cryptoKeyEncrypterDecrypter, roles/servicemanagement.serviceConsumergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID: Your project ID.USER_IDENTIFIER: The identifier for your user account. For examples, see Represent workforce pool users in IAM policies.ROLE: The IAM role that you grant to your user account.
- Comienza a usar la API.
- Revisa la referencia de la API.
- Obtén más información para encriptar datos en reposo.
Claves y llaveros de claves
Para encriptar y desencriptar contenido, necesitarás una clave de Cloud KMS, que es parte de un llavero de claves.
Crea un llavero de claves denominado test y una clave con el nombre quickstart. Consulta la descripción general de la jerarquía de objetos para obtener más información sobre estos objetos y cómo se relacionan.
gcloud kms keyrings create "test" \
--location "global"gcloud kms keys create "quickstart" \
--location "global" \
--keyring "test" \
--purpose "encryption"Puedes usar la opción list para ver el nombre y los metadatos de la clave que acabas de crear.
gcloud kms keys list \
--location "global" \
--keyring "test"Deberías ver lo siguiente:
NAME PURPOSE PRIMARY_STATE projects/PROJECT_ID/locations/global/keyRings/test/cryptoKeys/quickstart ENCRYPT_DECRYPT ENABLED
Encripta datos
Ahora que tienes una clave, puedes usarla para encriptar texto o contenido binario.
Almacena algo de texto para encriptar en un archivo llamado “mysecret.txt”.
echo -n "Some text to be encrypted" > mysecret.txtPara encriptar los datos con gcloud kms encrypt, proporciona tu información de clave, especifica el nombre del archivo de texto sin formato que se debe encriptar y especifica el nombre del archivo que contendrá el contenido encriptado:
gcloud kms encrypt \
--location "global" \
--keyring "test" \
--key "quickstart" \
--plaintext-file ./mysecret.txt \
--ciphertext-file ./mysecret.txt.encryptedEl método encrypt guarda tu contenido encriptado en el archivo que especifica la marca --ciphertext-file.
Desencripta contenido cifrado
Para desencriptar los datos con gcloud kms decrypt, proporciona tu información de clave, especifica el nombre del archivo encriptado (archivo de cifrado) a desencriptar, y especifica el nombre del archivo que contendrá el contenido desencriptado:
gcloud kms decrypt \
--location "global" \
--keyring "test" \
--key "quickstart" \
--ciphertext-file ./mysecret.txt.encrypted \
--plaintext-file ./mysecret.txt.decryptedEl método decrypt guarda tu contenido desencriptado en el archivo que especifica la marca --plaintext-file.
A fin de desencriptar contenido, debes utilizar la misma clave que usaste para encriptarlo.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Cloud de Confiance por los recursos que usaste en esta página, borra el proyecto de Cloud de Confiance que tiene los recursos.
Crea una lista de versiones disponibles para tu clave:
gcloud kms keys versions list \
--location "global" \
--keyring "test" \
--key "quickstart"Para destruir una versión, ejecuta el siguiente comando, en el que 1 es el número de la versión de la clave que deseas destruir:
gcloud kms keys versions destroy 1 \
--location "global" \
--keyring "test" \
--key "quickstart"