AWS Systems ManagerChange Managersteht neuen Kunden nicht mehr offen. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter Änderung der AWS Systems ManagerChange Manager Verfügbarkeit.
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.
Verwenden Sie AWS Secrets and Configuration Provider CSI mit IAM Roles for Service Accounts (IRSA)
Themen
Voraussetzungen
-
Amazon-EKS-Cluster (Version 1.17 oder höher)
-
Zugriff auf die AWS CLI und einen Amazon-EKS-Cluster über
kubectl
Einrichten der Zugriffssteuerung
ASCP ruft die Amazon-EKS-Pod-Identität ab und tauscht sie gegen eine IAM-Rolle. Sie legen in einer IAM-Richtlinie Berechtigungen für diese IAM-Rolle fest. Wenn ASCP die IAM-Rolle übernimmt, erhält der Service Zugriff auf die von Ihnen autorisierten Parameter. Andere Container können nur auf die Parameter zugreifen, wenn Sie diese auch der IAM-Rolle zuordnen.
Gewähren Sie Ihrem Amazon-EKS-Pod wie folgt Zugriff auf Parameter in Parameter Store:
-
Erstellen Sie eine Berechtigungsrichtlinie, die den Parametern, auf die der Pod zugreifen muss, die Berechtigungen
ssm:GetParametersundssm:DescribeParametersgewährt. -
Erstellen Sie einen IAM OpenID Connect (OIDC)-Anbieter für den Cluster, wenn Sie noch keinen haben. Weitere Informationen finden Sie unter Erstellen eines IAM-OIDC-Anbieters für Ihren Cluster im Benutzerhandbuch für Amazon EKS.
-
Erstellen Sie eine IAM-Rolle für das Servicekonto und fügen Sie die Richtlinie an. Weitere Informationen finden Sie unter Erstellen einer IAM-Rolle für ein Servicekonto im Benutzerhandbuch für Amazon EKS.
-
Wenn Sie einen privaten Amazon-EKS-Cluster verwenden, stellen Sie sicher, dass die VPC, in der sich der Cluster befindet, über einen AWS STS-Endpunkt verfügt. Weitere Informationen zum Erstellen eines Endpunktes finden Sie unter Schnittstellen-VPC-Endpunkte im Benutzerhandbuch für AWS Identity and Access Management.
Identifizieren der Parameter, die gemountet werden sollen
Um zu bestimmen, welche Parameter ASCP in Amazon EKS als Dateien im Dateisystem mountet, erstellen Sie eine SecretProviderClass-YAML-Datei. Die SecretProviderClass listet die zu mountenden Parameter und den Dateinamen auf, unter dem sie gemountet werden sollen. SecretProviderClass muss sich im gleichen Namespace wie der Amazon-EKS-Pod befinden, auf den verwiesen wird.
Mounten der Parameter als Dateien
In der folgenden Anleitung wird gezeigt, wie Sie Parameter mithilfe der YAML-Beispieldateien ExampleSecretProviderClass.yaml
Mounten Sie Parameter in Amazon EKS wie folgt:
-
Wenden Sie die
SecretProviderClassauf den Pod an:kubectl apply -f ExampleSecretProviderClass.yaml -
Stellen Sie den Pod bereit:
kubectl apply -f ExampleDeployment.yaml -
ASCP mountet die Dateien.
Fehlerbehebung
Sie können die meisten Fehler anzeigen, indem Sie die Pod-Bereitstellung beschreiben.
Fehlermeldungen für Ihren Container anzeigen
-
Rufen Sie mit dem folgenden Befehl eine Liste der Pod-Namen ab. Wenn Sie nicht den Standard-Namespace verwenden, verwenden Sie
-n.name-spacekubectl get pods -
Um den Pod zu beschreiben, geben Sie im folgenden Befehl für
pod-iddie Pod-ID aus den Pods an, die Sie im vorherigen Schritt gefunden haben. Wenn Sie nicht den Standard-Namespace verwenden, verwenden Sie-n.nameSpacekubectl describe pod/pod-id
Fehler für den ASCP anzeigen
-
Um weitere Informationen in den Anbieterprotokollen zu finden, verwenden Sie im folgenden Befehl für
pod-iddie ID des Pods csi-secrets-store-provider-aws.kubectl -n kube-system get pods kubectl -n kube-system logs Pod/pod-id
-
Überprüfen Sie, ob die
SecretProviderClass-CRD installiert wurde:kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.ioDieser Befehl muss Informationen zur benutzerdefinierten Ressourcendefinition von
SecretProviderClasszurückgeben.
-
Stellen Sie sicher, dass das SecretProviderClass-Objekt erstellt wurde.
kubectl get secretproviderclassSecretProviderClassName-o yaml