AWS EKS Kubernetes-Erkennung mit IAM-Benutzer oder -Rolle

ChatGPT Image Aug 8 2025 04_23_56 PM Diagram of a Kubernetes cluster in AWS showing pods and access control

Cloud-native Infrastruktur ist nicht nur ein Trend, sondern die Grundlage moderner IT-Umgebungen. Im Zuge der Weiterentwicklung von JDisc freuen wir uns, Ihnen die vollständige Unterstützung für EKS Kubernetes Discovery vorstellen zu können. Damit können Sie Kubernetes-Ressourcen auf Amazon EKS entweder mit einem IAM-Benutzer oder einer IAM-Rolle scannen und abrufen.

Unabhängig davon, ob Sie temporäre Anmeldedaten, Instanzrollen oder IRSA innerhalb von EKS verwenden, hilft Ihnen unser Leitfaden dabei, einen sicheren und konformen Zugriff für das Scannen von Kubernetes-Knoten, Pods und Diensten über JDisc zu konfigurieren.

🔍 Vollständige Anleitung zur EKS-Kubernetes-Erkennung über IAM-Benutzer oder -Rolle

Dieser Leitfaden führt Sie durch die Verbindung mit einem EKS-Cluster, das Abrufen von Kubernetes-Ressourcen und die Ausführung der programmgesteuerten Erkennung mithilfe einer gültigen kubeconfig-Konfigurationsdatei – unabhängig davon, ob Sie einen IAM-Benutzer oder eine IAM-Rolle verwenden.

Illustration of a Kubernetes cluster inside AWS using Amazon EKS
Dieses Bild zeigt die Struktur eines Kubernetes Clusters der innerhalb von Amazon Web Services ausgeführt wird

📌 Voraussetzungen für EKS Kubernetes Discovery

Bevor Sie beginnen, stellen Sie sicher, dass Folgendes eingerichtet ist:

  • ✅ AWS CLI installiert

  • kubectl installiert

  • ✅ EKS-Cluster erstellt (z. B. eks-test1)

  • ✅ Entweder:

    • IAM-Benutzer mit Anmeldeinformationen

    • ODER IAM-Rolle mit sts:AssumeRole-Berechtigungen

  • AmazonEKSClusterAdminPolicy an den Prinzipal angehängt

    • ✅ Der IAM-Principal verfügt über die folgenden Berechtigungen:

  • {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "VisualEditor0",
    "Effect": "Allow",
    "Action": [
    "eks:ListFargateProfiles",
    "eks:DescribeNodegroup",
    "eks:ListNodegroups",
    "eks:DescribeFargateProfile",
    "eks:ListAddons",
    "eks:DescribeCluster",
    "eks:ListClusters",
    "eks:DescribeAddon"
    ],
    "Resource": "*"
    }
    ]
    }

👤Teil A: EKS Kubernetes Discovery mit IAM-Benutzerzugriff

🔐 Schritt 1: AWS CLI konfigurieren

aws configure

Angeben:

  • Zugriffsschlüssel-ID

  • Geheimer Zugriffsschlüssel

  • Region (z. B. eu-central-1)

  • Ausgabeformat: json

Identität überprüfen:

aws sts get-caller-identity

🛠️ Schritt 2: IAM-Benutzerzugriff in EKS gewähren

  1. Gehen Sie zu EKS > eks-test1 > Zugriff > Zugriff verwalten.

  2. Klicken Sie auf „Zugriffseintrag erstellen“.

  3. Geben Sie Folgendes ein:

    • IAM principal ARN: arn:aws:iam::Account_ID:user/jdisc-test-user

    • Type: Standard

    • Benutzername: jdisc-test-user

  4. Anhängen: ✅ AmazonEKSClusterAdminPolicy

  5. Gruppen leer lassen

  6. Auf „Überprüfen und erstellen“ klicken

✅ Dies ersetzt die alte aws-auth ConfigMap-Methode.

🔄 Schritt 3: kubeconfig aktualisieren

aws eks update-kubeconfig --name <CLUSTER> --region <REGION> \ --role-arn arn:aws:iam::<ACCOUNT_ID>:role/jdisc-eks-dev

🔄Schritt 4: Legen Sie das geheime Token und den geheimen Schlüssel in den Umgebungsvariablen fest.

✅ Schritt 5: Testen mit kubectl

kubectl get nodes
kubectl get pods --all-namespaces

Wenn Sie eine Fehlermeldung wegen fehlender Berechtigung erhalten, überprüfen Sie Folgendes:

  • Der IAM-Benutzer ist in den Zugriffseinträgen aufgeführt.

  • Sie verwenden das richtige AWS-Profil.

  • Die kubeconfig-Datei wurde ordnungsgemäß aktualisiert.

🔁 Teil B: EKS Kubernetes Discovery über IAM-Rolle

Diese Methode ist ideal, wenn:

  • Sie IRSA, EC2-Instanzrollen oder temporäre Anmeldeinformationen verwenden.

  • Sie sts:AssumeRole gegenüber der direkten Speicherung von Anmeldeinformationen bevorzugen.

Wichtiger Hinweis: Die Cluster-IAM-Rolle muss in den Vertrauensbeziehungen enthalten sein: „Action”: [„sts:AssumeRole”, „sts:TagSession”]

🔐 Schritt 1: IAM-Rolle erstellen

  1. Gehen Sie zu IAM > Rollen > Rolle erstellen.

  2. Wählen Sie „Vertrauenswürdige Entität“ = „Anderes AWS-Konto“.

  3. Geben Sie Ihre AWS-Konto-ID ein.

  4. Anhängen: AmazonEKSClusterAdminPolicy

  5. Benennen Sie sie z. B. „AssumeRoleDiscoveryTest“.AssumeRoleDiscoveryTest

🛠️ Schritt 2: Richtlinie für Vertrauensbeziehungen

Verwenden Sie diese Vertrauensrichtlinie:

Access control configuration for Amazon EKS cluster with IAM integration"
Das Bild zeigt die erforderlichen Berechtigungen und IAM Rollen oder Benutzer die für den Zugriff auf den EKS Cluster und dessen Verwaltung erforderlich sind

🔧 Schritt 3: Rollen-Zugriff in EKS gewähren

Befolgen Sie die gleichen Schritte wie in Teil A → Schritt 2, verwenden Sie jedoch Folgendes:

  • IAM Principal ARN:
    arn:aws:iam::Account_ID:role/AssumeRoleDiscoveryTest

  • Benutzername: testassumer

  • Zugriffsrichtlinie: AmazonEKSClusterAdminPolicy

🔄 Schritt 4: Aktualisieren Sie kubeconfig für die Rolle.

aws eks update-kubeconfig --name <CLUSTER> --region <REGION> \ --role-arn arn:aws:iam::<ACCOUNT_ID>:role/jdisc-eks-dev

🔄Schritt 5: Legen Sie das geheime Token und den geheimen Schlüssel in den Umgebungsvariablen fest.

🧭 JDisc für EKS Kubernetes Discovery konfigurieren

  1. Gehen Sie zu JDisc → Konfiguration → PaaS.

  2. Klicken Sie auf „Neue Konfiguration hinzufügen“.

  3. Fügen Sie die zuvor generierte kubeconfig-Datei ein.

  4. Speichern Sie den Eintrag unter einem aussagekräftigen Namen (z. B. eks-test1-config).

  5. ✅ Klicken Sie nach dem Speichern auf „Verbindung testen“, um den Zugriff zu überprüfen.

Discovered AWS EKS cluster displayed in JDisc with Kubernetes components
This image shows how JDisc identifies an AWS Kubernetes cluster and displays its resources in the UI

⚡ Alternative (ohne kubeconfig): Verwenden Sie ein kurzlebiges EKS-Token.

Wenn Sie kein kubeconfig konfigurieren möchten, können Sie JDisc ein direktes Bearer-Token und den Hostnamen des API-Servers bereitstellen.

  1. Generieren Sie ein Token (gültig für ca. 12–15 Minuten):

aws eks get-token \
–cluster-name eks-test1 \
–region eu-central-1 \
–output json

Kopieren Sie aus der JSON-Ausgabe den Wert „status.token“.

  1. Suchen Sie den Hostnamen des Cluster-API-Servers (in Ihren Cluster-Details oder in kubeconfig). Er sieht wie folgt aus: XXXXXXXXXXXXX.gr7.eu-central-1.eks.amazonaws.com
  1. In JDisc → Konfiguration → PaaS → Neue Konfiguration hinzufügen
  • Wählen Sie den Modus „Konto“.
  • Hostname: Fügen Sie den Hostnamen des API-Servers ein (ohne Schema).
  • Token: Fügen Sie das Bearer-Token aus Schritt 1 ein.
  • Speichern und Verbindung testen

⚠️ Ablauf des Tokens: Das Token ist nur kurz gültig. Für wiederholte oder geplante Erkennungen sollten Sie kubeconfig mit Rollen-/Benutzerauthentifizierung bevorzugen oder die Aktualisierung des Tokens automatisieren.

💬 Abschließende Gedanken zu EKS Kubernetes Discovery in JDisc

Mit diesen Einstellungsoptionen kann JDisc nun sicher und flexibel Kubernetes-Cluster scannen, die auf AWS EKS gehostet werden – entweder mithilfe von IAM-Benutzern oder IAM-Rollen. Damit haben Sie folgende Möglichkeiten:

  • Live-Pods und -Knoten erkennen

  • Token-basierte Kubeconfig-Generierung integrieren

  • Erkennungstools (wie JDisc) mit temporärem Zugriff ausführen

Wenn Sie sich an die Best Practices von AWS halten möchten, ist der rollenbasierte Zugriff über IAM (insbesondere über IRSA oder EC2) die beste Wahl für eine skalierbare und sichere Kubernetes-Erkennung.

Teilen Sie uns mit, wie es für Sie funktioniert – und was Sie sich als Nächstes für den Cloud-nativen Support von JDisc wünschen!

Bleiben Sie cloudfähig,
Raphael Nikou

About The Author

Raphael Nikou
I am a Junior Java Software Developer at JDisc, where I specialize in the design and implementation of the Discovery engine. My primary focus is on enhancing the core functionalities of the Discovery component, ensuring accurate and efficient data retrieval and system integration. Feel free to contact me on LinkedIn.

Leave A Comment