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
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
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
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
Informationen zur Verwendung der aus Ihren Geheimnissen erstellten Umgebungsvariablen finden Sie in der GitHub Dokumentation unter Umgebungsvariablen
Voraussetzungen
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
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.
Verwendung
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
Parameter
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_VAR_1 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 mitnone
nicht geändert wird. Der Standardwert istuppercase
. 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 eintrue
, 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
auffalse
und analysieren Sie den JSON-Secret-Wert separat.
Benennung von Umgebungsvariablen
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_KeyName“ und ein von JSON analysiertes Geheimnis namens „Secret“ mit einem Schlüssel namens „keyname“ würden beide zu Umgebungsvariablen mit dem Namen „SECRET_KEYNAME“ 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
Beispiel 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
Beispiel 2 Erhalten Sie alle Secrets, die mit einem Präfix beginnen
Im folgenden Beispiel werden Umgebungsvariablen für alle Secrets erstellt, deren Namen mit beginnenbeta
.
- 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
Beispiel 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"
Beispiel 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