Ana içeriğe geç

Provisioner webhook secret'ını döndür

Merkezi dtedge install ile provisioner pod'ları arasındaki paylaşımlı HMAC secret. Sızdığında, erişimi olan bir çalışan ayrıldığında veya periyodik güvenlik review'unun parçası olarak döndür. Admin → Settings → Provisioner altından yapılır.

Bu secret ne işe yarar​

Provisioner cluster install'u ilerledikçe (preflight done, k3s installed, stack installing, job succeeded) dtedge'e durum güncellemeleri POST eder. Her teslimat paylaşımlı secret ile HMAC imzalanır. dtedge imzayı doğrulamadan güncellemeyi kabul etmez — geçersiz imza webhook'u reddeder.

Secret sızdığında bir saldırgan sahte "job succeeded" event'leri POST'layıp dtedge'deki cluster state'i bozabilir. Rotation bunu kapatır.

Adımlar​

  1. Yeni secret üret (32+ karakter, yüksek entropi):

    openssl rand -hex 32
    # → 64 karakterli hex string
  2. Önce dtedge'i güncelle. Admin → Settings → Provisioner:

    • Mevcut secret *** olarak maskelenir.
    • Yeni secret'ı alana yaz. Maskelenmiş ***'i yapıştırma — bu API'ye "mevcudu koru" demek.
    • Save tıkla. Artık dtedge gelen webhook'ları yeni secret ile doğrular. Bu andan itibaren her mevcut provisioner pod'unun webhook post'u 3. adıma kadar başarısız olur.
  3. Her provisioner pod'unu güncelle. Her provisioner deployment'ı WEBHOOK_SECRET env taşır. Helm release values'ını düzenle VEYA Secret'ı doğrudan patch'le:

    kubectl -n provisioner edit secret provisioner-config
    # WEBHOOK_SECRET'i yeni değere değiştir
    kubectl -n provisioner rollout restart deploy/provisioner-server deploy/provisioner-worker

    Birden çok provisioner install'ı yönetiyorsan (edge cluster başına bir tane) cluster başına tekrar et. Provisioner pod'ları birbirleriyle konuşmaz — her biri yeni secret'a bağımsız ihtiyaç duyar.

  4. Doğrula. Webhook üreten herhangi bir operation tetikle:

    • Yeni edge instance oluştur (provisioner ilerleme event'leri yayar)
    • Veya mevcut cluster'a node-add tetikle

    Backend log'unda webhook-receive girişleri imza hatasız görünmeli. UI'nin Operations Center'ı realtime ilerleme gösterir — ilerlemeyi görüyorsan imzalar iyi.

Sırayı yanlış yaparsam ne olur?​

  • Önce dtedge güncellendi (amaçlanan): in-flight provisioner webhook'ları kısa süre validasyona takılır. Provisioner exponential backoff ile retry yapar; provisioner pod yeni secret ile restart edilince retry'lar başarılı olur.
  • Önce provisioner güncellendi: in-flight provisioner webhook'ları yeni secret ile post atmaya başlar, dtedge hâlâ eskisini bekler. Fail olurlar. Bu yönden daha kötü — dtedge ilerleme almaz ve UI muhtemelen tamamlanmış job'ları "running" gösterir. Bu sırayı yapmaktan kaçın.

Tespit — ne zaman beklemeden döndürmeli​

TetikleyiciAksiyon
Secret public bir repo'ya commit edildiŞimdi döndür
Helm values'a erişimi olan mühendis takımdan ayrılıyorSonraki sprint'te döndür
Provisioner pod log'u destek tickeyın'da expose olduİncele — secret log'da görünmemeli (redact ediyoruz), ama redact'in çalıştığını doğrula
Yıllık rotation politikasıPlanla, sakin bir günde yap

Bkz.​

  • Sistem ayarlarını yapılandır — parent ayarlar sayfası
  • Provisioner tarafının webhook config'i: provisioner repo'sunun WEBHOOK_SECRET env var'ına bakın