View a markdown version of this page

ACK-Berechtigungen konfigurieren - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

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.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, 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.

ACK-Berechtigungen konfigurieren

ACK benötigt IAM-Berechtigungen, um AWS Ressourcen in Ihrem Namen zu erstellen und zu verwalten. In diesem Thema wird erklärt, wie IAM mit ACK zusammenarbeitet, und es enthält Anleitungen zur Konfiguration von Berechtigungen für verschiedene Anwendungsfälle.

Wie funktioniert IAM mit ACK

ACK verwendet IAM-Rollen, um sich bei Ihren Ressourcen zu authentifizieren AWS und Aktionen für diese auszuführen. Es gibt zwei Möglichkeiten, ACK Berechtigungen zu gewähren:

Capability-Rolle: Die IAM-Rolle, die Sie bei der Erstellung der ACK-Fähigkeit angeben. Diese Rolle wird standardmäßig für alle ACK-Operationen verwendet.

IAM-Rollenselektoren: Zusätzliche IAM-Rollen, die bestimmten Namespaces oder Ressourcen zugeordnet werden können. Diese Rollen haben Vorrang vor der Capability-Rolle für Ressourcen in ihrem Geltungsbereich.

Wenn ACK eine Ressource erstellen oder verwalten muss, bestimmt es, welche IAM-Rolle verwendet werden soll:

  1. Prüfen Sie, ob an dem IAMRoleSelector Namespace der Ressource entspricht

  2. Wenn eine Übereinstimmung gefunden wird, gehen Sie von dieser IAM-Rolle aus

  3. Verwenden Sie andernfalls die Capability-Rolle

Dieser Ansatz ermöglicht eine flexible Rechteverwaltung — von einfachen Einrollenkonfigurationen bis hin zu komplexen Konfigurationen mit mehreren Konten und mehreren Teams.

Erste Schritte: Einfache Einrichtung von Berechtigungen

Für Entwicklungs-, Test- oder einfache Anwendungsfälle können Sie der Capability-Rolle alle erforderlichen Serviceberechtigungen direkt hinzufügen.

Dieser Ansatz funktioniert gut, wenn:

  • Du fängst mit ACK an

  • Alle Ressourcen befinden sich auf demselben AWS Konto

  • Ein einziges Team verwaltet alle ACK-Ressourcen

  • Sie vertrauen darauf, dass alle ACK-Benutzer dieselben Berechtigungen haben

Bewährte Methode für die Produktion: IAM Role Selectors

Verwenden Sie in Produktionsumgebungen IAM-Role Selectors, um den Zugriff nach den geringsten Rechten und die Isolierung auf Namespace-Ebene zu implementieren.

Wenn Sie IAM-Role Selectors verwenden, benötigt die Capability Role nur Berechtigungen, um die dienstspezifischen Rollen zu übernehmen. sts:AssumeRole sts:TagSession Sie müssen der Capability Role selbst keine AWS Serviceberechtigungen (wie S3 oder RDS) hinzufügen. Diese Berechtigungen werden den einzelnen IAM-Rollen gewährt, die von der Capability Role übernommen werden.

Wählen Sie zwischen Berechtigungsmodellen:

Verwenden Sie direkte Berechtigungen (Hinzufügen von Serviceberechtigungen zur Capability Role), wenn:

  • Sie sind erst am Anfang und möchten die einfachste Einrichtung

  • Alle Ressourcen befinden sich im selben Konto wie Ihr Cluster

  • Sie haben administrative, clusterweite Berechtigungsanforderungen

  • Alle Teams können dieselben Berechtigungen teilen

Verwenden Sie IAM-Role Selectors, wenn:

  • Verwaltung von Ressourcen über mehrere Konten hinweg AWS

  • Verschiedene Teams oder Namespaces benötigen unterschiedliche Berechtigungen

  • Sie benötigen eine detaillierte Zugriffskontrolle pro Namespace

  • Sie möchten Sicherheitsverfahren nach dem Prinzip der geringsten Rechte anwenden

Sie können mit direkten Berechtigungen beginnen und später, wenn Ihre Anforderungen steigen, zu IAM-Role Selectors migrieren.

Warum sollten Sie IAM Role Selectors in der Produktion verwenden:

  • Geringste Privilegien: Jeder Namespace erhält nur die Berechtigungen, die er benötigt

  • Teamisolierung: Team A kann nicht versehentlich die Berechtigungen von Team B verwenden

  • Einfachere Prüfung: Klare Zuordnung, welcher Namespace welche Rolle verwendet

  • Cross-account Unterstützung: Erforderlich für die Verwaltung von Ressourcen in mehreren Konten

  • Trennung der Belange: Verschiedene Dienste oder Umgebungen verwenden unterschiedliche Rollen

Grundlegende Einrichtung des IAM Role Selector

Schritt 1: Erstellen Sie eine dienstspezifische IAM-Rolle

Erstellen Sie eine IAM-Rolle mit Berechtigungen für bestimmte Dienste: AWS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": "*" } ] }

Konfigurieren Sie die Vertrauensrichtlinie so, dass die Capability-Rolle sie übernehmen kann:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole" }, "Action": ["sts:AssumeRole", "sts:TagSession"] } ] }

Schritt 2: Erteilen Sie der Capability Role die AssumeRole Berechtigung

Fügen Sie der Capability-Rolle die Berechtigung hinzu, die dienstspezifische Rolle zu übernehmen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole", "sts:TagSession"], "Resource": "arn:aws:iam::111122223333:role/ACK-S3-Role" } ] }

Schritt 3: Erstellen IAMRoleSelector

Ordnen Sie die IAM-Rolle einem Namespace zu:

apiVersion: services.k8s.aws/v1alpha1 kind: IAMRoleSelector metadata: name: s3-namespace-config spec: arn: arn:aws:iam::111122223333:role/ACK-S3-Role namespaceSelector: names: - s3-resources

Schritt 4: Erstellen Sie Ressourcen im zugewiesenen Namespace

Ressourcen im s3-resources Namespace verwenden automatisch die angegebene Rolle:

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-bucket namespace: s3-resources spec: name: my-production-bucket

Multi-account Verwaltung

Verwenden Sie IAM Role Selectors, um Ressourcen für mehrere AWS Konten zu verwalten.

Schritt 1: Erstellen Sie eine kontoübergreifende IAM-Rolle

Erstellen Sie im Zielkonto (444455556666) eine Rolle, die der Capability-Rolle des Quellkontos vertraut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole" }, "Action": ["sts:AssumeRole", "sts:TagSession"] } ] }

Fügen Sie dieser Rolle dienstspezifische Berechtigungen hinzu.

Schritt 2: Erteilen Sie die Erlaubnis AssumeRole

Erlauben Sie der Capability-Rolle im Quellkonto (111122223333), die Rolle des Zielkontos zu übernehmen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole", "sts:TagSession"], "Resource": "arn:aws:iam::444455556666:role/ACKTargetAccountRole" } ] }

Schritt 3: Erstellen IAMRoleSelector

Ordnen Sie die kontoübergreifende Rolle einem Namespace zu:

apiVersion: services.k8s.aws/v1alpha1 kind: IAMRoleSelector metadata: name: production-account-config spec: arn: arn:aws:iam::444455556666:role/ACKTargetAccountRole namespaceSelector: names: - production

Schritt 4: Ressourcen erstellen

Ressourcen im production Namespace werden im Zielkonto erstellt:

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-bucket namespace: production spec: name: my-cross-account-bucket

Sitzungs-Tags

Die EKS-ACK-Funktion legt automatisch Sitzungs-Tags für alle AWS API-Anfragen fest. Diese Tags ermöglichen eine detaillierte Zugriffskontrolle und Prüfung, indem sie die Quelle jeder Anfrage identifizieren.

Verfügbare Sitzungs-Tags

Die folgenden Sitzungs-Tags sind in jedem AWS API-Aufruf von ACK enthalten:

Tag-Schlüssel Description

eks:eks-capability-arn

Der ARN der EKS-Funktion, die die Anfrage stellt

eks:kubernetes-namespace

Der Kubernetes-Namespace der verwalteten Ressource

eks:kubernetes-api-group

Die Kubernetes-API-Gruppe der Ressource (zum Beispiel) s3.services.k8s.aws

Verwendung von Sitzungs-Tags für die Zugriffskontrolle

Sie können diese Sitzungs-Tags in IAM-Richtlinienbedingungen verwenden, um einzuschränken, welche Ressourcen ACK verwalten kann. Dies bietet eine zusätzliche Sicherheitsebene, die über die Namespace-basierten IAM-Rollenselektoren hinausgeht.

Beispiel: Nach Namespace einschränken

Erlauben Sie ACK, S3-Buckets nur zu erstellen, wenn die Anfrage aus dem Namespace stammt: production

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:CreateBucket", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/eks:kubernetes-namespace": "production" } } } ] }

Beispiel: Nach Fähigkeit einschränken

Aktionen nur von einer bestimmten ACK-Fähigkeit aus zulassen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/eks:eks-capability-arn": "arn:aws:eks:us-west-2:111122223333:capability/my-cluster/ack/my-ack" } } } ] }
Anmerkung

Sitzungs-Tags unterscheiden sich vom selbstverwalteten ACK, das diese Tags nicht standardmäßig festlegt. Dies ermöglicht eine detailliertere Zugriffskontrolle mit der verwalteten Funktion.

Erweiterte IAM-Role Selector-Muster

Eine erweiterte Konfiguration, einschließlich kontoübergreifender Rollenzuordnung, Rollenauswahl im Namespace-Bereich und weiterer Beispiele, finden Sie unter Granular IAM Roles auf der ACK-Website. https://aws-controllers-k8s.github.io/docs/guides/cross-account

Nächste Schritte