Nesta página, descrevemos como usar o Cloud Key Management Service (Cloud KMS) para criar uma
chave encapsulada que pode ser usada para enviar
solicitações de deidentify e
reidentify
para a API Cloud Data Loss Prevention da Proteção de dados sensíveis.
O processo de usar uma chave criptográfica para desidentificar e reidentificar conteúdo é chamado de pseudonimização (ou tokenização). Para informações conceituais sobre esse processo, consulte Pseudonimização.
Para ver um exemplo que mostra como criar uma chave encapsulada, tokenizar conteúdo e reidentificar conteúdo tokenizado, consulte Como desidentificar e reidentificar textos confidenciais.
Você pode concluir as etapas deste documento em 5 a 10 minutos, sem incluir as etapas 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.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, 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.
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
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.enablepermission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, 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.
-
Se este guia estiver usando um projeto atual, verifique se você tem as permissões necessárias para concluir o guia. Se você criou um projeto, já tem as permissões necessárias.
-
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.enablepermission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Administrador do Cloud KMS (
roles/cloudkms.admin) -
Criptografador de CryptoKey do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypter) Crie um keyring:
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 keyring e a chave:
gcloud kms keys list \ --location "global" \ --keyring "dlp-keyring"A saída a seguir é exibida:
NAME: projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key PURPOSE: ENCRYPT_DECRYPT ALGORITHM: GOOGLE_SYMMETRIC_ENCRYPTION PROTECTION_LEVEL: SOFTWARE LABELS: PRIMARY_ID: 1 PRIMARY_STATE: ENABLEDNessa saída,
PROJECT_IDé o ID do projeto.O valor de
NAMEé o nome completo do recurso da chave do Cloud KMS. Anote esse valor, porque as solicitações de desidentificação e reidentificação exigem isso.Crie uma chave AES de 128, 192 ou 256 bits. O comando a seguir usa
opensslpara criar uma chave de 256 bits no diretório atual:openssl rand -out "./aes_key.bin" 32O arquivo
aes_key.biné adicionado ao diretório atual.Codifique a chave AES como uma string base64:
base64 -i ./aes_key.binVocê verá um resultado parecido com este:
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=PROJECT_ID: ID do projeto.BASE64_ENCODED_AES_KEY: a string codificada em base64 retornada em Criar uma chave AES codificada em base64.Saiba mais sobre a tokenização de dados com uma chave criptográfica.
Analise um exemplo que mostra como criar uma chave encapsulada, tokenizar o conteúdo e reidentificar o conteúdo tokenizado.
Saiba mais sobre os métodos de desidentificação que usam essa chave encapsulada e veja exemplos de código.
Funções exigidas
Para receber as permissões necessárias e criar uma chave AES encapsulada, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Crie um keyring e uma chave.
Antes de iniciar este procedimento, decida onde você quer que a Proteção de Dados Sensíveis processe as solicitações de desidentificação e reidentificação. Quando você cria uma chave do Cloud KMS, é necessário armazená-la em global ou na mesma região que será usada nas solicitações da Proteção de dados sensíveis.
Caso contrário, as solicitações da Proteção de Dados Sensíveis vão falhar.
Confira uma lista de locais compatíveis em Locais da Proteção de Dados Sensíveis. Anote o nome da região escolhida (por exemplo, us-west1).
Neste procedimento, global é usado como local para todas as solicitações de API. Se você quiser usar uma região diferente, substitua global pelo nome da região.
Criar uma chave AES codificada em base64
Esta seção descreve como criar uma chave do padrão de criptografia avançada (AES) e codificá-la no formato base64.
Encapsular a chave AES usando a chave do Cloud KMS
Esta seção descreve como usar a chave do Cloud KMS criada em Criar um keyring e uma chave para encapsular a chave AES codificada em base64 criada em Criar uma chave AES codificada em base64.
Para encapsular a chave AES, use curl para enviar a seguinte solicitação ao método
projects.locations.keyRings.cryptoKeys.encrypt
da API Cloud KMS:
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:
A resposta que você recebe do Cloud KMS é semelhante ao seguinte JSON:
{
"name": "projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1",
"ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=",
"ciphertextCrc32c": "901327763",
"protectionLevel": "SOFTWARE"
}
Nessa saída, PROJECT_ID é o ID do projeto.
Anote o valor de ciphertext na resposta.
Essa é sua chave encapsulada.