Como usar a criptografia de secrets sempre ativada

O Google Distributed Cloud versão 1.10 oferece suporte à criptografia de secrets sem a necessidade de um KMS (serviço de gerenciamento de chaves) externo ou qualquer outra dependência.

Ativar criptografia de secrets sempre ativada

A criptografia de secrets sempre ativada gera automaticamente uma chave que é usada para criptografar secrets antes de eles serem armazenados no banco de dados etcd do cluster. Os secrets são criptografados com uma chave de criptografia de dados (DEK, na sigla em inglês) gerada para cada gravação de secret. Essa DEK é usada no modo AES-GCM para criptografar o objeto Secret. A DEK, por sua vez, é criptografada com uma chave de criptografia de chaves (KEK, na sigla em inglês). O algoritmo de criptografia é A256GCM (AES GCM usando chave de 256 bits).

A versão da chave é um número para indicar a chave atualmente em uso.

É possível ativar a criptografia de secrets depois que um cluster já tiver sido criado.

  • Para o cluster de administrador:

    1. Edite o arquivo de configuração do cluster de administrador para adicionar a seção secretsEncryption.

    2. Execute o comando gkectl update.

      gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
  • Para um cluster de usuário:

    1. Edite o arquivo de configuração do cluster de usuário para adicionar a seção secretsEncryption.

    2. Execute o comando gkectl update.

      gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG

Substitua:

  • ADMIN_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador;
  • ADMIN_CLUSTER_CONFIG pelo caminho do arquivo de configuração do cluster de administrador.
  • USER_CLUSTER_CONFIG é o caminho do arquivo de configuração do cluster de usuário.

Os comandos gkectl update fornecidos nesta seção também podem ser usados para qualquer outra atualização no cluster correspondente.

Armazenamento de chaves

As chaves de criptografia do cluster de administrador são armazenadas no disco de dados do cluster de administrador. Esse disco está montado na máquina principal de administração em /opt/data, e as chaves de criptografia podem ser encontradas em /opt/data/gke-k8s-kms-plugin/generatedkeys/. Essas chaves precisam ser armazenadas em backup para manter o acesso aos secrets criptografados por eles. Ative a criptografia de VM/armazenamento no hipervisor ou medidas semelhantes para garantir que os discos da VM do plano de controle estejam protegidos.

Rotação de chaves

Para alternar uma chave de criptografia para um cluster, incremente o keyVersion no arquivo de configuração do cluster de administrador ou no arquivo de configuração de cluster de usuário correspondente e execute o gkectl update }. Isso cria uma nova chave correspondente ao novo número de versão, criptografa novamente cada secret e apaga a antiga com segurança. Todos os novos secrets subsequentes são criptografados com a nova chave de criptografia.

Desativar a criptografia de secrets sempre ativada

Para desativar a criptografia de secrets em um cluster atual, adicione um campo disabled: true. Em seguida, execute o comando gkectl update correspondente. Essa atualização descriptografa cada secret existente e os armazena em texto simples. Todos os novos secrets subsequentes são armazenados em texto simples.

secretsEncryption:
  mode: GeneratedKey
  generatedKey:
    keyVersion: KEY_VERSION
    disabled: true