Gestionați alergătorii

Finalizat

În această secțiune, explorați diferitele instrumente și strategii disponibile pentru dvs. în GitHub Enterprise Cloud și GitHub Enterprise Server pentru a gestiona utilizarea GitHub Actions runners în întreprinderea dvs.

Alegeți un alergător corespunzător pentru volumul de lucru

Două tipuri de alergători pot executa fluxuri de lucru Acțiuni GitHub: GitHub-runners găzduite sau alergători auto-găzduite.

Notă

GitHub-hosted runners sunt disponibile doar pentru Enterprise Cloud. Dacă aveți o instanță Enterprise Server, această secțiune nu se aplică pentru dvs.

GitHub-hosted runners oferă o modalitate mai rapidă și mai simplă de a rula fluxurile de lucru, în timp ce rulatorii auto-găzduite sunt o modalitate foarte configurabilă de a rula fluxuri de lucru în propriul mediu particularizat. De exemplu, dacă trebuie să utilizați o listă de adrese IP pentru organizația dvs. sau o configurație hardware specializată pentru rularea fluxurilor de lucru, utilizați un alergător găzduit automat.

Următorul tabel compară GitHub-hosted runners versus runners auto-hosted runners. Utilizați-l pentru a alege rularea corespunzătoare pentru volumul de lucru.

Runners găzduite de GitHub alergători găzduiti singuri
Primiți actualizări automate pentru sistemul de operare, pachetele și instrumentele preinstalate și aplicația de rulare auto-găzduită. Primiți actualizări automate doar pentru aplicația runner găzduită automat. Sunteți responsabil pentru actualizarea sistemului de operare și a tuturor celorlalte tipuri de software.
GitHub a gestionat și a întreținut. Puteți utiliza servicii în cloud sau mașini locale pentru care plătiți deja. De asemenea, sunt particularizabile pentru hardware, sistem de operare, software și cerințe de securitate.
Furnizați o instanță curată pentru fiecare executare a activității. Nu trebuie să aveți o instanță curată pentru fiecare executare a activității.
Utilizați minute gratuite în planul dvs. GitHub, cu tarife per minut aplicate după depășirea minutelor gratuite. Puteți utiliza cu acțiuni GitHub, dar sunteți responsabil pentru costul menținerii mașinilor rulatoare.

Gestionarea alergătorilor pentru întreprindere

Gestionarea alergătorilor pentru întreprindere implică configurarea și securizarea GitHub-hosted și a fluxurilor de rulare auto-găzduite, pentru a asigura fluxuri de lucru CI/CD eficiente și sigure. Acest management include configurarea listelor de adrese IP pentru a controla accesul, îmbunătățirea securității prin restricționarea accesului la adrese IP specifice și asigurarea conformității cu politicile organizației. Configurarea corectă a listelor de permisiuni ip atât pentru GitHub găzduite, cât și pentru alergătorii auto-găzduiti este esențială pentru menținerea interacțiunilor sigure și fiabile între aplicațiile interne și GitHub Actions runners. Actualizările regulate și recenziile acestor configurații sunt necesare pentru a se adapta la modificările intervalelor de adrese IP și pentru a menține securitatea optimă.

Configurarea listelor de permisiuni ip pe GitHub-hosted și auto-hosted runners

Configurarea listelor de permisiuni IP ajută la controlul accesului la rulatori, restricționându-le la anumite adrese IP. Această configurație îmbunătățește securitatea, împiedicând accesul neautorizat, dar poate necesita configurații de rețea suplimentare.

Runners găzduite de GitHub alergători găzduiti singuri
GitHub-hosted runners utilizează adrese IP dinamice, îngreunând configurarea listelor de permisiuni IP precise. Utilizați IP-uri statice sau controlate, permițând controlul precis al accesului prin ip sau bazat pe IP.
Organizațiile trebuie să permită intervale ip publicate de GitHub. Pot fi plasate în spatele firewallurilor sau VPN-urilor pentru securitate suplimentară.
GitHub-runners găzduit poate fi restricționat utilizând setările de securitate pentru întreprinderi ale GitHub. Este necesară configurarea explicită pentru comunicarea cu serviciile externe, îmbunătățirea securității.

Listă DE ADRESE IP permise

O listă IP permisă este o caracteristică de securitate care restricționează accesul la servicii sau resurse pe baza adreselor IP predefinite. Atunci când organizațiile configurează o listă de permisiuni IP, acestea pot:

  • Îmbunătățiți securitatea: Împiedicați accesul neautorizat, permițând doar adrese IP de încredere.
  • Control trafic rețea: Restricționați solicitările de intrare și de ieșire către IP-uri cunoscute și verificate.
  • Îmbunătățiți conformitatea: Asigurați-vă conformitatea cu reglementările limitând accesul la rețelele autorizate.
Runners găzduite de GitHub alergători găzduiti singuri
Organizațiile trebuie să permită intervale ip publicate de GitHub, care se modifică periodic. Administratorii pot defini adrese IP specifice care au permisiunea de a accesa alergătorii.
GitHub-hosted runners pot fi configurate prin intermediul setărilor de securitate GitHub. Alergătorii cu găzduire automată funcționează bine cu firewalluri, VPN-uri sau grupuri de securitate în cloud.

Configurarea listelor de permisiuni IP pentru aplicații interne pentru a interacționa cu GitHub-Hosted Runners

Pentru a configura listele de permisiuni IP pentru aplicații și sisteme interne pentru a interacționa cu GitHub-hosted runners, puteți consulta următoarea documentație oficială GitHub:

1. Înțelegerea intervalelor de adrese IP ale GitHub

GitHub-hosted runners opera în anumite intervale de adrese IP. Pentru a vă asigura că aplicațiile interne pot comunica cu acești alergători, trebuie să permiteți aceste intervale IP prin firewall. GitHub furnizează un punct https://api.github.com/meta final meta API care listează toate intervalele curente de adrese IP utilizate de serviciile GitHub, inclusiv zone IP pentru rularea acțiunilor. Actualizarea regulată a listelor de permisiuni pe baza acestor informații este esențială, deoarece intervalele IP se pot modifica.

2. Configurați firewallul

un. Obțineți intervale ip GitHub:
  • Utilizați punctul final meta API pentru a regăsi cele mai recente intervale de adrese IP utilizate de GitHub Actions runners.
b. Actualizați regulile paravanului de protecție:
  • Adăugați reguli la firewall pentru a permite traficul de intrare și ieșire către și din aceste intervale de ADRESE IP. Această configurație asigură că sistemele interne pot interacționa cu runnerele găzduite de GitHub fără probleme de conectivitate.

3. Luați în considerare utilizarea alergătorilor auto-găzduiti

Dacă menținerea unei liste de permisiuni ip pentru GitHub-hosted runners este o provocare din cauza unor modificări frecvente ale intervalelor de adrese IP, luați în considerare configurarea alergătorilor auto-găzduite în rețeaua dvs. Această abordare vă permite să aveți mai mult control asupra mediului de rulare și a configurațiilor de rețea. Cu toate acestea, utilizarea alergătorilor cu auto-găzduit necesită mai multă întreținere și gestionare a infrastructurii.

Captură de ecran cu un ecran de alergători goli.

4. Revizuiți și actualizați regulat listele de permisiuni

Deoarece intervalele de adrese IP ale GitHub se pot modifica, este esențial să revizuiți și să actualizați periodic listele de permisiuni ip ale firewallului. Automatizarea acestui proces prin scriptarea regăsirii intervalelor IP de la api-ul meta GitHub vă poate ajuta să vă asigurați că listele de permisiuni rămân actualizate fără intervenție manuală.

Efectele și vectorii potențiali abuz de a permite alergători găzduite auto-găzduite pe depozite publice

Efectele activării alergătorilor auto-găzduiti

  1. Particularizare și optimizare performanță

    • Rulatorii auto-găzduiti permit controlul asupra setărilor de hardware, software instalat și mediu.
    • Fluxurile de lucru pot fi optimizate pentru performanță utilizând mașini dedicate, de înaltă performanță.
  2. economii de cost

    • Spre deosebire de GitHub-runners găzduite (care au utilizare gratuită limitată), alergătorii auto-găzduiti rulează pe infrastructura dvs., reducând restricțiile de cost.
  3. Persistența stării

    • Alergătorii găzduiti singuri nu se resetează între activități precum GitHub-hosted runners.
    • Permite memorarea dependențelor în cache, reutilizarea seturilor mari de date și menținerea stărilor persistente.
  4. Responsabilitatea pentru securitate și întreținere

    • Corecțiile de securitate, actualizările de dependență și monitorizarea sistemului devin responsabilitatea proprietarului alergătorului.
    • Configurațiile greșite ar putea expune alergătorul la amenințări externe.

Vectori potențiali de abuz ai alergătorilor auto-găzduiti

Activarea alergătorilor găzduiti singuri pe depozitele publice prezintă riscuri semnificative de securitate. Deoarece oricine poate declanșa fluxuri de lucru prin remiterea unei solicitări de extragere, atacatorii pot exploata această caracteristică în diverse moduri:

  1. Executarea arbitrară a codului (RCE) de către actori rău intenționați

    • Atacatorii pot trimite solicitări de tragere care conțin scripturi rău intenționate, pe care rulatorul auto-găzduit le execută automat.
    • Dacă alergătorul are privilegii sporite, atacatorul obține acces complet la sistem.
  2. Minerit de resurse și de resursa neastămănoasă

    • Atacatorii pot abuza de alergătorii găzduiti auto-găzduite la mine, provocând o utilizare neașteptată de CPU și GPU neașteptată.
    • Acest lucru crește costurile operaționale și reduce disponibilitatea pentru fluxurile de lucru legitime.
  3. Furtul acreditărilor și exfiltrării datelor

    • Dacă secretele (cheile API, acreditările bazei de date, cheile SSH) sunt stocate în rulare, atacatorii le-ar putea extrage.
    • Exemplu de vector de atac: O solicitare de tragere rău intenționată poate citi și trimite variabile de mediu stocate la un server extern.
  4. Refuzarea atacurilor serviciului (DoS)

    • Atacatorii pot inunda depozitul cu numeroase cereri de tragere pentru a supraîncărca alergătorii auto-găzduite.
    • Dacă rulatorii se află în infrastructura partajată, este posibil ca alte fluxuri de lucru critice să fie întrerupte.
  5. Deplasare laterală și exploatare în rețea

    • Dacă rulatorul găzduit automat se află într-o rețea de corporație, un atacator ar putea pivota în sisteme interne.
    • Ar putea duce la breșe de date, atacuri ransomware sau acces persistent la resurse private.

Strategii de atenuare

Pentru a reduce riscurile de securitate, urmați aceste exemple de bună practică:

  • Restricționarea exclusivă a alergătorilor găzduiti la depozite private
  • Solicitați aprobarea fluxului de lucru pentru solicitările de extragere de la colaboratori externi
  • Rulați alergători auto-găzduiti într-un mediu sigur, izolat (de exemplu, containere, mașini virtuale)
  • Utilizarea firewallurilor și a regulilor de rețea pentru a bloca accesul neautorizat
  • Limitați accesul la secretele sensibile și stocați acreditările în siguranță
  • Monitorizați și înregistrați activitatea de rulare pentru a detecta anomalii

Selectarea rulerilor adecvați pentru a susține sarcinile de lucru

Înțelegerea alergătorilor GitHub

Acțiuni GitHub acceptă două tipuri de alergători:

  1. Runners găzduite de GitHub

    • Gestionat de GitHub, asigurat și scalat automat.
    • Include software-ul, instrumentele și dependențele preinstalate pentru fluxurile de lucru comune.
    • Disponibil pentru Windows, Linux și macOS.
    • Recomandat pentru automatizare generală, proiecte open-source și configurare rapidă.
  2. alergători găzduiti singuri

    • Gestionat de utilizator, furnizând control total asupra mediului și resurselor.
    • Poate fi configurat pentru hardware particularizat, local sau pentru infrastructura în cloud.
    • Acceptă stări persistente între activități, permițând memorarea în cache mai bună și dependențele particularizate.
    • Recomandate pentru depozite private, sarcini de lucru la nivel de întreprindere și activități care consumă performanțe mari.

Alegerea între GitHub-hosted și Runners self-hosted

Două tipuri de alergători pot executa fluxuri de lucru Acțiuni GitHub: GitHub-runners găzduite sau alergători auto-găzduite.

Notă

GitHub-hosted runners sunt disponibile doar pentru Enterprise Cloud. Dacă aveți o instanță Enterprise Server, această secțiune nu se aplică pentru dvs.

GitHub-hosted runners oferă o modalitate mai rapidă și mai simplă de a rula fluxurile de lucru, în timp ce rulatorii auto-găzduite sunt o modalitate foarte configurabilă de a rula fluxuri de lucru în propriul mediu particularizat. De exemplu, dacă trebuie să utilizați o listă de adrese IP pentru organizația dvs. sau o configurație hardware specializată pentru rularea fluxurilor de lucru, utilizați un alergător găzduit automat.

Următorul tabel compară GitHub-hosted runners versus runners auto-hosted runners. Utilizați-l pentru a alege rularea corespunzătoare pentru volumul de lucru.

Runners găzduite de GitHub alergători găzduiti singuri
Primiți actualizări automate pentru sistemul de operare, pachetele și instrumentele preinstalate și aplicația de rulare auto-găzduită. Primiți actualizări automate doar pentru aplicația runner găzduită automat. Sunteți responsabil pentru actualizarea sistemului de operare și a tuturor celorlalte tipuri de software.
GitHub a gestionat și a întreținut. Puteți utiliza servicii în cloud sau mașini locale pentru care plătiți deja. De asemenea, sunt particularizabile pentru hardware, sistem de operare, software și cerințe de securitate.
Furnizați o instanță curată pentru fiecare executare a activității. Nu trebuie să aveți o instanță curată pentru fiecare executare a activității.
Utilizați minute gratuite în planul dvs. GitHub, cu tarife per minut aplicate după depășirea minutelor gratuite. Puteți utiliza cu acțiuni GitHub, dar sunteți responsabil pentru costul menținerii mașinilor rulatoare.

Alegerea sistemului de operare potrivit pentru alergători

1. Alergători Linux (implicit)
  • Cel mai bun pentru majoritatea volumului de lucru
  • Asistență rapidă, eficientă și pe scară largă
  • Utilizat în CI/CD, scriptare, Docker și automatizare
    Exemplu: ubuntu-latest, ubuntu-22.04
2. Alergători Windows
  • Necesar pentru aplicațiile .NET, bazate pe Windows și GUI
  • Acceptă PowerShell, dependențe specifice Windows
    Exemplu: windows-latest, windows-2022
3. alergători macOS
  • alergătorii macOS sunt necesari pentru compilările specifice pentru iOS, macOS, Xcode și Apple
  • Acceptă aplicații Swift, Obiectiv-C și macOS
    Exemplu: macos-latest, macos-13

Cele mai bune practici pentru selectarea rulărilor

  • Utilizați GitHub-hosted runners pentru fluxuri de lucru generale și automatizare.
  • Utilizați alergători auto-găzduiti pentru medii particularizate, volume mari de lucru sau aplicații sensibile la securitate.
  • Alegeți alergători Linux pentru majoritatea volumului de lucru din cauza performanței și eficienței costurilor.
  • Utilizați rulatorii Windows sau macOS doar atunci când este necesar pentru compatibilitate.
  • Actualizați și monitorizați regulat alergătorii auto-găzduiti , pentru a preveni riscurile de securitate.

Contrast GitHub-hosted and self-hosted runners

Acțiuni GitHub acceptă două tipuri de rulatori pentru executarea fluxurilor de lucru:

  1. Runners găzduite de GitHub - gestionate de GitHub, asigurate automat și preconfigurate cu instrumente de dezvoltare comune.
  2. Rulatori găzduiti auto-găzduiti – Gestionat de utilizator, permițând controlul complet asupra mediului, resurselor și configurațiilor.

Această secțiune evidențiază diferențele cheie dintre GitHub găzduite și alergătorii auto-găzduite.

Comparație: GitHub-hosted vs. runners self-hosted

Caracteristică Alergător găzduit de GitHub Alergător găzduit automat
Configurare și întreținere Nu este necesară instalarea; GitHub gestionează totul Utilizatorul trebuie să instaleze, să configureze și să mențină
scalabilitate Se scalează automat dinamic Trebuie furnizată manual adăugarea de către alergători
securitate Securitate ridicată; mediu virtual proaspăt pentru fiecare lucrare Necesită întărirea manuală a securității
Personalizare Limitat; doar instrumente preinstalate Complet particularizabil; utilizatorul poate instala orice dependențe
Performanță Resurse de calcul standardizate Poate utiliza hardware de înaltă performanță
Persistența stării Se reinițializează după fiecare activitate Poate persista date între activități
cost Gratuit pentru depozite publice; utilizare gratuită limitată pentru depozit privat Fără costuri GitHub, dar necesită investiții în infrastructură
Acces la rețea Fără acces direct la rețelele interne Poate accesa rețele interne/private
Caz de utilizare Cel mai bun pentru proiectele generale CI/CD, automatizare și open-source Cel mai bun pentru mediile de întreprindere, versiunile securizate și volumele mari de lucru

Diferențe cheie și considerații

1. Configurare și întreținere
  • GitHub-hosted runners necesită zero configurare; utilizatorii pot începe imediat să ruleze fluxuri de lucru.
  • Rulatorii auto-găzduiti au nevoie de instalare manuală, configurare, actualizări și gestionare a securității.
2. Riscuri de securitate
  • GitHub-runners găzduit rula în mașini virtuale izolate care se resetează după fiecare lucrare, minimizând suprafețele de atac.
  • Alergătorii auto-găzduiti persistă în mai multe activități, ceea ce înseamnă că un alergător compromis poate fi exploatat în mai multe rulări ale fluxului de lucru.
3. Considerații privind performanța și costurile
  • Rulatorii găzduite de GitHub oferă un mediu standard , dar au limite de utilizare (de exemplu, minute gratuite pe lună pentru depozite private).
  • Rulatorii auto-găzduiti permit reglare de performanță mai bună (de exemplu, care rulează pe servere de înaltă calitate), dar necesită costuri de infrastructură și întreținere.
4. Rețea și acces
  • GitHub-runners găzduit nu poate accesa resurse private/interne fără alte configurații.
  • Alergătorii auto-găzduiti pot accesa sisteme interne, ceea ce le face ideale pentru depozite private, instrumente interne și implementări locale.

Când să utilizați fiecare alergător?

Utilizați GitHub-hosted runners dacă:

  • Aveți nevoie de o configurare rapidă și simplă , fără gestionarea infrastructurii.
  • Fluxul de lucru nu necesită dependențe particularizate dincolo de instrumentele preinstalate.
  • Lucrați la un depozit open-source sau public cu minute gratuite de rulare găzduite.

Utilizați rulatorii găzduiti auto-găzduit dacă:

  • Fluxul de lucru necesită dependențe specifice, configurații sau stări persistente.
  • Trebuie să accesați resurse de rețea privată (de exemplu, baze de date locale, servicii interne).
  • Aveți nevoie de mașini cu performanță mai mare pentru conducte CI/CD la scară mare.