

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 Manager Geheimnisse in GitHub Jobs
<a name="retrieving-secrets_github"></a>

Um ein Geheimnis in einem GitHub Job zu verwenden, können Sie eine GitHub Aktion verwenden, um Geheimnisse abzurufen AWS Secrets Manager und sie als maskierte [Umgebungsvariablen](https://docs.github.com/en/actions/learn-github-actions/environment-variables) in Ihrem GitHub Workflow hinzuzufügen. Weitere Informationen zu GitHub Aktionen finden Sie in der *GitHub Dokumentation* unter [Grundlegendes zu GitHub Aktionen](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions).

Wenn Sie Ihrer GitHub Umgebung ein Geheimnis hinzufügen, steht es für alle anderen Schritte Ihres GitHub Jobs zur Verfügung. Folgen Sie den Anweisungen unter [Sicherheitshärtung für GitHub Maßnahmen](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions), um zu verhindern, dass geheime Daten in Ihrer Umgebung missbraucht werden.

Sie können die gesamte Zeichenfolge im Secret-Wert als Umgebungsvariablenwert festlegen, oder wenn die Zeichenfolge JSON ist, können Sie den JSON-Code analysieren, um einzelne Umgebungsvariablen für jedes JSON-Schlüsselwertpaar festzulegen. Wenn der Secret-Wert ein Binärwert ist, wandelt die Aktion ihn in eine Zeichenfolge um.

Um die aus Ihren Secrets erstellten Umgebungsvariablen anzuzeigen, aktivieren Sie die Debug-Protokollierung. *Weitere Informationen finden Sie in der Dokumentation unter [Aktivieren der Debug-Protokollierung](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging). GitHub *

Informationen zur Verwendung der aus Ihren Geheimnissen erstellten Umgebungsvariablen finden Sie in der *GitHub Dokumentation* unter [Umgebungsvariablen](https://docs.github.com/en/actions/learn-github-actions/environment-variables).

## Voraussetzungen
<a name="retrieving-secrets_github_prereq"></a>

Um diese Aktion verwenden zu können, müssen Sie zunächst AWS Anmeldeinformationen konfigurieren und diese AWS-Region in Ihrer GitHub Umgebung einrichten, indem Sie den `configure-aws-credentials` Schritt ausführen. Folgen Sie den Anweisungen unter [Aktion „ AWS Anmeldeinformationen für GitHub Aktionen konfigurieren](https://github.com/aws-actions/configure-aws-credentials)“, um die **Rolle direkt über den GitHub OIDC-Anbieter zu übernehmen**. Auf diese Weise können Sie Anmeldeinformationen mit kurzer Lebensdauer verwenden und vermeiden, dass zusätzliche Zugriffsschlüssel außerhalb von Secrets Manager gespeichert werden.

Die IAM-Rolle, die die Aktion annimmt, muss über die folgenden Berechtigungen verfügen:
+ `GetSecretValue` auf den Secrets, die Sie abrufen möchten.
+ `ListSecrets` auf allen Secrets.
+ (Optional)`Decrypt`, KMS key ob die Geheimnisse mit einem verschlüsselt sind. Kundenverwalteter Schlüssel

Weitere Informationen finden Sie unter [Authentifizierung und Zugriffskontrolle für AWS Secrets Manager](auth-and-access.md).

## Usage
<a name="retrieving-secrets_github_usage"></a>

Um die Aktion zu verwenden, fügen Sie Ihrem Workflow einen Schritt hinzu, der die folgende Syntax verwendet.

```
- name: Step name
  uses: aws-actions/aws-secretsmanager-get-secrets@v2
  with:
    secret-ids: |
      secretId1
      ENV_VAR_NAME, secretId2
    name-transformation: (Optional) uppercase|lowercase|none
    parse-json-secrets: (Optional) true|false
```Parameters

`secret-ids`  
Geheime ARNS, Namen und Namenspräfixe.  
Um den Namen der Umgebungsvariablen festzulegen, geben Sie ihn vor der Secret-ID ein, gefolgt von einem Komma. Beispielsweise erstellt `ENV_VAR_1, secretId` eine Umgebungsvariable namens **ENV\$1VAR\$11** aus der Secret-`secretId`. Die Namen von Umgebungsvariablen können Buchstaben, Zahlen und den Unterstriche enthalten.  
Um ein Präfix zu verwenden, geben Sie mindestens drei Zeichen gefolgt von einem Sternchen ein. Zum Beispiel entspricht `dev*` allen Secrets mit einem Namen, der mit **dev** beginnt. Die maximale Anzahl übereinstimmender Secrets, die abgerufen werden können, ist 100. Wenn Sie den Variablennamen festlegen und das Präfix mit mehreren Secrets übereinstimmt, schlägt die Aktion fehl.

`name-transformation`  
Standardmäßig erstellt der Schritt jeden Umgebungsvariablennamen aus dem Secret-Namen, der so umgewandelt wird, dass er nur Großbuchstaben, Zahlen und Unterstriche enthält, sodass er nicht mit einer Zahl beginnt. Für die Buchstaben im Namen können Sie den Schritt so konfigurieren, dass Kleinbuchstaben zusammen verwendet werden `lowercase` oder dass die Groß- und Kleinschreibung der Buchstaben mit `none` nicht geändert wird. Der Standardwert ist `uppercase`.

`parse-json-secrets`  
(Optional) Standardmäßig legt die Aktion den Wert der Umgebungsvariablen auf die gesamte JSON-Zeichenfolge im Secret-Wert fest. Stellen Sie `parse-json-secrets` auf ein`true`, um Umgebungsvariablen für jedes Schlüssel-Wert-Paar im JSON zu erstellen.   
Beachten Sie, dass die Aktion doppelte Namenskonflikte aufweist, wenn JSON Schlüssel wie „name“ und „Name“ verwendet, bei denen die Groß-/Kleinschreibung beachtet wird. Setzen Sie in diesem Fall `parse-json-secrets` auf `false` und analysieren Sie den JSON-Secret-Wert separat. 

## Benennung von Umgebungsvariablen
<a name="retrieving-secrets_github_alias"></a>

Die durch die Aktion erstellten Umgebungsvariablen haben den gleichen Namen wie die Geheimnisse, aus denen sie stammen. Für Umgebungsvariablen gelten strengere Benennungsanforderungen als für Geheimnisse, sodass die Aktion geheime Namen so transformiert, dass sie diese Anforderungen erfüllen. Die Aktion wandelt beispielsweise Kleinbuchstaben in Großbuchstaben um. Wenn Sie den JSON-Code des Geheimnisses analysieren, enthält der Name der Umgebungsvariablen beispielsweise sowohl den geheimen Namen als auch den JSON-Schlüsselnamen. `MYSECRET_KEYNAME` Sie können die Aktion so konfigurieren, dass Kleinbuchstaben nicht umgewandelt werden.

Wenn zwei Umgebungsvariablen am Ende denselben Namen haben würden, schlägt die Aktion fehl. In diesem Fall müssen Sie die Namen, die Sie für die Umgebungsvariablen verwenden möchten, als *Aliase* angeben.

Beispiele dafür, wann die Namen in Konflikt geraten könnten:
+ Ein Geheimnis mit dem Namen "MySecret" und ein Geheimnis mit dem Namen „mysecret“ würden beide zu Umgebungsvariablen mit dem Namen „MYSECRET“ werden.
+ Ein Geheimnis namens „Secret\$1KeyName“ und ein von JSON analysiertes Geheimnis namens „Secret“ mit einem Schlüssel namens „keyname“ würden beide zu Umgebungsvariablen mit dem Namen „SECRET\$1KEYNAME“ werden.

Sie können den Namen der Umgebungsvariablen festlegen, indem Sie einen *Alias angeben, wie im folgenden Beispiel gezeigt, wodurch* eine Variable mit dem Namen erstellt wird. `ENV_VAR_NAME`

```
secret-ids: |
  ENV_VAR_NAME, secretId2
```

**Leere Aliase**
+ Wenn Sie einen leeren Alias, gefolgt von einem Komma und dann der geheimen ID, festlegen `parse-json-secrets: true` und eingeben, benennt die Aktion die Umgebungsvariable genauso wie die analysierten JSON-Schlüssel. Die Variablennamen enthalten nicht den geheimen Namen. 

  Wenn das Geheimnis kein gültiges JSON enthält, erstellt die Aktion eine Umgebungsvariable und benennt sie genauso wie den geheimen Namen.
+ Wenn Sie einen leeren Alias, gefolgt von einem Komma und der geheimen ID, festlegen `parse-json-secrets: false` und eingeben, benennt die Aktion die Umgebungsvariablen so, als ob Sie keinen Alias angegeben hätten.

Das folgende Beispiel zeigt einen leeren Alias.

```
,secret2
```

## Beispiele
<a name="retrieving-secrets_github_examples"></a>

**Example 1 Erhalten Sie Secrets nach Namen und ARN**  
Im folgenden Beispiel werden Umgebungsvariablen für Secrets erstellt, die durch Name und ARN identifiziert werden.  

```
- name: Get secrets by name and by ARN
  uses: aws-actions/aws-secretsmanager-get-secrets@v2
  with:
    secret-ids: |
      exampleSecretName
      arn:aws:secretsmanager:us-east-2:123456789012:secret:test1-a1b2c3
      0/test/secret
      /prod/example/secret
      SECRET_ALIAS_1,test/secret
      SECRET_ALIAS_2,arn:aws:secretsmanager:us-east-2:123456789012:secret:test2-a1b2c3
      ,secret2
```
Erstellte Umgebungsvariablen:  

```
EXAMPLESECRETNAME: secretValue1
TEST1: secretValue2
_0_TEST_SECRET: secretValue3
_PROD_EXAMPLE_SECRET: secretValue4
SECRET_ALIAS_1: secretValue5
SECRET_ALIAS_2: secretValue6
SECRET2: secretValue7
```

**Example 2 Erhalten Sie alle Secrets, die mit einem Präfix beginnen**  
Im folgenden Beispiel werden Umgebungsvariablen für alle Secrets erstellt, deren Namen mit beginnen*beta*.  

```
- name: Get Secret Names by Prefix
  uses: 2
  with:
    secret-ids: |
      beta*    # Retrieves all secrets that start with 'beta'
```
Erstellte Umgebungsvariablen:  

```
BETASECRETNAME: secretValue1
BETATEST: secretValue2
BETA_NEWSECRET: secretValue3
```

**Example 3 Analysieren Sie JSON im Secret**  
Im folgenden Beispiel werden Umgebungsvariablen erstellt, indem das JSON im Secret analysiert wird.  

```
- name: Get Secrets by Name and by ARN
  uses: aws-actions/aws-secretsmanager-get-secrets@v2
  with:
    secret-ids: |
      test/secret
      ,secret2
    parse-json-secrets: true
```
Das Secret `test/secret` hat den folgenden Secret-Wert.  

```
{
  "api_user": "user",
  "api_key": "key",
  "config": {
    "active": "true"
  }
}
```
Das Secret `secret2` hat den folgenden Secret-Wert.  

```
{
  "myusername": "alejandro_rosalez",
  "mypassword": "EXAMPLE_PASSWORD"
}
```
Erstellte Umgebungsvariablen:  

```
TEST_SECRET_API_USER: "user"
TEST_SECRET_API_KEY: "key"
TEST_SECRET_CONFIG_ACTIVE: "true"
MYUSERNAME: "alejandro_rosalez"
MYPASSWORD: "EXAMPLE_PASSWORD"
```

**Example 4 Verwenden Sie Kleinbuchstaben für Namen von Umgebungsvariablen**  
Im folgenden Beispiel wird eine Umgebungsvariable mit einem Namen in Kleinbuchstaben erstellt.  

```
- name: Get secrets
  uses: aws-actions/aws-secretsmanager-get-secrets@v2
  with:
    secret-ids: exampleSecretName
    name-transformation: lowercase
```
Die Umgebungsvariable wurde erstellt:  

```
examplesecretname: secretValue
```