Por predefinição, o Cloud SQL para PostgreSQL encripta o conteúdo do cliente em repouso. O 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 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, autorizações de acesso e 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 Cloud SQL for 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).
CMEK com chave automática do Cloud KMS
Pode criar CMEKs manualmente para proteger os seus recursos do Cloud SQL para PostgreSQL ou usar a chave automática do Cloud KMS. Com a Autokey, os conjuntos de chaves e as chaves são gerados a pedido como parte da criação de recursos no 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 a vista geral do Autokey.
O Autokey não cria chaves para recursos do Cloud SQL for PostgreSQL BackupRun
. Quando cria uma cópia de segurança de uma instância do Cloud SQL para PostgreSQL, a cópia de segurança é encriptada com a chave gerida pelo cliente da instância principal.
O Cloud SQL para PostgreSQL só é compatível com a chave automática do Cloud KMS quando cria recursos através do Terraform ou da API REST.
Para saber como usar CMEKs criadas manualmente para proteger os seus recursos do Cloud SQL para PostgreSQL, consulte o artigo Use chaves de encriptação geridas pelo cliente (CMEK).
Para usar CMEKs criadas pela chave automática do Cloud KMS para proteger os seus recursos do Cloud SQL para PostgreSQL, use os passos fornecidos para o Secret Manager em Usar a chave automática com recursos do Secret Manager como exemplo.
Encriptação gerida pela Google versus encriptação gerida pelo cliente
Os diagramas abaixo mostram como a encriptação de dados em repouso funciona numa instância do Cloud SQL quando usa a encriptação predefinida da Google em comparação com as chaves de encriptação geridas pelo cliente.
Sem CMEK
Com CMEK
Ao desencriptar dados envolvidos com chaves de encriptação geridas pelo cliente, o Cloud SQL usa a KEK para desencriptar a DEK e a DEK não encriptada para desencriptar os dados em repouso.
Quando é que o Cloud SQL interage com as chaves CMEK?
Operação | Notes |
Criação da instância | Durante a criação da instância, configura a instância para usar chaves de encriptação geridas pelo cliente. |
Criação de cópias de segurança | Durante as cópias de segurança de uma instância com CMEK ativada, as chaves de encriptação geridas pelo cliente encriptam os dados do utilizador, como as consultas e as respostas do utilizador. As cópias de segurança de uma instância com a CMEK ativada herdam a encriptação com a mesma chave do Cloud KMS que a instância de origem. |
Restauro de instâncias | Durante os restauros de uma instância com CMEK ativada, o Cloud SQL usa a chave para aceder aos dados na instância de cópia de segurança que está a ser restaurada. Quando faz o restauro para uma instância diferente, a instância de destino pode usar uma chave diferente para a encriptação. |
Criação de réplicas | Quando cria uma réplica de leitura de uma instância do Cloud SQL na mesma região, esta herda a CMEK da instância principal. Se criar uma réplica de leitura numa região diferente, tem de selecionar uma CMEK da outra região. Cada região usa o seu próprio conjunto de chaves. |
Criação de clones | Os clones de uma instância com CMEK ativada herdam a encriptação CMEK com a mesma chave do Cloud KMS que a instância de origem. |
Atualização da instância | Durante as atualizações a uma instância com CMEK ativada, o Cloud SQL verifica a chave CMEK. |
Que localizações suportam instâncias do Cloud SQL com CMEK?
A CMEK está disponível em todas as localizações de instâncias do Cloud SQL.
Acerca das contas de serviço
Quando as suas instâncias do Cloud SQL têm a CMEK ativada, tem de usar uma conta de serviço para pedir acesso à chave do Cloud KMS.
Para usar uma chave de encriptação gerida pelo cliente num projeto, tem de ter uma conta de serviço e conceder à chave de encriptação gerida pelo cliente acesso à 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.
Se usar a consola para criar uma instância, o Cloud SQL cria automaticamente a conta de serviço quando escolhe pela primeira vez a opção Chave gerida pelo cliente (se ainda não existir uma conta de serviço). Não precisa de ter autorizações especiais na sua conta de utilizador quando o Cloud SQL cria automaticamente a conta de serviço.
Acerca das chaves
No Cloud KMS, tem de criar um conjunto de chaves com uma chave criptográfica, definida com uma localização. Quando cria uma nova instância do Cloud SQL, seleciona esta chave para encriptar a instância.
Tem de saber o ID da chave e a região da chave quando cria novas instâncias do Cloud SQL que usam chaves de encriptação geridas pelo cliente. Tem de colocar novas instâncias do Cloud SQL na mesma região que a chave de encriptação gerida pelo cliente associada à instância. Pode criar um projeto para ambas as chaves e instâncias do Cloud SQL ou projetos diferentes para cada uma.
As chaves de encriptação geridas pelo cliente usam o seguinte formato:
projects/[KMS_PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY_NAME]
Se o Cloud SQL não conseguir aceder à chave (por exemplo, se desativar a versão da chave), o Cloud SQL suspende a instância. Assim que a chave voltar a ficar acessível, o Cloud SQL retoma automaticamente a instância.
Quando alterna as chaves, as instâncias encriptadas com essa chave não são automaticamente reencriptadas com a nova versão da chave principal. Pode voltar a encriptar qualquer instância ou réplica principal CMEK existente com a nova versão da chave principal. Para mais informações sobre como voltar a encriptar uma instância ou uma réplica do Cloud SQL após uma rotação de chaves, consulte o artigo Volte a encriptar uma instância ou uma réplica existente com a CMEK ativada.
Gestores de chaves externos
Pode usar chaves armazenadas em gestores de chaves externos, como Fortanix, Futurex ou Thales, como chaves de encriptação geridas pelo cliente. Para saber como usar chaves externas com o Cloud KMS, consulte o Cloud External Key Manager (Cloud EKM).
Justificações de acesso a chaves
Pode usar as Justificações de acesso às chaves como parte do Cloud EKM. As justificações de acesso às chaves permitem-lhe ver o motivo de cada pedido do Cloud EKM. Além disso, com base na justificação apresentada, pode aprovar ou recusar automaticamente um pedido. Para saber mais, consulte a vista geral das justificações de acesso às chaves.
Assim, as Justificações de acesso às chaves oferecem um controlo adicional sobre os seus dados, fornecendo uma justificação para cada tentativa de desencriptar os dados.
Para ver informações relacionadas sobre a utilização das suas chaves com instâncias do Cloud SQL, consulte o artigo Crie uma instância do Cloud SQL com CMEK.
Como posso tornar os dados encriptados com CMEK permanentemente inacessíveis?
Pode haver situações em que queira destruir permanentemente dados encriptados com a CMEK. Para tal, destrói a versão da chave de encriptação gerida pelo cliente. Não pode destruir o conjunto de chaves nem a chave, mas pode destruir as versões da chave.
Como posso exportar e importar dados de e para uma instância com CMEK ativada?
Se quiser que os seus dados permaneçam encriptados com uma chave gerida pelo cliente durante uma exportação ou uma importação, tem de definir uma chave de encriptação gerida pelo cliente no contentor do Cloud Storage antes de exportar dados para o mesmo. Não existem requisitos nem restrições especiais para importar dados para uma nova instância quando os dados foram armazenados anteriormente numa instância ativada com uma chave de encriptação gerida pelo cliente.
Restrições
Aplicam-se as seguintes restrições quando usa chaves de encriptação geridas pelo cliente:
- Não pode ativar chaves de encriptação geridas pelo cliente numa instância existente.
- Não pode atribuir uma chave diferente a uma réplica na mesma região que a instância principal. Para réplicas entre regiões, tem de criar uma nova chave para a região da réplica.
- Não pode atribuir uma chave diferente a um clone.
- Não pode usar chaves de encriptação geridas pelo cliente para encriptar:
- Servidores externos (instâncias primárias externas e réplicas externas)
- Metadados da instância, como o ID da instância, a versão da base de dados, o tipo de máquina, as flags, o agendamento de cópias de segurança, etc.
- Não pode usar chaves de encriptação geridas pelo cliente para encriptar dados do utilizador em trânsito, como consultas e respostas do utilizador.
- Depois de criar uma instância do Cloud SQL, não pode alterar o tipo de chave de encriptação. Não pode mudar de uma chave Google-owned and Google-managed encryption key para uma chave do Cloud Key Management Service (KMS) nem vice-versa.
O que se segue?
- Saiba mais sobre a encriptação em repouso na Google Cloud Platform.
- Saiba como criar uma instância com a CMEK ativada.
- Saiba mais sobre o Cloud Key Management Service (Cloud KMS).
- Saiba mais sobre as cotas para recursos do Cloud KMS.
- Saiba mais sobre as contas de serviço do IAM.
- Saiba como adicionar justificações de acesso às chaves às suas chaves.
- Encontre outros produtos que usam CMEK.