Gewähren von Zugriff auf Kubernetes-APIs für IAM-Benutzer und Rollen - Amazon EKS

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.

Gewähren von Zugriff auf Kubernetes-APIs für IAM-Benutzer und Rollen

Ihr Cluster verfügt über einen Kubernetes-API-Endpunkt. Kubectl verwendet diese API. Sie können sich mit zwei Identitätstypen bei dieser API authentifizieren:

  • Ein AWS Identity and Access Management (IAM)-Prinzipal (Rolle oder Benutzer) – Dieser Typ erfordert eine Authentifizierung bei IAM. Benutzer können sich bei AWS als IAM-Benutzer oder mit einer Verbundidentität unter Verwendung von Anmeldeinformationen anmelden, die über eine Identitätsquelle bereitgestellt werden. Benutzer können sich nur dann mit einer Verbundidentität anmelden, wenn Ihr Administrator zuvor mithilfe von IAM-Rollen einen Identitätsverbund eingerichtet hat. Wenn Benutzer unter Verwendung eines Verbunds auf AWS zugreifen, wird von ihnen indirekt eine Rolle angenommen. Wenn Benutzer diese Art von Identität verwenden, gilt Folgendes:

    • Kann ihnen Kubernetes-Berechtigungen zuweisen, damit sie mit Kubernetes-Objekten in Ihrem Cluster arbeiten können. Weitere Informationen dazu, wie Sie Ihren IAM-Prinzipalen Berechtigungen zuweisen, damit sie auf Kubernetes-Objekte in Ihrem Cluster zugreifen können, finden Sie unter IAM-Benutzern mit EKS-Zugriffseinträgen Zugriff auf Kubernetes gewähren.

    • Kann ihnen IAM-Berechtigungen zuweisen, damit sie mithilfe der Amazon-EKS-API, AWS-CLI, AWS CloudFormation, AWS-Managementkonsole oder eksctl mit Ihrem Amazon-EKS-Cluster und seinen Ressourcen arbeiten können. Weitere Informationen finden Sie in der Service-Authorization-Referenz unter Von Amazon Elastic Kubernetes Service definierte Aktionen.

    • Wenn Knoten in Ihren Cluster eingebunden werden, nehmen sie eine IAM-Rolle an. Die Möglichkeit, mit IAM-Prinzipalen auf Ihren Cluster zuzugreifen, wird durch den AWS IAM Authenticator für Kubernetes bereitgestellt, der auf der Steuerebene von Amazon EKS ausgeführt wird.

  • Ein Benutzer in Ihrem eigenen OpenID Connect (OIDC)-Anbieter – Dieser Typ erfordert eine Authentifizierung bei Ihrem OIDC-Anbieter. Weitere Informationen zur Einrichtung Ihres eigenen OIDC-Anbieters mit Ihrem Amazon-EKS-Cluster finden Sie unter Benutzern Zugriff auf Kubernetes mit einem externen OIDC-Anbieter gewähren. Wenn Benutzer diese Art von Identität verwenden, gilt Folgendes:

    • Kann ihnen Kubernetes-Berechtigungen zuweisen, damit sie mit Kubernetes-Objekten in Ihrem Cluster arbeiten können.

    • Kann keine IAM-Berechtigungen zuweisen, damit sie mithilfe der Amazon-EKS-API, AWS-CLI, AWS CloudFormation, AWS-Managementkonsole oder eksctl mit Ihrem Amazon-EKS-Cluster und seinen Ressourcen arbeiten können.

Sie können beide Arten von Identitäten mit Ihrem Cluster verwenden. Die IAM-Authentifizierungsmethode kann nicht deaktiviert werden. Die OIDC-Authentifizierungsmethode ist optional.

IAM-Identitäten Kubernetes-Berechtigungen zuordnen

Der AWS IAM Authenticator für Kubernetes ist auf der Steuerebene Ihres Clusters installiert. Er ermöglicht AWS Identity and Access Management (IAM)-Prinzipale (Rollen und Benutzer), denen Sie den Zugriff auf Kubernetes-Ressourcen in Ihrem Cluster gestatten. Sie können eine der folgenden Methoden verwenden, um IAM-Prinzipalen Zugriff auf Kubernetes-Objekte in Ihrem Cluster zu gewähren:

  • Erstellen von Zugriffseinträgen – Wenn Ihr Cluster mindestens über die Plattformversion verfügt, die im Abschnitt Voraussetzungen für die Kubernetes-Version Ihres Clusters aufgeführt ist, sollten Sie diese Option verwenden.

    Verwenden Sie Zugriffseinträge, um die Kubernetes-Berechtigungen von IAM-Prinzipalen außerhalb des Clusters zu verwalten. Sie können den Zugriff auf den Cluster mithilfe der EKS-API, der AWS-Befehlszeilenschnittstelle, AWS-SDKs, AWS CloudFormation und AWS-Managementkonsole hinzufügen und verwalten. Für die Benutzerverwaltung können also die gleichen Tools verwendet werden wie für die Clustererstellung.

    Für den Einstieg befolgen Sie die Anweisungen unter eks/latest/userguide/setting-up-access-entries.html[Ändern Sie den Authentifizierungsmodus, um Zugriffseinträge zu verwenden,type="documentation"], und anschließend Migration vorhandener aws-auth ConfigMap-Einträge zu Zugriffseinträgen.

  • Hinzufügen von Einträgen zu aws-auth ConfigMap : Wenn die Plattformversion Ihres Clusters älter ist als die im Abschnitt Voraussetzungen aufgeführte Version, muss diese Option verwendet werden. Falls die Plattformversion Ihres Clusters mindestens der Plattformversion entspricht, die im Abschnitt Voraussetzungen für die Kubernetes-Version Ihres Clusters angegeben ist, und Sie Einträge zu ConfigMap hinzugefügt haben, empfiehlt es sich, diese Einträge zu Zugriffseinträgen zu migrieren. Sie können allerdings keine Einträge migrieren, die von Amazon EKS zu ConfigMap hinzugefügt wurden (also beispielsweise Einträge für IAM-Rollen, die mit verwalteten Knotengruppen oder Fargate-Profilen verwendet werden). Weitere Informationen finden Sie unter Gewähren von Zugriff auf Kubernetes-APIs für IAM-Benutzer und Rollen.

    • Wenn Sie aws-auth ConfigMap verwenden müssen, können Sie mithilfe des Befehls eksctl create iamidentitymapping Einträge zu ConfigMap hinzufügen. Weitere Informationen finden Sie in der Dokumentation zu eksctl unter Manage IAM users and roles.

Einstellen des Cluster-Authentifizierungsmodus

Jeder Cluster hat einen Authentifizierungsmodus. Der Authentifizierungsmodus bestimmt, welche Methoden Sie verwenden können, um IAM-Prinzipalen den Zugriff auf Kubernetes-Objekte in Ihrem Cluster zu ermöglichen. Es gibt drei Authentifizierungsmodi.

Wichtig

Sobald die Zugriffseingabemethode aktiviert ist, kann sie nicht mehr deaktiviert werden.

Wenn die ConfigMap-Methode während der Cluster-Erstellung nicht aktiviert wird, kann sie später nicht mehr aktiviert werden. Für alle Cluster, die vor der Einführung von Zugriffseinträgen erstellt wurden, ist die ConfigMap-Methode aktiviert.

Wenn Sie Hybridknoten mit Ihrem Cluster verwenden, müssen Sie die Cluster-Authentifizierungsmodi API oder API_AND_CONFIG_MAP verwenden.

Die aws-auth ConfigMap innerhalb des Clusters

Dies ist der ursprüngliche Authentifizierungsmodus für Amazon-EKS-Cluster. Der IAM-Prinzipal, der den Cluster erstellt hat, ist zunächst der einzige Benutzer, der über kubectl auf den Cluster zugreifen kann. Dieser Benutzer muss der Liste in aws-auth ConfigMap weitere Benutzer hinzufügen und Berechtigungen zuweisen, die sich auf die anderen Benutzer innerhalb des Clusters auswirken. Die anderen Benutzer können den ursprünglichen Benutzer nicht verwalten oder entfernen, da ConfigMap keinen zu verwaltenden Eintrag enthält.

Kombination aus ConfigMap und Zugriffseinträgen

In diesem Authentifizierungsmodus können Sie beide Methoden verwenden, um dem Cluster IAM-Prinzipale hinzuzufügen. Beachten Sie, dass bei jeder Methode separate Einträge gespeichert werden. Wenn Sie also beispielsweise einen Zugriffseintrag über die AWS-CLI hinzufügen, wird aws-auth ConfigMap nicht aktualisiert.

Nur Zugriffseinträge

In diesem Authentifizierungsmodus können Sie die EKS-API, die AWS-Befehlszeilenschnittstelle, die AWS-SDKs, AWS CloudFormationund die AWS-Managementkonsole verwenden, um den Zugriff auf den Cluster für IAM-Prinzipale zu verwalten.

Jeder Zugriffseintrag hat einen Typ und Sie können eine Kombination aus Zugriffsbereich und Zugriffsrichtlinie verwenden, um mithilfe des Zugriffsbereichs den Prinzipal auf einen bestimmten Namespace zu beschränken und mithilfe der Zugriffsrichtlinie vorkonfigurierte, wiederverwendbare Berechtigungsrichtlinien festzulegen. Alternativ können Sie den Typ STANDARD und Kubernetes RBAC-Gruppen verwenden, um benutzerdefinierte Berechtigungen zuzuweisen.

Authentifizierungsmodus Methoden

Nur ConfigMap (CONFIG_MAP)

aws-auth ConfigMap

EKS-API und ConfigMap (API_AND_CONFIG_MAP)

Zugriff auf Einträge in der EKS-API, der AWS-Befehlszeilenschnittstelle, den AWS-SDKs, AWS CloudFormation und AWS-Managementkonsole sowie aws-auth ConfigMap

Nur EKS-API (API)

Zugriff auf Einträge in der EKS-API, der AWS-Befehlszeilenschnittstelle, den AWS-SDKs, AWS CloudFormation und AWS-Managementkonsole

Anmerkung

Amazon EKS Auto Mode erfordert Zugriffseinträge.