Konfigurasiýalary we syrlary dolandyrmak
Konfigurasiýalary we syrlary dolandyrmak
1) Bu näme üçin zerur?
Konfigurasiýalar we syrlar - prod-platformanyň "gany". Konfigadaky ýalňyşlyk p95-e düşýär, syr P1 derejesindäki hadysadyr. Maksat gizlin/gizlin etmek:- Öňünden aýdyp boljak (shemalar, tassyklama, wersiýalar).
- Howpsuz (şifrlemek, iň az hukuklar, aýlaw).
- Dolandyrylýan (GitOps, audit, yzyna gaýtarmalar).
- Aklanan ýerinde dinamiki (feature flags, çäkleri parametrleşdirmek).
2) Artefaktlaryň klassifikasiýasy
Köpçüligiň gapdalynda: fiçler, bosagalar, wagtlar, feature flags (syrsyz).
Duýgur gapma-garşylyklar: möhüm ýollaryň özüni alyp barşyny üýtgedýän parametrler (mysal üçin, töleg çäkleri).
Syrlar: parollar/açarlar/bellikler/şahadatnamalar/şifrlemek materiallary.
Ynam artefaktlary: kök/aralyk şahadatnamalary, PKI syýasatlary, KMS açarlary.
Aýry-aýry saklamak we hukuklar ýörelgesi: köpçüligiň ≠ duýgur ≠ syrlary.
3) Konfigurasiýa iýerarhiýasy
Gatlaklaryň "piramidasyny" guruň:1. Global defaults (org-wide).
2. Environment (`prod/stage/dev`).
3. Region (`eu-central-1`, `us-east-1`).
4. Tenant/Brand (köp tenantlar üçin).
5. Service (anyk mikroservis).
6. Override (runtime) - wagtlaýyn açarlar.
Birleşmegiň düzgünleri: "aşakda ýeňiş gazanýar", gapma-garşylyk - diňe MR/approval arkaly.
Mysal (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) Shemalar we tassyklama
Her bir zat - shema bilen şertnama (JSON Schema/OPA/CI-de walidatorlar).
Görnüşler, diapazonlar, hökmany meýdanlar, adaty bahalar.
"Guard-düzgünler" ('retry> 5', 'p95 _ target <50ms' goýup bolmaýar).
CI-de we ulanylanda awtomatiki barlamak (admission-webhook/KRM).
JSON Shema bölegi
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) Konfigurasiýalary eltmegiň modelleri
Static (image-baked): ygtybarly, ýöne täzeden başlamagy talap edýär.
Push/Watch: agentler/sidecar täzelenmeleri (akym/poll) alýarlar we programma signal berýärler.
Pull on startup: Başlaýanymyzda snapshot alýarys (hot-path ýönekeýleşdiriň).
Geo-paýlanan ýükler üçin Edge cache/proxy.
Esasy zat: atomarlyk we snapshotlaryň wersiýasy, gabat gelýänlige gözegçilik we çalt yza gaýdyp gelmek.
6) Gurallar we rollar
Konfigurasiýa ammarlary: Git (hakykat çeşmesi) + GitOps (Argo/Flux), Parameter Store/Config Service.
Gizlin ammarlar: Vault, AWS Secrets Manager/SSM, GCP Secrets, Azure KV.
Şifrlemek: KMS/HSM, SOPS (age/GPG/KMS), Sealed Secrets, Transit-şifrlemek (Vault).
Eltip bermek: CSI Secrets Store, Vault Agent Injector/Sidecar, init-konteýnerler.
Baýdaklar/dinamika: Ficha-baýdaklar platformasy (şol sanda gyssagly öldürmek-switch).
7) Şifrlemek: modeller we amallar
At rest: Taslamanyň/gurşawyň KMS-açarlary, envelope-şifrlemek.
In transit: Özara tassyklama bilen TLS/mTLS.
At use: deşifrlemek mümkin boldugyça soňrak, has gowusy - prosesiň ýadynda/sidecar (diske ýazylmazdan).
Esasy iýerarhiýa: root (HSM) → KMS CMK → data keys (DEK).
Aýlanyş: senenama (90/180 gün) + waka boýunça (işgäriň eglişigi/gitmegi).
8) Syrlary dolandyrmak: patternler
8. 1 GitOps + SOPS (statik snapshot)
Gidde diňe şifrlenen tekst saklanýar.
Şifrlemek CI/CD ýa-da klaster (KMS/age).
Dolandyryjy arkaly ulanmak (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 (dinamiki çykyş)
Hyzmat hasaby (JWT/SA) Vault-da tassyklanýar.
Sidecar tmpfs-de kredtleri goýýar we TTL boýunça täzelenýär.
Dinamiki kredileri goldamak (DB, cloud - izolýasiýa we gysga möhlet).
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
Syry üýtgetmek, aýlanmak aç-açan.
PKI üçin - şahadatnamalary/açarlary awtomatiki täzelemek.
9) Kubernetes: amaly taraplary
ConfigMap - diňe köpçülige açyk/duýgur däl maglumatlar.
Secret - duýgur (base64 - şifrlemek däl; Encryption at Rest-i etcd üçin açyň).
Checksum-annotasiýa: konfig üýtgäninde Deployment-i täzeden başlamak.
Admission-control: "ak sanawdan" däl syrlary redaktirlemegi gadagan etmek, manifestlerdäki "plain" parollary gadagan etmek.
NetworkPolicy: Gizlin üpjün edijilere girişi çäklendirmek (Vault/CSI).
Checksum mysaly (Helm)
yaml annotations:
checksum/config: {{ include (print $.Template. BasePath "/configmap. yaml"). sha256sum }}
10) Giriş syýasaty (RBAC/ABAC)
Least privilege: hyzmat diňe öz syrlaryny görýär; namespace/label/prefix.
Split duties: syry döretmek ≠ mazmuny okamak; islendik okamagyň barlagy.
Wagtlaýyn kodlar: TTL we awtomatiki aýlanyş bilen dinamiki loginler (DB, cloud).
Segmentasiýa: prod/stage dürli taslamalarda/hasaplarda/KMS-açarlarda.
11) Audit, žurnallaşdyrma, gözegçilik etmek
Syr okamak/bermek ýazgylary: kim/haçan/näme/nireden; relizler we hadysalar bilen baglanyşyk.
Metrikler: ýüz tutmalaryň ýygylygy, gutarýan syrlar, möhleti geçen şahadatnamalar, dinamiki kredileriň paýy.
Howpsuzlyk wakalary: kwotalaryň artykmaçlygy, IP/wagt boýunça anomaliýalar, köp şowsuz autentifikasiýalar.
12) Syrlaryň we şahadatnamalaryň aýlanmagy
Möhletleri standartlaşdyryň: API-açarlar - 90 gün, DB-parollar - 30 gün, TLS-sertlar - 60-90 gün.
Aýlanyş kontury: nesil → synag → goşa neşir (grace) → geçiş → köne gözden geçirmek → tassyklamak.
Işlemezlik: konfigurasiýalary/syrlary goşa ýazmak, müşderileriň laýyklygy (accept new + old).
PKI: öz CA ýa-da daşarky bilen integrasiýa; mTLS materiallaryny CSI/Vault arkaly awtomatiki täzelemek.
13) Dinamiki gapma-garşylyklar we feature flags
"Gyzgyn" parametrleri (çäkleri, wagtlary) hyzmat/baýdak platformasyndan alyň.
Lokal keş we stickiness (heş opsiýasyny hasaplamak), gysga TTL.
Duýgur parametrleri üýtgetmek üçin SLO goragçylary (awto-yza gaýdmak we öldürmek-switch).
14) CI/CD we GitOps bilen integrasiýa
Pre-commit/CI: shema linterleri, SOPS-barlaglar, "ýalaňaç" syrlary gadagan etmek (skanerler: gitleaks/trufflehog).
Policy Gate: OPA/Conftest - şemasyz/eýesiniň düşündirişsiz/daşky gurşaw bellikleri bolmazdan konfigurasiýalara gadaganlyk.
Progressive delivery: konfigurasiýalary artefaktlar (semver), parametrleri üýtgetmek üçin canary hökmünde mahabatlandyrmak.
Relizleriň düşündirişleri: kim/näme/syr üýtgetdi; p95/5xx bilen çalt baglanyşyk.
15) Mysallar
15. 1 OPA syýasaty: konfigada açyk SG gadaganlygy
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 Konfiganyň "snapshot" mysaly (wersiýalanýan)
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 - dinamiki CD-ler
hcl path "database/creds/payments" {
capabilities = ["read"]
}
role issues user/password with TTL = 1h and auto-rollover
16) Anti-patternler
Gizlinlikler Git-de açyk/Helm/Ansible üýtgeýjilerinde şifrlenmezden.
Ähli hyzmatlar/gurşaw üçin ýeke-täk "mega-syr".
TTL/rotasiýa bolmazdan uzak ömürli tokenler; "ölmez-ýitmez" şahadatnamalar.
Shemasyz/tassyklamasyz we auditsiz dinamiki konfigikler.
mTLS-siz etcd/KMS we tor üçin Encryption at Rest ýok.
Konsoldaky konfigurasiýalary el bilen düzetmek (GitOps-dan aýlanyp geçmek).
Işläp düzüjileriň "mümkin boldugyça" proto-syrlara elýeterliligi.
17) Giriş çek-sanawy (0-60 gün)
0-15 gün
Konweýler üçin shemalary/tassyklaýjylary açyň; "configs" reposyny we GitOps akymyny başla.
KMS we şifrlemäni göteriň: Etcd.
CI (skanerlerde) plaintext syrlaryny gadagan etmek, owners/approvals girizmek.
16-30 gün
Ammarlary bölmek: köpçüligiň gapma-garşylygy vs duýgur vs syrlar.
"Vault/Secrets Manager" -y ornaşdyryň, gowşuryş ýoluny saýlaň (Agent/CSI/SOPS).
TLS/DB/PSP-krediniň aýlanyşyny sazla; dashbordlar "ömürlik/gutarýan".
31-60 gün
SLO-geýting we awto-yza gaýdýan dinamiki gapma-garşylyklar we baýdaklar.
OPA/Conftest syýasaty; zero-trust (namespace/label-scoped access).
Game-day: gizlin syzmak we fors-rotasiýa simulýasiýasy.
18) Kämillik ölçegleri
Git = 100% -den gönüden-göni elýeterli däl we şifrlenen syrlaryň% -i.
Konwensiýalary shema/tassyklama bilen ýapmak ≥ 95%.
Möhüm syrlary aýlamagyň ortaça wagty (maksady: sagat, gün däl).
Dinamiki kredileriň paýy (DB/cloud) ≥ 80%.
"plain secrets "/möhleti geçen şahadatnamalar sebäpli 0 hadysalar.
MTTR ýalňyşlyk ýüze çykan halatynda <5 minut.
19) Toparlaýyn rollar we prosesler
Config Owner: domen/shemalar/syýasatçy.
Howpsuzlyk: syýasatlar, esasy iýerarhiýa, giriş barlagy.
Platform/SRE: GitOps, eltip bermek/injeksiýa, telemetriýa.
App Teams: konfigurasiýalary/syrlary sarp etmek, laýyklyk synaglary.
20) Netijenama
Konfigurasiýalaryň we syrlaryň ygtybarly kontury - bu shemalar + GitOps + şifrlemek + rotasiýa + syýasat. Köpçülige we gizlinlige bölüniň, hemme zady şifrläň, konfiguralary atom we wersiýa arkaly ulanyň, kredileriň hukuklaryny we ömrüni azaldyň, rotasiýalary we auditi awtomatlaşdyryň. Şonda üýtgeşmeler çalt we howpsuz bolar we syzmak we ýykylmak howpy az bolar.