0Pricing
DevOps Bootcamp · Lezione

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 variable

Variabili 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 empty

Introduzione 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.

  1. Acceda alle Impostazioni del repository.
  2. Vada a Secret e variabili > Actions.
  3. Faccia clic su Nuovo secret del repository (oppure su un secret dell'organizzazione per un ambito più ampio).
  4. 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 echo personalizzati 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

  1. Introduzione al Continuous Deployment
  2. Eseguire il deploy in un ambiente di staging
  3. Variabili d’ambiente e segreti
  4. Distribuire in produzione con gate di approvazione
← Torna a DevOps Bootcamp