A versão 1.10 do Google Distributed Cloud suporta a encriptação de segredos sem necessidade de um KMS (Key Management Service) externo nem de outras dependências.
Tenha em atenção a seguinte limitação com os clusters avançados:
- Versão 1.31: a encriptação de segredos sempre ativa não é suportada em clusters avançados.
- Versão 1.32 e superior: a encriptação sempre ativa é suportada em clusters avançados.
Ative a encriptação de segredos sempre ativa
A encriptação de segredos sempre ativa funciona através da geração automática de uma chave de encriptação que é usada para encriptar segredos antes de serem armazenados na base de dados etcd para esse cluster. Os segredos são encriptados através de uma chave de encriptação de dados (DEK) gerada para cada gravação de segredo. Esta DEK é usada no modo AES-GCM para encriptar o objeto Secret. Por sua vez, a DEK é encriptada com uma chave de encriptação de chaves (KEK). O algoritmo de encriptação é A256GCM (AES GCM com chave de 256 bits).
A versão da chave é um número de versão que indica a chave atualmente em utilização.
Pode ativar a encriptação de segredos depois de já ter criado um cluster.
Para o cluster de administrador:
Edite o ficheiro de configuração do cluster de administrador para adicionar a secção
secretsEncryption
.Execute o comando
gkectl update
.gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Para um cluster de utilizadores:
Edite o ficheiro de configuração do cluster de utilizadores para adicionar a secção
secretsEncryption
.Execute o comando
gkectl update
.gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Substitua o seguinte:
ADMIN_KUBECONFIG
com o caminho do ficheiro kubeconfig do cluster de administrador.ADMIN_CLUSTER_CONFIG
com o caminho do ficheiro de configuração do cluster de administrador.USER_CLUSTER_CONFIG
com o caminho do ficheiro de configuração do cluster de utilizadores.
Os comandos gkectl update
fornecidos nesta secção também podem ser usados para quaisquer outras atualizações ao cluster correspondente.
Armazenamento de chaves
As chaves de encriptação do cluster de administrador são armazenadas no disco de dados do cluster de administrador. Este disco está montado na máquina principal do administrador em /opt/data e as chaves de encriptação podem ser encontradas em /opt/data/gke-k8s-kms-plugin/generatedkeys/. Tem de fazer uma cópia de segurança destas chaves para manter o acesso aos segredos encriptados usados por essa chave. Deve ativar a encriptação de VMs/armazenamento no hipervisor ou medidas semelhantes para garantir que os discos da VM do plano de controlo estão protegidos.
Rotação de chaves
Para rodar uma chave de encriptação existente para um cluster, incremente o keyVersion
no ficheiro de configuração do cluster de administrador ou no ficheiro de configuração do cluster de utilizador correspondente e execute o comando gkectl update
adequado. Esta ação cria uma nova chave correspondente ao novo número de versão, volta a encriptar cada segredo e apaga o antigo de forma segura. Todos os novos segredos subsequentes são encriptados com a nova chave de encriptação.
Desative a encriptação sempre ativa de segredos
Para desativar a encriptação de segredos num cluster existente, adicione um campo disabled: true
. Em seguida, execute o comando gkectl update
correspondente. Esta atualização descifra cada segredo existente e armazena cada segredo em texto simples. Todos os novos segredos subsequentes são armazenados em texto simples.
secretsEncryption: mode: GeneratedKey generatedKey: keyVersion: KEY_VERSION disabled: true