Esta página descreve como as chaves de encriptação geridas pelo cliente (CMEK) funcionam com tarefas de migração do Database Migration Service.
Por predefinição, o serviço de migração de base de dados (para Oracle para Cloud SQL para PostgreSQL) encripta o conteúdo do cliente em repouso. O serviço de migração de base de dados (para Oracle para Cloud SQL para PostgreSQL) processa a encriptação por si sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.
Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEK) no Cloud KMS com serviços integrados com CMEK, incluindo o Database Migration Service (para Oracle para Cloud SQL para PostgreSQL). A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização e autorizações de acesso, bem como limites criptográficos. A utilização do Cloud KMS também permite monitorizar a utilização das chaves, ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.
Depois de configurar os seus recursos com CMEKs, a experiência de acesso aos recursos do Database Migration Service (para Oracle para Cloud SQL para PostgreSQL) é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das suas opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).
Regiões onde o serviço de migração de base de dados suporta a CMEK
A CMEK está disponível em todas as localizações do Database Migration Service.
CMEK com chave automática do Cloud KMS
Pode criar CMEKs manualmente para proteger os recursos do serviço de migração de base de dados (de Oracle para Cloud SQL para PostgreSQL) ou usar a chave automática do Cloud KMS. Com a chave automática, os conjuntos de chaves e as chaves são gerados a pedido como parte da criação ou atualização de recursos no serviço de migração de bases de dados (para Oracle para Cloud SQL para PostgreSQL). Os agentes de serviço que usam as chaves para operações de encriptação e desencriptação são criados se ainda não existirem e recebem as funções de gestão de identidade e de acesso (IAM) necessárias. Para mais informações, consulte o artigo Vista geral do Autokey.
Compreenda as contas de serviço
Quando as tarefas de migração do Database Migration Service têm a CMEK ativada, tem de usar uma conta de serviço para pedir acesso à chave do Cloud Key Management Service.
Para usar uma CMEK num projeto, tem de ter uma conta de serviço e conceder o acesso à chave à conta de serviço. A conta de serviço tem de existir no projeto. A conta de serviço é visível em todas as regiões.
Compreenda as chaves
No Cloud Key Management Service, tem de criar um conjunto de chaves com uma chave criptográfica, definida com uma localização. Quando cria uma nova tarefa de migração no serviço de migração de bases de dados, seleciona esta chave para encriptar a tarefa de migração.
Tem de saber o ID da chave e a região da chave quando cria novas tarefas de migração que usam CMEK. Tem de colocar as bases de dados de destino na mesma região que a CMEK associada à tarefa de migração. Pode criar um projeto para ambas as chaves e bases de dados de destino ou projetos diferentes para cada uma.
As CMEK usam o seguinte formato:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Como torna os dados encriptados com CMEK inacessíveis permanentemente?
Pode haver situações em que queira destruir permanentemente dados encriptados com a CMEK. Para o fazer, destrói a versão CMEK. Não pode destruir o conjunto de chaves nem a chave, mas pode destruir as versões da chave.
Restrições
Aplicam-se as seguintes restrições quando usa as CMEK:
Não pode atualizar a CMEK num trabalho de migração em execução.
Embora possa usar a CMEK para encriptar dados da base de dados de origem, não pode usar estas chaves para encriptar metadados de tarefas de migração, como o ID da tarefa de migração, o endereço IP da base de dados de origem, etc.
Use CMEK
Agora que compreende a CMEK, pode configurar uma conta de serviço e chaves para a CMEK. Além disso, vai aprender a configurar uma tarefa de migração para usar as CMEK.
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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
- Instale e inicialize o SDK do Google Cloud.
- Certifique-se de que tem a função de administrador da migração da base de dados atribuída à sua conta de utilizador.
-
Enable the Cloud Key Management Service API.
- Ative a API Database Migration Service.
Apenas para utilizadores da gcloud e da API: certifique-se de que tem uma conta de serviço para cada projeto que requer CMEK. Para mais informações, consulte o artigo Crie uma conta de serviço.
Crie um conjunto de chaves e uma chave e defina a localização de cada chave. A localização é a região Google Cloud .
Copie ou anote o ID da chave (
KMS_KEY_ID
) e a localização da chave, bem como o ID (KMS_KEYRING_ID
) do conjunto de chaves. Precisa destas informações quando concede o acesso da chave à conta de serviço.Aceda a um projeto, crie uma tarefa de migração no Database Migration Service e use a sua CMEK na secção Opções de encriptação avançadas.
- Utilizador da conta de serviço (
roles/iam.serviceAccountUser
): inclui autorizações para listar contas de serviço, obter detalhes sobre uma conta de serviço e roubar a identidade de uma conta de serviço. - Administrador da conta de serviço (
roles/iam.serviceAccountAdmin
): inclui autorizações para listar contas de serviço e obter detalhes sobre uma conta de serviço. Também inclui autorizações para criar, atualizar e eliminar contas de serviço, bem como para ver ou alterar a política do serviço de migração de base de dados (de Oracle para Cloud SQL para PostgreSQL) numa conta de serviço. - Na Google Cloud consola, aceda à página Tarefas de migração.
- Clique em Criar conjunto de chaves.
- Adicione um nome do porta-chaves. Tome nota deste nome, pois precisa dele quando concede acesso à chave à conta de serviço.
- Adicione uma localização do porta-chaves.
- Clique em Criar. É apresentada a página Criar chave.
- Adicione um Nome da chave.
- Selecione uma Finalidade (simétrica ou assimétrica).
- Selecione um Período de rotação e uma Data de início.
- Clique em Criar.
- Na tabela Chaves, clique nos três pontos na última coluna e
selecione Copiar ID do recurso ou anote-o. Este é o
KMS_KEY_ID
. Precisa doKMS_KEY_ID
quando concede acesso à chave à conta de serviço. - Crie um novo conjunto de chaves.
Anote este nome, pois vai precisar dele quando conceder acesso à chave à conta de serviço.gcloud kms keyrings create KMS_KEYRING_ID \ --location=REGION
- Crie uma chave no conjunto de chaves.
Anote este nome, pois vai precisar dele quando conceder acesso à chave à conta de serviço.gcloud kms keys create KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
Fluxo de trabalho para criar tarefas de migração no Database Migration Service com CMEK
A tarefa de migração no Database Migration Service está agora ativada com a CMEK.
Criar uma conta de serviço
Tem de criar uma conta de serviço para cada projeto que requer CMEK.
Para permitir que um utilizador faça a gestão de contas de serviço, conceda uma das seguintes funções:
Atualmente, só pode usar comandos gcloud
para criar o tipo de conta de serviço de que precisa para a CMEK.
Para criar uma conta de serviço com o gcloud
, execute o seguinte comando:
gcloud beta services identity create \ --service=datamigration.googleapis.com\ --project=PROJECT_ID
O comando anterior devolve um nome de conta de serviço. Usa este nome da conta de serviço durante o procedimento em Conceda o acesso da chave à conta de serviço.
Crie uma chave
Pode criar a chave no mesmo projeto Google Cloud que a tarefa de migração no Database Migration Service ou num projeto de utilizador separado. A localização do conjunto de chaves do Cloud KMS tem de corresponder à região da base de dados de destino associada à tarefa de migração. Não é suportada uma chave de região global ou de várias regiões. Se as regiões não corresponderem, não pode criar a tarefa de migração.
Para criar uma chave do Cloud KMS:
Consola
gcloud
Conceda à chave acesso à conta de serviço
Só tem de realizar este procedimento se estiver a usar o 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
Crie uma tarefa de migração no Database Migration Service com CMEK
Quando cria uma tarefa de migração, pode usar a sua CMEK para gerir a encriptação dos seus dados.
Desative e reative versões de chaves
Consulte os seguintes tópicos: