Esta página descreve as chaves de encriptação geridas pelo cliente (CMEK) para o Spanner. Para mais informações sobre a CMEK em geral, incluindo quando e por que motivo a ativar, consulte a documentação do Cloud KMS.
Por predefinição, o Spanner encripta o conteúdo do cliente em repouso. O Spanner 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 Spanner. 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 Spanner é 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).
Para saber como usar CMEKs criadas manualmente para proteger os seus recursos do Spanner, consulte o artigo Proteja uma base de dados com CMEK.
CMEK com chave automática do Cloud KMS
Pode criar CMEKs manualmente para proteger os seus recursos do Spanner 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 Spanner. 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 Spanner só é compatível com a chave automática do Cloud KMS quando cria recursos através do Terraform ou da API REST. Não pode usar a chave automática do Cloud KMS para criar várias chaves do Cloud KMS regionais (de uma única região) para uma base de dados do Spanner.
Para usar CMEKs criadas pela chave automática do Cloud KMS para proteger os seus recursos do Spanner, siga os passos fornecidos para o Secret Manager em Usar a chave automática com recursos do Secret Manager como exemplo.
Funcionalidades
- Controlo de acesso aos dados: os administradores podem rodar, gerir o acesso e desativar ou destruir a chave usada para proteger os dados em repouso no Spanner.
- Auditabilidade: se ativar o registo de auditoria para a API Cloud KMS no seu projeto, todas as ações na chave, incluindo as realizadas pelo Spanner, são registadas e visíveis no Cloud Logging. As chaves do EKM da nuvem suportam a justificação de acesso a chaves, que adiciona um campo de justificação a todos os pedidos de chaves. Com determinados parceiros de gestão de chaves externas, pode aprovar ou recusar automaticamente estes pedidos com base na justificação.
- Desempenho: não existem alterações ao desempenho do Spanner nem ao contrato de nível de serviço quando usa a CMEK.
- Suporte de várias chaves regionais: pode criar várias chaves regionais (de região única) do Cloud KMS para proteger uma base de dados numa configuração de instância personalizada, de duas regiões ou multirregional do Spanner.
Preços
O Spanner fatura as bases de dados com CMEK ativadas tal como qualquer outra base de dados. Não existem custos adicionais do Spanner para ativar o CMEK. Para mais informações, consulte os preços do Spanner.
O Cloud KMS fatura-lhe o custo da chave e quaisquer operações criptográficas nessa chave (sempre que o Spanner usa a chave para encriptação/desencriptação). Prevemos que esses custos sejam mínimos com base no número esperado de operações criptográficas geradas pelo Spanner. Para mais informações, consulte os preços do Cloud KMS.
O que está protegido com a CMEK
Numa base de dados com CMEK ativadas, o Spanner usa as suas chaves do Cloud KMS para proteger os dados em repouso. Isto inclui dados numa base de dados armazenados em disco ou flash.
Aplicam-se algumas exceções. Os seguintes tipos de dados estão protegidos pela encriptação em repouso predefinida da Google e não pela chave CMEK:
- Um subconjunto de chaves de linhas que marcam os limites do intervalo
- Dados de depuração, incluindo despejos de memória e registos operacionais
- Dados em trânsito ou na memória
- Metadados da base de dados
No Spanner, existem três camadas de encriptação. Os dados em repouso são divididos em partes de subficheiros para armazenamento, e cada parte é encriptada ao nível do armazenamento com uma chave de encriptação individual. A chave usada para encriptar os dados num fragmento chama-se chave de encriptação de dados (DEK). Devido ao elevado volume de chaves na Google e à necessidade de baixa latência e elevada disponibilidade, estas chaves são armazenadas perto dos dados que encriptam. As DEKs são encriptadas com (ou envolvidas por) uma chave de encriptação de chaves (KEK). Por último, cada KEK é encriptada com a sua CMEK.
Quando roda a chave CMEK, o Spanner volta a encriptar apenas os KEKs intermédios com a versão principal mais recente da chave CMEK. Após a conclusão da reencriptação, a desativação ou a eliminação das versões anteriores da chave CMEK não desativa o acesso à base de dados. Também pode ver as versões das chaves que estão a ser usadas para proteger uma base de dados.
Com CMEK
Sem CMEK
Ative as CMEK
Para usar as CMEK para bases de dados do Spanner, tem de criar uma nova base de dados e especificar a chave do Cloud KMS no momento da criação da base de dados.
O Spanner pode aceder à chave em seu nome depois de conceder
a função encriptar/desencriptar do CryptoKey do Cloud KMS
(roles/cloudkms.cryptoKeyEncrypterDecrypter
) a uma conta de serviço do Spanner gerida pela Google.
Para instruções detalhadas, consulte o artigo Proteja uma base de dados com CMEK.
As APIs de acesso aos dados do Spanner, como as que são usadas para gerir sessões e executar transações em dados, são exatamente as mesmas para a CMEK e a Google-owned and Google-managed encryption keys. As aplicações não precisam de especificar chaves nem configurações de encriptação quando leem ou escrevem dados. Toda a encriptação é processada pelo serviço.
Faça a gestão das chaves
As operações de gestão de chaves são realizadas através do Cloud KMS. O Spanner não consegue detetar nem agir sobre alterações de chaves até que sejam propagadas pelo Cloud KMS. Algumas operações, como desativar ou destruir uma chave, podem demorar até três horas a propagar-se. As alterações às autorizações propagam-se normalmente muito mais rapidamente.
Após a criação da base de dados, o Spanner chama o Cloud KMS aproximadamente a cada cinco minutos para garantir que a chave continua válida.
Se o Spanner detetar que a sua chave do Cloud KMS foi desativada ou destruída, é iniciada imediatamente uma operação para tornar a sua base de dados inacessível. Todas as chamadas subsequentes à base de dados, incluindo sessões, leituras e escritas, devolvem um erro FAILED_PRECONDITION
: KMS key required by the
Spanner resource is not accessible.
se as chamadas do Spanner para o Cloud KMS detetarem que uma chave anteriormente desativada foi reativada, o Cloud KMS restaura automaticamente o acesso à base de dados do Spanner.
Além disso, se uma base de dados estiver protegida por várias chaves regionais e todas as chaves estiverem desativadas ou destruídas, o Spanner começa imediatamente a tornar a sua base de dados inacessível. Se o Spanner detetar que apenas um subconjunto das chaves da base de dados está desativado ou destruído, desativa a base de dados durante um período de 12 horas. A desativação ou a destruição apenas de um subconjunto de chaves numa base de dados ativada com CMEK é fortemente desaconselhada e pode resultar num comportamento incerto. Para evitar que isto aconteça, pode usar a
métrica de chaves CMEK do Spanner
(instance/replica/cmek/total_keys
) para acionar um alerta se um subconjunto de chaves estiver
desativado ou destruído. Para mais informações, consulte o artigo
Crie um alerta para desativar um subconjunto de CMEK.
Crie um alerta para desativar um subconjunto de CMEK
Pode usar a métrica
Spanner CMEK Keys
(/instance/replica/cmek/total_keys
) para acionar um alerta se um subconjunto de CMEK
estiver desativado ou destruído. Para criar esta política de alertas, expanda os seguintes passos e
definições:
Definições da política de alertas de CMEK.
Nova condição Campo |
Valor |
---|---|
Recurso e métrica | No menu Recursos, selecione Instância do Spanner. No menu Categorias de métricas, selecione Instância. No menu Métricas, selecione Chaves CMEK. (O metric.type é spanner.googleapis.com/instance/replica/cmek/total_keys ).
|
Filtro | instance_id = INSTANCE_ID is_key_revoked = TRUE |
Em intervalos temporais Agrupamento de intervalos temporais |
database |
Em intervalos temporais Agregação de intervalos temporais |
sum |
Janela contínua | 10 m |
Função de período contínuo | mean |
Configure o acionador de alerta Campo |
Valor |
---|---|
Tipo de condição | Threshold |
Acionador de alertas | Any time series violates |
Posição do limite | Above threshold |
Limite | 0
|
Período de novo teste | 1 hr |
Nova condição Campo |
Valor |
---|---|
Recurso e métrica | No menu Recursos, selecione Instância do Spanner. No menu Categorias de métricas, selecione Instância. No menu Métricas, selecione Chaves CMEK. (O metric.type é spanner.googleapis.com/instance/replica/cmek/total_keys ).
|
Filtro | instance_id = INSTANCE_ID is_key_revoked = FALSE |
Em intervalos temporais Agrupamento de intervalos temporais |
database |
Em intervalos temporais Agregação de intervalos temporais |
sum |
Janela contínua | 10 m |
Função de período contínuo | mean |
Configure o acionador de alerta Campo |
Valor |
---|---|
Tipo de condição | Threshold |
Acionador de alertas | Any time series violates |
Posição do limite | Above threshold |
Limite | 0
|
Período de novo teste | 1 hr |
Configure o acionador de alerta Campo |
Valor |
---|---|
Acionador de várias condições | All conditions are met |
Depois de criar o alerta, se o Spanner detetar que um subconjunto de CMEK foi desativado, é apresentado um item de resumo do incidente na tabela Incidentes na página Detalhes da política do alerta. Também pode configurar canais de notificação opcionais. Para mais informações, consulte o artigo Crie e faça a gestão de canais de notificação.
Como é processado um estado de chave indisponível
Em cenários raros, como durante períodos em que o Cloud KMS está indisponível, o Spanner pode não conseguir obter o estado da sua chave do Cloud KMS.
Se a sua base de dados do Spanner estiver protegida por uma chave ativada no momento em que o Spanner não conseguir comunicar com o Cloud KMS, o Spanner continua a suportar operações completas da base de dados com base no melhor esforço durante um período máximo de uma hora, para minimizar o impacto de qualquer incidente deste tipo na sua carga de trabalho. Após uma hora, se o Spanner ainda não conseguir estabelecer ligação ao Cloud KMS, o Spanner começa a colocar a base de dados offline como medida de proteção. Os dados na sua base de dados do Spanner permanecem inacessíveis até que a base de dados possa voltar a ligar-se ao Cloud KMS e o Cloud KMS responder que a chave está ativa.
Por outro lado, se a sua base de dados do Spanner estiver protegida por uma chave que esteja desativada no momento em que o Spanner não conseguir comunicar com o Cloud KMS, a base de dados permanece inacessível até conseguir estabelecer novamente ligação ao Cloud KMS e reativar a chave.
Se estiver a usar várias chaves regionais para proteger uma base de dados do Spanner, apenas as réplicas protegidas por uma chave residente no Cloud KMS regional indisponível são afetadas pela indisponibilidade.
Considerações sobre chaves externas
Quando usa uma chave do Cloud EKM, a Google não tem controlo sobre a disponibilidade da sua chave gerida externamente no sistema de parceiros de gestão de chaves externas.
Se uma chave gerida externamente não estiver disponível, o Spanner continua a
suportar operações de base de dados completas com base no melhor esforço durante um máximo de uma hora.
Após uma hora, se o Spanner ainda não conseguir estabelecer ligação ao Cloud KMS, o Spanner começa a colocar a base de dados offline como medida de proteção. As chamadas para a base de dados vão falhar com um erro FAILED_PRECONDITION
: External key error: Could not find a key resource
at the key URI.
Se estiver a usar várias chaves do EKM do Google Cloud para proteger a sua base de dados do Spanner, apenas as réplicas protegidas pela chave indisponível são afetadas pela indisponibilidade.
Para mais considerações ao usar chaves externas, consulte a documentação do Cloud External Key Manager.
Cópia de segurança e restauro
Pode usar CMEK ou Google-owned and Google-managed encryption keys para proteger as cópias de segurança do Spanner . Por predefinição, uma cópia de segurança usa a mesma configuração de encriptação que a respetiva base de dados, mas pode substituir este comportamento especificando uma configuração de encriptação diferente quando cria a cópia de segurança. Se a cópia de segurança tiver a CMEK ativada, é encriptada com a versão principal da chave do KMS no momento da criação da cópia de segurança. Depois de criar a cópia de segurança, não é possível modificar a respetiva chave nem versão da chave, mesmo que a chave do KMS seja rodada. Para mais informações, consulte o artigo Faça uma cópia de segurança de uma base de dados.
Quando restaura uma base de dados a partir de uma cópia de segurança, por predefinição, a base de dados restaurada usa a mesma configuração de encriptação que a cópia de segurança. Pode substituir este comportamento especificando uma configuração de encriptação diferente quando restaurar a base de dados. Para restaurar uma cópia de segurança com CMEK, tem de ter a chave e a versão da chave que foram usadas para encriptar a cópia de segurança. Para mais informações, consulte o artigo Restaure a partir de uma cópia de segurança.
Pode realizar operações de cópia de segurança, como criar, copiar e restaurar, numa base de dados encriptada com várias chaves regionais.
Todas as cópias de segurança criadas por programações de cópias de segurança podem ser protegidas pela CMEK ou pela Google-owned and Google-managed encryption keys. No entanto, as programações de cópias de segurança incrementais só podem ser encriptadas através da Google-owned and Google-managed encryption keys.
Partição geográfica
Pode usar CMEK ou Google-owned and Google-managed encryption keys para proteger bases de dados do Spanner que usam particionamento geográfico. Quando usar a partição geográfica, tem de usar uma chave do Cloud KMS regional para cada localização da réplica da instância, incluindo as que se encontram na configuração da partição da instância. As chaves multirregionais não são suportadas. Cada chave do Cloud KMS regional tem de estar localizada na mesma região que a réplica da instância do Spanner ou a localização da partição da instância correspondente.
Por exemplo, se a sua base de dados do Spanner estiver na configuração de instância de várias regiões nam3
, com partições de instâncias localizadas em europe-west1
e europe-west2
, tem de criar chaves do Cloud KMS nas seguintes regiões:
us-east4
(parte denam3
)us-east1
(parte denam3
)us-central1
(parte denam3
)europe-west1
(localização da partição da instância)europe-west2
(localização da partição da instância)
Para mais informações, consulte o artigo Proteja uma base de dados com CMEK.
Registo
Pode auditar os pedidos que o Spanner envia ao Cloud KMS em seu nome no Cloud Logging, se tiver ativado o registo de auditoria para a API Cloud KMS no seu projeto. Estas entradas de registo do Cloud KMS são visíveis nos Registos na nuvem.
Exija ou limite a CMEK na sua organização
Pode definir políticas ao nível da organização relativamente à utilização da proteção CMEK em vários Google Cloud produtos, incluindo o Spanner. Com estas políticas, pode:
Exija que as novas bases de dados do Spanner criadas pela sua organização usem a proteção CMEK.
Limitar as chaves do Cloud KMS da sua organização que estão disponíveis para proteção CMEK.
Para mais informações, consulte as políticas organizacionais de CMEK.
O que se segue?
- Saiba como proteger uma base de dados com CMEK.