Yardım ve kılavuzlarHesap güvenliği › API token güvenli kullanım

API token güvenli kullanım

3 dk okuma · Hesap güvenliği

API token, REST API üzerinden hesabınıza tam programatik erişim sağlayan bir anahtardır. Sızdırılırsa, bir saldırgan da sizin yaptığınızı yapabilir. Aşağıdaki öneriler bunun başınıza gelme riskini azaltır.

Token'a parola gibi davranın

  • Token'ı asla genel repolara (GitHub, GitLab) koymayın.
  • Sorun ayıklama sırasında token'ı Discord, Slack veya e-posta ile göndermeyin.
  • Token'ı bir ortam değişkenine veya bir secrets yöneticisine (HashiCorp Vault, AWS SSM Parameter Store, Doppler ve benzeri) kaydedin.
  • CI/CD pipeline'ında (otomatik build/deploy sisteminde) "masked secret" özelliğini kullanın, böylece token loglarda okunabilir biçimde görünmez.
Son kullanım zamanıyla birlikte API token listesi
Her token'da son kullanım zamanını görürsünüz - rotasyonda ve beklenmedik etkinliği fark etmede yardımcı olur.

Token rotasyonu

Aşağıdaki durumların her birinde eski token'ı hemen iptal edin ve yenisini oluşturun:

  • Erişimi olan bir çalışan ayrılıyor.
  • Kontrol panelinde her token için Son kullanım zaman damgasını görürsünüz - beklemediğiniz bir etkinlik görürseniz token'ı hemen iptal edin.
  • Hiçbir şey olmasa bile rutin hijyen olarak en az 90 günde bir.

Bir token = bir amaç

Aynı token'ı beş farklı scripte koymayın. Her entegrasyon için ayrı bir token oluşturun:

  • epulzio_xxxxxxxxxxxxxxxx - yalnızca GitHub Actions üzerinden dağıtım için
  • epulzio_xxxxxxxxxxxxxxxx - yalnızca Terraform veya Pulumi için (altyapı yönetim araçları)
  • epulzio_xxxxxxxxxxxxxxxx - metrikleri indiren bir Grafana panosu için

Bir token sızdırılırsa yalnızca o belirli olanı iptal edersiniz ve diğer entegrasyonlar çalışmaya devam eder.

Token'ı nereye güvenli şekilde saklamalı

OrtamÖnerilen yöntem
Yerel CLIchmod 600 izinlerine sahip ~/.config/epulzio/token dosyası (yalnızca kullanıcınız okur)
DockerDocker secret veya --env-file (Dockerfile'da ENV üzerinden sabit kodlanmış değil)
KubernetesOrtam değişkeni veya dosya olarak monte edilmiş Secret nesnesi
GitHub ActionsSettings -> Secrets -> EPULZIO_TOKEN
Bulut fonksiyonları (AWS Lambda, GCP Functions)AWS SSM Parameter Store veya Google Secret Manager

Webhook'lar için token vs. imza sırrı

Gelen webhook'ları (size gönderdiğimiz bildirimleri) doğrulamak için API token'ı değil, ayrı bir imza sırrı (HMAC signing secret) kullanın. Bunlar iki farklı şeydir. Detaylar için API token oluşturma makalesine bakın.

Bu kılavuz yardımcı oldu mu?