Esta página descreve como configurar uma conta de serviço e chaves para chaves de encriptação geridas pelo cliente, e como criar uma instância que use uma chave de encriptação gerida pelo cliente criada manualmente. Para saber mais sobre a utilização de chaves de encriptação geridas pelo cliente com o Cloud SQL, consulte o Resumo das chaves de encriptação geridas pelo cliente.
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.
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.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud 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
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud 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
- Certifique-se de que tem a função de administrador do Cloud SQL na sua conta de utilizador.
-
Enable the Cloud Key Management Service API.
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. -
Enable the Cloud SQL Admin API.
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. - Apenas para utilizadores da API e do gcloud: crie uma conta de serviço para cada projeto que exija chaves de encriptação geridas pelo cliente.
- Crie um conjunto de chaves e uma chave e defina a localização de cada chave. A localização é a região de Google Cloud .
- Apenas para utilizadores da API e do gcloud: conceda à conta de serviço acesso à chave.
- Tome nota do ID da chave (KMS_KEY_ID), da localização da chave (GCP_REGION) e do ID do conjunto de chaves (KMS_KEYRING_ID).
- Aceda a um projeto e crie uma instância do Cloud SQL
com as seguintes opções:
- A mesma localização que a chave de encriptação gerida pelo cliente
- A configuração da chave gerida pelo cliente
- O ID da chave de encriptação gerida pelo cliente
- 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 Cloud SQL para PostgreSQL numa conta de serviço. - Inicie o Cloud Shell.
-
Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.
Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.
-
No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o ficheiro é denominadomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.
Copie o exemplo de código para o ficheiro
main.tf
criado recentemente.Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.
- Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
- Guarde as alterações.
-
Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção
-upgrade
:terraform init -upgrade
-
Reveja a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expetativas:
terraform plan
Faça as correções necessárias à configuração.
-
Aplique a configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform apply
Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).
- Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.
-
Na Google Cloud consola, aceda à página Gestão de chaves.
- Clique em Criar conjunto de chaves.
- Adicione um nome do porta-chaves. Tenha em atenção este nome, uma vez que é necessário quando concede à conta de serviço acesso à chave.
- Adicione uma localização do porta-chaves.
- Clique em Criar. É apresentada a página Criar chave.
- Adicione um Nome da chave.
- Em Finalidade, selecione Encriptar/desencriptar simetricamente.
- 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 do KMS_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=GCP_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=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
-
Na Google Cloud consola, aceda à página Gestão de chaves.
- Para selecionar o projeto que aloja a chave, use o seletor de projetos.
- Clique no nome do conjunto de chaves.
- Clique no nome da chave.
- Clique no separador Autorizações.
- Para abrir o painel, clique em Conceder acesso.
- Introduza a conta de serviço como o principal e selecione "Encriptador/desencriptador de CryptoKey do Cloud KMS" como a função.
- Clique em Guardar.
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Clique em Criar instância.
- Escolha o motor da base de dados.
- Introduza um nome para a instância. Não inclua informações confidenciais nem de identificação pessoal no nome da instância, uma vez que é visível externamente. Não tem de incluir o ID do projeto no nome da instância. Esta é criada automaticamente quando adequado (por exemplo, nos ficheiros de registo).
- Introduza a palavra-passe do utilizador
'root'@'%'
. - Defina a região da sua instância. Coloque a instância na mesma região que os recursos que acedem à mesma. Na maioria dos casos, não tem de especificar uma zona.
- Na secção Opções de configuração, selecione todas as opções de configuração até chegar a Tipo de máquina e armazenamento.
- Expanda Tipo de máquina e armazenamento.
- Na secção Encriptação, selecione Chave gerida pelo cliente.
- Selecione a chave do KMS no menu pendente ou introduza manualmente o KMS_KEY_ID. Apenas são apresentadas chaves do KMS no mesmo projeto e região que a instância. É usada a versão da chave principal da chave. Por isso, se for fornecida uma versão da chave no nome da chave, esta é cortada. Para escolher uma chave do KMS pertencente a um projeto diferente, mas na mesma região, selecione Não vê a sua chave? Introduza o ID de recurso da chave e introduza o KMS_KEY_ID capturado anteriormente.
- Se a conta de serviço não tiver autorização para encriptar/desencriptar com a chave selecionada, é apresentada uma mensagem. Se isto acontecer, clique em Conceder para
conceder à conta de serviço a função do IAM
roles/cloudkms.cryptoKeyEncrypterDecrypter>
na chave do KMS selecionada. - Depois de selecionar as opções de configuração, clique em Criar.
- É apresentada uma mensagem a explicar as implicações da utilização da chave de encriptação gerida pelo cliente. Leia e aceite-o para continuar com a criação da instância.
- Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento
deletion_protection
comofalse
.deletion_protection = "false"
- Aplique a configuração do Terraform atualizada executando o seguinte comando e
introduzindo
yes
no comando:terraform apply
-
Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo
yes
no comando:terraform destroy
- project-id: o ID do projeto
- instance-id: o ID da instância
- region: a região
- database-version: String da versão de enumeração (por exemplo, POSTGRES_12)
- kms-resource-id: o ID que recebeu quando criou uma chave.
- project-id: o ID do projeto
- instance-id: o ID da instância
- region: a região
- database-version: String da versão de enumeração (por exemplo, POSTGRES_12)
- kms-resource-id: o ID que recebeu quando criou uma chave.
- A Encriptação mostra gerida pelo cliente.
- É apresentada a chave de encriptação da réplica.
- É apresentada uma mensagem a indicar "A sua réplica vai ser encriptada com a chave gerida pelo cliente da instância principal. Se alguém destruir esta chave, todos os dados encriptados com a mesma são perdidos permanentemente."
- A Encriptação mostra gerida pelo cliente.
- É apresentada a chave de encriptação do clone.
- É apresentada uma mensagem a indicar "O clone vai ser encriptado com a chave gerida pelo cliente da instância de origem. Se alguém destruir esta chave, todos os dados encriptados com a mesma são perdidos permanentemente."
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Na lista Instances, desloque a página para a direita até ver a coluna Encryption. Nesta coluna, vê Gerido pela Google e Gerido pelo cliente.
- Clique no nome de uma instância para abrir a respetiva página Vista geral. A chave de encriptação gerida pelo cliente é apresentada no painel Configuração.
Para voltar a encriptar a instância ou a réplica com uma nova versão, precisa da nova versão da chave principal. Se precisar de uma nova versão da chave para as suas instâncias, tem de rodar a chave com o Cloud Key Management Service. Para alternar a chave principal, consulte Alterne uma chave.
Após a rotação das chaves, aguarde que a alteração da chave principal seja propagada antes de voltar a encriptar as suas instâncias. Se a alteração da versão da chave não for consistente, a sua instância continua a usar a versão da chave antiga após a reencriptação. Para mais informações, consulte o artigo Consistência das versões das chaves.
-
Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.
- Para abrir a página Vista geral de uma instância, clique no nome da instância.
- Na secção Configuração, clique em Voltar a encriptar instância.
- Na caixa de diálogo apresentada, confirme a sua seleção clicando em Voltar a encriptar.
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- PROJECT_ID: o ID do projeto
- INSTANCE_ID: o ID da instância
- Não pode realizar outras operações de administração na instância enquanto a operação de reencriptação estiver em curso.
- A operação de reencriptação aciona um tempo de inatividade que depende do tamanho da instância ou da réplica.
- As réplicas de uma instância não são novamente encriptadas quando uma instância é encriptada. Tem de voltar a encriptar cada réplica separadamente.
- As cópias de segurança não são novamente encriptadas automaticamente com a nova versão da chave quando volta a encriptar a instância. Para restaurar a cópia de segurança ou a recuperação num ponto específico no tempo para um momento após a criação da cópia de segurança, tem de manter a versão da chave do Cloud KMS com a qual a cópia de segurança está encriptada.
- As cópias de segurança criadas após a rotação da chave do Cloud KMS com a qual a instância está encriptada usam automaticamente a versão da chave principal, mesmo que a instância não esteja encriptada com esta versão da chave.
- Configure o acesso à instância.
- Associe-se à instância com um cliente.
- Crie uma base de dados na instância.
- Importe dados para a instância.
- Crie utilizadores na instância.
- Saiba mais sobre as definições de instância.
- Saiba como adicionar justificações de acesso às chaves às suas chaves.
Fluxo de trabalho para criar uma instância do Cloud SQL com CMEK
A sua instância do Cloud SQL está agora ativada com a CMEK.
Criar uma conta de serviço
Tem de criar uma conta de serviço para cada projeto que exija chaves de encriptação geridas pelo cliente.
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 da CLI gcloud para criar o tipo de conta de serviço de que precisa para chaves de encriptação geridas pelo cliente. Se estiver a usar a consola, o Cloud SQL cria automaticamente esta conta de serviço para si.
gcloud
gcloud beta services identity create \ --service=sqladmin.googleapis.com \ --project=PROJECT_ID
Terraform
Para criar uma conta de serviço, use um recurso do Terraform.
Aplique as alterações
Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.
Prepare o Cloud Shell
Prepare o diretório
Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).
Aplique as alterações
O comando anterior devolve um nome de conta de serviço. Usa este nome da conta de serviço durante o procedimento em Conceder acesso à chave à conta de serviço.
Crie uma chave
Pode criar a chave no mesmo Google Cloud projeto que a instância do Cloud SQL ou num projeto de utilizador separado. A localização do conjunto de chaves do Cloud KMS tem de corresponder à região onde quer criar a instância do Cloud SQL. Uma chave de região global ou de várias regiões não funciona. O pedido de criação da instância do Cloud SQL falha se as regiões não corresponderem.
Para criar uma chave do Cloud KMS:
Consola
gcloud
Terraform
Para criar um conjunto de chaves, use um recurso do Terraform.
Para criar uma chave, use um recurso do Terraform.
Aplique a configuração do Terraform:
terraform apply
Conceda à conta de serviço acesso à chave
Quando cria a instância do Cloud SQL com CMEK, só precisa de realizar este procedimento se estiver a usar o gcloud ou a API. Pode executar este procedimento se tiver problemas de autorização após a criação da instância.
Para conceder acesso à conta de serviço:
Consola
Em alternativa, também pode concedê-lo na página IAM do projeto.
gcloud
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloud-sql.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Terraform
Para conceder acesso à chave, use um recurso do Terraform.
Aplique a configuração do Terraform:
terraform apply
Crie uma instância do Cloud SQL com CMEK
Para criar uma instância com chaves de encriptação geridas pelo cliente:
Consola
gcloud
gcloud sql instances create INSTANCE_NAME \ --project=PROJECT_ID \ --disk-encryption-key=KMS_KEY_ID \ --database-version=VERSION \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE \ --region=REGION \ --root-password=INSERT-PASSWORD-HERE
Terraform
Para criar uma instância com CMEK, use um recurso do Terraform.
Eliminar as alterações
Para eliminar as alterações, faça o seguinte:
REST v1
Para criar uma instância com chaves de encriptação geridas pelo cliente, passediskEncryptionConfiguration
para o comando.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Corpo JSON do pedido:
{ "name":"instance-id", "region":"region", "databaseVersion": "database-version", "diskEncryptionConfiguration" : { "kmsKeyName" : "kms-resource-id" }, "settings": { "backupConfiguration": { "pointInTimeRecoveryEnabled": true, "enabled":true } } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
REST v1beta4
Para criar uma instância com chaves de encriptação geridas pelo cliente, passediskEncryptionConfiguration
para o comando.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
Corpo JSON do pedido:
{ "name":"instance-id", "region":"region", "databaseVersion": "database-version", "diskEncryptionConfiguration" : { "kmsKeyName" : "kms-resource-id" }, "settings": { "backupConfiguration": { "pointInTimeRecoveryEnabled": true, "enabled":true } } }
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Crie uma cópia de segurança para uma instância com a CMEK ativada
Quando cria uma cópia de segurança de uma instância do Cloud SQL, a cópia de segurança é encriptada com a mesma versão da chave principal que a chave gerida pelo cliente da instância principal. Se a sua instância usar uma CMEK criada pela chave automática do Cloud KMS, a cópia de segurança continua a usar a mesma chave que a instância principal. A chave automática não cria chaves para cópias de segurança.
Consulte o artigo Criar e gerir cópias de segurança automáticas e a pedido.
É apresentada uma mensagem no formulário Criar uma cópia de segurança que indica: "A sua cópia de segurança vai ser encriptada com a versão principal da chave de encriptação gerida pelo cliente desta instância. Se alguém destruir ou desativar esta versão da chave, todos os dados de cópia de segurança encriptados com essa versão da chave são perdidos permanentemente. Pode verificar a versão principal da chave no Cloud KMS."
Na página de cópias de segurança, a lista de cópias de segurança ativadas com chaves de encriptação geridas pelo cliente tem duas colunas adicionais. Uma coluna que mostra que a cópia de segurança é para uma instância com CMEK ativada e uma coluna que apresenta a versão da chave usada para encriptar a cópia de segurança.
Crie uma réplica para uma instância com CMEK ativada
Quando cria uma réplica de leitura de uma instância do Cloud SQL na mesma região, esta herda a mesma chave de encriptação gerida pelo cliente que a instância principal. Se criar uma réplica de leitura numa região diferente, é apresentada uma nova lista de chaves de encriptação geridas pelo cliente para selecionar. Cada região usa o seu próprio conjunto de chaves.
Consulte o artigo Criar réplicas de leitura.
Na página Criar réplica de leitura, são apresentadas as seguintes informações:
Para uma réplica entre regiões, é apresentada a seguinte mensagem:
"A sua réplica entre regiões vai ser encriptada com a chave gerida pelo cliente selecionada. Se alguém destruir esta chave, todos os dados encriptados com a mesma serão perdidos permanentemente."
Crie um clone de uma instância com CMEK ativada
Quando cria um clone da instância do Cloud SQL, este herda a mesma chave de encriptação gerida pelo cliente que a usada para encriptar a instância de origem.
Consulte o artigo Clonar instâncias.
Na página Criar clone, são apresentadas as seguintes informações:
Veja informações importantes para uma instância com CMEK ativada
Depois de criar com êxito uma instância do Cloud SQL, pode consultar a lista de instâncias ou a página de vista geral da instância para ver que foi criada com uma chave de encriptação gerida pelo cliente. Os detalhes também mostram a chave que foi usada para criar a instância.
Volte a encriptar uma instância ou uma réplica existente com a CMEK ativada
Pode voltar a encriptar as suas instâncias e réplicas do Cloud SQL existentes com a versão mais recente da chave principal. Para mais informações sobre a reencriptação da instância ou da réplica existente com CMEK, consulte o artigo Acerca das chaves.
Obtenha a nova versão da chave principal
Reencripte a sua instância com CMEK ativadas
Após a rotação das chaves, reencripte a instância ou a réplica existente com a CMEK ativada.
Consola
gcloud
Para voltar a encriptar a instância ou a réplica, execute o seguinte comando:
gcloud sql instances reencrypt INSTANCE_NAME
INSTANCE_NAME
pelo nome da instância ou da réplica que está a reencriptar.
REST v1
Para voltar a encriptar a instância ou a réplica com a nova chave, execute o seguinte comando:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id
/instances/instance-id
", "status": "PENDING", "user": "user@example.com", "insertTime": "2023-06-28T21:19:09.503Z", "operationType": "REENCRYPT", "name": "operation-id
", "targetId": "instance-id
", "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id
/operations/operation-id
", "targetProject": "project-id
" }
REST v1beta4
Para voltar a encriptar a instância ou a réplica com a nova chave, execute o seguinte comando:POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
Método HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/reencrypt
Para enviar o seu pedido, expanda uma destas opções:
Deve receber uma resposta JSON semelhante à seguinte:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id
/instances/instance-id
", "status": "PENDING", "user": "user@example.com", "insertTime": "2023-06-28T21:22:13.663Z", "operationType": "REENCRYPT", "name": "operation-id
", "targetId": "instance-id
", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id
/operations/operation-id
", "targetProject": "project-id
" }
Cópias de segurança de reencriptação automáticas
Quando volta a encriptar uma instância principal com uma nova versão da chave principal, o Cloud SQL cria automaticamente uma cópia de segurança a pedido denominada cópia de segurança da reencriptação.
Na lista de cópias de segurança da sua instância do Cloud SQL, a cópia de segurança de reencriptação é apresentada como do tipo on-demand
e etiquetada com backup created automatically for data before CMEK re-encryption
.
Tal como acontece com outras cópias de segurança a pedido, as cópias de segurança com reencriptação persistem até as eliminar ou eliminar a instância.
Limitações da reencriptação
Quando voltar a encriptar uma instância, tenha em atenção as seguintes limitações:
Para a resolução de problemas, consulte a tabela de resolução de problemas de reencriptação.
Use o Cloud External Key Manager (Cloud EKM)
Para proteger os dados em instâncias do Cloud SQL, pode usar chaves que gere num parceiro de gestão de chaves externo suportado. Para mais informações, consulte o Cloud External Key Manager, incluindo a secção Considerações.
Quando tiver tudo a postos para criar uma chave do Cloud EKM, consulte o artigo Gerir chaves do Cloud EKM. Depois de criar uma chave, indique o nome da chave quando criar uma instância do Cloud SQL.
Pode usar as Justificações de acesso a chaves (KAJ) como parte do Cloud EKM. O KAJ permite-lhe ver o motivo de cada pedido do EKM na nuvem. Além disso, com base na justificação apresentada, pode aprovar ou recusar automaticamente um pedido. Para saber mais, consulte a Vista geral.
Assim, o KAJ oferece um controlo adicional sobre os seus dados, fornecendo uma justificação para cada tentativa de desencriptar os dados.
A Google não tem controlo sobre a disponibilidade das chaves num sistema de gestão de chaves de parceiros externo.
Desative e reative versões de chaves
Consulte os seguintes tópicos:
Resolver problemas
Esta secção descreve o que pode experimentar quando recebe uma mensagem de erro ao configurar ou usar instâncias com CMEK.
As operações de administrador do Cloud SQL, como criar, clonar ou atualizar, podem falhar devido a erros do Cloud KMS e funções ou autorizações em falta. Os motivos comuns para a falha incluem uma versão da chave do Cloud KMS em falta, uma versão da chave do Cloud KMS desativada ou destruída, autorizações do IAM insuficientes para aceder à versão da chave do Cloud KMS ou a versão da chave do Cloud KMS está numa região diferente da instância do Cloud SQL. Use a tabela de resolução de problemas seguinte para diagnosticar e resolver problemas comuns.
Tabela de resolução de problemas de chaves de encriptação geridas pelo cliente
Para este erro… | O problema pode ser... | Experimente isto… |
---|---|---|
Não foi encontrada uma conta de serviço por produto e por projeto | O nome da conta de serviço está incorreto. | Certifique-se de que criou uma conta de serviço para o projeto de utilizador correto.
|
Não é possível conceder acesso à conta de serviço | A conta de utilizador não tem autorização para conceder acesso a esta versão da chave. | Adicione a função de administrador da organização à sua conta de utilizador ou de serviço.
|
A versão da chave do Cloud KMS é destruída | A versão da chave é destruída. | Se a versão da chave for destruída, não a pode usar para encriptar nem desencriptar dados. |
A versão da chave do Cloud KMS está desativada | A versão da chave está desativada. | Reative a versão da chave do Cloud KMS.
|
Autorização insuficiente para usar a chave do Cloud KMS | A função cloudkms.cryptoKeyEncrypterDecrypter está em falta no utilizador ou na conta de serviço que está a usar para executar operações em instâncias do Cloud SQL, ou a versão da chave do Cloud KMS não existe. |
No Google Cloud projeto que aloja a chave, adicione a função
cloudkms.cryptoKeyEncrypterDecrypter ao seu utilizador ou conta de serviço.
ACEDA À PÁGINA DE CONTAS DO IAM Se a função já tiver sido concedida à sua conta, consulte Criar uma chave para saber como criar uma nova versão da chave. Ver nota. |
Não foi possível encontrar a chave do Cloud KMS | A versão da chave não existe. | Crie uma nova versão da chave. Consulte o artigo Criar uma chave. Ver nota. |
A instância do Cloud SQL e a versão da chave do Cloud KMS estão em regiões diferentes | A versão da chave do Cloud KMS e a instância do Cloud SQL têm de estar na mesma região. Não funciona se a versão da chave do Cloud KMS estiver numa região global ou em várias regiões. | Crie uma versão da chave na mesma região onde quer criar instâncias. Consulte o artigo Criar uma chave. Ver nota. |
A versão da chave do Cloud KMS é restaurada, mas a instância continua suspensa | A versão da chave está desativada ou não concede as autorizações adequadas. | Volte a ativar a versão da chave e conceda a função cloudkms.cryptoKeyEncrypterDecrypter ao utilizador ou à conta de serviço no projeto que aloja a chave. Google Cloud |
Tabela de resolução de problemas de reencriptação
Para este erro… | O problema pode ser... | Experimente isto… |
---|---|---|
A reencriptação do recurso CMEK falhou porque a chave do Cloud KMS está inacessível. Certifique-se de que a versão da chave principal está ativada e que a autorização foi concedida corretamente. | A versão da chave está desativada ou não concede as autorizações adequadas. | Reative a versão da chave do Cloud KMS: ACEDER À PÁGINA DE CHAVES CRIPTOGRÁFICAS No Google Cloud projeto que aloja a chave, confirme se a função
|
A reencriptação de recursos da CMEK falhou devido a um erro interno do servidor. Tente novamente mais tarde | Ocorreu um erro interno do servidor. | Tente voltar a encriptar. Para mais informações, consulte o artigo Volte a encriptar uma instância ou uma réplica existente ativada com CMEK |