Titkos kulcsok használata munkafolyamatban

Befejeződött

A titkos kulcsok nem lesznek automatikusan átadva a futóknak a munkafolyamatok végrehajtásakor. Ha elérhetővé szeretne tenni egy titkos kulcsot egy művelet számára, be kell állítania a titkos kulcsot bemeneti vagy környezeti változóként a munkafolyamat-fájlban. Ehhez használhatja a titkos kulcsok kontextusát az alábbi példában látható módon:

steps:

  - name: Test Database Connectivity
    with:
      db_username: ${{ secrets.DBUserName }}
      db_password: ${{ secrets.DBPassword }}

Titkos kódok hivatkozása a parancssorból

Ha titkos kulcsokra hivatkozik a parancssorból, a rendszerhéj környezeti változóiként kezelheti őket, ahogy az alábbi példa is mutatja:

Lépéseket:

- shell: pwsh
  env:
    DB_PASSWORD: ${{ secrets.DBPassword }}
  run: |
    db_test "$env:DB_PASSWORD"

Fontos, hogy ezt a megközelítést alkalmazzuk, ami minimálisra csökkenti a véletlen expozíció kockázatát. A parancssorból a folyamatok között átadott titkos kódok a PowerShell-paranccsal tekinthetők meg, és rögzíthetők a biztonsági auditnaplókban.

Titkos kódok használata a következő esetekben: feltételes

Mivel a titkos kulcsokra nem lehet közvetlenül hivatkozni a ha: feltételes esetekben, kerülő megoldásként érdemes feladatszintű környezeti változóként beállítani a titkos kulcsokat, majd a környezeti változókra hivatkozni a feladat lépéseinek feltételes futtatására, ahogyan az alábbi példában is látható:

name: Run a step if a secret has been set
on: push
jobs:
  samplejob:
    runs-on: ubuntu-latest
    env:
      job_secret: ${{ secrets.JobSecret }}
    steps:
      - if: ${{ env.job_secret != '' }}
        run: echo 'the secret has a value set.'
      - if: ${{ env.job_secret == '' }}
        run: echo ' the secret does not have a value set.'

Korlátozások

A munkafolyamatok akár 100 titkos kódot is használhatnak, helyüktől függetlenül. A titkos kódok mérete legfeljebb 48 KB lehet. A 48 KB-nál nagyobb titkos kulcsok használatához kerülő megoldással titkos kulcsokat tárolhat az adattárban, és titkos kódként mentheti a visszafejtési jelszót a GitHubon. Az eljárással kapcsolatos részletekért tekintse meg a nagy titkos kódok tárolására vonatkozó témakört a GitHub dokumentációjában.

Vegye figyelembe, hogy a GITHUB_TOKEN kivételével a titkos kulcsok nem lesznek átadva a futónak, amikor egy munkafolyamatot elágazott adattárból aktiválnak.