Como fazer a rotação de credenciais de segurança

Neste tópico, descrevemos como alternar as credenciais de segurança dos clusters do Anthos no serviço de gerenciamento do AWS (GKE na AWS) e no usuário. Para mais informações sobre os recursos de segurança dos clusters do Anthos na AWS, consulte Segurança.

Antes de começar

Para concluir as etapas desta página, você precisa ter acesso ao diretório com sua configuração dos clusters do Anthos na AWS.

Certificados de serviço de gerenciamento

Nesta seção, você aprende a fazer a rotação de certificados para o serviço de gerenciamento.

Autoridades de certificação de gerenciamento

Nesta seção, explicamos como alternar os certificados de assinatura da autoridade de certificação (CA, na sigla em inglês) para clusters do Anthos nos componentes da AWS.

Autoridades de certificação do servidor raiz da API Management

Para girar a autoridade de certificação do servidor raiz da API, execute as seguintes etapas:

  1. Mude para o diretório com os clusters do Anthos na configuração da AWS. Você criou esse diretório ao instalar o serviço de gerenciamento.
    cd anthos-aws
  2. Abra o anthos-gke.status.yaml em um editor de texto.
  3. Remova todos os valores na chave certificateAuthority. Isso inclui encryptedPrivateKey.kmsKeyARN, encryptedPrivateKey.value e encryptedPrivateKey.certificate.
  4. Execute anthos-gke aws management init para atualizar o arquivo anthos-gke.status.yaml.

     anthos-gke aws management init
    
  5. Execute anthos-gke aws management apply para atualizar o serviço de gerenciamento.

     anthos-gke aws management apply
    

  1. No diretório anthos-aws, use anthos-gke para alternar o contexto para o serviço de gerenciamento.
    cd anthos-aws
    anthos-gke aws management get-credentials

Outras autoridades de certificação de gerenciamento

Esta seção descreve como é possível girar todas as CAs a seguir:

  • Autenticação de CA de webhook
  • CA Etcd
  • Signatário da conta de serviço CA

É possível girar essas CAs usando um dos métodos a seguir:

  • Remova a seção certificateAuthority do seu anthos-gke.status.yaml.

    1. Mude para o diretório com os clusters do Anthos na configuração da AWS. Você criou esse diretório ao instalar o serviço de gerenciamento.
      cd anthos-aws
    2. Abra o anthos-gke.status.yaml em um editor de texto.
    3. Remova todos os valores na chave certificateAuthority. Isso inclui encryptedPrivateKey.kmsKeyARN, encryptedPrivateKey.value e encryptedPrivateKey.certificate.
    4. Execute anthos-gke aws management init para atualizar o arquivo anthos-gke.status.yaml.

       anthos-gke aws management init
      
    5. Execute anthos-gke aws management apply para atualizar o serviço de gerenciamento.

       anthos-gke aws management apply
      

  • Se houver novos clusters do Anthos na versão da AWS, faça upgrade dos clusters do Anthos no serviço de gerenciamento da AWS.

  • Recrie a instância do EC2 do serviço de gerenciamento.

    1. No diretório anthos-aws, use terraform para obter o ID do seu serviço de gerenciamento.
      cd anthos-aws
      terraform output cluster_id
      A saída inclui seu código de serviço de gerenciamento. No exemplo abaixo, o ID é gke-12345abc.
      terraform output cluster_id
      gke-12345abc
      
    2. Abra o Console do AWS EC2.
    3. Clique em Instâncias.
    4. Encontre a instância chamada cluster-id-management-0.
    5. Selecione Ações -> Estado da instância -> Encerrar para encerrar a instância. O EC2 cria automaticamente uma nova instância com o mesmo volume do EBS.

Chaves e certificados do cliente TLS / servidor de gerenciamento

Para alternar as chaves e os certificados do cliente/servidor TLS para seu serviço de gerenciamento, recrie a instância do serviço de gerenciamento. Para recriar a instância, execute as seguintes etapas:

  1. No diretório anthos-aws, use terraform para obter o ID do seu serviço de gerenciamento.
    cd anthos-aws
    terraform output cluster_id
    A saída inclui seu código de serviço de gerenciamento. No exemplo abaixo, o ID é gke-12345abc.
    terraform output cluster_id
    gke-12345abc
    
  2. Abra o Console do AWS EC2.
  3. Clique em Instâncias.
  4. Encontre a instância chamada cluster-id-management-0.
  5. Selecione Ações -> Estado da instância -> Encerrar para encerrar a instância. O EC2 cria automaticamente uma nova instância com o mesmo volume do EBS.

Contas de serviço do Google Cloud

Contas de serviço de gerenciamento

Para alternar as contas de serviço do Google Cloud do seu serviço de gerenciamento, execute as etapas a seguir.

  1. Crie novas contas de serviço e faça o download das chaves dela seguindo as etapas em Pré-requisitos
  2. Mude para o diretório com os clusters do Anthos na configuração da AWS. Você criou esse diretório ao instalar o serviço de gerenciamento.
    cd anthos-aws
  3. Se você fez o download de chaves para um caminho diferente, abra o arquivo anthos-gke.yaml em um editor de texto. Altere o valor de .spec.googleCloud.serviceAccountKeys.managementService, .status.googleCloud.serviceAccountKeys.connectAgent e .spec.googleCloud.serviceAccountKeys.node para os novos caminhos.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
     name: management
    spec:
     googleCloud:
       serviceAccountKeys:
         managementService: MANAGEMENT_KEY_PATH
         connectAgent: CONNECT_KEY_PATH
         node: NODE_KEY_PATH
     ...
    
  4. Execute anthos-gke aws management init para atualizar o arquivo anthos-gke.status.yaml.

    anthos-gke aws management init
    
  5. Execute anthos-gke aws management apply para atualizar o serviço de gerenciamento.

    anthos-gke aws management apply
    

Contas de serviço do cluster de usuário

Para aplicar essas contas de serviço nos AWSClusters e AWSNodePools, é preciso:atualizá-los ou excluí-los então recriá-los.

Certificados de cluster de usuário

Veja nesta seção como alternar certificados para os clusters de usuário.

Autoridades de certificação de cluster do usuário e chaves SSH

A maioria das CAs para seus clusters de usuário são criadas no momento da criação do cluster.

Quando você exclui um cluster de usuário, os clusters do Anthos na AWS alternam os seguintes certificados:

  • CA do servidor raiz da API
  • CA de proxy frontal da API
  • CA Etcd
  • Signatário da conta de serviço do Kubernetes CA
  • Controle de pares de chaves SSH do nó de controle

Autoridades de certificação de webhook de autenticação do cluster de usuário

Para alternar a CA do webhook de autenticação do cluster de usuário, edite seu arquivo anthos-gke.status.yaml e aplique as alterações.

  1. Mude para o diretório com os clusters do Anthos na configuração da AWS. Você criou esse diretório ao instalar o serviço de gerenciamento.
    cd anthos-aws
  2. Abra o anthos-gke.status.yaml em um editor de texto.
  3. Remova todos os valores na chave certificateAuthority. Isso inclui encryptedPrivateKey.kmsKeyARN, encryptedPrivateKey.value e encryptedPrivateKey.certificate.
  4. Execute anthos-gke aws management init para atualizar o arquivo anthos-gke.status.yaml.

     anthos-gke aws management init
    
  5. Execute anthos-gke aws management apply para atualizar o serviço de gerenciamento.

     anthos-gke aws management apply
    

Pares e certificados de chave TLS de cluster do usuário

Os clusters do Anthos no AWS geram pares de chave TLS e certificados ao criar uma instância. Para alternar esses pares, recrie a instância executando as seguintes etapas para seu plano de controle e pools de nós.

Plano de controle

  1. No diretório anthos-aws, use anthos-gke para alternar o contexto para o serviço de gerenciamento.
    cd anthos-aws
    anthos-gke aws management get-credentials
  2. Use kubectl para receber o grupo de destino AWS EC2 do plano de controle do AWSCluster.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get awscluster cluster-name \
      -o jsonpath='{.status.targetGroupName}{"\n"}'
    

    A saída inclui o nome do grupo de destino EC2 do plano de controle. Por exemplo, gke-123456a7-controlplane.

  3. Abra o Console do AWS EC2. Escolha Grupos de destino no painel esquerdo.

  4. Clique na barra de pesquisa e localize o grupo de segmentação. Clique no nome do seu grupo de destino e, em seguida, clique em Segmentações. A lista de instâncias do plano de controle é exibida.

  5. Para cada instância no grupo de destino, execute as seguintes etapas:

    1. Clique no ID da instância. O console de instâncias do AWS EC2 é exibido.

    2. Clique no ID da instância.

    3. Selecione Ações -> Estado da instância -> Encerrar para encerrar a instância. O EC2 cria automaticamente uma nova instância com o mesmo volume do EBS.

    4. Retorne à página "Grupos de destino".

  6. Depois de encerrar todas as instâncias do grupo, retorne à página "Grupos de destino".

  7. Na seção Destinos registrados da página, localize a coluna Status. Cada uma das instâncias deve ter um Status de Integridade. Se alguma das instâncias estiver íntegra, aguarde alguns minutos e clique no ícone de atualização ().

  8. Depois que todas as instâncias no grupo de destino estiverem íntegras, vá para a próxima etapa.

Pools de nós

Para alternar os certificados TLS do pool de nós:

  1. No diretório anthos-aws, use anthos-gke para alternar o contexto para o serviço de gerenciamento.
    cd anthos-aws
    anthos-gke aws management get-credentials
  2. Use kubectl para receber o grupo de destino AWS EC2 do pool de nós do AWSNodePool.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get awsnodepool -o jsonpath='{.items[*].status.autoScalingGroupName}{"\n"}'
    

    A saída inclui o nome do grupo de destino EC2 do pool de nós. Por exemplo, gke-123456a7-nodepool-abc123.

  3. Abra o Console do AWS EC2. Escolha Grupos de destino no painel esquerdo.

  4. Clique na barra de pesquisa e localize o grupo de segmentação. Clique no nome do seu grupo de destino e, em seguida, clique em Segmentações. A lista de instâncias do plano de controle é exibida.

  5. Para cada instância no grupo de destino, execute as seguintes etapas:

    1. Clique no ID da instância. O console de instâncias do AWS EC2 é exibido.

    2. Clique no ID da instância.

    3. Selecione Ações -> Estado da instância -> Encerrar para encerrar a instância. O EC2 cria automaticamente uma nova instância com o mesmo volume do EBS.

    4. Retorne à página "Grupos de destino".

  6. Depois de encerrar todas as instâncias do grupo, retorne à página "Grupos de destino".

  7. Na seção Destinos registrados da página, localize a coluna Status. Cada uma das instâncias deve ter um Status de Integridade. Se alguma das instâncias estiver íntegra, aguarde alguns minutos e clique no ícone de atualização ().

  8. Depois que todas as instâncias no grupo de destino estiverem íntegras, vá para a próxima etapa.