Amazon-EKS-Knoten-IAM-Rolle - Amazon EKS

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. Bevor Sie Knoten erstellen, müssen Sie eine IAM-Rolle mit den folgenden IAM-Richtlinien erstellen:

Anmerkung

Die Amazon-EC2-Knotengruppen müssen eine andere IAM-Rolle haben als das Fargate-Profil. Weitere Informationen finden Sie unter IAM-Rolle zur Ausführung von Amazon-EKS-pod.

Nach einer vorhandenen Knotenrolle suchen

Mit dem folgenden Verfahren können Sie feststellen, ob Ihr Konto bereits über die Amazon-EKS-Knotenrolle verfügt.

So prüfen Sie eksNodeRole in der IAM-Konsole

  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Roles aus.

  3. Suchen Sie in der Liste der Rollen nach eksNodeRole, AmazonEKSNodeRole oder NodeInstanceRole. 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 mit eksNodeRole, AmazonEKSNodeRole oder NodeInstanceRole vorhanden ist, wählen Sie die Rolle aus, um die angehängten Richtlinien anzuzeigen.

  4. Wählen Sie Permissions (Berechtigungen).

  5. Stellen Sie sicher, dass die verwalteten Richtlinien AmazonEKSWorkerNodePolicy und AmazonEC2ContainerRegistryReadOnly an die Rolle angefügt sind. Wenn die Richtlinien angefügt sind, ist Ihre Amazon-EKS-Knoten-Rolle korrekt konfiguriert.

    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 Konfigurieren des Amazon VPC CNI plugin for Kubernetes zur Verwendung von IAM-Rollen für Servicekonten.

  6. Wählen Sie Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.

  7. Überprüfen Sie, dass die Vertrauensstellung die folgende Richtlinie enthält. Wenn die Vertrauensstellung mit der unten angegebenen Richtlinie übereinstimmt, wählen Sie Cancel. Andernfalls kopieren Sie die Richtlinie in das Fenster Edit trust policy (Vertrauensrichtlinie bearbeiten) und wählen Sie Update policy (Richtlinie aktualisieren) aus.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Erstellen der Amazon-EKS-Knoten-IAM-Rolle

Sie können die Knoten-IAM-Rolle mit der AWS Management Console oder AWS CLI erstellen. Wählen Sie die Registerkarte mit dem Namen des Werkzeugs aus, mit dem Sie die Rolle erstellen möchten.

AWS Management Console

So erstellen Sie Ihre Amazon EKS-Knotenrolle in der IAM-Konsole

  1. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  2. Wählen Sie im linken Navigationsbereich Roles aus.

  3. Klicken Sie auf der Seite Roles (Rollen) auf Create role (Rolle erstellen).

  4. Gehen Sie auf der Seite Select trusted entity (Vertrauenswürdige Entität auswählen) wie folgt vor:

    1. Wählen Sie im Abschnitt Trusted entity type (Typ der vertrauenswürdigen Entität) die Option AWS service (-Service) aus.

    2. Wählen Sie unter Use case (Anwendungsfall) die Option EC2 aus.

    3. Wählen Sie Next (Weiter).

  5. Gehen Sie auf der Seite Add permissions (Berechtigungen hinzufügen) wie folgt vor:

    1. Geben Sie im Feld Filter policies (Filterrichtlinien) AmazonEKSWorkerNodePolicy ein.

    2. Aktivieren Sie das Kontrollkästchen links neben AmazonEKSWorkerNodePolicy in den Suchergebnissen.

    3. Wählen Sie Clear filters (Filter löschen) aus.

    4. Geben Sie im Feld Filter policies (Filterrichtlinien) AmazonEC2ContainerRegistryReadOnly ein.

    5. Aktivieren Sie das Kontrollkästchen links neben AmazonEC2ContainerRegistryReadOnly 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 angehängt werden, die dem aws-node-Servicekonto von Kubernetes zugeordnet ist. Wir empfehlen, die Richtlinie der Rolle zuzuweisen, die dem Kubernetes-Dienstkonto zugeordnet ist, anstatt sie dieser Rolle zuzuweisen. Weitere Informationen finden Sie unter Konfigurieren des Amazon VPC CNI plugin for Kubernetes zur Verwendung von IAM-Rollen für Servicekonten.

    6. Wählen Sie Next (Weiter).

  6. Gehen Sie auf der Seite Name, review, and create (Benennen, überprüfen und erstellen) wie folgt vor:

    1. Geben Sie unter Role name (Rollenname) einen eindeutigen Namen für die Rolle ein, z. B. AmazonEKSNodeRole.

    2. Ersetzen Sie unter Description (Beschreibung) den aktuellen Text durch beschreibenden Text wie beispielsweise Amazon EKS - Node role.

    3. Fügen Sie der Rolle unter Add tags (Optional) (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 Tagging von IAM-Entitäten im IAM-Benutzerhandbuch.

    4. Wählen Sie Create role (Rolle erstellen) aus.

AWS CLI
  1. Speichern Sie den folgenden Inhalt in einer Datei mit dem Namen node-role-trust-relationship.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Erstellen Sie die IAM-Rolle.

    aws iam create-role \ --role-name AmazonEKSNodeRole \ --assume-role-policy-document file://"node-role-trust-relationship.json"
  3. 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/AmazonEC2ContainerRegistryReadOnly \ --role-name AmazonEKSNodeRole
  4. 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 angehängt werden, die dem Kubernetes aws-node-Servicekonto zugeordnet ist, das für das Amazon VPC CNI plugin for Kubernetes 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 Konfigurieren des Amazon VPC CNI plugin for Kubernetes zur Verwendung von IAM-Rollen für Servicekonten.

    • IPv4

      aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \ --role-name AmazonEKSNodeRole
    • IPv6

      1. 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/*" ] } ] }
      2. Erstellen Sie die IAM-Richtlinie.

        aws iam create-policy \ --policy-name AmazonEKS_CNI_IPv6_Policy \ --policy-document file://vpc-cni-ipv6-policy.json
      3. Fügen Sie die IAM-Richtlinie an die IAM-Rolle an. Ersetzen Sie 111122223333 durch Ihre Konto-ID.

        aws iam attach-role-policy \ --policy-arn arn:aws:iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name AmazonEKSNodeRole