
Una delle sfide con qualsiasi flusso di lavoro DevOps è la gestione di segreti, password e token che devono essere mantenuti privati per motivi di sicurezza. Ciò è particolarmente vero per i repository open source, in cui il codice è generalmente pubblico. GitHub Secrets aiuta a gestire questo problema quando si lavora con gli script GitHub Actions.
Cosa sono i GitHub Secrets?
GitHub Secrets è essenzialmente un deposito in cui è possibile archiviare le chiavi private, a cui è possibile accedere dagli script GitHub Actions per nome, proprio come le variabili di ambiente. Questo risolve il problema di tenerlo in chiaro nella base di codice, che è un enorme problema di sicurezza anche per i repository privati, e impossibile per quelli pubblici senza essere hackerato immediatamente.
Ciò è utile in molti casi in cui il codice può essere pubblico, ma lo script Actions deve essere autenticato con un servizio di terze parti. Ad esempio, se ospiti file binari su bucket Amazon S3, dovrai fornire allo script il token di accesso per scrivere nello storage AWS. Ovviamente, non vuoi dare a nessuno che visualizza il repository il permesso di sovrascrivere i contenuti del bucket. L'uso di un segreto limita l'accesso e protegge anche la chiave da perdite accidentali.
- I segreti del repository si applicano a un singolo repository. Dovrai impostarli dal pannello delle impostazioni del repository, a cui si accederà come variabili di ambiente nelle build di GitHub Actions.
- I segreti di GitHub Organizations verranno applicati a tutti i repository all'interno di tale organizzazione, fornendo un modo semplice per gestire centralmente le chiavi. Sono impostati dalle impostazioni dell'organizzazione.
- I segreti dell'ambiente si applicano a ambienti GitHub specifici all'interno del repository, come lo sviluppo e la produzione. Questo fornisce un modo semplice per sovrascrivere i segreti di repository/organizzazione per diverse build, come la distribuzione in un ambiente di test rispetto a un ambiente di produzione.
Attualmente, non c'è modo di impostare segreti specifici dell'utente. Se vuoi questa funzionalità, considera di creare un'organizzazione personale.
È possibile archiviare fino a 1.000 segreti dell'organizzazione, 100 segreti del repository e 100 segreti dell'ambiente. Anche i segreti sono limitati a una dimensione di 64 KB, sebbene esistano soluzioni alternative a questa limitazione. Puoi anche memorizzare dati binari come stringhe codificate Base64.
È ancora possibile perderli dallo script Actions se, ad esempio, li hai stampati sulla console con un comando come echo. Ti consigliamo di assicurarti che nessuno degli script in cui stai alimentando i segreti lo rilegga all'utente o l'output in alcun file di registro. Fortunatamente, GitHub impedisce al segreto di essere fornito a determinati comandi di registrazione, incluso echo.
Utilizzo di GitHub Secrets
Per impostare un segreto a livello di repository, dovrai andare al pannello delle impostazioni per il repository e fare clic su Segreti > Azioni. Puoi anche impostare segreti per GitHub Codespaces e Dependabot, se li usi.
Puoi impostare un nome di variabile e incollare il contenuto segreto. Una volta che lasci questa finestra, però, non sarai più in grado di vedere la chiave, anche se puoi modificarla e incollarla in una nuova chiave. Questo è generalmente il modo in cui dovrebbe funzionare la maggior parte degli archivi segreti ed è una buona funzionalità di sicurezza, ma non aspettarti di poter vedere di nuovo questa chiave.

La convenzione di denominazione per i nomi segreti è maiuscola con trattini bassi, altrimenti nota come “screaming snake case,” ma questo non è imposto da nulla.
Quindi, nel tuo script Actions, puoi farvi riferimento eseguendo l'escape come variabile YAML, in questo modo:
${{ secrets.SECRET_NAME }}

Nota che “segreti.” il contesto deve essere incluso prima del nome del segreto. Inoltre, non è necessario fare nulla di speciale per fare riferimento ai segreti dell'organizzazione rispetto a quelli a repository singolo.
Questo valore può essere passato ai comandi, ma puoi anche usarlo per impostare le variabili di ambiente per un processo. Questo è in genere il modo in cui la maggior parte degli strumenti accetterà comunque i segreti, poiché è il sistema più sicuro e flessibile.

Se un segreto non esiste nel tuo account, GitHub utilizzerà una stringa vuota come valore.
Segreti dell'organizzazione
L'impostazione dei segreti a livello di organizzazione viene eseguita allo stesso modo, tuttavia ci sono alcuni controlli aggiuntivi sull'accesso e la distribuzione.
Quando crei un segreto dell'organizzazione, puoi scegliere di applicarlo solo ai repository pubblici o privati, sebbene i segreti privati per l'organizzazione siano un'opzione a pagamento. Puoi anche selezionare repository individuali.

Per creare o modificare un segreto dell'organizzazione, devi avere “admin” accesso all'organizzazione stessa. Questo può essere concesso a tutti i membri modificando le autorizzazioni di base, ma generalmente non è consigliato per le grandi organizzazioni.
LEGGI SUCCESSIVO
- › Il tablet Fire HD 10 da 64 GB di Amazon costa più della metà oggi
- › La funzionalità di ripristino di Windows 11 funzionerà presto con più app
- › Come creare album intelligenti in Apple Photos su Mac
- › Il tuo IP è stato temporaneamente bloccato: 7 modi per risolverlo
- › Risparmia subito il 10% sull'enorme libreria di caratteri premium di Monotype
- › Uno sguardo indietro ai prodotti VR che non sono mai stati all'altezza della pubblicità