Alternar as chaves de criptografia do disco de inicialização do etcd e do plano de controle

.

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.

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:

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

  1. 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 \
        --primary
    

    Pode levar até 10 minutos para que as mudanças sejam propagadas no projeto.

  2. 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, como us-central1.
  3. 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_ID
    

    Substitua:

    • 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 \
        --primary
    

    Substitua:

    • 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