Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usa AWS Secrets Manager i segreti nei GitHub lavori
Per utilizzare un segreto in un GitHub lavoro, puoi utilizzare un' GitHub azione per recuperare segreti da AWS Secrets Manager e aggiungerli come variabili di ambiente
Quando aggiungi un segreto al tuo GitHub ambiente, questo è disponibile per tutte le altre fasi del tuo GitHub lavoro. Segui le indicazioni contenute in Security Hardening for GitHub Actions per
È possibile impostare l'intera stringa nel valore segreto come valore della variabile di ambiente oppure, se la stringa è JSON, è possibile analizzare il JSON per impostare variabili di ambiente individuali per ogni coppia chiave-valore JSON. Se il valore segreto è binario, l'operazione lo converte in una stringa.
Per visualizzare le variabili di ambiente create dai tuoi segreti, attiva la registrazione del debug. Per ulteriori informazioni, consulta Abilitazione della registrazione di debug nei Documenti.
Per utilizzare le variabili di ambiente create dai tuoi segreti, consulta Variabili di ambiente nei Documenti
Prerequisiti
Per utilizzare questa azione, devi prima configurare AWS le credenziali e impostarle Regione AWS nel tuo GitHub ambiente utilizzando la configure-aws-credentials
procedura. Segui le istruzioni riportate nella sezione Configurazione AWS
delle credenziali Action for GitHub Actions
Il ruolo IAM assunto dall'operazione deve disporre delle seguenti autorizzazioni:
GetSecretValue
sui segreti che desideri recuperare.ListSecrets
su tutti i segreti.(Facoltativo)
Decrypt
KMS key se i segreti sono crittografati con un. chiave gestita dal cliente
Per ulteriori informazioni, consulta Autenticazione e controllo degli accessi per AWS Secrets Manager.
Utilizzo
Per utilizzare l'operazione, aggiungi un passaggio al flusso di lavoro che utilizza la seguente sintassi.
- 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
Parametri
secret-ids
-
ARN segreti, nomi e prefissi dei nomi.
Per impostare il nome della variabile di ambiente, inseriscilo prima dell'ID del segreto, seguito da una virgola. Ad esempio,
ENV_VAR_1, secretId
crea una variabile di ambiente denominata ENV_VAR_1 dalsecretId
del segreto. Il nome della variabile di ambiente può contenere lettere maiuscole, numeri e il carattere di sottolineatura.Per utilizzare un prefisso, inserisci almeno tre caratteri seguiti da un asterisco. Ad esempio,
dev*
abbina tutti i segreti con un nome che inizia in dev. Possono essere recuperati fino a 100 segreti corrispondenti. Se imposti il nome della variabile e il prefisso trova corrispondenze con più segreti, l'operazione ha esito negativo. name-transformation
-
Per impostazione predefinita, la fase crea ogni nome di variabile di ambiente dal nome del segreto, trasformato in modo da includere solo lettere maiuscole, numeri e caratteri di sottolineatura e in modo che non inizi con un numero. Per le lettere del nome, puoi configurare il passaggio in cui utilizzare lettere minuscole con
lowercase
o non modificare le lettere maiuscole con.none
Il valore predefinito èuppercase
. parse-json-secrets
-
(Facoltativo) Per impostazione predefinita, l'operazione imposta il valore della variabile di ambiente sull'intera stringa JSON nel valore del segreto. Imposta
parse-json-secrets
pertrue
creare variabili di ambiente per ogni coppia chiave-valore in JSON.Ricorda che se il JSON utilizza chiavi con distinzione tra maiuscole e minuscole (come "nome" e "Nome"), l'operazione risconterà conflitti di nomi duplicati. In questo caso, imposta
parse-json-secrets
sufalse
e analizza il valore segreto JSON separatamente.
Denominazione delle variabili di ambiente
Le variabili di ambiente create dall'azione hanno lo stesso nome dei segreti da cui provengono. Le variabili di ambiente hanno requisiti di denominazione più rigorosi rispetto ai segreti, quindi l'azione trasforma i nomi segreti per soddisfare tali requisiti. Ad esempio, l'operazione trasforma le lettere minuscole in lettere maiuscole. Se analizzi il codice JSON del segreto, il nome della variabile di ambiente include sia il nome segreto che il nome della chiave JSON, ad esempio. MYSECRET_KEYNAME
È possibile configurare l'azione per non trasformare le lettere minuscole.
Se due variabili di ambiente finiscono con lo stesso nome, l'azione ha esito negativo. In questo caso, è necessario specificare i nomi che si desidera utilizzare per le variabili di ambiente come alias.
Esempi di casi in cui i nomi potrebbero essere in conflitto:
Un segreto chiamato "MySecret" e un segreto chiamato «mysecret» diventerebbero entrambi variabili di ambiente denominate «MYSECRET».
Un segreto denominato «SECRET_keyname» e un segreto analizzato in JSON denominato «Secret» con una chiave denominata «keyname» diventerebbero entrambi variabili di ambiente denominate «SECRET_KEYNAME».
È possibile impostare il nome della variabile di ambiente specificando un alias, come illustrato nell'esempio seguente, che crea una variabile denominata. ENV_VAR_NAME
secret-ids: | ENV_VAR_NAME, secretId2
Alias vuoti
-
Se imposti
parse-json-secrets: true
e inserisci un alias vuoto, seguito da una virgola e quindi dall'ID segreto, l'azione assegna alla variabile di ambiente lo stesso nome delle chiavi JSON analizzate. I nomi delle variabili non includono il nome segreto.Se il segreto non contiene un codice JSON valido, l'azione crea una variabile di ambiente e la nomina con lo stesso nome del segreto.
-
Se imposti
parse-json-secrets: false
e inserisci un alias vuoto, seguito da una virgola e dall'ID segreto, l'azione nomina le variabili di ambiente come se non avessi specificato un alias.
L'esempio seguente mostra un alias vuoto.
,secret2
Esempi
Esempio 1 Recupera segreti per nome e per ARN
L'esempio seguente crea variabili di ambiente per i segreti identificati dal nome e dall'ARN.
- 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
Variabili di ambiente create:
EXAMPLESECRETNAME: secretValue1
TEST1: secretValue2
_0_TEST_SECRET: secretValue3
_PROD_EXAMPLE_SECRET: secretValue4
SECRET_ALIAS_1: secretValue5
SECRET_ALIAS_2: secretValue6
SECRET2: secretValue7
Esempio 2 Recupera tutti i segreti che iniziano con un prefisso
L'esempio di seguito crea variabili di ambiente per tutti i segreti con nomi che iniziano con beta
.
- name: Get Secret Names by Prefix uses: 2 with: secret-ids: | beta* # Retrieves all secrets that start with 'beta'
Variabili di ambiente create:
BETASECRETNAME: secretValue1
BETATEST: secretValue2
BETA_NEWSECRET: secretValue3
Esempio 3 Analizza il JSON nel segreto
L'esempio di seguito crea variabili di ambiente analizzando il JSON nel segreto.
- 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
Il segreto test/secret
ha il seguente valore segreto.
{
"api_user": "user",
"api_key": "key",
"config": {
"active": "true"
}
}
Il segreto secret2
ha il seguente valore segreto.
{
"myusername": "alejandro_rosalez",
"mypassword": "EXAMPLE_PASSWORD"
}
Variabili di ambiente create:
TEST_SECRET_API_USER: "user"
TEST_SECRET_API_KEY: "key"
TEST_SECRET_CONFIG_ACTIVE: "true"
MYUSERNAME: "alejandro_rosalez"
MYPASSWORD: "EXAMPLE_PASSWORD"
Esempio 4 Usa lettere minuscole per i nomi delle variabili di ambiente
L'esempio seguente crea una variabile di ambiente con un nome minuscolo.
- name: Get secrets uses: aws-actions/aws-secretsmanager-get-secrets@v2 with: secret-ids: exampleSecretName name-transformation: lowercase
Variabile di ambiente creata:
examplesecretname: secretValue