Controllare l'accesso e l'utilizzo delle azioni nell'organizzazione

Completato

Controllare l'accesso alle azioni all'interno dell'organizzazione

Il controllo di accesso in GitHub Actions determina:

  • Chi può eseguire flussi di lavoro che usano azioni.
  • Quali azioni possono essere usate all'interno di un'organizzazione.
  • Come gli strumenti di esecuzione self-hosted eseguono i flussi di lavoro in modo sicuro.
  • Chi può modificare e aggiornare le Actions di GitHub condivise.

Gli amministratori aziendali devono trovare un equilibrio tra offrire agli sviluppatori flessibilità e garantire sicurezza e governance sui flussi di lavoro di automazione.

Criteri a livello di organizzazione per il controllo delle azioni

GitHub Enterprise consente agli amministratori di impostare criteri a livello di organizzazione che controllano il modo in cui vengono usate le azioni in tutti i repository all'interno di un'organizzazione. Questi criteri consentono alle organizzazioni di limitare l'uso di azioni di terze parti, applicare misure di sicurezza e standardizzare i flussi di lavoro di automazione.

Autorizzazioni a livello di repository per le azioni

Anche se le impostazioni a livello di organizzazione si applicano a livello globale, le autorizzazioni a livello di repository forniscono un controllo granulare su chi può eseguire flussi di lavoro e modificare le azioni.

Gestione delle autorizzazioni del flusso di lavoro a livello di repository

Ogni repository può definire chi può creare, modificare ed eseguire flussi di lavoro.

Livello di autorizzazione Funzionalità
Lettura Visualizzare i flussi di lavoro, ma non è possibile attivarli o modificarli.
Scrivi Modificare i flussi di lavoro, ma non crearne di nuovi.
Amministratore Creare, modificare e gestire le autorizzazioni del flusso di lavoro.

Per impostazione predefinita, GitHub imposta le autorizzazioni del flusso di lavoro su "Lettura e scrittura", ma le aziende devono limitarla a "Lettura", a meno che non sia esplicitamente necessario per impedire modifiche non autorizzate.

Limitazione di chi può modificare le azioni di proprietà dell'organizzazione

Se un'organizzazione ospita GitHub Actions riutilizzabile in un repository dedicato, l'accesso deve essere limitato agli utenti autorizzati.

  • Usare le regole di protezione dei rami per impedire modifiche non autorizzate.
  • Richiedere le approvazioni delle richieste pull per gli aggiornamenti alle azioni.
  • Limitare l'accesso in scrittura usando GitHub Teams e il controllo degli accessi in base al ruolo.

Ciò garantisce che tutte le modifiche apportate alle azioni di automazione di base vengano esaminate prima della distribuzione.

Limitazione dell'accesso alle azioni esterne

GitHub Actions consente l'uso di azioni di terze parti, ma le azioni esterne possono comportare rischi per la sicurezza se non sono stati controllati correttamente. Le organizzazioni devono controllare quali azioni esterne possono essere usate.

Rischi per l'uso di azioni esterne

  • Esecuzione di codice dannoso: un'azione esterna non attendibile potrebbe introdurre vulnerabilità.
  • Manomissione delle dipendenze: Un'azione di terze parti può introdurre attacchi alla supply chain.
  • Esposizione dei segreti: le azioni esterne possono registrare inavvertitamente i segreti.

Configurazione delle restrizioni relative alle azioni esterne

Gli amministratori possono consentire o bloccare azioni esterne in Impostazioni organizzazione → Azioni → Criteri.

Le opzioni includono:

  1. Consenti solo azioni verificate da GitHub (consigliate per la sicurezza).
  2. Consenti azioni esterne specifiche tramite un elenco di elementi consentiti.
  3. Blocca tutte le azioni esterne (approccio di sicurezza più rigoroso).

Esempio: consenti solo azioni esterne verificate

  • Passare a Impostazioni organizzazione → Azioni → Criteri.
  • In "Azioni consentite e flussi di lavoro riutilizzabili" selezionare:
    • Consenti solo azioni create da GitHub.
    • Approvare manualmente eventuali azioni di terze parti prima dell'uso.
  • Fare clic su Save (Salva) per salvare le impostazioni.

Implementazione di un elenco di elementi consentiti per azioni esterne

Le organizzazioni che necessitano di azioni specifiche di terze parti possono creare un elenco di elementi consentiti specificando repository attendibili.

Esempio: Consenti solo l'azione ufficiale checkout di GitHub:

- name: Checkout Repository
  uses: actions/checkout@v4

Gli amministratori possono definire questo elenco di elementi consentiti in Impostazioni organizzazione → Azioni → Criteri.

Protezione degli strumenti di esecuzione self-hosted

Le aziende che usano runner self-hosted per eseguire GitHub Actions devono applicare misure di sicurezza aggiuntive.

Rischi di strumenti di esecuzione self-hosted

Rischio Descrizione Mitigazione
Accesso non autorizzato Gli utenti malintenzionati potrebbero dirottare gli strumenti di esecuzione per eseguire azioni dannose. Limitare l'accesso usando gli elenchi di indirizzi IP consentiti.
Esposizione segreta È possibile che le credenziali sensibili possano essere trapelate ai runner compromessi. Archiviare i segreti in GitHub Secrets Management invece delle variabili di ambiente.
Compromesso Runner Se i runner non sono isolati, i flussi di lavoro di diversi team potrebbero interferire. Usare strumenti di esecuzione temporanei che vengono reimpostati dopo ogni processo.

Limitazione dell'accesso agli strumenti di esecuzione self-hosted

  1. Passare a Impostazioni dell'organizzazione → Azioni → Runner.
  2. Create un Runner Group per limitare l'accesso.
  3. Limitare l'uso del runner:
    • Consentire gli strumenti di esecuzione solo per i repository interni.
    • Limitare l'utilizzo a team specifici.

Configurare le politiche di utilizzo organizzative per GitHub Actions.

Questa guida fornisce una spiegazione dettagliata su come configurare i criteri di utilizzo dell'organizzazione per GitHub Actions, che illustra:

  1. Azioni consentite e flussi di lavoro riutilizzabili.
  2. Autorizzazioni del flusso di lavoro e criteri di sicurezza.
  3. Restrizioni dello strumento di esecuzione self-hosted.
  4. Gestione dei segreti e controllo di accesso.
  5. Monitoraggio e controllo dei flussi di lavoro.

Azioni consentite e flussi di lavoro riutilizzabili

Uno dei criteri di sicurezza principali che le aziende devono applicare è controllare quale GitHub Actions può essere usato all'interno di un'organizzazione. Gli amministratori possono configurare i criteri per:

  • Consentire o bloccare azioni di terze parti.
  • Limitare l'utilizzo alle azioni di proprietà dell'organizzazione.
  • Creare un elenco di elementi consentiti per le azioni esterne approvate.

Screenshot della schermata delle autorizzazioni per le azioni genrali con le opzioni predefinite selezionate

Configurazione dei criteri per le azioni consentite

  1. Passare a Impostazioni organizzazione → Azioni → Criteri.

  2. In "Azioni consentite e flussi di lavoro riutilizzabili" scegliere una delle opzioni seguenti:

    • Consenti tutte le azioni e i flussi di lavoro riutilizzabili (impostazione predefinita, meno restrittiva).
    • Consenti solo azioni create da GitHub (impedisce azioni di terze parti).
    • Consenti solo le azioni create all'interno dell'organizzazione (consigliate per la sicurezza).
    • Blocca tutte le azioni ad eccezione di quelle di un elenco di elementi consentiti (controllo più rigoroso).
  3. Se si usa un elenco di elementi consentiti, specificare le azioni esterne consentite:

    - actions/checkout@v4
    - actions/setup-node@v3
    
  4. Fare clic su Save (Salva) per salvare le impostazioni.

Configurazione delle autorizzazioni del flusso di lavoro e dei criteri di sicurezza

Le autorizzazioni del flusso di lavoro definiscono quali livelli di accesso hanno i flussi di lavoro di GitHub Actions nei repository. Queste impostazioni determinano se i flussi di lavoro possono modificare il contenuto del repository o solo leggere i dati del repository.

Configurazione delle autorizzazioni predefinite per il flusso di lavoro

GitHub offre due opzioni:

  1. Sola lettura (scelta consigliata per la sicurezza)
    • I flussi di lavoro possono leggere il contenuto del repository, ma non possono apportare modifiche.
    • Impedisce alle azioni di modificare accidentalmente o dannosamente il codice.
  2. Lettura e scrittura (rischio più elevato)
    • I flussi di lavoro possono eseguire il push di commit, creare problemi e modificare le impostazioni.
    • Deve essere abilitato solo per i flussi di lavoro attendibili.

Passaggi per configurare le autorizzazioni predefinite del flusso di lavoro

  1. Passare a Impostazioni organizzazione → Azioni → Generale.
  2. In "Autorizzazioni flusso di lavoro" scegliere:
    • Sola lettura (scelta consigliata).
    • Lettura e scrittura (solo per casi specifici).
  3. Salvare le impostazioni.

Applicazione dell'approvazione per le esecuzioni del flusso di lavoro

Per evitare esecuzioni di flussi di lavoro non autorizzate, gli amministratori possono richiedere l'approvazione manuale prima dell'esecuzione dei flussi di lavoro nei repository con fork.

Passaggi per richiedere l'approvazione per i contributi esterni

  1. Passare a Impostazioni organizzazione → Azioni → Criteri.
  2. In "Fork Pull Request Workflow" selezionare:
    • Richiedere l'approvazione per i flussi di lavoro in esecuzione dai fork.
    • Consenti l'esecuzione automatica dei flussi di lavoro con fork (scelta non consigliata).
  3. Salvare le impostazioni.

Questo criterio impedisce i rischi di sicurezza associati all'esecuzione di flussi di lavoro da fork non attendibili.

Restrizioni dello strumento di esecuzione self-hosted

Gli strumenti di esecuzione self-hosted offrono un maggiore controllo sull'esecuzione CI/CD, ma introducono rischi per la sicurezza se non sono configurati correttamente. Le organizzazioni devono applicare politiche a:

  • Limitare i repository che possono usare strumenti di esecuzione self-hosted.
  • Limitare l'accesso a team specifici.
  • Usare strumenti di esecuzione temporanei per la sicurezza.

Configurazione dell'accesso dello strumento di esecuzione

Gli amministratori possono limitare i repository a cui è possibile accedere agli strumenti di esecuzione self-hosted.

Passaggi per limitare l'utilizzo di Self-Hosted Runner

  1. Passare a Impostazioni dell'organizzazione → Azioni → Runner.
  2. Selezionare il gruppo Runner.
  3. Impostare il livello di accesso:
    • Consentire solo ai repository selezionati di usare strumenti di esecuzione self-hosted.
    • Non consentire ai repository pubblici di usare gli strumenti di esecuzione aziendali.
  4. Salvare le impostazioni.

Gestione dei segreti e del controllo di accesso

GitHub Actions richiede spesso chiavi API, credenziali e variabili di ambiente. Queste devono essere archiviate in modo sicuro usando GitHub Secrets Management.

Segreti dell'organizzazione e segreti del repository

Tipo Ambito miglior caso d'uso
Segreti del repository Specifico per un singolo repository. Per le credenziali specifiche del repository.
Segreti dell'organizzazione Disponibile per più repository. Per le credenziali aziendali condivise.

Configurazione dei segreti dell'organizzazione

  1. Passare a Impostazioni organizzazione → segreti e variabili → azioni.
  2. Fare clic su "Nuovo segreto".
  3. Immettere un nome segreto e un valore.
  4. Scegliere Accesso al repository:
    • Tutti i repository.
    • Archivi selezionati.
  5. Salvare il segreto.

Procedure consigliate per la gestione dei segreti

  • Usare attentamente le variabili di ambiente per evitare l'esposizione dei segreti.
  • Ruotare regolarmente i segreti per migliorare la sicurezza.
  • Usare i gestori segreti di terze parti (ad esempio, AWS Secrets Manager, HashiCorp Vault).

Monitoraggio e controllo dell'utilizzo di GitHub Actions

Le organizzazioni devono monitorare l'utilizzo di GitHub Actions per garantire la conformità e rilevare attività non autorizzate.

Abilitazione dei log di controllo per GitHub Actions

I log di controllo forniscono informazioni dettagliate su:

  • Utenti che hanno eseguito flussi di lavoro.
  • Quali azioni sono state eseguite.
  • Quali sono i flussi di lavoro delle autorizzazioni usati.

Passaggi per abilitare i log di controllo

  1. Passare a Impostazioni organizzazione → Registro di controllo → sicurezza.
  2. Filtrare i log in base alle "azioni" per visualizzare la cronologia di esecuzione del flusso di lavoro.

Applicazione dei criteri di conservazione dei log

Le aziende devono configurare la conservazione dei log in modo che siano conformi ai criteri di sicurezza. La conservazione dei log garantisce che le organizzazioni possano esaminare le esecuzioni cronologiche del flusso di lavoro, rilevare attività sospette e rispettare le normative del settore.

Passaggi per configurare i criteri di conservazione dei log

  1. Passare a Impostazioni organizzazione → Registro di controllo → sicurezza.
  2. Impostare il periodo di conservazione dei log in modo che corrisponda ai requisiti di conformità:
    • 30 giorni (impostazione predefinita).
    • 90 giorni (consigliato per le organizzazioni consapevoli della sicurezza).
    • Periodo personalizzato (in base alle esigenze legali e di conformità).
  3. Fare clic su Save (Salva) per salvare le impostazioni.

In alternativa, usare l'API di GitHub per impostare il periodo di conservazione dei log.