Encriptar dados com chaves de encriptação geridas pelo cliente (CMEK)

Por predefinição, o Filestore encripta o conteúdo do cliente em repouso. O Filestore 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 Filestore. 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 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 Filestore é 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).

As CMEKs são suportadas para utilização com instâncias do Filestore e cópias de segurança.

Opções de CMEK

O Filestore suporta CMEKs armazenadas como chaves de software, como chaves de hardware num cluster de HSM e como chaves armazenadas externamente no Cloud External Key Manager (Cloud EKM).

Para mais informações, consulte o Serviço de gestão de chaves na nuvem.

Interrupções no serviço de GCE

Por definição, as chaves externas são geridas por terceiros. Nestas circunstâncias, a Google Cloud não é responsável pela disponibilidade das chaves.

Se o Cloud Key Management Service (Cloud KMS) for notificado pelo External Key Manager (EKM) de que uma chave externa está inacessível, os utilizadores recebem uma ekm_key_unreachable_detected notificação. Durante um máximo de uma hora, os utilizadores têm acesso limitado às operações na instância. Após uma hora, se o estado da chave permanecer inalterado, aplicam-se as seguintes ações:

  • A chave está desativada.
  • Todas as operações de encriptação e desencriptação falham.
  • A instância do Filestore está suspensa.

Em alguns casos, como um evento não planeado, como o reinício de uma VM, o acesso à instância pode ser interrompido antes de uma hora.

Pode ver as notificações de chaves inacessíveis na página de detalhes da instância do Filestore:

Aceda à página de instâncias do Filestore

Os utilizadores também recebem ekm_key_unreachable_detected notificações em qualquer uma das seguintes operações se forem realizadas no prazo de uma hora após a primeira notificação comunicada:

Níveis suportados

A tabela seguinte mostra os níveis de serviço do Filestore que suportam CMEKs:

Nível Suporte de CMEK
HDD básico Não
SSD básico Não
Zonal Sim
Regional Sim
Enterprise Sim

Crie um conjunto de chaves e uma chave para usar com a sua instância

O conjunto de chaves e a chave podem estar num projeto diferente da instância do Filestore, mas têm de estar na mesma localização. Se já tiver um conjunto de chaves e uma chave do Cloud KMS que quer usar com o Filestore, avance para a secção seguinte. Caso contrário, siga as instruções em Criar chaves de encriptação simétricas para criar um conjunto de chaves e uma chave.

Conceda autorização de acesso à chave à conta de serviço do Filestore

Antes de poder criar uma instância do Filestore que use uma CMEK, a conta de serviço do Filestore tem de ter a função de encriptar/desencriptar do CryptoKey do Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter).

  1. É criada uma conta de serviço do Filestore quando cria uma instância do Filestore no projeto pela primeira vez. Se ainda não tiver uma conta de serviço do Filestore, execute o seguinte comando services identity create:

    gcloud beta services identity create --service=file.googleapis.com --project=INSTANCE_PROJECT_NUMBER_OR_ID
    

    Substitua INSTANCE_PROJECT_NUMBER_OR_ID pelo número do projeto ou pelo ID do projeto onde quer criar a instância do Filestore.

  2. Atribua à conta de serviço do Filestore a função de encriptador/desencriptador de CryptoKey do Cloud KMS executando o comando projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding KMS_PROJECT_NUMBER_OR_ID \
        --member serviceAccount:service-INSTANCE_PROJECT_NUMBER@cloud-filer.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Substitua o seguinte:

    • KMS_PROJECT_NUMBER_OR_ID com o número ou o ID do projeto que contém a chave do Cloud KMS que quer usar.
    • INSTANCE_PROJECT_NUMBER com o número do projeto (não o ID do projeto) do projeto onde quer criar a instância do Filestore.

Crie uma instância que use a sua chave do Cloud KMS

Google Cloud consola

Para criar uma instância que use a sua chave do Cloud KMS para encriptação de dados:

  1. Na Google Cloud consola, aceda à página Instâncias do Filestore.

    Aceda à página de instâncias do Filestore

  2. Clique em Criar instância

  3. Selecione um nível de instância que suporte CMEKs e preencha todos os outros campos obrigatórios e opcionais como faria normalmente.

  4. Clique em Mostrar opções avançadas.

  5. Selecione a caixa de verificação Usar uma chave de encriptação gerida pelo cliente (CMEK).

  6. Selecione a chave do Cloud KMS que quer usar para a instância.

  7. Clique em Criar.

CLI gcloud

Para criar uma instância do Filestore que use a sua chave do Cloud KMS para encriptação de dados, especifique a flag --kms-key no comando filestore instances create:

gcloud filestore instances create nfs-server \
    --tier=<var>TIER</var> \
    --location=us-central1 \
    --file-share=name="vol1",capacity=1TiB \
    --network=name="default" \
    --kms-key=KMS_KEY

Substitua o seguinte:

  • TIER com um nível do Filestore que suporta CMEKs.
  • KMS_KEY com o nome totalmente qualificado da chave do Cloud KMS que quer usar. Em alternativa, pode especificar cada argumento separadamente no formato: