Alterne as chaves de encriptação do disco de arranque do etcd e do plano de controlo


.

Esta página mostra como rodar as chaves de encriptação do disco de arranque do etcd e do plano de controlo que configurou para a autoridade do plano de controlo do GKE. Esta página destina-se a administradores de clusters e engenheiros de segurança.

Antes de ler esta página, familiarize-se com os seguintes conceitos de autoridade do plano de controlo do GKE:

Planeie rotações de chaves

Esta página mostra como rodar os seguintes componentes das credenciais no seu plano de controlo:

  • A chave de encriptação para o etcd e os discos de arranque do plano de controlo.
  • A chave de encriptação para a cópia de segurança interna do etcd que Google Cloud usa para recuperação de desastres.

Também pode rodar as autoridades de certificação (ACs) geridas pelo cliente e as chaves de assinatura da conta de serviço que configurar com a autoridade do plano de controlo do GKE. Para mais informações, consulte o artigo Rode as ACs do plano de controlo geridas pelo cliente e as chaves de assinatura.

As chaves no Cloud Key Management Service (Cloud KMS) não expiram. Se a sua organização tiver um requisito de segurança para a alteração da chave, altere as chaves manualmente. Para minimizar as interrupções nas cargas de trabalho em execução, não configure a rotação automática de chaves para estas chaves.

Quando roda as chaves de encriptação para os discos de arranque do plano de controlo e do etcd, o GKE cria um novo disco encriptado com a nova chave. Para clusters regionais, esta operação não tem tempo de inatividade devido ao plano de controlo replicado. Para clusters zonais, o plano de controlo fica indisponível até que o novo disco esteja disponível.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.
  • Ter um cluster existente que use o disco de arranque do plano de controlo e a encriptação etcd

  • Identifique os IDs dos seguintes Google Cloud projetos:

    • Projeto da chave: o projeto que contém os seus recursos do Cloud KMS.
    • Projeto do cluster: o projeto que contém o seu cluster do GKE.
  • Para realizar as tarefas de validação nesta página, verifique se o DATA_READregisto de auditoria de acesso a dados está ativado para a API Cloud Key Management Service (KMS). Para mais informações, consulte o artigo Ative os registos de auditoria de acesso a dados.

Funções e autorizações necessárias

Para receber as autorizações de que precisa para alternar as chaves e as ACs geridas pelo cliente, peça ao seu administrador para lhe conceder as seguintes funções de IAM:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Limitações

Pode atualizar os seus clusters para novas versões de chaves existentes, mas não pode atualizar os seus clusters para usar chaves totalmente novas para estas operações de encriptação.

Conceda funções IAM ao agente do serviço GKE

Para rodar as chaves de encriptação para discos de arranque e etcd, conceda a função Utilizador da chave criptográfica do KMS do Kubernetes Engine (roles/container.cloudKmsKeyUser) nas chaves de encriptação no seu projeto de chaves ao agente de serviço do GKE no seu projeto de 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 o seguinte:

  • KCP_DISK_KEY_NAME: o nome da chave de encriptação para os discos de arranque do plano de controlo e os discos etcd.
  • KEYRING_NAME: o nome do conjunto de chaves que contém a chave.
  • LOCATION: a Google Cloud localização do conjunto de chaves. Tem de ser igual à localização do cluster. Para ver uma lista de regiões, filtre por "Região" na tabela de localizações do Cloud KMS.
  • CLUSTER_PROJECT_NUMBER: o número do projeto numérico do projeto do cluster.
  • KEY_PROJECT_ID: o ID do projeto do seu projeto principal.

Rode a chave para os discos de arranque do etcd e do plano de controlo

  1. Crie uma nova versão da chave principal para o disco de arranque e a chave de encriptação etcd:

    gcloud kms keys versions create \
        --key=KCP_DISK_KEY_NAME \
        --keyring=KEYRING_NAME \
        --location=LOCATION \
        --project=KEY_PROJECT_ID \
        --primary
    

    A propagação das alterações no projeto pode demorar até 10 minutos.

  2. Encontre a versão de patch atual do plano de controlo do cluster:

    gcloud container clusters describe CLUSTER_NAME \
        --location=LOCATION \
        --format='value(currentMasterVersion)'
    

    Substitua o seguinte:

    • CLUSTER_NAME: o nome do seu cluster do GKE.
    • LOCATION: a localização do plano de controlo do cluster do GKE, como us-central1.
  3. Atualize o painel de controlo do cluster para a mesma versão que já usa.

    gcloud container clusters upgrade CLUSTER_NAME \
        --master \
        --location=LOCATION \
        --cluster-version=CONTROL_PLANE_VERSION \
        --project=CLUSTER_PROJECT_ID
    

    Substitua o seguinte:

    • CONTROL_PLANE_VERSION: a versão do plano de controlo do cluster a partir do resultado do passo anterior.
    • CLUSTER_PROJECT_ID: o ID do projeto do seu projeto de cluster.

Após a conclusão da operação de atualização do plano de controlo, o cluster usa a nova versão da chave para encriptar os discos de arranque do plano de controlo e quaisquer discos etcd.

Altere a chave de encriptação de cópias de segurança internas do etcd

Esta secção mostra-lhe como rodar a chave de encriptação para a cópia de segurança interna do etcd, que Google Cloud é usada para fins de recuperação de desastres. Pode configurar a rotação automática para esta chave, mas recomendamos que faça a rotação manual. Depois de alterar a chave, o cluster usa a nova versão da chave para encriptar novas cópias de segurança internas do etcd.

As cópias de segurança internas do etcd usam a versão da chave principal e ocorrem nos seguintes intervalos:

  • De 30 em 30 minutos para clusters zonais.
  • A cada 10 minutos para clusters do Autopilot e clusters Standard regionais.

Depois de rodar a chave, não desative nem destrua imediatamente a versão anterior da chave. Aguarde até que tenha decorrido tempo suficiente para o GKE criar novas cópias de segurança internas do etcd que usam a nova versão da chave.

  • Crie uma nova versão da chave principal para a chave de encriptação de cópias de segurança internas do etcd:

    gcloud kms keys versions create \
        --key=ETCD_BACKUP_KEY_NAME \
        --keyring=KEYRING_NAME \
        --location=LOCATION \
        --project=KEY_PROJECT_ID \
        --primary
    

    Substitua o seguinte:

    • ETCD_BACKUP_KEY_NAME: o nome da chave de encriptação de cópia de segurança interna do etcd.
    • KEYRING_NAME: o nome do conjunto de chaves que contém a chave.
    • LOCATION: a Google Cloud localização do conjunto de chaves. Tem de ser igual à localização do cluster. Para ver uma lista de regiões, filtre por "Região" na tabela de localizações do Cloud KMS.
    • KEY_PROJECT_ID: o ID do projeto do seu projeto principal.

O que se segue?