Por padrão, o Google Cloud automaticamente criptografa dados em repouso usando chaves de criptografia gerenciadas pelo Google. Se você tiver políticas específicas de compliance regulatórios relacionados às chaves que protegem seus dados, é possível usar chaves de criptografia gerenciadas pelo cliente (CMEK) para o Dataform repositórios.
Neste guia, descrevemos como usar a CMEK para o Dataform e explicamos o uso ativar a criptografia CMEK de repositórios do Dataform.
Para mais informações sobre a CMEK, incluindo quando e por que ativá-lo, consulte a documentação da CMEK.
Criptografia CMEK de dados do repositório
Ao aplicar a criptografia CMEK a um repositório do Dataform, Todos os dados do cliente gerenciados pelo Dataform nesse repositório são criptografados use o conjunto de chaves de proteção CMEK para o repositório. Esses dados incluem o seguinte:
- Conteúdo do repositório Git do repositório do Dataform e dos espaços de trabalho dele
- Consultas SQL compiladas e erros de compilação
- Consultas SQL armazenadas de ações do fluxo de trabalho
- Detalhes do erro das ações do fluxo de trabalho executadas
O Dataform usa chaves de proteção CMEK nos seguintes cenários:
- Durante todas as operações que exigem a descriptografia de dados do cliente armazenados em repouso.
Essas operações incluem, sem limitação:
- Respostas a uma consulta do usuário, por exemplo,
compilationResults.query
. - Criação de recursos do Dataform que exigem criação prévia dados de repositório criptografados, por exemplo, invocações do fluxo de trabalho.
- Operações Git para atualizar o repositório remoto, por exemplo, como enviar uma confirmação do Git.
- Respostas a uma consulta do usuário, por exemplo,
- Durante todas as operações que exigem o armazenamento de dados em repouso do cliente.
Essas operações incluem, sem limitação, o seguinte:
- Respostas a uma consulta do usuário, por exemplo,
compilationResults.create
. - Operações do Git para um espaço de trabalho, por exemplo, extrair uma confirmação do Git.
- Respostas a uma consulta do usuário, por exemplo,
O Dataform gerencia a criptografia dos dados do cliente associados apenas Recursos do Dataform. O Dataform não gerencia criptografia de dados de clientes criados no BigQuery pela execução de Fluxos de trabalho do Dataform. Para criptografar dados criados e armazenados no BigQuery, Configure a CMEK para o BigQuery.
Chaves com suporte
O Dataform oferece suporte aos seguintes tipos de chaves CMEK:
A disponibilidade da chave varia de acordo com o tipo de chave e a região. Para mais informações sobre a disponibilidade geográfica das chaves CMEK, consulte Locais do Cloud KMS.
Restrições
O Dataform oferece suporte a CMEK com as seguintes restrições:
- Não é possível aplicar uma chave de proteção CMEK a um repositório após esse repositório for criada. Só é possível aplicar a criptografia da CMEK durante a criação do repositório.
- Não é possível remover uma chave de proteção CMEK de um repositório.
- Não é possível alterar a chave de proteção CMEK de um repositório.
- As políticas da organização de CMEK não estão disponíveis.
- O uso das chaves do Cloud HSM está sujeito à disponibilidade. Para mais informações sobre a disponibilidade de chaves em diferentes locais, consulte Locais do Cloud KMS.
Cotas do Cloud KMS e Dataform
É possível usar as chaves do Cloud HSM com o Dataform. Quando você usa CMEK no Dataform, seus projetos podem consumir solicitações criptográficas do Cloud KMS cotas. Por exemplo, os repositórios do Dataform criptografados por CMEK podem consumir essas cotas para cada alteração no conteúdo do repositório. As operações de criptografia e descriptografia que usam chaves CMEK só afetam as cotas do Cloud KMS se você usar chaves de hardware (Cloud HSM) ou externas (Cloud EKM). Para mais informações, consulte Cotas do Cloud KMS.
Como gerenciar chaves
Usar o Cloud KMS para todas as operações de gerenciamento de chaves. O Dataform não consegue detectar nem agir de acordo com mudanças importantes até elas são propagadas pelo Cloud KMS. Algumas operações, como desativar ou destruir uma chave, pode levar até três horas para propagar. Geralmente, as mudanças nas permissões e se propaga muito mais rápido.
Depois que o repositório é criado, o Dataform chama no Cloud KMS para garantir que a chave seja válido durante cada operação nos dados do repositório criptografados.
Se o Dataform detectar que sua chave do Cloud KMS desativado ou destruído, todos os dados armazenados no repositório correspondente se torna inacessível.
Se chamadas pelo Dataform para O Cloud KMS detecta que uma chave anteriormente desativada reativado, o Dataform restaura o acesso automaticamente.
Como um status de chave indisponível é tratado
Em cenários raros, como quando o Cloud KMS está indisponível, talvez o Dataform não consiga recuperar o status da sua chave no Cloud KMS.
Se o repositório do Dataform for protegido por uma chave ativada no momento em que o Dataform não conseguir se comunicar com o Cloud KMS, o repositório de dados criptografado se torna inacessível.
Os dados do repositório criptografados continuam inacessíveis até que o Dataform se reconectar com o Cloud KMS, e o Cloud KMS responder que o está ativa.
Por outro lado, se o repositório do Dataform estiver protegido por uma chave, desativado no momento em que o Dataform é acessado não consegue se comunicar com o Cloud KMS, os dados do repositório permanece inacessível até que ele possa se reconectar ao Cloud KMS e você reativaram a chave.
Geração de registros
É possível auditar as solicitações que o Dataform envia para Cloud KMS em seu nome no Cloud Logging, se você tiver a geração de registros de auditoria foi ativada para a API Cloud KMS no projeto. Essas entradas de registro do Cloud KMS são visíveis no Cloud Logging. Para mais informações, consulte Veja os registros.
Antes de começar
Decida se você vai executar o Dataform e Cloud KMS em projetos diferentes ou no mesmo projeto. Recomendamos o uso de projetos separados para ter mais controle sobre as permissões. Para informações sobre os códigos de projeto e os números de projeto do Google Cloud, consulte Como identificar projetos.
Para o projeto do Google Cloud que executa o Cloud KMS:
- Ativar a API Cloud Key Management Service
- Crie um keyring e uma chave, conforme descrito em Como criar keyrings e chaves. Criar o keyring
em um local que corresponda ao local do seu Dataform
repositório:
-
Os repositórios precisam usar chaves regionais correspondentes. Por exemplo:
um repositório na região
asia-northeast3
precisa ser protegido com uma chave de um keyring localizado emasia-northeast3
. -
A região
global
não pode ser usada com o Dataform.
-
Os repositórios precisam usar chaves regionais correspondentes. Por exemplo:
um repositório na região
Ativar a CMEK
O Dataform poderá acessar a chave por você depois
você concede ao Cloud KMS
Criptografador/Descriptografador do CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter
)
para o papel
conta de serviço padrão do Dataform.
O ID da conta de serviço padrão do Dataform tem o seguinte formato:
service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Conceder o papel criptografador/descriptografador da CryptoKey ao Dataform padrão conta de serviço, siga estas etapas:
Console
Abra a página Gerenciamento de chaves no console do Google Cloud.
Clique no nome do keyring que contém a chave.
Clique na caixa de seleção da chave de criptografia à qual você quer adicionar o papel. A guia Permissões será aberta.
Clique em Adicionar membro.
Digite o endereço de e-mail da conta de serviço
- Se já estiver na lista de membros, a conta de serviço tem papéis. Clique na lista suspensa da função atual da conta de serviço.
Clique na lista suspensa Selecionar um papel, clique em Cloud KMS e, depois, clique no papel Criptografador/Descriptografador de CryptoKey do Cloud KMS.
Clique em Salvar para aplicar o papel ao serviço. do Compute Engine.
gcloud
Use a Google Cloud CLI para atribuir a função:
gcloud kms keys add-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY
Substitua:
KMS_PROJECT_ID
: o ID do projeto do Google Cloud que está executando o Cloud KMS.SERVICE_ACCOUNT
: o endereço de e-mail do seu padrão Conta de serviço do DataformKMS_KEY_LOCATION
: o nome do local da chave do Cloud KMS.KMS_KEY_RING
: o nome do keyring da chave do Cloud KMSKMS_KEY
: o nome da chave do Cloud KMS.
Aplicar a CMEK a um repositório
É possível aplicar a proteção CMEK a um repositório do Dataform durante a criação do repositório.
Para aplicar a criptografia CMEK a um repositório do Dataform, especifique uma chave do Cloud KMS ao criar o repositório. Para instruções, consulte Criar um repositório.
Não é possível mudar o mecanismo de criptografia de um repositório do Dataform após a criação do repositório.
Para mais informações, consulte Restrições.
A seguir
- Para saber mais sobre a CMEK, consulte Visão geral da CMEK.
- Para saber mais sobre as cotas do Cloud KMS, consulte Cotas do Cloud KMS.
- Para saber mais sobre os preços do Cloud KMS, consulte Preços do Cloud KMS.
- Para saber mais sobre os repositórios do Dataform, consulte Introdução aos repositórios.