Variabili d’ambiente e segreti
Impari a gestire in modo sicuro le informazioni sensibili e le configurazioni specifiche per ambiente in GitHub Actions.
Variabili d’ambiente e segreti è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Variabili d'ambiente e secret: nozioni di base
Benvenuto alla lezione 3! Nel CI/CD, spesso è necessario configurare le pipeline con valori dinamici o informazioni sensibili.
È qui che le variabili d'ambiente e i secret diventano indispensabili. Consentono ai workflow di adattarsi a scenari diversi e di gestire i dati sensibili in modo sicuro.
Perché usarli nel CI/CD?
Immagini di eseguire il deployment in ambienti diversi (sviluppo, staging e produzione) o di connettersi a servizi esterni tramite chiavi API.
- Flessibilità: le variabili d'ambiente consentono di modificare il comportamento senza modificare il file del workflow.
- Sicurezza: i secret proteggono dati sensibili come password e token API, impedendone l'esposizione.
- Riutilizzabilità: è possibile definire una configurazione una sola volta e utilizzarla in più job o passaggi.
Variabili d'ambiente in Actions
Una variabile d'ambiente è un valore con un nome dinamico che può influire sul comportamento dei processi in esecuzione. In GitHub Actions, è fondamentale per rendere configurabili i workflow.
È possibile definire variabili d'ambiente personalizzate o utilizzare le numerose variabili integrate fornite da GitHub Actions.
Variabili d'ambiente integrate di GitHub Actions
GitHub Actions fornisce automaticamente molte utili variabili d'ambiente predefinite. Queste offrono informazioni contestuali sul repository, sull'esecuzione del workflow e altro ancora.
Ad esempio, GITHUB_SHA è l'hash del commit, mentre GITHUB_REF è il nome del branch o del tag che ha attivato il workflow.
È possibile accedervi utilizzando l'oggetto di contesto github nelle espressioni oppure direttamente come variabili della shell, se associate a env.
name: Print Context Variables
on: [push]
jobs:
display_info:
runs-on: ubuntu-latest
steps:
- name: Show commit SHA
run: echo "Commit SHA: ${{ github.sha }}"
- name: Show branch/tag ref
run: echo "Ref: ${{ github.ref }}"Variabili d'ambiente personalizzate: ambito del workflow
È possibile definire variabili d'ambiente personalizzate a livello di workflow o di job. Le variabili definite a livello di workflow sono disponibili per tutti i job e i passaggi all'interno del workflow.
Utilizzi la parola chiave env al livello principale del file del workflow per impostarle.
name: Workflow-level Env Var
on: [push]
env:
GREETING_MESSAGE: "Hello from Workflow!"
jobs:
my_job:
runs-on: ubuntu-latest
steps:
- name: Access workflow variable
run: echo "${{ env.GREETING_MESSAGE }}" # Access via env context
- name: Access workflow variable (shell)
env:
MY_VAR_IN_SHELL: ${{ env.GREETING_MESSAGE }}
run: echo "$MY_VAR_IN_SHELL" # Access as shell variableVariabili d'ambiente personalizzate: ambito di job e step
Per esigenze più specifiche, definisca le variabili d'ambiente a livello di job o di step. Una variabile definita per un job è disponibile per tutti i suoi passaggi, mentre una variabile a livello di step è disponibile solo per quello specifico passaggio.
Questo consente di controllare la configurazione in modo dettagliato.
name: Job & Step-level Env Vars
on: [push]
jobs:
my_job:
runs-on: ubuntu-latest
env:
JOB_VAR: "Value for this job"
steps:
- name: Access Job-level variable
run: echo "Job Var: ${{ env.JOB_VAR }}"
- name: Step-specific variable
env:
STEP_VAR: "Value for this step"
run: echo "Step Var: ${{ env.STEP_VAR }}"
- name: Try to access step var in another step
run: echo "Trying to access: ${{ env.STEP_VAR }}" || true # Will be emptyIntroduzione ai GitHub Secrets
Le variabili d'ambiente sono ideali per i dati non sensibili, ma come gestire informazioni riservate come chiavi API, password di database o token privati?
È qui che entrano in gioco i GitHub Secrets. Consentono di archiviare in modo sicuro le informazioni sensibili e di accedervi nei workflow senza esporle nel codice o nei log del repository.
- Crittografati: vengono archiviati in modo sicuro da GitHub.
- Oscurati: vengono nascosti automaticamente nei log dei workflow.
- Accesso controllato: sono disponibili solo per workflow specifici.
Creare GitHub Secrets
I secret vengono creati e gestiti nelle impostazioni del repository o dell'organizzazione su GitHub, non direttamente nei file del workflow.
- Acceda alle Impostazioni del repository.
- Vada a Secret e variabili > Actions.
- Faccia clic su Nuovo secret del repository (oppure su un secret dell'organizzazione per un ambito più ampio).
- Inserisca un Nome (ad esempio
MY_API_KEY) e incolli il Valore.
Dopo il salvataggio, non sarà più possibile visualizzare il valore di un secret: sarà possibile solo aggiornarlo o eliminarlo.
Utilizzare i secret nei workflow
Per utilizzare un secret, vi faccia riferimento tramite l'oggetto di contesto secrets nel workflow, in modo analogo all'utilizzo di env per le variabili d'ambiente.
GitHub oscura automaticamente i secret nei log, sostituendone i valori con *** per impedirne l'esposizione accidentale.
name: Use a Secret Demo
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Display a secret (redacted)
run: echo "My secret key is: ${{ secrets.MY_API_KEY }}"
# GitHub Actions automatically redacts the value in logs.
- name: Pass secret to an environment variable
env:
API_KEY_ENV: ${{ secrets.MY_API_KEY }}
run: echo "API Key in env: $API_KEY_ENV"Best practice per la sicurezza dei secret
Gestire i secret in modo sicuro è fondamentale per l'integrità della pipeline CI/CD. Segua sempre queste linee guida:
- Minimo privilegio: conceda l'accesso ai secret solo dove è assolutamente necessario.
- Mai codificarli direttamente: non inserisca i secret direttamente nei file del workflow o in qualsiasi codice del repository.
- Eviti di registrarli nei log: anche se GitHub oscura i secret, eviti comandi
echopersonalizzati che potrebbero rivelarne accidentalmente alcune parti. - Ruotare regolarmente: modifichi periodicamente i secret per ridurre al minimo il rischio di compromissione.
- Specifici per l'ambiente: utilizzi secret diversi per gli ambienti di sviluppo, staging e produzione.
Verifica rapida: variabili d'ambiente e secret
Quale affermazione descrive accuratamente una differenza o una caratteristica fondamentale delle variabili d'ambiente e dei segreti di GitHub Actions?
Riepilogo: configurazioni sicure
Fantastico! Ha esplorato con successo come gestire le configurazioni nei workflow di GitHub Actions.
- Le variabili d'ambiente consentono di inserire dati dinamici non sensibili nelle esecuzioni del workflow e possono essere adattate a livello di workflow, job o step.
- I segreti sono essenziali per gestire in modo sicuro informazioni sensibili come le chiavi API, garantendo che rimangano crittografate e al di fuori del codice pubblico.
- Quando lavora con i segreti, aderisca sempre alle procedure consigliate di sicurezza per proteggere le distribuzioni dalle vulnerabilità.
Padroneggiare questi concetti garantisce che le pipeline CI/CD siano flessibili e sicure!
Domande Frequenti
La lezione «Variabili d’ambiente e segreti» è gratuita?
Sì — il testo completo di «Variabili d’ambiente e segreti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Variabili d’ambiente e segreti»?
Impari a gestire in modo sicuro le informazioni sensibili e le configurazioni specifiche per ambiente in GitHub Actions. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Variabili d’ambiente e segreti»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Introduzione al Continuous Deployment
- Eseguire il deploy in un ambiente di staging
- Variabili d’ambiente e segreti
- Distribuire in produzione con gate di approvazione