Atualizar o perfil da instância do IAM da AWS

Nesta página, explicamos o que é um perfil de instância do IAM da AWS, por que ele é importante no contexto do GKE na AWS e como atualizá-lo.

O que é um perfil de instância do IAM da AWS?

Um perfil de instância é um conceito específico da AWS. Ele consiste em um conjunto de credenciais que uma instância do Amazon EC2 usa para acessar vários recursos da AWS. Mais especificamente, um perfil de instância é um tipo de contêiner para um papel do IAM que pode ser anexado a uma instância do EC2. Um perfil de instância concede permissões à instância do EC2, permitindo que ela interaja com vários serviços da AWS com as permissões definidas. Para mais informações, consulte Como usar perfis de instância.

Como os perfis de instância são usados no GKE na AWS?

Cada plano de controle e cada pool de nós em um cluster do GKE na AWS estão associados a um perfil exclusivo de instância da AWS. Os perfis de instância no GKE na AWS têm dupla finalidade:

  1. Um perfil de instância concede ao GKE na AWS as permissões necessárias para gerenciar os recursos da AWS. Por exemplo, eles dão ao escalonador automático de cluster as permissões necessárias para escalonar o cluster adicionando ou removendo instâncias do EC2 com base nas demandas da carga de trabalho.
  2. Um perfil de instância concede às instâncias do EC2 acesso aos serviços do Google Cloud. Por exemplo, o kubelet, em execução em uma máquina da AWS, requer permissões específicas para fornecer credenciais de extração de imagem para containerd. Essas credenciais são necessárias para acessar e extrair imagens do Artifact Registry particular do Google ou do Container Registry. No contexto do GKE na AWS, o perfil da instância do EC2 associado ao cluster é configurado para representar os agentes de serviço de máquina do Google, como o agente de serviço de máquinas do pool de nós ou o agente de serviço de máquinas do plano de controle. Essa representação permite que as instâncias do EC2 do cluster sejam autenticadas automaticamente no Artifact Registry ou no Container Registry do Google.

Atualizar o perfil da instância

A atualização do perfil da instância envolve a criação de um novo perfil de instância na AWS com permissões específicas e, em seguida, a associação dele ao cluster ou pool de nós do GKE na AWS.

Para atualizar corretamente o perfil da instância do cluster ou pool de nós, siga estas etapas:

  1. Crie um perfil de instância do IAM para as instâncias do Amazon EC2 e adicione o papel do IAM necessário a ele. Para mais detalhes, consulte Como usar perfis de instância.
  2. Vincule o novo perfil de instância ao cluster ou pool de nós do GKE na AWS executando o seguinte comando na CLI do Google Cloud:

    gcloud container aws clusters update CLUSTER_NAME \
      --update-instance-profile \
      --instance-profile-name NEW_INSTANCE_PROFILE_NAME \
      ...
    

    Substitua:

    • CLUSTER_NAME: o nome do cluster
    • NEW_INSTANCE_PROFILE_NAME: o nome do novo perfil de instância da AWS que você criou.
    gcloud container aws node-pools update NODE_POOL_NAME \
      --update-instance-profile \
      --instance-profile-name NEW_INSTANCE_PROFILE_NAME \
      ...
    

    Substitua:

    • NODE_POOL_NAME: o nome do pool de nós
    • NEW_INSTANCE_PROFILE_NAME: o nome do novo perfil de instância da AWS que você criou.

    Esses comandos mostram apenas as flags relevantes para atualizar o perfil da instância, mas são necessárias outras flags para executar o comando update. Saiba mais em Atualizar os parâmetros do cluster da AWS ou Atualizar um pool de nós.

Método de atualização incorreto

Entender a maneira errada de atualizar um perfil de instância é importante, porque é um erro fácil de cometer e que pode causar falhas de cluster.

A maneira errada de atualizar um perfil de instância é modificar diretamente um perfil de instância atual usando o console de gerenciamento da AWS ou a CLI da AWS. Essas alterações podem interromper a interação do GKE na AWS com os recursos da AWS. O GKE na AWS espera que os perfis de instância permaneçam como estavam quando foram vinculados ao cluster ou pool de nós pela primeira vez. Alterá-los fora do GKE nas ferramentas de gerenciamento da AWS pode criar uma incompatibilidade com o ID do papel do IAM que está no perfil da instância. Essa incompatibilidade pode criar uma falha no cluster.

A abordagem descrita na seção anterior garante que as atualizações sejam feitas sem interromper a integração do GKE na AWS com a AWS.