GH GambleHub

Konfiqurasiya və sirlərin idarə edilməsi

Konfiqurasiya və sirlərin idarə edilməsi

1) Niyə lazımdır

Konfiqurasiya və sirləri - «qan» prod platforma. Konfiqada səhv p95-ə düşür, sirr P1 səviyyəli hadisədir. Məqsəd /gizli etmək:
  • Proqnozlaşdırıla bilən (sxemlər, validasiya, versiyalar).
  • Təhlükəsiz (şifrələmə, minimum hüquqlar, rotasiya).
  • Managed (GitOps, audit, geri qaytarma).
  • Bu haqlı olduğu yerlərdə dinamik (feature flags, limitlərin parametrləşdirilməsi).

2) Artefaktların təsnifatı

İctimai konfiqlər: fiçlər, eşiklər, taymautlar, feature flags (sirrsiz).
Həssas konfiqlər: kritik yolların davranışını dəyişdirən parametrlər (məsələn, ödəniş limitləri).
Sirləri: şifrələr/açarlar/tokenlər/sertifikatlar/şifrələmə materialları.
Etimad artefaktları: kök/aralıq sertifikatlar, PKI siyasəti, KMS açarları.

Ayrı saxlama və hüquqlar prinsipi: ictimai ≠ həssas ≠ sirləri.

3) Konfiqurasiya iyerarxiyası

Layların «piramidasını» qurun:

1. Global defaults (org-wide).

2. Environment (`prod/stage/dev`).

3. Region (`eu-central-1`, `us-east-1`).

4. Tenant/Brand (çox tenantlar üçün).

5. Xidmət (xüsusi mikroservis).

6. Override (runtime) - müvəqqəti açarlar.

Birləşmə qaydaları: «aşağıda qalib gəlir», münaqişə - yalnız MR/approval vasitəsilə.

Nümunə (YAML)

yaml defaults:
http:
timeout_ms: 800 retry: 2 prod:
http:
timeout_ms: 1200 service: payments-api overrides:
eu-central-1:
http:
timeout_ms: 1500

4) Sxemlər və validasiya

Hər biri sxemlə müqavilədir (CI-də JSON Schema/OPA/validatorlar).

Tiplər, diapazonlar, məcburi sahələr, default dəyərlər.
«Guard qaydaları» ('retry> 5', 'p95 _ target <50ms' qoymaq olmaz).
CI və istifadə zamanı avtomatik yoxlama (admission-webhook/KRM).

JSON Sxeminin fraqmenti

json
{
"type":"object",
"properties":{
"http":{"type":"object","properties":{"timeout_ms":{"type":"integer","minimum":100,"maximum":10000},"retry":{"type":"integer","minimum":0,"maximum":5}},"required":["timeout_ms"]},
"feature_flags":{"type":"object","additionalProperties":{"type":"boolean"}}
},
"required":["http"]
}

5) Konfiqurasiya çatdırılma modelləri

Static (image-baked): etibarlı, lakin restarts tələb edir.
Push/Watch: Agentlər/sidecar yeniləmələri (stream/poll) alır və tətbiqə siqnal verir.
Pull on startup: Başlanğıc zamanı snapshot alırıq (hot-path sadələşdirin).
Geo-paylanmış yüklər üçün Edge cache/proxy.

Əsas: atomizm və snapshot versiyası, uyğunluq nəzarəti və sürətli geri dönüş.

6) Alətlər və rollar

Konfiqurasiya anbarları: Git (həqiqət mənbəyi) + GitOps (Argo/Flux), Parameter Store/Config Service.
Gizli anbarlar: Vault, AWS Secrets Manager/SSM, GCP Secrets, Azure KV.
Şifrələmə: KMS/HSM, SOPS (age/GPG/KMS), Sealed Secrets, Transit-şifrələmə (Vault).
Çatdırılma: CSI Secrets Store, Vault Agent Injector/Sidecar, init konteynerlər.
Bayraqlar/Dinamika: Fich-Bayraqlar Platforması (qəza kill-switch daxil).

7) Şifrələmə: modellər və təcrübələr

At rest: KMS-layihə/mühit açarları, envelope-şifrələmə.
In transit: Qarşılıqlı autentifikasiya ilə TLS/mTLS.
At use: deşifrə mümkün qədər gec, tercihen - prosesin yaddaşında/sidecar (diskə yazmadan).
Əsas iyerarxiya: root (HSM) → KMS CMK → data keys (DEK).
Rotasiya: təqvim (90/180 gün) + hadisə (kompromasiya/işçi qayğı).

8) Sirlərin idarə edilməsi: nümunələr

8. 1 GitOps + SOPS (statik snapshot)

Git-də yalnız şifrəli mətn saxlanılır.
CI/CD və ya klasterdə deşifrə (KMS/age).
Controller vasitəsilə tətbiq (Flux/Argo) → Kubernetes Secret.

yaml apiVersion: v1 kind: Secret metadata: { name: psp-keys, namespace: payments }
type: Opaque data:
apiKey: ENC[AES256_GCM,data:...,sops]

8. 2 Vault Agent Injector (dinamik çıxış)

Xidmət hesabı (JWT/SA) Vault-da təsdiqlənir.
Sidecar tmpfs-də kred qoyur və TTL-də yeniləyir.
Dinamik kreditlərin dəstəklənməsi (DB, cloud - təcrid və qısa müddət).

yaml annotations:
vault. hashicorp. com/agent-inject: "true"
vault. hashicorp. com/role: "payments-api"
vault. hashicorp. com/agent-inject-secret-db: "database/creds/payments"

8. 3 CSI Secrets Store

Sirri volume kimi bağlayın, rotasiya şəffafdır.
PKI üçün - sertifikatların/açarların avtomatik yenilənməsi.

9) Kubernetes: praktiki aspektlər

ConfigMap - yalnız ictimai/həssas olmayan məlumatlar.
Secret - həssas (base64 ilə - şifrələmə deyil; etcd üçün Encryption at Rest daxil edin).
Checksum-annotasiyalar: Konfiqin dəyişməsi ilə Deployment restavrasiyası.
Admission-Control: «ağ siyahı» deyil sirləri montaj qadağa, manifestlərdə «plain» parol qadağa.
NetworkPolicy: Secret provayderlərinə (Vault/CSI) girişi məhdudlaşdırın.

Checksum nümunə (Helm)

yaml annotations:
checksum/config: {{ include (print $.Template. BasePath "/configmap. yaml"). sha256sum }}

10) Giriş Siyasəti (RBAC/ABAC)

Least privilege: xidmət yalnız sirlərini görür; namespace/label/prefix.
Split duties: məxfi yaratmaq ≠ məzmunu oxumaq; hər hansı bir oxunuşun auditi.
Müvəqqəti kreadlar: TTL və avtomatik rotasiya ilə dinamik loginlər (DB, cloud).
Seqmentasiya: müxtəlif layihələrdə/hesablarda/KMS açarlarında prod/stage.

11) Audit, jurnallaşdırma, müşahidə

Oxu/sirlərin verilməsi qeydləri: kim/nə vaxt/nə/haradan; relizlər və hadisələr ilə korrelyasiya.
Metriklər: müraciət tezliyi, müddəti bitən sirlər, vaxtı keçmiş sertifikatlar, dinamik kreditlərin payı.
Təhlükəsizlik hadisələri: kvotaların aşılması, IP/vaxt anomaliyaları, çoxsaylı uğursuz autentifikasiyalar.

12) Sirlərin və sertifikatların rotasiyası

Vaxtları standartlaşdırın: API açarları - 90 gün, DB şifrələri - 30 gün, TLS şifrələri - 60-90 gün.
Rotasiya konturu: nəsil → test → ikiqat nəşr (grace) → keçid → köhnə baxış → yoxlama.
İşsizlik: konfiqurasiya/sirlərin ikiqat yazılması, müştəri uyğunluğu (accept new + old).
PKI: öz CA və ya xarici inteqrasiya; CSI/Vault vasitəsilə mTLS materiallarının avtomatik yenilənməsi.

13) Dinamik konfiqlər və feature flags

«Qaynar» parametrləri (limitlər, taymautlar) -servis/bayraq platformasından götürün.
Lokal cache və stickiness (hash variantının hesablanması), qısa TTL.
SLO qoruyucuları həssas parametrləri dəyişdirmək (avtomatik geri və kill-switch).

14) CI/CD və GitOps ilə inteqrasiya

Pre-commit/CI: sxem linterləri, SOPS yoxlamaları, «çılpaq» sirlərin qadağan edilməsi (skanerlər: gitleaks/trufflehog).
Policy Gate: OPA/Conftest - sxem olmadan/sahibinin izahı olmadan/mühit işarələri olmadan konfiqurasiyaların qadağan edilməsi.
Progressive delivery: parametrləri dəyişdirmək üçün artefaktlar (semver), canary kimi konfiqurasiya təşviqi.
Relizlərin şərhləri: kim/hansı /sirr dəyişdi; p95/5xx ilə sürətli korrelyasiya.

15) Nümunələr

15. 1 OPA siyasəti: konfiqada açıq SG qadağası

rego package policy. config

deny[msg] {
input. kind == "SecurityGroupRule"
input. cidr == "0. 0. 0. 0/0"
input. port = = 5432 msg: = "Postgres open internet banned"
}

15. 2 Nümunə «snapshot» konfiq (version)

yaml version: 1. 12. 0 owner: payments-team appliesTo: [ "payments-api@prod" ]
http:
timeout_ms: 1200 retry: 2 withdraw:
limits:
per_txn_eur: 5000 per_day_eur: 20000 flags:
new_withdrawal_flow: false

15. 3 Vault - Dinamik CD-lər

hcl path "database/creds/payments" {
capabilities = ["read"]
}
role issues user/password with TTL = 1h and auto-rollover

16) Anti-nümunələr

Gizli Git açıq/dəyişən Helm/şifrələmə olmadan Ansible.
Bütün xidmətlər/mühit üçün vahid «mega-sirr».
TTL/rotasiya olmadan uzun ömürlü tokenlər; «ölümsüz» sertifikatlar.
Dinamik konfiqlər heç bir sxem/validasiya və heç bir dəyişiklik auditi olmadan.
Etcd/KMS və mTLS olmadan şəbəkə üçün Encryption at Rest yoxdur.
Modda konfiqurasiya əl düzəlişləri (GitOps-dan yan keçmək).
«Hər ehtimala qarşı» inkişaf etdiricilərə prod sirlərinə giriş.

17) Giriş çek siyahısı (0-60 gün)

0-15 gün

Konfiqurasiya üçün sxemləri/validatorları işə salın; repo «configs» və GitOps-stream başlayın.
KMS və şifrələməni qaldırın: etcd-də SOPS/Sealed Secrets/Encryption at Rest.
CI (skanerlər) plaintext sirləri qadağan, owners/approvals daxil.

16-30 gün

Depolama bölmək: ictimai konfiqs vs həssas vs sirləri.
Vault/Secrets Manager tətbiq edin, çatdırılma yolunu seçin (Agent/CSI/SOPS).
TLS/DB/PSP kreditlərinin rotasiyasını konfiqurasiya edin; daşbordları «ömrü/müddəti».

31-60 gün

SLO geytinqi və avtomatik geri dönüşü ilə dinamik konfiqlər və bayraqlar.
OPA/Conftest siyasəti; zero-trust (namespace/label-scoped access).
Game-day: gizli sızma və fors-rotasiya simulyasiyası.

18) Yetkinlik metrikası

% gizli şifrələmə altında və Git = 100% birbaşa giriş olmadan.
Konveyerlərin sxemlər/validasiya ilə əhatə olunması ≥ 95%.
Kritik sirlərin rotasiyasının orta müddəti (məqsəd: saat, gün deyil).
Dinamik kreditlərin payı (DB/cloud) ≥ 80%.
«plain secrets «/vaxtı keçmiş sertifikatlara görə 0 insident.
MTTR <5 dəqiqə geri çəkilmə ilə səhv olduqda.

19) Komanda rolları və prosesləri

Config Owner: domen sahibi/sxemlər/siyasətçi.
Təhlükəsizlik: siyasət, əsas iyerarxiya, giriş auditi.
Platform/SRE: GitOps, təchizat/enjeksiyon, telemetriya.
App Teams: konfiqurasiya/gizli istehlakı, uyğunluq testləri.

20) Nəticə

Konfiqurasiya və sirlərin etibarlı konturu + GitOps + şifrələmə + rotasiya + siyasət sxemləridir. İctimai və gizli paylaşın, hər şeyi şifrələyin, atomik və versiyalı konfiqləri tətbiq edin, kreditlərin hüquqlarını və ömrünü minimuma endirin, rotasiya və auditi avtomatlaşdırın. Sonra dəyişikliklər sürətli və təhlükəsiz olacaq və sızma və düşmə riski minimumdur.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.