Den AWS Security Token Service-Endpunkt für ein Dienstkonto konfigurieren - Amazon EKS

Helfen Sie mit, diese Seite zu verbessern

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Möchten Sie zu diesem Benutzerhandbuch beitragen? Scrollen Sie zum Ende dieser Seite und wählen Sie Diese Seite bearbeiten am aus GitHub. Ihre Beiträge werden dazu beitragen, unser Benutzerhandbuch für alle zu verbessern.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Den AWS Security Token Service-Endpunkt für ein Dienstkonto konfigurieren

Wenn Sie eine verwenden Kubernetes Dienstkonto mit IAM-Rollen für Servicekonten IAM Rollen für Dienstkonten, dann können Sie den Typ des AWS Security Token Service-Endpunkts konfigurieren, der vom Dienstkonto verwendet wird, wenn Ihr Cluster und Ihre Plattformversion mit den in der folgenden Tabelle aufgeführten Versionen identisch oder höher sind. Wenn Ihre Kubernetes oder die Plattformversion ist älter als die in der Tabelle aufgeführten, dann können Ihre Dienstkonten nur den globalen Endpunkt verwenden.

Kubernetes-Version Plattformversion Standardtyp für Endpunkt

1.31

eks.4

Regional

1.30

eks.2

Regional

1.29

eks.1

Regional

1.28

eks.1

Regional

1.27

eks.1

Regional

1.26

eks.1

Regional

1.25

eks.1

Regional

1.24

eks.2

Regional

1.23

eks.1

Regional

AWS empfiehlt die Verwendung der regionalen AWS STS Endpunkte anstelle des globalen Endpunkts. Dies reduziert die Latenz, bietet integrierte Redundanz und erhöht die Gültigkeit der Sitzungstoken. Der AWS Security Token Service muss in der AWS Region aktiv sein, in der Pod läuft. Darüber hinaus muss Ihre Anwendung über eine integrierte Redundanz für eine andere AWS Region verfügen, falls der Dienst in der AWS Region ausfällt. Weitere Informationen finden Sie AWS STSim IAM Benutzerhandbuch unter Verwaltung in einer AWS Region.

Die folgenden Beispiele verwenden alle den aws-Node Kubernetes Dienstkonto, das vom Konfigurieren Sie VPC CNI das zu verwendende Amazon-Plugin IRSA VPC CNI Amazon-Plugin verwendet wird. Sie können das ersetzen example values mit Ihren eigenen Dienstkonten, Pods, Namespaces und andere Ressourcen.

  1. Wählen Sie eine Pod das ein Dienstkonto verwendet, für das Sie den Endpunkt ändern möchten. Ermitteln Sie, AWS in welcher Region Pod läuft in. Ersetzen aws-node-6mfgv mit deinem Pod Name und kube-system mit deinem Pod’s Namespace.

    kubectl describe pod aws-node-6mfgv -n kube-system |grep Node:

    Eine Beispielausgabe sieht wie folgt aus.

    ip-192-168-79-166.us-west-2/192.168.79.166

    In der vorherigen Ausgabe Pod läuft auf einem Knoten in der Region US-West-2 AWS .

  2. Ermitteln Sie den Endpunkttyp, den Pod’s Das Dienstkonto verwendet.

    kubectl describe pod aws-node-6mfgv -n kube-system |grep AWS_STS_REGIONAL_ENDPOINTS

    Eine Beispielausgabe sieht wie folgt aus.

    AWS_STS_REGIONAL_ENDPOINTS: regional

    Wenn der aktuelle Endpunkt global ist, dann wird global in der Ausgabe zurückgegeben. Wenn keine Ausgabe zurückgegeben wird, wird der Standard-Endpunkttyp verwendet und wurde nicht überschrieben.

  3. Wenn Ihre Cluster- oder Plattformversion dieselbe oder höher ist als die in der Tabelle aufgeführten, können Sie den von Ihrem Servicekonto verwendeten Endpunkttyp mit einem der folgenden Befehle vom Standardtyp in einen anderen Typ ändern. Ersetzen aws-node mit dem Namen Ihres Dienstkontos und kube-system mit dem Namespace für Ihr Dienstkonto.

    • Wenn Ihr Standard- oder aktueller Endpunkttyp global ist und Sie ihn in regional ändern möchten:

      kubectl annotate serviceaccount -n kube-system aws-node eks.amazonaws.com/sts-regional-endpoints=true

      Wenn Sie IAM-Rollen für Servicekonten IAM Rollen für Dienstkonten verwenden, um vorsigniertes S3 URLs in Ihrer Anwendung zu generieren, die in den Containern von Pods ausgeführt wird, ähnelt das Format der URL vier regionalen Endpunkte dem folgenden Beispiel:

      https://bucket.s3.us-west-2.amazonaws.com/path?...&X-Amz-Credential=your-access-key-id/date/us-west-2/s3/aws4_request&...
    • Wenn Ihr Standard- oder aktueller Endpunkttyp regional ist und Sie ihn in global ändern möchten:

      kubectl annotate serviceaccount -n kube-system aws-node eks.amazonaws.com/sts-regional-endpoints=false

      Wenn Ihre Anwendung explizit Anfragen an AWS STS globale Endpunkte sendet und Sie das Standardverhalten der Verwendung regionaler Endpunkte in EKS Amazon-Clustern nicht außer Kraft setzen, schlagen Anfragen mit einem Fehler fehl. Weitere Informationen finden Sie unter Pod-Container erhalten folgenden Fehler: An error occurred (SignatureDoesNotMatch) when calling the GetCallerIdentity operation: Credential should be scoped to a valid region.

      Wenn Sie IAM-Rollen für Servicekonten IAM Rollen für Dienstkonten verwenden, um vorsigniertes S3 URLs in Ihrer Anwendung zu generieren, die in den Containern von Pods ausgeführt wird, ähnelt das Format URL für globale Endpunkte dem folgenden Beispiel:

      https://bucket.s3.amazonaws.com/path?...&X-Amz-Credential=your-access-key-id/date/us-west-2/s3/aws4_request&...

    Wenn Sie über eine Automatisierung verfügen, die vorsignierte Daten URL in einem bestimmten Format erwartet, oder wenn Ihre Anwendung oder Downstream-Abhängigkeiten, die vorsignierte Dateien verwenden, Erwartungen an die AWS Zielregion URLs haben, nehmen Sie die erforderlichen Änderungen vor, um den entsprechenden Endpunkt zu verwenden. AWS STS

  4. Löschen Sie alle vorhandenen Dateien und erstellen Sie sie neu Pods die dem Dienstkonto zugeordnet sind, um die Umgebungsvariablen für die Anmeldeinformationen anzuwenden. Der mutierende Webhook wendet sie nicht an Pods die schon laufen. Sie können ersetzen Pods, kube-system, und -l k8s-app=aws-node mit den Informationen für Pods für die Sie Ihre Anmerkung festgelegt haben.

    kubectl delete Pods -n kube-system -l k8s-app=aws-node
  5. Bestätigen Sie, dass das alles Pods neu gestartet.

    kubectl get Pods -n kube-system -l k8s-app=aws-node
  6. Sehen Sie sich die Umgebungsvariablen für eine der folgenden an Pods. Stellen Sie sicher, dass der AWS_STS_REGIONAL_ENDPOINTS Wert dem entspricht, auf den Sie ihn in einem vorherigen Schritt festgelegt haben.

    kubectl describe pod aws-node-kzbtr -n kube-system |grep AWS_STS_REGIONAL_ENDPOINTS

    Eine Beispielausgabe sieht wie folgt aus.

    AWS_STS_REGIONAL_ENDPOINTS=regional