Titkos kulcsok használata munkafolyamatban
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.