secrets
- Git kursu
- İleri seviye
- Ders 43/56
- 4 dk
Secrets ile gizli değişken yönetimini öğrenirsin.
GitHub Secrets ile güvenli kimlik yönetimi
Veritabanı parolaları, sunucu anahtarları veya API belirteçleri asla depodaki dosyalara açıkça yazılmamalıdır. GitHub Secrets, bu hassas verileri deponun ayarlarında şifrelenmiş olarak saklar. İş akışı adımları bu gizli değişkenlere ${{ secrets.SECRET_NAME }} sözdizimiyle güvenle erişir.
- name: Giris yap
run: ./deploy.sh
env:
API_KEY: ${{ secrets.PROD_API_KEY }}GitHub, log çıktılarında secret değerlerini otomatik olarak maskeleyerek gizler.
Ortam değişkenleri (env) ve GITHUB_TOKEN
Gizli değerler genellikle adımlara env: bloğu aracılığıyla ortam değişkeni olarak iletilir. Ayrıca GitHub, her iş akışı çalıştırmasında deponun kendisiyle etkileşime geçebilmek için otomatik olarak secrets.GITHUB_TOKEN oluşturur. Bu jeton release oluşturma veya paket yayınlama yetkilerine sahiptir.
- name: Surum yayinla
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release create v1.0.0Harici bir anahtar üretmeye gerek kalmadan yerleşik izinlerle işlem yapabilirsin.
Uygulama Gizli değişkeni adıma bağla
Adıma env: bloğu ekleyerek TOKEN: ${{ secrets.API_TOKEN }} çevre değişkenini tanımla.
Başlangıç kodu
cat << 'EOF' > .github/workflows/ci.yml
steps:
- name: Servise baglan
# ortam degiskeni tanimini buraya ekle
run: echo "Baglanti basarili"
EOF
cat .github/workflows/ci.ymlÖrnek çözüm
cat << 'EOF' > .github/workflows/ci.yml
steps:
- name: Servise baglan
env:
TOKEN: ${{ secrets.API_TOKEN }}
run: echo "Baglanti basarili"
EOF
cat .github/workflows/ci.ymlBeklenen çıktı
steps:
- name: Servise baglan
env:
TOKEN: ${{ secrets.API_TOKEN }}
run: echo "Baglanti basarili"
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 GitHub Actions iş akışında tanımlı bir gizli değişkene nasıl başvurulur?
- ${{ env.LOCAL_SECRET }}
- ${{ github.PASSWORD }}
- ${{ config.SECRET_NAME }}
- ${{ secrets.SECRET_NAME }} Doğru cevap
Açıklama: Gizli değişkenlere erişmek için secrets bağlamı (${{ secrets.SECRET_NAME }}) kullanılır.
2 Gizli değişkene eriş
env:
KEY: ${{ ____.DEPLOY_TOKEN }}
env:
KEY: ${{ secrets.DEPLOY_TOKEN }}
Açıklama: ${{ secrets.<AD> }} sözdizimi, depoda saklanan gizli anahtarın değerini çeker.
3 Güvenlik kavramları
| Kavram | Anlamı |
|---|---|
secrets.<AD> |
Depodaki şifreli değişkene erişir |
GITHUB_TOKEN |
Yerleşik otomatik oluşturulan jeton |
Log maskeleme |
Konsolda gizli veriyi yıldızlar |
env: |
Değeri ortam değişkenine bağlar |