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 a autoridade do plano de controle do GKE. Esta página é destinada a administradores de cluster e engenheiros de segurança.
Antes de ler esta página, familiarize-se com os seguintes conceitos de autoridade do plano de controle do GKE:
Planejar rotações de chaves
Nesta página, mostramos como alternar os seguintes componentes de credenciais no seu plano de controle:
- A chave de criptografia para 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 (ACs) gerenciadas pelo cliente e as chaves de assinatura da conta de serviço configuradas com a autoridade do plano de controle do GKE. Para mais informações, consulte Alternar CAs e chaves de assinatura do plano de controle gerenciado 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 isso manualmente. Para minimizar 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 com 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:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a CLI do Google Cloud para essa tarefa,
instale e inicialize a
gcloud CLI. 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 disco de inicialização do plano de controle e criptografia do etcd
Identifique os IDs dos seguintes projetos do Google Cloud :
- Projeto de chave: o projeto que contém seus recursos do Cloud KMS.
- Projeto de cluster: o projeto que contém seu cluster do GKE.
Para realizar as tarefas de validação nesta página, 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 fazer a rotação de CAs e chaves gerenciadas pelo cliente, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Gerenciar chaves ou versões de chaves:
Administrador do Cloud KMS (
roles/cloudkms.admin) no projeto de chave -
Configure os 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 por meio de papéis personalizados ou de outros papéis predefinidos.
Limitações
É possível atualizar os clusters para novas versões de chaves atuais, mas não é possível atualizar os clusters para usar chaves totalmente novas nessas operações de criptografia.
Conceder papéis do IAM ao agente de serviço do GKE
Para fazer a rotação das chaves de criptografia dos discos de inicialização e do etcd, conceda o papel de
Usuário da chave criptográfica do KMS do Kubernetes Engine
(roles/container.cloudKmsKeyUser) nas chaves de criptografia do projeto
de chaves 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 do etcd.KEYRING_NAME: o nome do keyring que contém a chave.LOCATION: a Google Cloud localização 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 projeto da chave.
Alternar a chave para discos de inicialização do etcd e do plano de controle
Crie uma nova versão da 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 na 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 os discos etcd.
Alternar a chave de criptografia de backup interno do etcd
Nesta seção, mostramos como alternar a chave de criptografia para o 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 fazer a rotação manual. Depois de fazer a rotação da chave, o cluster usa a nova versão 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 Standard regionais.
Depois de girar a chave, não desative ou destrua imediatamente a versão anterior. Aguarde até que tempo suficiente tenha passado para o GKE criar novos backups internos do etcd que usam a nova versão da chave.
Crie uma nova versão 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: a Google Cloud localização 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 projeto da 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 de identidades