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 gcloud CLI anteriormente, instale a versão mais recente executando gcloud components update.

Papéis e permissões necessárias

Para receber as permissões necessárias para fazer a rotação das 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 alternar as 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 principal 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 tempo suficiente para que o GKE crie novos backups internos do etcd que usam a nova versão da chave.

  • Crie uma nova versão de chave principal 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