Esta página descreve como usar o Cloud Key Management Service (Cloud KMS) para criar uma chave
envolvida que pode
usar para enviar pedidos deidentify
e reidentify
para a API Cloud Data Loss Prevention da Proteção de dados confidenciais.
O processo de utilização de uma chave criptográfica para desidentificar e voltar a identificar conteúdo chama-se pseudonimização (ou tokenização). Para informações conceptuais sobre este processo, consulte o artigo Pseudonimização.
Para um exemplo completo que demonstra como criar uma chave envolvida, tokenizar conteúdo e reidentificar conteúdo tokenizado, consulte o artigo Início rápido: desidentificação e reidentificação de texto sensível.
Pode concluir os passos neste tópico em 5 a 10 minutos, sem incluir os passos da secção Antes de começar.
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud 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.
Crie um conjunto de chaves:
gcloud kms keyrings create "dlp-keyring" \ --location "global"
Crie uma chave:
gcloud kms keys create "dlp-key" \ --location "global" \ --keyring "dlp-keyring" \ --purpose "encryption"
Liste o conjunto de chaves e a chave:
gcloud kms keys list \ --location "global" \ --keyring "dlp-keyring"
Recebe o seguinte resultado:
NAME PURPOSE ALGORITHM PROTECTION_LEVEL LABELS PRIMARY_ID PRIMARY_STATE projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key ENCRYPT_DECRYPT GOOGLE_SYMMETRIC_ENCRYPTION SOFTWARE 1 ENABLED
Neste resultado,
PROJECT_ID
é o ID do seu projeto.O caminho em
NAME
é o nome completo do recurso da sua chave do Cloud KMS. Tome nota do mesmo, uma vez que os pedidos de desidentificação e reidentificação o exigem.Crie uma chave AES de 128, 192 ou 256 bits. O comando seguinte usa
openssl
para criar uma chave de 256 bits no diretório atual:openssl rand -out "./aes_key.bin" 32
O ficheiro
aes_key.bin
é adicionado ao seu diretório atual.Codifique a chave AES como uma string base64:
base64 -i ./aes_key.bin
Recebe um resultado semelhante ao seguinte:
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
PROJECT_ID
: o ID do seu projeto.BASE64_ENCODED_AES_KEY
: a string com codificação base64 devolvida no passo 2.Saiba mais sobre a tokenização de dados através de uma chave criptográfica.
Trabalhe num exemplo completo que demonstre como criar uma chave com encapsulamento, tokenizar conteúdo e voltar a identificar conteúdo tokenizado.
Saiba mais sobre os métodos de anulação da identificação que aceitam esta chave envolvida e consulte exemplos de código.
Passo 1: crie um conjunto de chaves e uma chave
Antes de iniciar este procedimento, decida onde quer que a Proteção de dados confidenciais processe os seus pedidos de desidentificação e reidentificação. Quando
cria uma chave do Cloud KMS, tem de a armazenar em global
ou na
mesma região que vai usar para os seus pedidos de proteção de dados confidenciais.
Caso contrário, os pedidos de proteção de dados confidenciais falham.
Pode encontrar uma lista de localizações suportadas nas localizações da proteção de dados confidenciais. Tome nota do nome
da região escolhida (por exemplo, us-west1
).
Este procedimento usa global
como a localização para todos os pedidos de API. Se quiser usar uma região diferente, substitua global
pelo nome da região.
Passo 2: crie uma chave AES codificada em base64
Esta secção descreve como criar uma chave da norma Advanced Encryption Standard (AES) e codificá-la no formato base64.
Passo 3: envolva a chave AES com a chave do Cloud KMS
Esta secção descreve como usar a chave do Cloud KMS que criou no Passo 1 para encapsular a chave AES codificada em base64 que criou no Passo 2.
Para encapsular a chave AES, use curl
para enviar o seguinte pedido à
API Cloud KMS
projects.locations.keyRings.cryptoKeys.encrypt
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key:encrypt" \
--request "POST" \
--header "Authorization:Bearer $(gcloud auth application-default print-access-token)" \
--header "content-type: application/json" \
--data "{\"plaintext\": \"BASE64_ENCODED_AES_KEY\"}"
Substitua o seguinte:
A resposta que recebe do Cloud KMS é semelhante ao seguinte JSON:
{ "name": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1", "ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=", "ciphertextCrc32c": "901327763", "protectionLevel": "SOFTWARE" }
Neste resultado, PROJECT_ID
é o ID do seu projeto.
Tome nota do valor de ciphertext
na resposta que recebe.
Essa é a sua chave envolvida.