Erfahren Sie, wie EKS Pod Identity Pods Zugriff auf AWS Dienste gewährt - Amazon EKS

Hilf 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.

Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

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.

Erfahren Sie, wie EKS Pod Identity Pods Zugriff auf AWS Dienste gewährt

Anwendungen in den Containern eines Pods können ein AWS SDK oder die AWS CLI verwenden, um API-Anfragen an AWS Dienste mithilfe von AWS Identity and Access Management (IAM) -Berechtigungen zu stellen. Anwendungen müssen ihre AWS API-Anfragen mit AWS Anmeldeinformationen signieren.

EKS Pod Identities bieten die Möglichkeit, Anmeldeinformationen für Ihre Anwendungen zu verwalten, ähnlich wie EC2 Amazon-Instance-Profile Anmeldeinformationen für EC2 Amazon-Instances bereitstellen. Anstatt Ihre AWS Anmeldeinformationen zu erstellen und an die Container zu verteilen oder die Rolle der EC2 Amazon-Instance zu verwenden, verknüpfen Sie eine IAM-Rolle mit einem Kubernetes-Dienstkonto und konfigurieren Ihre Pods so, dass sie das Dienstkonto verwenden.

Jede EKS-Pod-Identity-Zuordnung ordnet einem Servicekonto in einem Namespace im angegebenen Cluster eine Rolle zu. Wenn Sie dieselbe Anwendung in mehreren Clustern haben, können Sie in jedem Cluster identische Zuordnungen vornehmen, ohne die Vertrauensrichtlinie der Rolle zu ändern.

Wenn ein Pod ein Servicekonto mit einer Zuordnung verwendet, legt Amazon EKS Umgebungsvariablen in den Containern des Pods fest. Die Umgebungsvariablen konfigurieren die AWS SDKs, einschließlich der AWS CLI, für die Verwendung der EKS Pod Identity-Anmeldeinformationen.

Vorteile von EKS-Pod-Identitäten

EKS-Pod-Identitäten bieten die folgenden Vorteile:

  • Geringste Rechte — Sie können IAM-Berechtigungen auf ein Dienstkonto beschränken, und nur Pods, die dieses Dienstkonto verwenden, haben Zugriff auf diese Berechtigungen. Mit diesem Feature entfällt auch die Notwendigkeit von Drittanbieterlösungen wie kiam oder kube2iam.

  • Isolierung von Anmeldeinformationen — Wenn der Zugriff auf den Amazon EC2 Instance Metadata Service (IMDS) eingeschränkt ist, können die Container eines Pods nur Anmeldeinformationen für die IAM-Rolle abrufen, die dem Dienstkonto zugeordnet ist, das der Container verwendet. Ein Container hat niemals Zugriff auf Anmeldeinformationen, die von anderen Containern in anderen Pods verwendet werden. Wenn IMDS nicht eingeschränkt ist, haben die Container des Pods auch Zugriff auf die IAM-Rolle des Amazon EKS-Knotens, und die Container können möglicherweise auf Anmeldeinformationen von IAM-Rollen anderer Pods auf demselben Knoten zugreifen. Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist.

Anmerkung

Pods, hostNetwork: true die mit konfiguriert sind, haben immer IMDS-Zugriff, aber die AWS SDKs AND-CLI verwendet Pod Identity-Anmeldeinformationen, wenn sie aktiviert sind.

  • Überprüfbarkeit — Zugriffs- und Ereignisprotokollierung sind über verfügbar AWS CloudTrail , um nachträgliche Prüfungen zu erleichtern.

Wichtig

Container stellen keine Sicherheitsgrenze dar, und die Verwendung von Pod Identity ändert daran nichts. Pods, die demselben Knoten zugewiesen sind, teilen sich je nach Ihrer Pod-Konfiguration einen Kernel und möglicherweise weitere Ressourcen. Pods, die auf separaten Knoten laufen, werden zwar auf der Rechenebene isoliert, es gibt jedoch Knotenanwendungen, die über zusätzliche Berechtigungen in der Kubernetes-API verfügen, die über den Rahmen einer einzelnen Instanz hinausgehen. Einige Beispiele sind kubelet CSI-Speichertreiber oder Ihre eigenen Kubernetes-Anwendungen. kube-proxy

EKS Pod Identity ist eine einfachere Methode alsIAM-Rollen für Servicekonten, da diese Methode keine IDC-Identitätsanbieter verwendet. EKS Pod Identity bietet die folgenden Verbesserungen:

  • Unabhängiger Betrieb — In vielen Organisationen liegt die Verantwortung für die Erstellung von OIDC-Identitätsanbietern bei anderen Teams als für die Verwaltung der Kubernetes-Cluster. EKS Pod Identity hat eine klare Aufgabentrennung: Die gesamte Konfiguration der EKS-Pod-Identity-Zuordnungen erfolgt in Amazon EKS und die gesamte Konfiguration der IAM-Berechtigungen erfolgt in IAM.

  • Wiederverwendbarkeit – EKS Pod Identity verwendet einen einzigen IAM-Prinzipal anstelle der separaten Prinzipale für jeden Cluster, den IAM-Rollen für Servicekonten verwenden. Ihr IAM-Administrator fügt der Vertrauensrichtlinie jeder Rolle den folgenden Prinzipal hinzu, damit sie von EKS-Pod-Identitäten verwendet werden kann.

    "Principal": { "Service": "pods.eks.amazonaws.com" }
  • Skalierbarkeit — Jeder Satz temporärer Anmeldeinformationen wird vom EKS-Authentifizierungsdienst in EKS Pod Identity übernommen und nicht von jedem AWS SDK, das Sie in jedem Pod ausführen. Anschließend gibt der Amazon EKS Pod Identity Agent, der auf jedem Knoten ausgeführt wird, die Anmeldeinformationen an den aus SDKs. Somit wird die Last für jeden Knoten auf einmal reduziert und nicht in jedem Pod dupliziert. Weitere Details zu diesem Prozess finden Sie unter Verstehen Sie, wie EKS Pod Identity funktioniert.

Weitere Informationen zum Vergleich der beiden Alternativen finden Sie unter Kubernetes-Workloads Zugriff auf die AWS Nutzung von Kubernetes-Dienstkonten gewähren.

Übersicht über die Einrichtung von EKS-Pod-Identitäten

Aktivieren Sie EKS-Pod-Identitäten, indem Sie die folgenden Verfahren ausführen:

  1. Richten Sie den Amazon EKS Pod Identity Agent ein— Sie führen dieses Verfahren nur einmal für jeden Cluster durch. Sie müssen diesen Schritt nicht abschließen, wenn der automatische EKS-Modus auf Ihrem Cluster aktiviert ist.

  2. Weisen Sie einem Kubernetes-Dienstkonto eine IAM-Rolle zu— Führen Sie dieses Verfahren für jeden eindeutigen Satz von Berechtigungen aus, über den eine Anwendung verfügen soll.

  3. Pods für den Zugriff auf AWS Dienste mit Dienstkonten konfigurieren— Führen Sie dieses Verfahren für jeden Pod aus, der Zugriff auf AWS Dienste benötigt.

  4. Pod-Identität mit dem AWS SDK verwenden— Vergewissern Sie sich, dass der Workload ein AWS SDK einer unterstützten Version verwendet und dass der Workload die standardmäßige Anmeldeinformationskette verwendet.

Einschränkungen

  • Bis zu 5.000 EKS Pod Identity-Zuordnungen pro Cluster zur Zuordnung von IAM-Rollen zu Kubernetes-Dienstkonten werden unterstützt.

Überlegungen

  • IAM-Rollenzuordnung: Jedes Kubernetes-Dienstkonto in einem Cluster kann mit einer IAM-Rolle aus demselben Konto wie der Cluster verknüpft werden. AWS Um die Rolle zu ändern, bearbeiten Sie die EKS Pod Identity-Zuordnung. Delegieren Sie für den kontoübergreifenden Zugriff den Zugriff auf die Rolle mithilfe von IAM-Rollen. Weitere Informationen finden Sie unter AWS Kontenübergreifendes Delegieren des Zugriffs mithilfe von IAM-Rollen im IAM-Benutzerhandbuch.

  • EKS Pod Identity Agent: Für die Verwendung von EKS Pod Identity ist der Pod Identity Agent erforderlich. Der Agent wird als Kubernetes DaemonSet auf Clusterknoten ausgeführt und stellt Anmeldeinformationen nur für Pods auf demselben Knoten bereit. Er verwendet die Adresse des KnotenshostNetwork, belegt den Port 80 und 2703 die Link-Local-Adresse (169.254.170.23für, für). IPv4 [fd00:ec2::23] IPv6 Wenn IPv6 es in Ihrem Cluster deaktiviert ist, deaktivieren Sie es IPv6 für den Pod Identity Agent. Weitere Informationen finden Sie unter Deaktivieren IPv6 im EKS Pod Identity Agent.

  • Eventuelle Konsistenz: Die EKS Pod Identity-Verknüpfungen sind letztendlich konsistent, was zu Verzögerungen von mehreren Sekunden nach API-Aufrufen führen kann. Vermeiden Sie es, Verknüpfungen in kritischen Codepfaden mit hoher Verfügbarkeit zu erstellen oder zu aktualisieren. Führen Sie diese Aktionen stattdessen in separaten, weniger häufigen Initialisierungs- oder Einrichtungsroutinen durch. Weitere Informationen finden Sie unter Sicherheitsgruppen pro Pod im EKS Best Practices Guide.

  • Überlegungen zu Proxys und Sicherheitsgruppen: Fügen Sie bei Pods, die einen Proxy verwenden, den no_proxy/NO_PROXY Umgebungsvariablen 169.254.170.23 [fd00:ec2::23] (IPv4IPv6) und () hinzu, um fehlgeschlagene Anfragen an den EKS Pod Identity Agent zu verhindern. Wenn Sie Sicherheitsgruppen für Pods mit dem AWS VPC-CNI verwenden, setzen Sie das ENABLE_POD_ENI Flag auf „true“ und das POD_SECURITY_GROUP_ENFORCING_MODE Flag auf „standard“. Weitere Informationen finden Sie unter Zuweisen von Sicherheitsgruppen zu einzelnen Pods.

Cluster-Versionen von EKS Pod Identity

Um EKS Pod Identity verwenden zu können, muss der Cluster über eine Plattformversion verfügen, die mit der in der folgenden Tabelle aufgeführten Version identisch oder höher ist, oder über eine Kubernetes-Version, die höher als die in der Tabelle aufgeführten Versionen ist. Die vorgeschlagene Version des Amazon EKS Pod Identity Agent für eine Kubernetes-Version finden Sie unter. Überprüfen Sie die Kompatibilität der Amazon EKS-Add-On-Version mit einem Cluster

Kubernetes-Version Plattformversion

Kubernetes-Versionen sind nicht aufgeführt

Alle Plattformversionen unterstützen

1.28

eks.4

1.27

eks.8

1.26

eks.9

Einschränkungen von EKS Pod Identity

EKS-Pod-Identitäten sind auf folgenden Plattformen verfügbar:

  • Amazon-EKS-Cluster-Versionen, die im vorherigen Thema (Cluster-Versionen von EKS Pod Identity) aufgeführt wurden.

  • Worker-Knoten im Cluster, bei denen es sich um EC2 Linux-Amazon-Instances handelt.

EKS-Pod-Identitäten sind in folgenden Fällen nicht verfügbar:

  • AWS Outposts.

  • Amazon EKS Anywhere.

  • Kubernetes-Cluster, die Sie auf Amazon erstellen und ausführen. EC2 Die EKS-Pod-Identity-Komponenten sind nur in Amazon EKS verfügbar.

Sie können EKS Pod Identities nicht verwenden mit:

  • Pods, die überall außer EC2 Linux-Amazon-Instances laufen. Linux- und Windows-Pods, die auf AWS Fargate (Fargate) laufen, werden nicht unterstützt. Pods, die auf Windows EC2 Amazon-Instances ausgeführt werden, werden nicht unterstützt.