Unterstützung für die Verbesserung dieser Seite beitragen
Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.
Amazon-EKS-Knoten-IAM-Rolle
Der Amazon EKS-Knoten-kubelet-Daemon ruft AWS-APIs in Ihrem Namen auf. Knoten erhalten über ein IAM-Instance-Profil und zugehörige Richtlinien Berechtigungen für diese API-Aufrufe. Bevor Sie Knoten starten und in einem Cluster registrieren können, müssen Sie eine IAM-Rolle erstellen, die diese Knoten beim Start verwenden können. Diese Anforderung gilt für Knoten, die mit dem für Amazon EKS optimierten AMI von Amazon oder mit anderen Knoten-AMIs gestartet werden, die Sie verwenden möchten. Darüber hinaus gilt diese Anforderung sowohl für verwaltete Knotengruppen als auch für selbstverwaltete Knoten.
Anmerkung
Sie können nicht dieselbe Rolle verwenden, die zum Erstellen von Clustern verwendet wurde.
Bevor Sie Knoten erstellen, müssen Sie eine IAM-Rolle mit folgenden Berechtigungen erstellen:
-
Berechtigungen für das
kubeletzum Beschreiben von Amazon-EC2-Ressourcen in der VPC, wie etwa durch die Richtlinie AmazonEKSWorkerNodePolicy bereitgestellt. Diese Richtlinie stellt auch die Berechtigungen für den Amazon EKS Pod Identity Agent bereit. -
Berechtigungen für
kubeletzur Verwendung von Container-Images aus Amazon Elastic Container Registry (Amazon ECR), wie in der Richtlinie AmazonEC2ContainerRegistryPullOnly bereitgestellt. Die Berechtigungen zur Verwendung von Container-Images aus Amazon Elastic Container Registry (Amazon ECR) sind erforderlich, da die integrierten Add-Ons für Netzwerke Pods ausführen, die Container-Images von Amazon ECR verwenden. -
(Optional) Berechtigungen für den Amazon EKS Pod Identity Agent zum Verwenden der Aktion
eks-auth:AssumeRoleForPodIdentity, um Anmeldeinformationen für Pods abzurufen. Wenn Sie AmazonEKSWorkerNodePolicy nicht verwenden, müssen Sie diese Berechtigung zusätzlich zu den EC2-Berechtigungen für die Verwendung von EKS Pod Identity bereitstellen. -
(Optional) Wenn Sie IRSA oder EKS Pod Identity nicht verwenden, um Berechtigungen für die VPC-CNI-Pods zu gewähren, müssen Sie Berechtigungen für das VPC-CNI in der Instance-Rolle bereitstellen. Sie können entweder die von
AmazonEKS_CNI_Policyverwaltete Richtlinie verwenden (wenn Sie Ihren Cluster mit derIPv4-Produktfamilie erstellt haben) oder aber eine von Ihnen erstellte IPv6-Richtlinie (wenn Sie Ihren Cluster mit derIPv6-Produktfamilie erstellt haben). Anstatt die Richtlinie jedoch an diese Rolle anzuhängen, empfehlen wir Ihnen, die Richtlinie an eine separate Rolle anzuhängen, die speziell für das Amazon VPC CNI-Add-on verwendet wird. Weitere Informationen zum Erstellen einer separaten Rolle für das Amazon VPC CNI-Add-on finden Sie unter Konfiguration des Amazon-VPC-CNI-Plugins für die Verwendung von IRSA.
Anmerkung
Die Amazon-EC2-Knotengruppen müssen eine andere IAM-Rolle haben als das Fargate-Profil. Weitere Informationen finden Sie unter IAM-Rolle für die Ausführung von Amazon-EKS-Pods.
Nach einer vorhandenen Knotenrolle suchen
Mit dem folgenden Verfahren können Sie feststellen, ob Ihr Konto bereits über die Amazon-EKS-Knotenrolle verfügt.
-
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im linken Navigationsbereich Roles aus.
-
Suchen Sie in der Liste der Rollen nach
eksNodeRole,AmazonEKSNodeRoleoderNodeInstanceRole. Wenn eine Rolle mit einem dieser Namen nicht existiert, erfahren Sie unter Erstellen der Amazon-EKS-Knoten-IAM-Rolle, wie Sie die Rolle erstellen. Wenn eine Rolle miteksNodeRole,AmazonEKSNodeRoleoderNodeInstanceRolevorhanden ist, wählen Sie die Rolle aus, um die angehängten Richtlinien anzuzeigen. -
Wählen Sie Permissions (Berechtigungen).
-
Stellen Sie sicher, dass die verwalteten Richtlinien AmazonEKSWorkerNodePolicy und AmazonEC2ContainerRegistryPullOnly der Rolle zugeordnet sind oder eine benutzerdefinierte Richtlinie mit den minimalen Berechtigungen zugeordnet ist.
Anmerkung
Wenn die AmazonEKS_CNI_Policy-Richtlinie an die Rolle angehängt ist, empfehlen wir, sie zu entfernen und einer IAM-Rolle anzuhängen, die stattdessen dem
aws-node-Kubernetes-Servicekonto zugeordnet ist. Weitere Informationen finden Sie unter Konfiguration des Amazon-VPC-CNI-Plugins für die Verwendung von IRSA. -
Wählen Sie Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.
-
Überprüfen Sie, dass die Vertrauensstellung die folgende Richtlinie enthält. Wenn die Vertrauensstellung mit der folgenden Richtlinie übereinstimmt, wählen Sie Cancel (Abbrechen) aus. Andernfalls kopieren Sie die Richtlinie in das Fenster Vertrauensrichtlinie bearbeiten und wählen Sie Richtlinie aktualisieren aus.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] }
Erstellen der Amazon-EKS-Knoten-IAM-Rolle
Sie können die Knoten-IAM-Rolle mit der AWS-Managementkonsole oder der AWS-CLI erstellen.
- AWS-Managementkonsole
-
-
Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/
. -
Wählen Sie im linken Navigationsbereich Roles aus.
-
Klicken Sie auf der Seite Roles (Rollen) auf Create role (Rolle erstellen).
-
Gehen Sie auf der Seite Select trusted entity (Vertrauenswürdige Entität auswählen) wie folgt vor:
-
Wählen Sie im Abschnitt Typ der vertrauenswürdigen Entität die Option AWS-Service aus.
-
Wählen Sie unter Use case (Anwendungsfall) die Option EC2 aus.
-
Wählen Sie Weiter aus.
-
-
Führen Sie auf der Seite Add permissions (Berechtigungen hinzufügen) die folgenden Schritte aus:
-
Geben Sie im Feld Filter policies (Filterrichtlinien)
AmazonEKSWorkerNodePolicyein. -
Aktivieren Sie das Kontrollkästchen links neben AmazonEKSWorkerNodePolicy in den Suchergebnissen.
-
Wählen Sie Clear filters (Filter löschen) aus.
-
Geben Sie im Feld Filter policies (Filterrichtlinien)
AmazonEC2ContainerRegistryPullOnlyein. -
Aktivieren Sie das Kontrollkästchen links neben AmazonEC2ContainerRegistryPullOnly in den Suchergebnissen.
Die verwaltete Richtlinie AmazonEKS_CNI_Policy oder eine selbst erstellte IPv6-Richtlinie muss ebenfalls an diese Rolle oder an eine andere Rolle angefügt werden, die dem Kubernetes-Servicekonto von
aws-nodezugeordnet ist. Wir empfehlen, die Richtlinie der Rolle zuzuweisen, die dem Kubernetes-Dienstkonto zugeordnet ist, anstatt sie dieser Rolle zuzuweisen. Weitere Informationen finden Sie unter Konfiguration des Amazon-VPC-CNI-Plugins für die Verwendung von IRSA. -
Wählen Sie Weiter aus.
-
-
Gehen Sie auf der Seite Name, review, and create (Benennen, überprüfen und erstellen) wie folgt vor:
-
Geben Sie unter Role name (Rollenname) einen eindeutigen Namen für die Rolle ein, z. B.
AmazonEKSNodeRole. -
Ersetzen Sie unter Description (Beschreibung) den aktuellen Text durch beschreibenden Text wie beispielsweise
Amazon EKS - Node role. -
Fügen Sie der Rolle unter Tags hinzufügen (optional) Metadaten hinzu, indem Sie Tags als Schlüssel-Wert-Paare anfügen. Weitere Informationen zur Verwendung von Tags in IAM finden Sie unter Markieren von IAM-Ressourcen im IAM-Benutzerhandbuch.
-
Wählen Sie Rolle erstellen aus.
-
-
- AWS-CLI
-
-
Führen Sie den folgenden Befehl aus, um die Datei
node-role-trust-relationship.jsonzu erstellen.cat >node-role-trust-relationship.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Principal": { "Service": [ "ec2.amazonaws.com" ] } } ] } EOF -
Erstellen Sie die IAM-Rolle.
aws iam create-role \ --role-name AmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-relationship.json" -
Hängen Sie die beiden erforderlichen verwalteten IAM-Richtlinien an die IAM-Rolle an.
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name AmazonEKSNodeRole aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly \ --role-name AmazonEKSNodeRole -
Hängen Sie eine der folgenden IAM-Richtlinien an die IAM-Rolle an, je nachdem, mit welcher IP-Familie Sie Ihren Cluster erstellt haben. Die Richtlinie muss an diese Rolle oder an eine Rolle angefügt werden, die dem Kubernetes
aws-node-Servicekonto zugeordnet ist, das für das Amazon-VPC-CNI-Plugin verwendet wird. Wir empfehlen, die Richtlinie der Rolle zuzuweisen, die dem Kubernetes-Servicekonto zugeordnet ist. Um die Richtlinie der Rolle zuzuweisen, die dem Kubernetes-Servicekonto zugeordnet ist, siehe Konfiguration des Amazon-VPC-CNI-Plugins für die Verwendung von IRSA.-
IPv4
aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSNodeRole -
IPv6
-
Kopieren Sie den folgenden Text und speichern Sie ihn in einer Datei mit dem Namen
vpc-cni-ipv6-policy.json.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ] } ] } -
Erstellen Sie die IAM-Richtlinie.
aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json -
Fügen Sie die IAM-Richtlinie an die IAM-Rolle an. Ersetzen Sie
111122223333durch Ihre Konto-ID.aws iam attach-role-policy \ --policy-arn arn:aws:iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSNodeRole
-
-
-