Chaves de criptografia gerenciadas pelo cliente para o Lustre gerenciado

Por padrão, o Google Cloud Managed Lustre criptografa o conteúdo do cliente em repouso. O Managed Lustre processa a criptografia para você sem que você precise fazer nada. Essa opção é chamada de criptografia padrão do Google.

Se você 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 Managed Lustre. 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. Com o Cloud KMS, também é possível 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 Managed Lustre é semelhante à criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

Os seguintes dados do Managed Lustre são protegidos por CMEK:

  • Dados de arquivo
  • Metadados do sistema de arquivos, como nomes de arquivos

Ao usar CMEK no Managed Lustre, seus projetos podem consumir cotas de solicitações criptográficas do Cloud KMS. As instâncias criptografadas com CMEK consomem cotas ao ler ou gravar dados no Managed Lustre. As operações de criptografia e descriptografia que usam chaves CMEK só afetam as cotas do Cloud KMS se você usar chaves externas (Cloud EKM). Para mais informações, consulte Cotas do Cloud KMS.

Limitações

Considere as seguintes limitações:

  • O provisionamento dinâmico de instâncias do Managed Lustre protegidas por CMEK não é compatível com o Google Kubernetes Engine, mas o provisionamento estático é.

  • Ao criar uma instância do Managed Lustre protegida por CMEK em um perímetro do VPC Service Controls, sua chave do Cloud KMS precisa ser:

Criar uma chave do Cloud KMS

Antes de criar uma instância do Lustre com CMEK, é preciso ter um keyring e uma chave do Cloud KMS.

O Managed Lustre é compatível com três níveis de proteção:

  • Software (SOFTWARE)
  • Hardware (HSM)
  • Externo pela Internet (EXTERNAL)

Ao criar sua chave, recomendamos que você crie a chave do Cloud KMS em um projeto diferente daquele que contém a instância do Managed Lustre. Consulte Segregação de funções.

A chave do Cloud KMS precisa ser criada na mesma região da instância do Managed Lustre que você está criando.

Para criar uma chave:

  1. Se você ainda não tiver um, crie um keyring.
  2. Criar uma chave do Cloud KMS.

Conceder permissões do IAM ao agente de serviço do Managed Lustre

O Managed Lustre usa um agente de serviço para acessar seus recursos e realizar ações em seu nome. Para usar a CMEK, é preciso conceder ao agente de serviço o papel do IAM roles/cloudkms.cryptoKeyEncrypterDecrypter na chave do Cloud KMS.

Usuários do console doGoogle Cloud

Se você for criar a instância do Managed Lustre protegida por CMEK usando o console do Google Cloud , pule esta seção. O console do Google Cloud concede as permissões necessárias como parte do fluxo de criação da instância.

Acesse Criar uma instância do Managed Lustre com CMEK ativada.

Se você não souber a identidade do agente de serviço do seu projeto, consulte Criar ou recuperar a identidade do agente de serviço.

Conceder permissões ao agente de serviço

Para conceder o papel ao agente de serviço, use o comando gcloud kms keys add-iam-policy-binding:

gcloud kms keys add-iam-policy-binding KEY_NAME \
  --keyring=KEY_RING \
  --location=REGION \
  --project=KMS_PROJECT_ID \
  --member=serviceAccount:SERVICE_AGENT_IDENTITY \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Substitua as seguintes variáveis:

  • KEY_NAME: o nome da chave do Cloud KMS.
  • KEY_RING: o nome do keyring que contém a chave.
  • REGION: a região em que o keyring está localizado.
  • KMS_PROJECT_ID: o ID do projeto que contém sua chave do Cloud KMS.
  • SERVICE_AGENT_IDENTITY: a identidade do agente de serviço do Managed Lustre (service-<var>PROJECT_NUMBER</var>@gcp-sa-lustre.).

Criar uma instância do Managed Lustre com CMEK ativada

Para criar uma instância do Managed Lustre protegida por CMEK, use uma das interfaces a seguir. Para configurar a CMEK em um blueprint do Cluster Toolkit, consulte Usar chaves de criptografia gerenciadas pelo cliente (CMEK) na documentação do Cluster Toolkit.

gcloud

Para criar uma instância protegida por CMEK usando gcloud, siga as etapas em Criar uma instância. Especifique o identificador de chave como o valor de --kms-key-name, conforme mostrado abaixo:

gcloud lustre instance create INSTANCE_ID \
  --filesystem=FILESYSTEM_NAME \
  --per-unit-storage-throughput=PERF_TIER \
  --capacity-gib=CAPACITY_GIB \
  --location=ZONE \
  --network=NETWORK_NAME \
  --project=PROJECT_ID \
  --kms-key-name=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

A chave do Cloud KMS precisa estar na mesma região da instância do Managed Lustre que você está criando.

REST

Para criar uma instância protegida por CMEK usando a API REST, siga as etapas em Criar uma instância. Especifique o identificador de chave como o valor de kmsKey, conforme mostrado abaixo:

POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances?instanceId=INSTANCE_NAME
Authorization: Bearer AUTH_TOKEN
{
  "filesystem": "FILESYSTEM_NAME",
  "perUnitStorageThroughput": PERF_TIER,
  "capacityGib": CAPACITY_GIB,
  "network": "NETWORK_NAME",
  "kmsKey": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"
}

A chave do Cloud KMS precisa estar na mesma região da instância do Managed Lustre que você está criando.

Consulte a documentação de referência do recurso Instance para ver uma lista completa de campos e as descrições deles.

Console do Google Cloud

Para criar uma instância protegida por CMEK usando o console do Google Cloud , siga as etapas em Criar uma instância. Na página Criar instância do console do Google Cloud :

  1. Na seção Criptografia, selecione Chave do Cloud KMS.

  2. Selecione Cloud KMS como o tipo de gerenciamento de chaves e selecione sua chave. Se a chave estiver em um projeto diferente (recomendado), clique em Alternar projeto, selecione o projeto da chave e escolha a chave. A chave do Cloud KMS precisa estar na mesma região da instância do Managed Lustre que você está criando.

  3. Se o agente de serviço do Managed Lustre não tiver as permissões necessárias para usar a CMEK, será solicitado que você conceda o papel cloudkms.cryptoKeyEncrypterDecrypter. Clique em Conceder para aplicar o papel.

Se a chave do Cloud KMS não estiver disponível ou houver problemas de permissão ao iniciar a operação de criação, ela vai falhar e retornar um erro FAILED_PRECONDITION.

Gerenciamento de chaves

As chaves do Cloud Key Management Service podem ser alternadas, desativadas, reativadas ou destruídas. Eles podem ficar indisponíveis por vários motivos.

Fazer rotação de uma chave

É possível alternar a chave do Cloud KMS. A rotação de uma chave cria uma nova versão de chave.

  • A rotação de uma chave não criptografa novamente os dados na instância do Managed Lustre. O Managed Lustre não oferece suporte à descriptografia ou nova criptografia de dados.

  • A capacidade atual da instância do Managed Lustre continua criptografada pela versão da chave em uso quando a instância foi criada.

  • Quando você aumenta a capacidade de armazenamento da instância, a nova capacidade é protegida pela versão da chave que é primária quando você faz a solicitação de aumento de capacidade, e todos os dados gravados nessa capacidade são protegidos por essa versão da chave.

Isso significa que é possível ter várias versões de chave criptografando sua instância do Managed Lustre, se você tiver aumentado a capacidade da instância depois de alternar a versão da chave.

Desativar uma chave

É possível desativar uma versão de chave. Durante o período em que qualquer versão de chave usada pela instância do Managed Lustre estiver desativada, a instância será suspensa. Para retomar a instância, retorne todas as versões de chave que protegem a instância para um estado disponível. Consulte Chaves indisponíveis para informações sobre instâncias suspensas.

Consulte Ativar e desativar versões de chave para mais informações.

Reativar uma chave

Se uma versão de chave estiver desativada, será possível reativá-la usando a API Cloud KMS. Consulte Ativar e desativar versões de chave.

Para retomar a instância do Managed Lustre, todas as versões da chave que estão criptografando a capacidade de armazenamento precisam ser ativadas ou restauradas.

Depois que todas as chaves necessárias retornarem ao estado ENABLED, o Managed Lustre detectará automaticamente as alterações de chave e reiniciará a instância. O estado da instância se torna ACTIVE, e o serviço do Managed Lustre retoma a operação normal. É possível realizar E/S e todas as outras operações de longa duração.

Destruir uma chave

As versões de chave do Cloud KMS podem ser destruídas, o que significa que o material da chave é excluído permanentemente.

As chaves do Cloud KMS não podem ser destruídas imediatamente. Em vez disso, é necessário programar uma versão de chave para destruição. Durante a duração programada, é possível restaurar uma versão de chave para cancelar a destruição. Consulte Destruir e restaurar versões de chave para mais detalhes.

Uma versão de chave programada para destruição fica indisponível. Todas as instâncias do Managed Lustre protegidas por essa versão de chave são suspensas. Consulte Chaves indisponíveis para informações sobre instâncias suspensas.

Depois que uma versão de chave é destruída, não é possível restaurá-la. Sua instância vai permanecer suspensa permanentemente. A única operação disponível na instância do Managed Lustre é a exclusão dela.

Chaves indisponíveis

Uma chave pode ficar indisponível pelos seguintes motivos:

  • A chave está desativada.
  • A chave foi destruída ou está programada para ser destruída.
  • As permissões necessárias são removidas do agente de serviço.
  • O faturamento está desativado no projeto da chave do Cloud KMS e permanece desativado por mais de uma hora.
  • Uma chave externa permanece inacessível por mais de uma hora.

Nesses casos, alguns minutos após o evento, a instância do Managed Lustre é encerrada e o estado dela é definido como SUSPENDED.

Uma instância do SUSPENDED pode ser recuperada disponibilizando a chave novamente.

Os possíveis motivos para a suspensão são os seguintes:

Ação na chave Estado da instância Motivo da suspensão Pode ser reativado
Desativar SUSPENDED KEY_DISABLE Sim
Programar para destruição SUSPENDED KEY_DESTROY_SCHEDULED Sim
Destruir SUSPENDED KEY_DESTROY Não
Remover permissão SUSPENDED PERMISSION_DENIED Sim
Desativar o faturamento por 1h SUSPENDED BILLING_DISABLED Sim
Chave do EKM inacessível por 1h SUSPENDED EKM_KEY_UNREACHABLE Sim

Quando uma instância é suspensa:

  • Operações de longa duração, como atualizações de instância e importação/exportação, são bloqueadas e retornam um erro FAILED_PRECONDITION.
  • As operações de E/S param de responder até que os nós do servidor sejam encerrados. Isso ocorre em até 30 minutos.
  • A única operação de longa duração permitida é DeleteInstance.

As instâncias suspensas por mais de quatro meses podem não ser retomadas.

Faturamento de instâncias suspensas

Se uma instância do Managed Lustre entrar no estado SUSPENDED devido à indisponibilidade da chave, você vai continuar acumulando cobranças pela instância. O estado de suspensão não pausa o faturamento. Para interromper as cobranças da instância, é necessário excluí-la.

O Cloud KMS também cobra separadamente por todas as versões de chave em uso.

Ver o uso de chaves e listar versões de chaves

É possível ver os recursos do Google Cloud na sua organização que estão protegidos pelas chaves do Cloud KMS. Consulte Ver o uso da chave para mais detalhes.

Para ver a lista completa de versões de chave usadas pela instância do Managed Lustre, use o comando gcloud kms inventory search-protected-resources:

gcloud kms inventory search-protected-resources \
  --keyname=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
  --scope=organizations/ORGANIZATION_ID \
  --filter="name:projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID" \
  --flatten="cryptoKeyVersions" \
  --format="value(cryptoKeyVersions)"

Em que:

Também é possível conferir informações importantes na página Inventário de chaves.

Acessar o inventário de chaves