Gestire segreti crittografati

Completato

I segreti sono variabili di ambiente crittografate che è possibile creare per archiviare token, credenziali o qualsiasi altro tipo di informazioni riservate su cui si basano i flussi di lavoro e le azioni di GitHub Actions. Una volta creati, possono essere usati in tutti i flussi di lavoro e in tutte le azioni che hanno accesso all'organizzazione, al repository o all'ambiente del repository in cui sono archiviati.

In questa sezione verranno esaminati i diversi strumenti e le varie strategie disponibili in GitHub Enterprise Cloud e GitHub Enterprise Server per gestire l'utilizzo dei segreti crittografati. Verrà inoltre illustrato come accedere ai segreti crittografati nei flussi di lavoro e nelle azioni.

Gestire i segreti crittografati a livello di organizzazione

La creazione di segreti crittografati a livello di organizzazione per archiviare informazioni riservate è una scelta ottimale per garantire la sicurezza delle informazioni riducendo al minimo il sovraccarico di gestione in azienda.

Si supponga che alcuni sviluppatori che scrivono flussi di lavoro in GitHub a livello di organizzazione debbano disporre delle credenziali necessarie per distribuire il codice nell'ambiente di produzione. Per evitare di dover condividere informazioni riservate, è possibile creare un segreto crittografato contenente le credenziali a livello di organizzazione. Le credenziali possono quindi essere usate nei flussi di lavoro senza dover essere esposte.

Per creare un segreto a livello di organizzazione, passare alla sezione Impostazioni dell'organizzazione e, dalla barra laterale, selezionare Segreti e variabili > Azioni > Nuovo segreto dell'organizzazione. Nella schermata visualizzata immettere un nome e un valore e scegliere i criteri di accesso al repository relativi al segreto:

Nuova schermata dei segreti per le organizzazioni.

Dopo essere stati salvati, i criteri di accesso vengono visualizzati sotto il segreto corrispondente nell'elenco dei segreti:

Esempio di segreti crittografati con i criteri di accesso visualizzati.

È possibile selezionare Update (Aggiorna) per altri dettagli sulle autorizzazioni configurate per il segreto.

Gestire segreti crittografati a livello di repository

Se è necessario un segreto crittografato nell'ambito di un repository specifico, GitHub Enterprise Cloud e GitHub Enterprise Server consentono anche di creare segreti a livello di repository.

Per creare un segreto a livello di repository, passare al repository Impostazioni e, dalla barra laterale, selezionare Segreti e variabili > Azioni > Nuovo segreto repository. Nella schermata visualizzata immettere un nome e un valore per il segreto:

Nuova schermata dei segreti per i repository.

Accedere ai segreti crittografati all'interno di azioni e flussi di lavoro

Nei flussi di lavoro

Per accedere a un segreto crittografato in un flusso di lavoro, è necessario usare il contesto secrets nel file del flusso di lavoro. Ad esempio:

steps:
  - name: Hello world action
    with: # Set the secret as an input
      super_secret: ${{ secrets.SuperSecret }}
    env: # Or as an environment variable
      super_secret: ${{ secrets.SuperSecret }}

Nelle azioni

Per accedere a un segreto crittografato in un'azione, è necessario specificare il segreto come parametro input nel file di metadati action.yml. Ad esempio:

inputs:
  super_secret:
    description: 'My secret token'
    required: true

Se è necessario accedere al segreto crittografato nel codice dell'azione, quest'ultimo può leggere il valore dell'input usando la variabile di ambiente $SUPER_SECRET.

Avviso

Quando si creano azioni personalizzate, assicurarsi di non includere segreti crittografati nel codice sorgente dell'azione, poiché le azioni sono unità di lavoro condivisibili. Se nell'azione devono essere usati segreti crittografati o altri input forniti dall'utente, è preferibile usare il modulo di base disponibile in Actions Toolkit.