Nesta página, mostramos como alternar as chaves de criptografia do disco de inicialização do etcd e do plano de controle que você configurou para o GKE control plane authority. Este documento é destinado a administradores de cluster e engenheiros de segurança.
Antes de ler este documento, conheça os seguintes conceitos da GKE control plane authority:
Planejar rotações de chaves
Neste documento, mostramos como alternar os seguintes componentes de credencial no plano de controle:
- A chave de criptografia para o etcd e os discos de inicialização do plano de controle.
- A chave de criptografia para o backup interno do etcd que o Google Cloud usa para recuperação de desastres.
Também é possível alternar as autoridades certificadoras (CAs) gerenciadas pelo cliente e as chaves de assinatura da conta de serviço que você configura com a GKE control plane authority. Para mais informações, consulte Alternar as CAs e as chaves de assinatura do plano de controle gerenciadas pelo cliente.
As chaves no Cloud Key Management Service (Cloud KMS) não expiram. Se a organização tiver um requisito de segurança para rotação de chaves, faça a rotação manual. Para minimizar as interrupções nas cargas de trabalho em execução, não configure a rotação automática de chaves para essas chaves.
Quando você faz a rotação das chaves de criptografia dos discos de inicialização do plano de controle e do etcd, o GKE cria um novo disco criptografado usando a nova chave. Para clusters regionais, essa operação não tem tempo de inatividade devido ao plano de controle replicado. Para clusters zonais, o plano de controle fica indisponível até que o novo disco esteja disponível.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ative a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Para usar a Google Cloud CLI nesta tarefa,
instale e inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando o comando
gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
Ter um cluster que use o disco de inicialização do plano de controle e a criptografia etcd e execute o GKE versão 1.35.2-gke.1842000 ou mais recente.
Identifique os IDs dos seguintes projetos do Google Cloud :
- Projeto de chave: o projeto que contém os recursos do Cloud KMS.
- Projeto de cluster: o projeto que contém o cluster do GKE.
Para realizar as tarefas de validação neste documento, verifique se o registro de auditoria de acesso a dados
DATA_READestá ativado para a API Cloud Key Management Service (KMS). Para mais informações, consulte Ativar registros de auditoria de acesso a dados.
Papéis e permissões necessárias
Para receber as permissões necessárias para alternar as CAs e as chaves gerenciadas pelo cliente, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Gerenciar chaves ou versões de chave:
Administrador do Cloud KMS (
roles/cloudkms.admin) no projeto de chave -
Configurar clusters para usar novas chaves:
Administrador de cluster do Kubernetes Engine (
roles/container.clusterAdmin) no projeto do cluster
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Limitações
É possível atualizar os clusters para novas versões de chaves atuais, mas não é possível atualizá-los para usar chaves totalmente novas nessas operações de criptografia.
Conceder papéis do IAM ao agente de serviço do GKE
Para alternar as chaves de criptografia de discos de inicialização e etcd, conceda o papel de Usuário de chave de criptografia do KMS do Kubernetes Engine (roles/container.cloudKmsKeyUser) nas chaves de criptografia do projeto de chave ao agente de serviço do GKE no projeto do cluster:
gcloud kms keys add-iam-policy-binding KCP_DISK_KEY_NAME \
--keyring=KEYRING_NAME \
--location=LOCATION \
--member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
--role=roles/container.cloudKmsKeyUser \
--project=KEY_PROJECT_ID
Substitua:
KCP_DISK_KEY_NAME: o nome da chave de criptografia para os discos de inicialização do plano de controle e os discos etcd.KEYRING_NAME: o nome do keyring que contém a chave.LOCATION: o Google Cloud local do keyring. Precisa ser igual ao local do cluster. Para uma lista de regiões, filtre "Região" na tabela de locais do Cloud KMS.CLUSTER_PROJECT_NUMBER: o número numérico do projeto do cluster.KEY_PROJECT_ID: o ID do projeto do seu projeto de chave.
Alternar a chave para o etcd e os discos de inicialização do plano de controle
Crie uma nova versão de chave primária para o disco de inicialização e a chave de criptografia do etcd:
gcloud kms keys versions create \ --key=KCP_DISK_KEY_NAME \ --keyring=KEYRING_NAME \ --location=LOCATION \ --project=KEY_PROJECT_ID \ --primaryPode levar até 10 minutos para que as mudanças sejam propagadas no projeto.
Encontre a versão de patch atual do plano de controle do cluster:
gcloud container clusters describe CLUSTER_NAME \ --location=LOCATION \ --format='value(currentMasterVersion)'Substitua:
CLUSTER_NAME: o nome do cluster do GKE.LOCATION: o local do plano de controle do cluster do GKE, comous-central1.
Faça upgrade do plano de controle do cluster para a mesma versão que ele já usa.
gcloud container clusters upgrade CLUSTER_NAME \ --master \ --location=LOCATION \ --cluster-version=CONTROL_PLANE_VERSION \ --project=CLUSTER_PROJECT_IDSubstitua:
CONTROL_PLANE_VERSION: a versão do plano de controle do cluster da saída da etapa anterior.CLUSTER_PROJECT_ID: o ID do projeto do seu projeto de cluster.
Depois que a operação de upgrade do plano de controle for concluída, o cluster usará a nova versão da chave para criptografar os discos de inicialização do plano de controle e todos os discos etcd.
Alternar a chave de criptografia de backup interno do etcd
Nesta seção, mostramos como alternar a chave de criptografia do backup interno do etcd, que o Google Cloud usa para fins de recuperação de desastres. É possível configurar a rotação automática para essa chave, mas recomendamos que você faça a rotação manual. Depois que você fizer a rotação da chave, o cluster vai usar a nova versão dela para criptografar novos backups internos do etcd.
Os backups internos do etcd usam a versão da chave primária e ocorrem nos seguintes intervalos:
- A cada 30 minutos para clusters zonais.
- A cada 10 minutos para clusters do Autopilot e clusters regionais padrão.
Depois de alternar a chave, não desative nem destrua imediatamente a versão anterior da chave. Aguarde até que o GKE tenha tempo suficiente para criar novos backups internos do etcd que usem a nova versão da chave.
Crie uma nova versão de chave primária para a chave de criptografia de backup interno do etcd:
gcloud kms keys versions create \ --key=ETCD_BACKUP_KEY_NAME \ --keyring=KEYRING_NAME \ --location=LOCATION \ --project=KEY_PROJECT_ID \ --primarySubstitua:
ETCD_BACKUP_KEY_NAME: o nome da chave de criptografia de backup interno do etcd.KEYRING_NAME: o nome do keyring que contém a chave.LOCATION: o Google Cloud local do keyring. Precisa ser igual ao local do cluster. Para uma lista de regiões, filtre "Região" na tabela de locais do Cloud KMS.KEY_PROJECT_ID: o ID do projeto do seu projeto de chave.
A seguir
- Fazer a rotação de CAs e chaves do plano de controle gerenciado pelo cliente
- Verificar a emissão e o uso da identidade