Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
aws-iam-authenticator — Ein Tool zur Authentifizierung an einem Kubernetes-Cluster mithilfe von AWS-IAM-Anmeldeinformationen. | Kitploit
Tools/GitHubGitHub/kubernetes-sigs/aws-iam-authenticator
Authentifizierung & AutorisierungCloud-Infrastruktur-SicherheitCloud-SicherheitIdentitäts- & Zugriffsmanagement (IAM)
GitHubkubernetes-sigs/aws-iam-authenticator

aws-iam-authenticator

Ein Tool zur Authentifizierung an einem Kubernetes-Cluster mithilfe von AWS-IAM-Anmeldeinformationen.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
2.3k45046vor 2 TagenVon Kitploit geprüft

AWS IAM Authenticator für Kubernetes

Ein Tool zur Verwendung von AWS IAM-Anmeldeinformationen für die Authentifizierung an einem Kubernetes-Cluster. Die ursprüngliche Arbeit an diesem Tool wurde von Heptio vorangetrieben. Das Projekt erhält Beiträge von mehreren Community-Engineers und wird derzeit von Heptio und Amazon EKS OSS Engineers gepflegt.

Inhaltsverzeichnis

  • Warum möchte ich das?
  • Wie verwende ich es?
  • Kops-Nutzung
  • Wie funktioniert es?
  • Was ist eine Cluster-ID?
  • Angeben von Anmeldeinformationen & Verwenden von AWS-Profilen
  • API-Autorisierung von außerhalb eines Clusters
  • Fehlerbehebung
  • Vollständiges Konfigurationsformat
  • Entwicklung
  • Community, Diskussion, Beiträge und Support

Warum möchte ich das?

Wenn Sie als Administrator einen Kubernetes-Cluster auf AWS betreiben, müssen Sie bereits AWS IAM-Anmeldeinformationen verwalten, um den Cluster bereitzustellen und zu aktualisieren. Durch die Verwendung von AWS IAM Authenticator für Kubernetes vermeiden Sie die Verwaltung separater Anmeldeinformationen für den Kubernetes-Zugriff. AWS IAM bietet außerdem eine Reihe nützlicher Eigenschaften wie einen Out-of-Band-Audit-Trail (über CloudTrail) und die Durchsetzung von 2FA/MFA.

Wenn Sie einen Kubernetes-Installer auf AWS erstellen, kann AWS IAM Authenticator für Kubernetes Ihren Bootstrap-Prozess vereinfachen. Sie müssen Ihre anfänglichen Admin-Anmeldeinformationen nicht auf irgendeine Weise sicher aus Ihrem neu installierten Cluster herausschmuggeln. Stattdessen können Sie zum Zeitpunkt der Cluster-Bereitstellung eine dedizierte KubernetesAdmin-Rolle erstellen und Authenticator so einrichten, dass Cluster-Administrator-Anmeldungen zugelassen werden.

Wie verwende ich es?

Angenommen, Sie haben einen Cluster, der auf AWS läuft, und möchten Unterstützung für AWS IAM Authenticator für Kubernetes hinzufügen, dann müssen Sie:

  1. Eine IAM-Rolle erstellen, die Sie zur Identifizierung von Benutzern verwenden.
  2. Den Authenticator-Server als DaemonSet ausführen.
  3. Ihren API-Server so konfigurieren, dass er mit Authenticator kommuniziert.
  4. kubectl so einrichten, dass es Authenticator-Tokens verwendet.

1. Eine IAM-Rolle erstellen

Zuerst müssen Sie eine oder mehrere IAM-Rollen erstellen, die Benutzern/Gruppen innerhalb Ihres Kubernetes-Clusters zugeordnet werden. Der einfachste Weg, dies zu tun, ist sich in der AWS Console anzumelden:

  • Wählen Sie die Option "Role for cross-account access" / "Provide access between AWS accounts you own".
  • Fügen Sie Ihre AWS-Konto-ID-Nummer ein (verfügbar oben rechts in der Console).
  • Ihre Rolle benötigt keine zusätzlich angehängten Richtlinien.

Dadurch wird eine IAM-Rolle ohne Berechtigungen erstellt, die von autorisierten Benutzern/Rollen in Ihrem Konto übernommen werden kann. Notieren Sie sich den Amazon Resource Name (ARN) Ihrer Rolle, den Sie unten benötigen werden.

Sie können dies auch in einem einzigen Schritt mit der AWS CLI anstelle der AWS Console tun:

# get your account ID
ACCOUNT_ID=$(aws sts get-caller-identity --output text --query 'Account')

# define a role trust policy that opens the role to users in your account (limited by IAM policy)
POLICY=$(echo -n '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::'; echo -n "$ACCOUNT_ID"; echo -n ':root"},"Action":"sts:AssumeRole","Condition":{}}]}')

# create a role named KubernetesAdmin (will print the new role's ARN)
aws iam create-role \
  --role-name KubernetesAdmin \
  --description "Kubernetes administrator role (for AWS IAM Authenticator for Kubernetes)." \
  --assume-role-policy-document "$POLICY" \
  --output text \
  --query 'Role.Arn'

Sie können diesen Schritt auch überspringen und Folgendes verwenden:

  • Eine vorhandene Rolle (z. B. eine Cross-Account-Zugriffsrolle).
  • Einen IAM-Benutzer (siehe mapUsers unten).
  • Eine EC2-Instanz oder eine föderierte Rolle (siehe mapRoles unten).

2. Den Server ausführen

Der Server ist dafür gedacht, auf jedem Ihrer Master-Knoten als DaemonSet mit Host-Netzwerk zu laufen, damit er einen localhost-Port bereitstellen kann.

Ein Beispiel für eine ConfigMap- und DaemonSet-Konfiguration finden Sie in deploy/example.yaml. Bevor Sie sie anwenden, aktualisieren Sie diese Werte für Ihren Cluster:

  • Ersetzen Sie die Platzhalter-IAM-ARNs (arn:aws:iam::000000000000:...) in config.yaml.
  • Legen Sie clusterID auf einen eindeutigen Wert für Ihren Cluster fest.
  • Stellen Sie sicher, dass die Scheduling-Regeln des DaemonSets mit den Labels/Taints Ihrer Control-Plane-Knoten übereinstimmen.

Stellen Sie es dann bereit:

kubectl apply -f deploy/example.yaml
kubectl -n kube-system rollout status daemonset/aws-iam-authenticator
kubectl -n kube-system get pods -l k8s-app=aws-iam-authenticator

Sobald der Pod auf einem Control-Plane-Knoten läuft, erstellt der aws-iam-authenticator server die Webhook-Kubeconfig auf dem Host unter /etc/kubernetes/aws-iam-authenticator/kubeconfig.yaml (oder unter dem über --generate-kubeconfig konfigurierten Pfad).

(Optional) Zertifikat, Schlüssel und Kubeconfig vorab generieren

Wenn Sie einen automatisierten Installer erstellen, können Sie die Zertifikats-, Schlüssel- und Webhook-Kubeconfig-Dateien auch einfach mit aws-iam-authenticator init vorab generieren. Dieser Befehl erzeugt Dateien und legt sie in den konfigurierten Ausgabeverzeichnissen ab.

Sie können dies auf jedem Master-Knoten vor dem Start des API-Servers ausführen. Sie können sie auch vor der Bereitstellung der Master-Knoten generieren und sie in den entsprechenden Host-Pfaden installieren.

Wenn Sie keine Dateien vorab generieren, erzeugt aws-iam-authenticator server sie bei Bedarf. Dies funktioniert, erfordert jedoch, dass Sie Ihren Kubernetes API-Server nach der Installation neu starten.

3. Konfigurieren Sie Ihren API-Server für die Kommunikation mit dem Server

Die Kubernetes API integriert sich über einen Token-Authentifizierungs-Webhook in den AWS IAM Authenticator for Kubernetes. Wenn Sie aws-iam-authenticator server ausführen, wird eine Webhook-Konfigurationsdatei erzeugt und im Host-Dateisystem gespeichert. Sie müssen Ihrer API-Server-Konfiguration ein einziges zusätzliches Flag hinzufügen:

--authentication-token-webhook-config-file=/etc/kubernetes/aws-iam-authenticator/kubeconfig.yaml

Auf vielen Clustern läuft der API-Server als statisches Pod. Sie können das Flag zu /etc/kubernetes/manifests/kube-apiserver.yaml hinzufügen. Stellen Sie sicher, dass das Host-Verzeichnis /etc/kubernetes/aws-iam-authenticator/ in Ihr API-Server-Pod eingebunden ist. Möglicherweise müssen Sie außerdem den kubelet-Daemon auf Ihrem Master-Node neu starten, damit die aktualisierte statische Pod-Definition übernommen wird:

systemctl restart kubelet.service

4. IAM-Rolle/Benutzer-zu-Kubernetes-Benutzer/Gruppen-Zuordnungen erstellen

Das Standardverhalten des Servers besteht darin, Zuordnungen ausschließlich aus den Feldern mapUsers und mapRoles seiner Konfigurationsdatei zu beziehen. Siehe Vollständiges Konfigurationsformat unten für Details.

Tool herunterladen