Gerenciar recursos de criptografia

Nesta página, mostramos como gerenciar buckets de armazenamento criptografados do Google Distributed Cloud (GDC) com isolamento físico.

Antes de começar

Os buckets de armazenamento são recursos com escopo definido para um projeto específico. O projeto funciona como um contêiner, agrupando seus buckets e permitindo o gerenciamento deles pelo servidor de API Management. Antes de realizar as operações nesta página, crie um novo projeto ou selecione um em que você tenha permissões suficientes.

Papéis necessários do IAM

Entre em contato com o administrador do projeto do IAM para solicitar os seguintes papéis no namespace do projeto:

  • Administrador de projetos de bucket (project-bucket-admin): criar, atualizar e excluir buckets de armazenamento.
  • Leitor de projetos de objetos de bucket (project-bucket-object-viewer): visualizar e verificar detalhes de buckets e objetos de armazenamento.

Para mais informações, consulte Conceder acesso ao bucket.

Preparar o ambiente

Para executar comandos no servidor da API de gerenciamento ou no servidor da API global, faça o seguinte:

  1. Faça login e gere o arquivo kubeconfig para o servidor de API de gerenciamento zonal, se você não tiver um.
  2. Para buckets birregionais, faça o seguinte:
    • Verifique com o operador de infraestrutura (IO) se o recurso personalizado BucketLocationConfig foi criado para as zonas pareadas.
    • Gere o arquivo kubeconfig para o servidor de API global.

Gerenciar recursos de criptografia

Os buckets com criptografia v2 teriam um secret kekRef e várias AEADKeys criadas, em que kekRef é usado para referenciar as AEADKeys padrão ativas em uso, e as AEADKeys incluem as ativas e as de arquivo que pertencem ao bucket.

Atualizar as AEADKeys padrão ativas de um bucket

Como prática recomendada, atualize as AEADKeys padrão do bucket após aproximadamente 42 bilhões de gravações de objetos. Essa etapa proativa aumenta a segurança e evita o esgotamento de chaves. O processo de atualização cria um novo kekRef e desativa as AEADKeys anteriores. Para iniciar o processo de atualização, exclua o secret kekRef associado ao bucket.

O kekRef anterior pode ser recuperado executando o seguinte comando:

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

Em seguida, execute o seguinte para excluir o kekRef atual:

kubectl delete secrets OLD_KEKREF_NAME -n  NAMESPACE_NAME

Após a exclusão, execute o seguinte para confirmar que uma nova kekRef foi criada com base em AGE:

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

Verifique se as novas AEADKeys padrão foram criadas com base em AGE:

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

Alternar as AEADKeys padrão de um bucket

Se uma AEADKey do bucket for comprometida, será necessário alternar manualmente as chaves de criptografia de chaves associadas ao bucket.

Para iniciar o processo, primeiro é necessário atualizar as chaves padrão ativas. Isso cria novas AEADKeys padrão ativas e marca as chaves de criptografia de chaves anteriores como desativadas. Depois que as chaves padrão são atualizadas, os uploads de objetos subsequentes usam as novas AEADKeys como chaves de criptografia de chaves. As AEADKeys anteriores não são destruídas, então ainda é possível descriptografar objetos que foram criptografados com elas.

Em seguida, siga as etapas para fazer o download e reenviar os objetos no bucket e excluir os objetos antigos.

Depois de reenviar todos os objetos no bucket, limpe as AEADKeys inativas e os objetos antigos. Identifique as AEADKeys desativadas com base em AGE:

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

Por fim, siga as etapas para excluir as AEADKeys.