AWS IAM-Instanzprofil aktualisieren

Auf dieser Seite wird erläutert, was ein AWS IAM-Instanzprofil ist, warum es im Zusammenhang mit GKE on AWS wichtig ist und wie es aktualisiert wird.

Was ist ein AWS IAM-Instanzprofil?

Ein Instanzprofil ist ein AWS-spezifisches Konzept. Es besteht aus einer Reihe von Anmeldedaten, mit denen eine Amazon EC2-Instanz auf verschiedene AWS-Ressourcen zugreift. Ein Instanzprofil ist eine Art Container für eine IAM-Rolle, die einer EC2-Instanz zugewiesen werden kann. Ein Instanzprofil verleiht der EC2-Instanz Berechtigungen, sodass sie gemäß den definierten Berechtigungen mit verschiedenen AWS-Diensten interagieren kann. Weitere Informationen finden Sie unter Instanzprofile verwenden.

Wie werden Instanzprofile in GKE on AWS verwendet?

Jede Steuerungsebene und jeder Knotenpool in einem GKE on AWS-Cluster ist einem eindeutigen AWS-Instanzprofil zugeordnet. Instanzprofile in GKE on AWS dienen zwei Zwecken:

  1. Ein Instanzprofil gewährt GKE on AWS die Berechtigungen, die zum Verwalten von AWS-Ressourcen erforderlich sind. So erhalten Sie beispielsweise die erforderlichen Berechtigungen für den Cluster-Autoscaler, um den Cluster zu skalieren, indem Sie EC2-Instanzen basierend auf den Anforderungen der Arbeitslast hinzufügen oder entfernen.
  2. Ein Instanzprofil gewährt EC2-Instanzen Zugriff auf Google Cloud Dienste. Beispielsweise benötigt der kubelet, der auf einem AWS-Rechner ausgeführt wird, bestimmte Berechtigungen, um Anmeldedaten für das Abrufen von Images an containerd weiterzugeben. Diese Anmeldedaten sind erforderlich, um auf die private Artifact Registry oder die Container Registry von Google zuzugreifen und Images daraus abzurufen. Im Zusammenhang mit GKE on AWS ist das mit dem Cluster verknüpfte EC2-Instanzprofil so konfiguriert, dass es sich als Machine Service Agent von Google ausgibt, z. B. als Node Pool Machine Service Agent oder als Control Plane Machine Service Agent. Durch diese Identitätsdiebstahl-Methode können sich die EC2-Instanzen des Clusters automatisch bei der Artifact Registry oder Container Registry von Google authentifizieren.

Instanzprofil aktualisieren

Zum Aktualisieren des Instanzprofils müssen Sie ein neues Instanzprofil mit bestimmten Berechtigungen in AWS erstellen und dann mit Ihrem GKE on AWS-Cluster oder Knotenpool verknüpfen.

So aktualisieren Sie das Instanzprofil für Ihren Cluster oder Knotenpool richtig:

  1. Erstellen Sie ein IAM-Instanzprofil für Ihre Amazon EC2-Instanzen und fügen Sie dem Instanzprofil die erforderliche IAM-Rolle hinzu. Weitere Informationen finden Sie unter Instanzprofile verwenden.
  2. Verknüpfen Sie das neue Instanzprofil mit Ihrem GKE on AWS-Cluster oder ‑Knotenpool, indem Sie in der Google Cloud CLI den folgenden Befehl ausführen:

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

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: der Name Ihres Clusters
    • NEW_INSTANCE_PROFILE_NAME: der Name des neuen AWS-Instanzprofils, das Sie erstellt haben
    gcloud container aws node-pools update NODE_POOL_NAME \
      --update-instance-profile \
      --instance-profile-name NEW_INSTANCE_PROFILE_NAME \
      ...
    

    Ersetzen Sie Folgendes:

    • NODE_POOL_NAME: der Name des Knotenpools.
    • NEW_INSTANCE_PROFILE_NAME: der Name des neuen AWS-Instanzprofils, das Sie erstellt haben

    Diese Befehle enthalten nur die relevanten Flags zum Aktualisieren des Instanzprofils. Sie müssen jedoch zusätzliche Flags angeben, um den Befehl update ausführen zu können. Weitere Informationen finden Sie unter AWS-Clusterparameter aktualisieren oder Knotenpool aktualisieren.

Die falsche Aktualisierungsmethode

Es ist wichtig, zu wissen, wie ein Instanzprofil nicht aktualisiert werden sollte, da ein einfacher Fehler zu Clusterausfällen führen kann.

Es ist nicht empfehlenswert, ein vorhandenes Instanzprofil direkt über die AWS-Verwaltungskonsole oder die AWS CLI zu ändern. Solche Änderungen können die Interaktion von GKE on AWS mit AWS-Ressourcen beeinträchtigen. In GKE on AWS müssen Instanzprofile so bleiben, wie sie waren, als sie zum ersten Mal mit dem Cluster oder Knotenpool verknüpft wurden. Wenn Sie sie außerhalb der Verwaltungstools von GKE on AWS ändern, kann es zu einer Abweichung von der ID der IAM-Rolle im Instanzprofil kommen. Diese Abweichung kann zu einem Clusterfehler führen.

Mit dem im vorherigen Abschnitt beschriebenen Ansatz werden Updates durchgeführt, ohne dass die Integration von GKE on AWS mit AWS unterbrochen wird.