AWS Codebeispiele für Secrets und Configuration Provider - AWS Systems Manager

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.

AWS Codebeispiele für Secrets und Configuration Provider

Beispiele für ASCP-Authentifizierung und Zugriffskontrolle

Beispiel: IAM-Richtlinie, die dem Service Amazon EKS Pod Identity (pods.eks.amazonaws.com) ermöglicht, die Rolle zu übernehmen und die Sitzung zu taggen:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

SecretProviderClass

Sie verwenden YAML, um zu beschreiben, welche Parameter mithilfe von ASCP in Amazon EKS gemountet werden sollen. Beispiele finden Sie unter SecretProviderClass-Nutzung.

SecretProviderClass YAML-Struktur

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: name spec: provider: aws parameters: region: failoverRegion: pathTranslation: usePodIdentity: preferredAddressType: objects:

Das Feld Parameter enthält die Details der Mounting-Anfrage:

Region

(Optional) Der Wert AWS-Region des Parameters. Wenn Sie dieses Feld nicht verwenden, sucht der ASCP die Region aus der Anmerkung auf dem Knoten. Diese Suche steigert den Overhead von Mounting-Anfragen. Daher wird empfohlen, die Region für Cluster mit einer großen Anzahl von Pods anzugeben.

Wenn Sie auch failoverRegion angeben, versucht ASCP, den Parameter aus beiden Regionen abzurufen. Wenn eine Region einen 4xx-Fehler zurückgibt, z. B. aufgrund eines Authentifizierungsproblems, mountet ASCP keinen der Parameter. Wenn der Parameter erfolgreich von region abgerufen wurde, mountet ASCP diesen Parameterwert. Wenn das Secret nicht erfolgreich von region abgerufen wurde, aber erfolgreich von failoverRegion abgerufen werden konnte, mountet ASCP diesen Parameter-Wert.

failoverRegion

(Optional) Wenn Sie dieses Feld angeben, versucht ASCP, das Secret aus den Regionen abzurufen, die in region und diesem Feld definiert sind. Wenn eine Region einen 4xx-Fehler zurückgibt, z. B. aufgrund eines Authentifizierungsproblems, mountet ASCP keinen der Parameter. Wenn der Parameter erfolgreich von region abgerufen wurde, mountet ASCP diesen Parameterwert. Wenn das Secret nicht erfolgreich von region abgerufen wurde, aber erfolgreich von failoverRegion abgerufen werden konnte, mountet ASCP diesen Parameter-Wert. Ein Beispiel für die Nutzung dieses Felds finden Sie unter Multiregionaler Parameter-Failover.

pathTranslation (Pfadangabe)

(Optional) Ein einzelnes Ersetzungszeichen, das verwendet werden soll, wenn der Dateiname in Amazon EKS das Pfadtrennzeichen enthält, z. B. Schrägstrich (/) unter Linux. ASCP kann keine gemountete Datei erstellen, die ein Pfadtrennzeichen enthält. Stattdessen ersetzt ASCP das Pfadtrennzeichen durch ein anderes Zeichen. Wenn Sie dieses Feld nicht verwenden, ist das Ersatzzeichen ein Unterstrich (_), d. h. My/Path/Parameter wird als My_Path_Parameter gemountet.

Um die Zeichenersetzung zu verhindern, geben Sie die Zeichenfolge False ein.

usePodIdentity

(Optional) Legt den Authentifizierungsansatz fest. Wenn nicht angegeben, wird standardmäßig IAM Roles for Service Accounts (IRSA) verwendet.

  • Verwenden Sie einen der folgenden Werte, um EKS Pod Identity zu verwenden: "true", "True", "TRUE", "t" oder "T".

  • Wenn Sie explizit IRSA nutzen möchten, verwenden Sie einen der folgenden Werte: "false", "False", "FALSE", "f" oder "F".

preferredAddressType

(Optional) Gibt den bevorzugten IP-Adresstyp für die Pod-Identity-Agent-Endpunktkommunikation an. Das Feld ist nur bei Verwendung der EKS-Pod-Identity-Funktion relevant und wird ignoriert, wenn IAM-Roles for Service Accounts verwendet wird. Bei den Werten wird zwischen Groß- und Kleinschreibung unterschieden. Folgende sind gültige Werte:

  • "ipv4", "IPv4" „, oder "IPV4" — Erzwingt die Verwendung des Pod Identity IPv4 Agent-Endpunkts

  • "ipv6","IPv6", oder "IPV6" — Erzwingen Sie die Verwendung des Pod Identity IPv6 Agent-Endpunkts

  • nicht spezifiziert — auto Endpunktauswahl verwenden, zuerst den IPv4 Endpunkt ausprobieren und bei einem Fehler auf den IPv6 Endpunkt IPv4 zurückgreifen

objects (Objekte)

Eine Zeichenfolge, die eine YAML-Deklaration der bereitzustellenden Secrets enthält. Wir empfehlen, eine mehrzeilige YAML-Zeichenfolge oder ein Pipe-Zeichen (|) zu verwenden.

objectName (Objektname)

Erforderlich Gibt den Namen des Parameters oder Secrets an, das abgerufen werden soll. Für Parameter Store ist dies der Name des Parameters und kann entweder der Name oder der vollständige ARN sein. Für Secrets Manager ist dies der Parameter SecretId und kann entweder der Anzeigename oder der vollständige ARN des Secrets sein.

objectType

Erforderlich, wenn Sie keinen Secrets Manager ARN für objectName verwenden. Geben Sie als Parameter Store ssmparameterein. Verwenden Sie für Secrets Manager secretsmanager.

objectAlias

(Optional) Der Dateiname des Secrets im Amazon-EKS-Pod. Wenn Sie dieses Feld nicht angeben, wird objectName als Dateiname angezeigt.

objectVersion (Objektversion)

(Optional) Die Versions-ID des Parameters. Nicht empfohlen, da Sie jedes Mal, wenn Sie den Parameter aktualisieren, die Versions-ID aktualisieren müssen. Standardmäßig wird die neueste Version verwendet. Wenn Sie eine failoverRegion angeben, stellt dieses Feld den primären objectVersion dar.

objectVersionLabel

(Optional) Der Alias für die Version. Die Standardversion ist die neueste VersionAWSCURRENT. Wenn Sie eine failoverRegion angeben, stellt dieses Feld den primären objectVersionLabel dar.

jmesPath

(Optional) Eine Zuordnung der Schlüssel im Parameter zu den Dateien, die in Amazon EKS gemountet werden sollen. Um dieses Feld zu verwenden, muss Ihr Parameterwert im JSON-Format vorliegen.

Das folgende Beispiel zeigt, wie ein JSON-kodierter Parameter aussieht.

{ "username" : "myusername", "password" : "mypassword" }

Die Schlüssel sind username und password. Der Wert, der mit username verbunden ist, ist myusername, und der Wert, der mit password verbunden ist, ist mypassword.

Wenn Sie dieses Feld verwenden, müssen Sie die Unterfelder path und objectAlias angeben.

Pfad

Ein Schlüssel aus einem Schlüssel-Wert-Paar im JSON des Parameterwerts. Wenn das Feld einen Bindestrich enthält, verwenden Sie einfache Anführungszeichen als Escape-Zeichen. Beispiel: path: '"hyphenated-path"'

objectAlias

Der Dateiname, der im Amazon-EKS-Pod gemountet werden soll. Wenn das Feld einen Bindestrich enthält, verwenden Sie einfache Anführungszeichen als Escape-Zeichen. Beispiel: objectAlias: '"hyphenated-alias"'

failoverObject

(Optional) Wenn Sie dieses Feld angeben, versucht ASCP, den im primären objectName angegebenen Parameter und den im failoverObject-objectName-Unterfeld angegebenen Parameter abzurufen. Wenn einer der Parameter einen 4xx-Fehler zurückgibt, z. B. aufgrund eines Authentifizierungsproblems, mountet ASCP keinen der Parameter. Wenn der Parameter erfolgreich vom primären objectName abgerufen wurde, mountet ASCP diesen Parameterwert. Wenn der Parameter nicht erfolgreich vom primären objectName abgerufen wurde, aber erfolgreich vom Failover-objectName abgerufen werden konnte, mountet ASCP diesen Parameterwert. Wenn Sie dieses Feld angeben, müssen Sie auch das Feld objectAlias angeben. Ein Beispiel für die Nutzung dieses Felds finden Sie unter Failover auf einen anderen Parameter.

In der Regel verwenden Sie dieses Feld, wenn es sich bei dem Failover-Parameter nicht um ein Replikat handelt. Ein Beispiel dazu, wie Sie ein Replikat angeben, finden Sie unter Multiregionaler Parameter-Failover.

objectName (Objektname)

Der Name oder vollständige ARN des Failover-Parameters. Wenn Sie einen ARN verwenden, muss die Region im ARN mit dem Feld failoverRegion übereinstimmen.

objectVersion (Objektversion)

(Optional) Die Versions-ID des Parameters. Muss mit der primären objectVersion übereinstimmen. Nicht empfohlen, da Sie jedes Mal, wenn Sie den Parameter aktualisieren, die Versions-ID aktualisieren müssen. Standardmäßig wird die neueste Version verwendet.

objectVersionLabel

(Optional) Der Alias für die Version. Die Standardversion ist die neueste VersionAWSCURRENT.

Erstellen Sie eine SecretProviderClass Basiskonfiguration, um Parameter in Ihren Amazon EKS-Pods zu mounten.

Pod Identity

SecretProviderClass um einen Parameter im selben Amazon EKS-Cluster zu verwenden:

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameter-store spec: provider: aws parameters: objects: | - objectName: "MyParameter" objectType: "ssmparameter" usePodIdentity: "true"
IRSA
apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: deployment-aws-parameter spec: provider: aws parameters: objects: | - objectName: "MyParameter" objectType: "ssmparameter"

SecretProviderClass-Nutzung

Verwenden Sie diese Beispiele, um SecretProviderClass-Konfigurationen für verschiedene Szenarien zu erstellen.

Beispiel: Parameter nach Namen oder ARN mounten

Dieses Beispiel zeigt, wie drei verschiedene Parametertypen gemountet werden:

  • Ein Parameter, der anhand des vollständigen ARN angegeben wird

  • Ein Parameter, der anhand des Namens angegeben wird

  • Eine Parameterversion eines Secrets

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameters spec: provider: aws parameters: objects: | - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter2-d4e5f6" - objectName: "MyParameter3" objectType: "ssmparameter" - objectName: "MyParameter4" objectType: "ssmparameter" objectVersionLabel: "AWSCURRENT"

Beispiel: Schlüssel-Wert-Paare aus einem Parameter mounten

Dieses Beispiel zeigt, wie bestimmte Schlüssel-Wert-Paare aus einem Parameter im JSON-Format gemountet werden:

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameters spec: provider: aws parameters: objects: | - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter-a1b2c3" jmesPath: - path: username objectAlias: dbusername - path: password objectAlias: dbpassword

Beispiel: verschiedene Failover-Konfigurationen

Diese Beispiele veranschaulichen, wie Failover für Parameter konfiguriert wird.

Multiregionaler Parameter-Failover

Dieses Beispiel zeigt, wie Sie einen automatischen Failover für einen Parameter konfigurieren, der über mehrere Regionen repliziert wird:

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameters spec: provider: aws parameters: region: us-east-1 failoverRegion: us-east-2 objects: | - objectName: "MyParameter"
Failover auf einen anderen Parameter

Dieses Beispiel zeigt, wie Sie einen Failover auf einen anderen Parameter (kein Replikat) konfigurieren:

apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-parameters spec: provider: aws parameters: region: us-east-1 failoverRegion: us-east-2 objects: | - objectName: "arn:aws:ssm:us-east-1:777788889999:parameter:MyParameter-a1b2c3" objectAlias: "MyMountedParameter" failoverObject: - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyFailoverParameter-d4e5f6"

Weitere Ressourcen

Weitere Informationen zur Verwendung von ASCP mit Amazon EKS finden Sie in den folgenden Ressourcen: