Erfahre wie EKS Pod Identity gewährt Pods Zugriff auf AWS Dienste - 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? Wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet. Ihre Beiträge werden dazu beitragen, dass unser Benutzerhandbuch für alle besser wird.

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.

Erfahre wie EKS Pod Identity gewährt Pods Zugriff auf AWS Dienste

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 Kubernetes Servicekonto und konfigurieren Sie Ihr Pods um das Dienstkonto zu 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 zwar nur Pods Personen, 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 — A Pod’s Container können nur Anmeldeinformationen für die IAM-Rolle abrufen, die dem vom Container verwendeten Dienstkonto zugeordnet ist. Ein Container hat niemals Zugriff auf Anmeldeinformationen, die von anderen Containern in anderen Containern verwendet werden Pods. Bei der Verwendung von Pod Identities Pod’s Containern sind auch die Berechtigungen zugewiesenAmazon-EKS-Knoten-IAM-Rolle, sofern Sie sie nicht blockieren Pod Zugriff auf den Amazon EC2 Instance Metadata Service (IMDS). Weitere Informationen finden Sie unter Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist.

  • Überprüfbarkeit — Der Zugriff und die Protokollierung von Ereignissen sind über verfügbar AWS CloudTrail , um nachträgliche Prüfungen zu erleichtern.

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

  • Unabhängiger Betrieb — In vielen Organisationen OIDC Identitätsanbieter fallen in den Zuständigkeitsbereich anderer Teams als die Verwaltung von Kubernetes Cluster erwägen. 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 von der EKS Auth Dienst in EKS Pod Identity statt in 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 Verstehe wie EKS Pod Identity funktioniert.

Weitere Informationen zum Vergleich der beiden Alternativen finden Sie unter Gewähren Sie Kubernetes-Workloads Zugriff auf die Verwendung von AWSKubernetes Dienstkonten.

Ü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 eine zu IAM Rolle einem Kubernetes Dienstkonto— Führen Sie dieses Verfahren für jeden eindeutigen Satz von Berechtigungen aus, über den eine Anwendung verfügen soll.

  3. Konfiguration pods um mit AWS Dienstkonten auf Dienste zuzugreifen— Führen Sie dieses Verfahren für jedes einzelne aus Pod das benötigt Zugang zu AWS Diensten.

  4. Verwenden Sie Pod Identity mit dem AWS SDK— Stellen Sie sicher, dass der Workload ein AWS SDK einer unterstützten Version verwendet und dass der Workload die standardmäßige Anmeldeinformationskette verwendet.

Überlegungen zu EKS Pod Identity

  • Sie können jeder Rolle eine IAM-Rolle zuordnen Kubernetes Dienstkonto in jedem Cluster. Sie können ändern, welche Rolle dem Servicekonto zugeordnet ist, indem Sie die EKS-Pod-Identity-Zuordnung bearbeiten.

  • Sie können nur Rollen zuordnen, die sich in demselben AWS Konto wie der Cluster befinden. Sie können den Zugriff von einem anderen Konto auf die Rolle in diesem Konto delegieren, die Sie für die Verwendung durch EKS-Pod-Identitäten konfigurieren. Ein Tutorial zum Delegieren von Zugriff und AssumeRole finden Sie unter AWS Kontenübergreifendes Delegieren des Zugriffs mithilfe von IAM-Rollen im IAM-Benutzerhandbuch.

  • Der EKS Pod Identity Agent ist erforderlich. Es läuft als Kubernetes DaemonSetauf Ihren Knoten und stellt nur Anmeldeinformationen für Pods auf dem Knoten bereit, auf dem es ausgeführt wird. Weitere Informationen zur Kompatibilität des EKS Pod Identity Agent finden Sie im folgenden Abschnitt (Einschränkungen von EKS Pod Identity).

  • Wenn Sie Security Group for Pods zusammen mit Pod Identity Agent verwenden, müssen Sie möglicherweise das POD_SECURITY_GROUP_ENFORCING_MODE Flag für das AWS VPC-CNI setzen. Weitere Informationen zu Überlegungen zur Sicherheitsgruppe für Pods finden Sie unter. Sicherheitsgruppen einzelnen Personen zuweisen Pods

  • Der EKS Pod Identity Agent verwendet das hostNetwork des Knotens sowie Port 80 und Port 2703 in einer lokalen Adresse im Knoten. Diese Adresse ist 169.254.170.23 für IPv4 und [fd00:ec2::23] für IPv6 Cluster erwägen.

    Wenn Sie IPv6 Adressen deaktivieren oder auf andere Weise IPv6 Localhost-IP-Adressen verhindern, kann der Agent nicht gestartet werden. Um den Agenten auf Knoten zu starten, die nicht verwendet werden könnenIPv6, folgen Sie den Schritten unter IPv6Im EKS Pod Identity Agent deaktivieren So deaktivieren Sie die IPv6 Konfiguration.

Cluster-Versionen von EKS Pod Identity

Um EKS Pod Identities 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 eine Kubernetes Version, die später ist als die in der Tabelle aufgeführten Versionen.

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

1.25

eks.10

1.24

eks.13

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 ausgeführt werden. Linux- und Windows-Pods, die auf AWS Fargate (Fargate) laufen, werden nicht unterstützt. Pods, die auf EC2 Windows-Amazon-Instances ausgeführt werden, werden nicht unterstützt.