Nesta página, descrevemos como as chaves de criptografia gerenciadas pelo cliente (CMEK) funcionam com os jobs de migração do Database Migration Service.
Por padrão, o Database Migration Service (do Oracle para o Cloud SQL para PostgreSQL) criptografa o conteúdo do cliente em repouso. O Database Migration Service (do Oracle para o Cloud SQL para PostgreSQL) processa a criptografia para você sem que você precise fazer nada. Essa opção é chamada de criptografia padrão do Google.
Se quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, incluindo o Database Migration Service (para Oracle para Cloud SQL para PostgreSQL). Ao usar chaves do Cloud KMS, é possível controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e acesso e os limites criptográficos. Ao usar o Cloud KMS, é possível também monitorar o uso de chaves, ver registros de auditoria e controlar ciclos de vida de chaves. Em vez de o Google ser proprietário e responsável pelo gerenciamento das chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.
Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos do Database Migration Service (para Oracle para Cloud SQL para PostgreSQL) é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
Regiões em que o Database Migration Service é compatível com CMEK
A CMEK está disponível em todos os locais do Database Migration Service.
CMEK com o Cloud KMS Autokey
É possível criar CMEKs manualmente para proteger seus recursos do Database Migration Service (para Oracle para Cloud SQL para PostgreSQL) ou usar o Autokey do Cloud KMS. Com o Autokey, keyrings e chaves são gerados sob demanda para dar suporte à criação ou atualização de recursos no Database Migration Service (do Oracle para o Cloud SQL para PostgreSQL). Os agentes de serviço que usam as chaves para operações de criptografia e descriptografia são criados se ainda não existirem e receberem os papéis necessários do Identity and Access Management (IAM). Para mais informações, consulte Visão geral das chaves automáticas.
Noções básicas sobre contas de serviço
Quando os jobs de migração do Database Migration Service têm a CMEK ativada, você precisa usar uma conta de serviço para solicitar acesso à chave do Cloud Key Management Service.
Para usar uma CMEK em um projeto, é preciso ter uma conta de serviço e conceder acesso à chave para a conta de serviço. A conta de serviço precisa existir dentro do projeto. A conta de serviço fica visível em todas as regiões.
Noções básicas sobre chaves
No Cloud Key Management Service, é preciso criar um keyring com uma chave criptográfica definida com um local. Ao criar um job de migração no Database Migration Service, selecione essa chave para criptografar o job.
Você precisa saber o ID e a região da chave ao criar jobs de migração que usam CMEK. É preciso colocar os bancos de dados de destino na mesma região que a CMEK associada ao job de migração. É possível criar um projeto para as chaves e os bancos de dados de destino ou projetos diferentes para cada um.
A CMEK usa o seguinte formato:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Como tornar os dados criptografados com CMEK permanentemente inacessíveis?
Pode haver casos em que você precise destruir permanentemente os dados criptografados com CMEK. Para isso, destrua a versão da CMEK. Não é possível destruir o keyring ou a chave, mas você pode destruir versões da chave.
Alternar e mudar chaves
Alternar versões de chave
Quando você faz a rotação de uma chave no Cloud Key Management Service para criar uma nova versão de chave primária, o Database Migration Service usa automaticamente a nova versão de chave primária para criptografar novos dados temporários gravados durante a migração. Não é necessário atualizar ou recriar o job de migração ao alternar uma chave.
Os dados de migração temporários expiram automaticamente em oito dias. Não destrua nem desative versões de chave anteriores enquanto um job de migração ativo ainda ler dados criptografados com essas versões.
Para alternar as chaves que protegem a instância de destino do Cloud SQL para PostgreSQL, consulte Usar chaves de criptografia gerenciadas pelo cliente (CMEK) no Cloud SQL para PostgreSQL.
Mudar para outra chave
É possível alterar a CMEK associada a um job de migração enquanto ele está salvo como rascunho. Para mais informações, consulte Atualizar um job de migração de rascunho.
Depois que um job de migração é iniciado, não é possível alterar a CMEK dele. Para usar uma CMEK diferente em um job de migração que já foi iniciado, crie um novo job de migração e configure-o com a nova chave.
Restrições
As seguintes restrições se aplicam ao uso de CMEKs:
Não é possível atualizar a CMEK em um job de migração depois que ele é iniciado. Só é possível mudar a CMEK enquanto o job de migração está salvo como rascunho.
Embora seja possível usar CMEK para criptografar dados do banco de dados de origem, não é possível usar essas chaves para criptografar metadados de jobs de migração, como o ID de migração, o endereço IP do banco de dados de origem e assim por diante.
Usar CMEK
Agora que você entende as CMEKs, já pode configurar uma conta de serviço e as chaves para elas. Além disso, você vai aprender a configurar um job de migração para usar a CMEK.
Antes de começar
- Faça login na sua conta do Google Cloud . Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho sem custos financeiros.
-
In the Google Cloud console, on the project selector page, select or create 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.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create 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.
-
Verify that billing is enabled for your Google Cloud project.
- Instale e inicialize o SDK Cloud.
- Verifique se você tem o papel de administrador de migração do banco de dados atribuído à sua conta de usuário.
Ative a API Cloud Key Management Service, se ainda não estiver ativada.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.- Ative a API Database Migration Service.
Fluxo de trabalho para criar jobs de migração no Database Migration Service com CMEK
Somente usuários da gcloud e da API: verifique se você tem uma conta de serviço para cada projeto que requer CMEK. Para mais informações, consulte Criar uma conta de serviço.
Crie um keyring e uma chave e defina o local para cada chave. O local é a região Google Cloud .
Copie ou anote o ID da chave (
KMS_KEY_ID), o local da chave e o ID (KMS_KEYRING_ID) do keyring. Você precisa dessas informações para conceder à conta de serviço o acesso à chave.Acesse um projeto, crie um job de migração no Database Migration Service e use sua CMEK na seção Opções avançadas de criptografia.
Seu job de migração no Database Migration Service agora está ativado com CMEK.
Criar uma conta de serviço
Você precisa criar uma conta de serviço para cada projeto que exige CMEK.
Para permitir que um usuário gerencie contas de serviço, conceda um dos seguintes papéis:
- Usuário da conta de serviço (
roles/iam.serviceAccountUser): inclui permissões para listar contas de serviço, acessar detalhes sobre uma conta de serviço e representar uma conta de serviço. - Administrador da conta de serviço (
roles/iam.serviceAccountAdmin): inclui permissões para listar contas de serviço e acessar detalhes sobre uma conta de serviço. Também inclui permissões para criar, atualizar e excluir contas de serviço, além de visualizar ou alterar a política do Database Migration Service (para Oracle para Cloud SQL para PostgreSQL) em uma conta de serviço.
No momento, só é possível usar comandos gcloud para criar o tipo de
conta de serviço necessária para CMEK.
Para criar uma conta de serviço com gcloud, execute o seguinte comando:
gcloud beta services identity create \ --service=datamigration.googleapis.com\ --project=PROJECT_ID
O comando anterior retorna um nome de conta de serviço. Você usa esse nome de conta de serviço durante o procedimento em Conceder acesso à chave para a conta de serviço.
Crie uma chave
É possível criar a chave no mesmo projeto do Google Cloud que o job de migração no Database Migration Service ou em um projeto de usuário separado. O local do keyring do Cloud KMS precisa corresponder à região do banco de dados de destino associado ao job de migração. Não há suporte para chaves multirregionais ou globais. Se as regiões não forem iguais, não será possível criar o job de migração.
Para criar uma chave do Cloud KMS:
Console
- No console do Google Cloud , acesse a página Jobs de migração.
- Clique em Criar keyring.
- Adicione um nome do keyring. Anote esse nome porque você precisará dele para conceder o acesso de chave à conta de serviço.
- Adicione um local de keyring.
- Clique em Criar. A página Criar chave é aberta.
- Adicione um nome de chave.
- Selecione uma Finalidade (simétrica ou assimétrica).
- Selecione um Período de rotação e A partir da data.
- Clique em Criar.
- Na tabela Chaves, clique nos três pontos na última coluna e
selecione Copiar ID do recurso. Se preferir, anote o ID. Este é o
KMS_KEY_ID. Você precisa doKMS_KEY_IDao conceder o acesso de chave à conta de serviço.
gcloud
- Crie um novo keyring.
Anote esse nome porque você precisa dele para conceder o acesso de chave à conta de serviço.gcloud kms keyrings create KMS_KEYRING_ID \ --location=REGION
- Crie uma chave no keyring.
Anote esse nome porque você precisa dele para conceder o acesso de chave à conta de serviço.gcloud kms keys create KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
Conceder à chave acesso à conta de serviço
Você só precisará executar este procedimento se estiver usando gcloud ou a API.
Para conceder acesso à conta de serviço, use o seguinte código:
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@datamigrationiam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Criar um job de migração no Database Migration Service com CMEK
Ao criar um job de migração, é possível usar a CMEK para gerenciar a criptografia dos dados.
Desativar e reativar versões de chave
Veja os seguintes tópicos: