

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 Gestione dei segreti AWS i segreti nei GitHub lavori
<a name="retrieving-secrets_github"></a>

Per utilizzare un segreto in un GitHub lavoro, puoi utilizzare un' GitHub azione per recuperare segreti da Gestione dei segreti AWS e aggiungerli come [variabili di ambiente](https://docs.github.com/en/actions/learn-github-actions/environment-variables) mascherate nel tuo GitHub flusso di lavoro. *Per ulteriori informazioni sulle GitHub azioni, consulta [Understanding GitHub Actions](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions) in the GitHub Docs.*

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](https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions) evitare che i segreti presenti nel tuo ambiente vengano utilizzati in modo improprio.

È 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.](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging) GitHub *

*Per utilizzare le variabili di ambiente create dai tuoi segreti, consulta [Variabili di ambiente nei Documenti](https://docs.github.com/en/actions/learn-github-actions/environment-variables). GitHub *

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

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](https://github.com/aws-actions/configure-aws-credentials) to **Assume il ruolo direttamente utilizzando il provider GitHub OIDC**. Ciò consente di utilizzare credenziali di breve durata ed evitare di memorizzare chiavi di accesso aggiuntive al di fuori di Gestione dei segreti.

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 Gestione dei segreti AWS](auth-and-access.md).

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

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
```Parameters

`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\$1VAR\$11** dal `secretId` 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` per `true` 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` su `false` e analizza il valore segreto JSON separatamente. 

## Denominazione delle variabili di ambiente
<a name="retrieving-secrets_github_alias"></a>

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 si analizza 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\$1keyname» e un segreto analizzato in JSON denominato «Secret» con una chiave denominata «keyname» diventerebbero entrambi variabili di ambiente denominate «SECRET\$1KEYNAME».

È 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
<a name="retrieving-secrets_github_examples"></a>

**Example 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
```

**Example 2 Recupera tutti i segreti che iniziano con un prefisso**  
L'esempio seguente 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
```

**Example 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"
```

**Example 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
```