Crie chaves de encriptação com o Cloud KMS
Este início rápido mostra como criar e usar chaves de encriptação com o Cloud Key Management Service num projeto que lhe pertence. Estas instruções usam a consola para criar conjuntos de chaves, chaves e versões de chaves no Cloud KMS.Google Cloud Para instruções que usam outros métodos, consulte a vista geral da chave automática, crie um conjunto de chaves e crie uma chave.
Este guia de início rápido usa a linha de comandos para enviar pedidos para a API Cloud KMS. Para ver exemplos de programação que usam as bibliotecas cliente para enviar pedidos para a API Cloud KMS, consulte Encriptar e desencriptar.
Antes de começar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Create or select a Google Cloud 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 Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud 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 example,myemail@example.com.ROLE: The IAM role that you grant to your user account.
-
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Create or select a Google Cloud 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 Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud 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 example,myemail@example.com.ROLE: The IAM role that you grant to your user account.
- Comece a usar a API.
- Consulte a referência da API.
- Saiba como encriptar dados em repouso.
Conjuntos de chaves e chaves
Para encriptar e desencriptar conteúdo, precisa de uma chave do Cloud KMS, que faz parte de um conjunto de chaves.
Crie um conjunto de chaves com o nome test e uma chave com o nome quickstart. Consulte a
vista geral da hierarquia de objetos para mais
informações sobre estes objetos e a forma como se relacionam.
gcloud kms keyrings create "test" \
--location "global"gcloud kms keys create "quickstart" \
--location "global" \
--keyring "test" \
--purpose "encryption"Pode usar a opção list para ver o nome e os metadados da chave que acabou de criar.
gcloud kms keys list \
--location "global" \
--keyring "test"Deve ver:
NAME PURPOSE PRIMARY_STATE projects/PROJECT_ID/locations/global/keyRings/test/cryptoKeys/quickstart ENCRYPT_DECRYPT ENABLED
Encripte dados
Agora que tem uma chave, pode usá-la para encriptar texto ou conteúdo binário.
Armazene algum texto a ser encriptado num ficheiro denominado "mysecret.txt".
echo -n "Some text to be encrypted" > mysecret.txtPara encriptar os dados com gcloud kms encrypt, forneça as informações da chave,
especifique o nome do ficheiro de texto simples a encriptar e especifique o nome do
ficheiro que vai conter o conteúdo encriptado:
gcloud kms encrypt \
--location "global" \
--keyring "test" \
--key "quickstart" \
--plaintext-file ./mysecret.txt \
--ciphertext-file ./mysecret.txt.encryptedO método encrypt guarda o seu conteúdo encriptado no ficheiro especificado pela flag --ciphertext-file.
Desencripte texto encriptado
Para desencriptar os dados com gcloud kms decrypt, indique as informações da chave,
especifique o nome do ficheiro encriptado (ficheiro de texto cifrado) a desencriptar e especifique
o nome do ficheiro que vai conter o conteúdo desencriptado:
gcloud kms decrypt \
--location "global" \
--keyring "test" \
--key "quickstart" \
--ciphertext-file ./mysecret.txt.encrypted \
--plaintext-file ./mysecret.txt.decryptedO método decrypt guarda o conteúdo descifrado no ficheiro especificado pela flag --plaintext-file.
Para desencriptar conteúdo encriptado, tem de usar a mesma chave que foi usada para encriptar o conteúdo.
Limpar
Para evitar incorrer em custos na sua Google Cloud conta pelos recursos usados nesta página, elimine o Google Cloud projeto com os recursos.
Liste as versões disponíveis para a sua chave:
gcloud kms keys versions list \
--location "global" \
--keyring "test" \
--key "quickstart"Para destruir uma versão, execute o seguinte comando, em que 1 é o número
da versão da chave que quer destruir:
gcloud kms keys versions destroy 1 \
--location "global" \
--keyring "test" \
--key "quickstart"