Por padrão, o Filestore criptografa o conteúdo do cliente em repouso. O Filestore 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 Filestore. O uso de chaves do Cloud KMS permite 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. O uso do Cloud KMS também permite visualizar registros de auditoria e controlar ciclos de vida importantes. Em vez de o Google ser proprietário e gerente de 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 Filestore é semelhante à criptografia padrão do Google. Para mais informações sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
As CMEKs têm suporte para uso com instâncias e backups do Filestore.
Opções do CMEK
O Filestore oferece suporte a CMEKs armazenadas como chaves de software, como chaves de hardware em um cluster do HSM e como chaves armazenadas externamente no Gerenciador de chaves externas do Cloud (Cloud EKM).
Para mais informações, consulte Cloud Key Management Service.
Interrupções no serviço de EKM
Por design, as chaves externas são gerenciadas por terceiros. Nessas circunstâncias, o Google Cloud não é responsável pela disponibilidade das chaves.
Se o Cloud Key Management Service (Cloud KMS)
for notificado pelo Gerenciador de chaves externo (EKM)
de que uma chave externa não está acessível, os usuários vão receber uma notificação
ekm_key_unreachable_detected
. Por até uma hora, os usuários têm acesso limitado às operações na
instância. Após uma hora, se o status da chave não mudar, as seguintes ações
serão aplicadas:
- A chave está desativada.
- Todas as operações de criptografia e descriptografia falham.
- A instância do Filestore está suspensa.
Em alguns casos, como um evento não planejado, como uma reinicialização de VM, o acesso à instância pode ser interrompido antes de uma hora.
As notificações de chave inacessível podem ser visualizadas na página de detalhes da instância do Filestore:
Acessar a página de instâncias do Filestore
Os usuários também recebem notificações ekm_key_unreachable_detected
em qualquer uma das
operações a seguir se forem realizadas em até uma hora após a primeira notificação
informada:
- Reverter um snapshot
- Criar um backup de instância
- Excluir um backup
- Restaurar uma instância de um backup
- Atualizar ou corrigir uma instância
Níveis compatíveis
A tabela a seguir mostra os níveis de serviço do Filestore compatíveis com CMEKs:
Nível | Suporte a CMEK |
---|---|
HDD básico | Não |
SSD básico | Não |
Zonal | Sim |
Regional | Sim |
Enterprise | Sim |
Criar um keyring e uma chave para usar com sua instância
O keyring e a chave podem estar em um projeto diferente da instância do Filestore, mas precisam estar no mesmo local. Se você já tiver um keyring e uma chave do Cloud KMS que quer usar com o Filestore, pule para a próxima seção. Caso contrário, siga as instruções em Como criar chaves de criptografia simétricas para criar um keyring e uma chave.
Conceder permissão de acesso de chave à conta de serviço do Filestore
Antes de criar uma instância do Filestore que use uma CMEK, a
conta de serviço do Filestore precisa ter o papel de criptografia/descriptografia
do Cloud KMS CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter
).
Uma conta de serviço do Filestore é criada na primeira vez que você cria uma instância do Filestore no projeto. Se você 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 ou ID do projeto em que você quer criar a instância do Filestore.
Atribua à conta de serviço do Filestore o papel Criptografador/Descriptografador do Cloud KMS CryptoKey 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:
- KMS_PROJECT_NUMBER_OR_ID pelo número ou ID do projeto que contém a chave do Cloud KMS que você quer usar.
- INSTANCE_PROJECT_NUMBER pelo número (não o ID) do projeto em que você quer criar a instância do Filestore.
Criar uma instância que usa a chave do Cloud KMS
Console do Google Cloud
Para criar uma instância que use a chave do Cloud KMS para criptografia de dados:
No console do Google Cloud, acesse a página de instâncias do Filestore.
Clique em Criar instância.
Selecione um nível de instância compatível com CMEKs e preencha todos os outros campos obrigatórios e opcionais normalmente.
Clique em Exibir opções avançadas.
Marque a caixa de seleção Usar uma chave de criptografia gerenciada pelo cliente (CMEK).
Selecione a chave do Cloud KMS que você quer usar para a instância.
Clique em Criar.
CLI da gcloud
Para criar uma instância do Filestore que use a chave do Cloud KMS
para criptografia de dados, especifique a sinalização --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:
- TIER com um nível do Filestore compatível com CMEKs.
- KMS_KEY pelo nome totalmente qualificado da chave do Cloud KMS que você quer usar. Se preferir, especifique cada argumento separadamente no formato:
--kms-key=KMS_KEY : --kms-keyring=KEY_RING --kms-location=KMS_REGION --kms-project=KMS_PROJECT_NUMBER_OR_ID
Substitua:
- KMS_KEY pelo nome da chave do Cloud KMS.
- KMS_PROJECT_NUMBER_OR_ID pelo número ou ID do projeto em que a chave foi criada.
- KMS_KEY_RING pelo nome do keyring;
- KMS_REGION pela região do keyring. O keyring e a instância precisam estar na mesma região.
Ver uma lista de chaves
Para conferir uma lista de chaves, execute o comando kms keys list
:
gcloud kms keys list \
--project=KMS_PROJECT_NUMBER_OR_ID \
--keyring=KEY_RING \
--location=KMS_REGION
Substitua:
- KMS_PROJECT_NUMBER_OR_ID pelo número ou ID do projeto em que a chave foi criada.
- KEY_RING pelo nome do keyring;
- KMS_REGION pela região do keyring.
A coluna Nome da saída mostra o nome totalmente qualificado das chaves atuais. Exemplo:
projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
Receber informações da chave da instância
As seções a seguir abordam como conseguir informações de instâncias.
Listar instâncias que usam uma chave específica do Cloud KMS
Para listar instâncias do Filestore que usam uma chave específica,
execute o comando
instances list
:
gcloud filestore instances list --filter="kmsKeyName=KMS_KEY"
Substitua KMS_KEY pelo nome totalmente qualificado da chave que você quer usar.
Exemplo:
gcloud filestore instances list \
--filter="kmsKeyName=projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key"
A saída é semelhante a esta:
INSTANCE_NAME LOCATION TIER CAPACITY_GB FILE_SHARE_NAME IP_ADDRESS STATE CREATE_TIME
nfs-server us-central1 ENTERPRISE 1024 vol1 10.166.108.2 READY 2021-08-12T11:38:56
Receber informações da chave do Cloud KMS de uma instância
Use um dos métodos a seguir para receber informações da chave do Cloud KMS de uma instância do Filestore:
Console do Google Cloud
Acessar a página de instâncias do Filestore.
Clique no código da instância para abrir a página de detalhes da instância.
Clique na guia Visão geral.
Se a instância criptografar dados usando uma chave do Cloud KMS em vez de uma chave gerenciada e de propriedade do Google, o nome da chave será exibido no campo Chave de criptografia.
CLI da gcloud
Execute este comando
instances describe
:
gcloud filestore instances describe INSTANCE_ID \
--location=INSTANCE_LOCATION
Substitua:
- INSTANCE_ID pelo ID da instância do Filestore de que você quer receber informações.
- INSTANCE_LOCATION pela região ou zona em que a instância está localizada.
A saída é semelhante a esta:
createTime: '2021-08-12T11:38:56.851157387Z'
fileShares:
- capacityGb: '1024'
name: vol1
kmsKeyName: projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
labels:
key: val
name: projects/consumer-project/locations/us-central1/instances/nfs-server
networks:
- ipAddresses:
- 10.0.100.2
modes:
- MODE_IPV4
network: network
reservedIpRange: 10.166.108.0/23
state: READY
tier: ENTERPRISE
Desativar ou destruir uma chave do Cloud KMS usada por uma instância
Se uma mudança no estado da chave do Cloud KMS for detectada, a instância vai parar automaticamente de veicular dados. Veja alguns exemplos:
- Desativar uma chave ou versão de chave.
- Destruição de uma chave ou versão da chave.
- Modificar as permissões de uma chave.
Essa detecção geralmente acontece alguns minutos após a mudança no estado da chave, mas em alguns casos pode levar até uma hora.
Quando uma instância é interrompida, todo o acesso aos dados do compartilhamento de arquivos e a qualquer snapshot é bloqueado. As instâncias interrompidas continuam sendo cobradas até serem excluídas.
Como iniciar uma instância parada
Se uma instância interrompida do Filestore usar uma chave do Cloud KMS para criptografia de dados, todas as versões da chave precisarão ser ativadas ou restauradas antes de reiniciar a instância.
Quando o status da chave do Cloud KMS é ativado, a instância detecta automaticamente as mudanças de chave e reinicia sem nenhuma ação adicional, normalmente em 20 minutos.
Suporte a CMEK para cadeias de backup
É possível usar CMEKs para criptografar não apenas as instâncias do Filestore, mas também as cadeias de backup.
As cadeias de backup residem em um único bucket e região. Para armazenar e criptografar dados de backup em uma região fora da instância de origem, os usuários precisam aplicar duas CMEKs separadas: uma para a instância e outra para a cadeia de backup. Alguns requisitos são aplicáveis:
Uma CMEK precisa estar na mesma região que a cadeia de backup que ela criptografa.
Um único CMEK é aplicado ao bucket em que a cadeia de backup é armazenada e não pode ser combinada ou substituída.
Para criar um backup usando uma nova CMEK, é necessário excluir toda a cadeia de backup existente.
O suporte à CMEK não está disponível para backups de nível básico.
Para mais informações, consulte Backups.
A seguir
- Saiba como aplicar uma política da organização de CMEK.
- Saiba mais sobre o CMEK.
- Saiba mais sobre criptografia em trânsito no Google Cloud.