

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
<a name="ascp-examples"></a>

## Beispiele für ASCP-Authentifizierung und Zugriffskontrolle
<a name="ascp-auth-access-examples"></a>

### 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:
<a name="w2aac19c17c18b5b3"></a>

------
#### [ JSON ]

****  

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

------

## SecretProviderClass
<a name="ascp-examples-secretproviderclass"></a>

Sie verwenden YAML, um zu beschreiben, welche Secrets mithilfe des ASCP in Amazon EKS gemountet werden sollen. Beispiele finden Sie unter [SecretProviderClass Verwendung](#ascp-scenarios-secretproviderclass).

### SecretProviderClass YAML-Struktur
<a name="w2aac19c17c18c25b5"></a>

```
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) Das AWS-Region Geheimnis. 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 der ASCP, das Secret aus beiden Regionen abzurufen. Wenn eine Region einen 4xx-Fehler zurückgibt, z. B. aufgrund eines Authentifizierungsproblems, mountet der ASCP keines der Secrets. Wenn das Secret erfolgreich von `region` abgerufen wurde, mountet der ASCP diesen Secret-Wert. Wenn das Secret nicht erfolgreich von `region` abgerufen wurde, aber efolgreich von `failoverRegion` abgerufen werden konnte, mountet der ASCP diesen Secret-Wert.

**failoverRegion**  
(Optional) Wenn Sie dieses Feld angeben, versucht der 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 der ASCP keines der Secrets. Wenn das Secret erfolgreich von `region` abgerufen wurde, mountet der ASCP diesen Secret-Wert. Wenn das Secret nicht erfolgreich von `region` abgerufen wurde, aber efolgreich von `failoverRegion` abgerufen werden konnte, mountet der ASCP diesen Secret-Wert. Ein Beispiel für die Nutzung dieses Felds finden Sie unter [Geheimes Failover für mehrere Regionen](#multi-region-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 (\$1), d. h. `My/Path/Secret` wird als `My_Path_Secret` 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"` — Die Verwendung des Pod Identity IPv4 Agent-Endpunkts erzwingen
+ `"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 (\$1) zu verwenden.    
**objectName (Objektname)**  
Erforderlich Gibt den Namen des Geheimnisses oder Parameters an, der abgerufen werden soll. Für Secrets Manager ist dies der Parameter [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters) und kann entweder der Anzeigename oder der vollständige ARN des Secrets sein. Für SSM Parameter Store ist dies [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters)der Parameter und kann entweder der Name oder der vollständige ARN des Parameters sein.  
**objectType**  
Erforderlich, wenn Sie keinen Secrets Manager ARN für `objectName` verwenden. Kann `secretsmanager` oder `ssmparameter` sein.   
**objectAlias (Objektalias)**  
(Optional) Der Dateiname des Secrets im Amazon-EKS-Pod. Wenn Sie dieses Feld nicht angeben, wird `objectName` als Dateiname angezeigt.  
**Dateiberechtigung**  
(Optional) Die vierstellige Oktalzeichenfolge, die die Dateiberechtigung zum Einhängen von Secret angibt. Wenn Sie dieses Feld nicht angeben, wird standardmäßig verwendet. `"0644"`   
**objectVersion (Objektversion)**  
(Optional) Die Versions-ID des Secrets. Nicht empfohlen, da Sie jedes Mal, wenn Sie das Secret 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 Version AWSCURRENT. Weitere Informationen finden Sie unter [Geheime Versionen](whats-in-a-secret.md#term_version). Wenn Sie eine `failoverRegion` angeben, stellt dieses Feld den primären `objectVersionLabel` dar.  
**jmesPath (jmes-Pfad)**  
(Optional) Eine Zuordnung der Schlüssel im Secret zu den Dateien, die in Amazon EKS bereitgestellt werden sollen. Um dieses Feld zu verwenden, muss Ihr Secret-Wert im JSON-Format vorliegen. 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 geheimen Werts. 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"'`  
**Datei/Berechtigung**  
(Optional) Die vierstellige Oktalzeichenfolge, die die Dateiberechtigung zum Einhängen von Secret angibt. Wenn Sie dieses Feld nicht angeben, wird standardmäßig die Dateiberechtigung des übergeordneten Objekts verwendet.   
**failoverObject**  
(Optional) Wenn Sie dieses Feld angeben, versucht der ASCP, sowohl das im primären `objectName` angegebene Secret als auch das im `failoverObject`-`objectName`-Unterfeld angegebene Secret abzurufen. Wenn eines von beiden einen 4xx-Fehler zurückgibt, z. B. aufgrund eines Authentifizierungsproblems, mountet der ASCP keines der Secrets. Wenn das Secret erfolgreich vom primären `objectName` abgerufen wurde, mountet der ASCP diesen Secret-Wert. Wenn das Secret nicht erfolgreich vom primären `objectName` abgerufen wurde, aber efolgreich vom Failover-`objectName` abgerufen werden konnte, mountet der ASCP diesen Secret-Wert. 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 ein anderes Geheimnis](#failover-secret).  
In der Regel verwenden Sie dieses Feld, wenn es sich bei dem Failover-Secret nicht um ein Replikat handelt. Ein Beispiel dazu, wie Sie ein Replikat angeben, finden Sie unter [Geheimes Failover für mehrere Regionen](#multi-region-failover).    
**objectName (Objektname)**  
Der Name oder vollständige ARN des Failover-Secrets. Wenn Sie einen ARN verwenden, muss die Region im ARN mit dem Feld `failoverRegion` übereinstimmen.  
**objectVersion (Objektversion)**  
(Optional) Die Versions-ID des Secrets. Muss mit der primären `objectVersion` übereinstimmen. Nicht empfohlen, da Sie jedes Mal, wenn Sie das Secret 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 Version AWSCURRENT. Weitere Informationen finden Sie unter [Geheime Versionen](whats-in-a-secret.md#term_version). 

### Erstellen Sie eine SecretProviderClass Basiskonfiguration, um Secrets in Ihren Amazon EKS-Pods zu mounten.
<a name="w2aac19c17c18c25c11"></a>

------
#### [ Pod Identity ]

SecretProviderClass um ein Geheimnis im selben Amazon EKS-Cluster zu verwenden:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets-manager
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "mySecret"
        objectType: "secretsmanager"
    usePodIdentity: "true"
```

------
#### [ IRSA ]

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: deployment-aws-secrets
spec:
  provider: aws
  parameters:
    objects: |
        - objectName: "MySecret"
          objectType: "secretsmanager"
```

------

### SecretProviderClass Verwendung
<a name="ascp-scenarios-secretproviderclass"></a>

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

#### Beispiel: Secrets nach Namen oder ARN mounten
<a name="mount-by-name-arn"></a>

Dieses Beispiel zeigt, wie drei verschiedene Arten von Geheimnissen bereitgestellt werden:
+ Ein durch den vollständigen ARN spezifiziertes Geheimnis
+ Ein namentlich angegebenes Geheimnis
+ Eine bestimmte Version eines Geheimnisses

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:secretsmanager:us-east-2:777788889999:secret:MySecret2-d4e5f6"
      - objectName: "MySecret3"
        objectType: "secretsmanager"
      - objectName: "MySecret4"
        objectType: "secretsmanager"
        objectVersionLabel: "AWSCURRENT"
```

#### Beispiel: Hängen Sie Schlüssel-Wert-Paare aus einem Secret ein
<a name="mount-key-value-pairs"></a>

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

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

#### Beispiel: Einhängen von Geheimnissen mit Dateiberechtigungen
<a name="mount-by-permission"></a>

Dieses Beispiel zeigt, wie ein Secret mit einer bestimmten Dateiberechtigung bereitgestellt wird

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "mySecret"
        objectType: "secretsmanager"
        filePermission: "0600"
        jmesPath: 
            - path: username
              objectAlias: dbusername
              filePermission: "0400"
```

#### Beispiel: verschiedene Failover-Konfigurationen
<a name="failover-examples"></a>

Diese Beispiele zeigen, wie ein Failover für geheime Daten konfiguriert wird.

##### Geheimes Failover für mehrere Regionen
<a name="multi-region-failover"></a>

Dieses Beispiel zeigt, wie ein automatisches Failover für ein Geheimnis konfiguriert wird, das in mehreren Regionen repliziert wird:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "MySecret"
```

##### Failover auf ein anderes Geheimnis
<a name="failover-secret"></a>

Dieses Beispiel zeigt, wie ein Failover auf ein anderes Geheimnis (kein Replikat) konfiguriert wird:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-secrets
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "arn:aws:secretsmanager:us-east-1:777788889999:secret:MySecret-a1b2c3"
        objectAlias: "MyMountedSecret"
        failoverObject: 
          - objectName: "arn:aws:secretsmanager:us-east-2:777788889999:secret:MyFailoverSecret-d4e5f6"
```

## Weitere Ressourcen
<a name="additional-resources"></a>

Weitere Informationen zur Verwendung von ASCP mit Amazon EKS finden Sie in den folgenden Ressourcen:
+ [Verwenden von Pod Identity mit Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [Verwendung von AWS Geheimnissen und Configuration Provider](https://docs.aws.amazon.com/secretsmanager/latest/userguide/integrating_ascp_csi.html)
+ [AWS Secrets Store CSI-Treiber aktiviert GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)