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.Cloud de Confiance 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

  1. Install the Google Cloud CLI.

  2. Configure a CLI gcloud para usar a sua identidade federada.

    Para mais informações, consulte o artigo Inicie sessão na CLI gcloud com a sua identidade federada.

  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Cloud de Confiance project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with 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_ID with your Cloud de Confiance project name.

  5. Verify that billing is enabled for your Cloud de Confiance project.

  6. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable cloudkms.googleapis.com
  7. 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.serviceConsumer

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

  8. 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.txt

    Para 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.encrypted

    O 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.decrypted

    O 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 Cloud de Confiance conta pelos recursos usados nesta página, elimine o Cloud de Confiance 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"
    

    O que se segue?