GH GambleHub

Միգրացիաների և գաղտնիքների կառավարում

Միգրացիայի կառավարումը և գաղտնիքները

1) Ինչո՞ ւ է դա անհրաժեշտ

Կազմաձևը և գաղտնիքները պրոդ պլատֆորմի «արյուն» են։ Ճեպազրույցի սխալը ընկնում է p95-ում, հոսող գաղտնիքը P1 մակարդակի դեպքն է։ Նպատակը քրոնգ/գաղտնիք անելն է

Կանխատեսելի (սխեմաներ, վալիդացիա, տարբերակներ)։

Ապահով (ծածկագրում, նվազագույն իրավունքներ, միգրացիա)։

Կառավարվող (GitOps, աուդիտ, արձագանքներ)։

Դինամիկ այնտեղ, որտեղ դա արդարացված է (feature flags, limits)։

2) Արտեֆակտների դասակարգումը

Հանրային դելեգները 'ֆիչներ, շեմեր, թայմաուտներ, feature flags (առանց գաղտնիքների)։

Զգայուն ալգորիթմներ 'պարամետրեր, որոնք փոխում են կրիտիկական ճանապարհների վարքագիծը (օրինակ, սահմանները)։

Գաղտնիքները 'գաղտնաբառեր/բանալիներ/հոսանքներ/հավաստագրեր/նյութեր։

Վստահության արտեֆակտները 'արմատային/միջանկյալ հավաստագրեր, PKI քաղաքականությունը, KFC բանալիները։

Առանձին պահեստավորման և իրավունքների սկզբունքը 'հանրային, զգայուն գաղտնիքները։

3) Միգրացիայի հիերարխիա

Կառուցեք «բուրգի» շերտերը

1. Global defaults (org-wide).
2. Environment (`prod/stage/dev`).
3. Region (`eu-central-1`, `us-east-1`).

4. Tenault/Brand (մուլտֆիլմի ստենանտների համար)։

5. Մոսկվան (հատուկ միկրովայրվիս)։

6. Override (runtime) - ժամանակավոր անջատիչներ։

Միաձուլման կանոնները '«ցածր հաղթում», հակամարտությունը միայն MR/approval-ի միջոցով։

Օրինակ (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) Սխեմաներ և վալիդացիա

Յուրաքանչյուր քրոնգ պայմանագիր է սխեմայի հետ (JSON Schema/OPA/walidators CI)։

Տեսակներ, միջակայքներ, պարտադիր դաշտեր, լռելյայն արժեքներ։

«Guard-կանոնները» (չի կարող դնել «retry> 5», «p95 _ target <50.1»)։

Ավտոմատ ստուգումը CI-ում և օգտագործելիս (admission-webhook/KRM)։

JSON Schema հատվածը

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) Եզրագծերի առաքման մոդելները

Static (image-baked) 'հուսալի, բայց պահանջում է ռեստարտներ։

Push/Watch: 108/sidecar ստանում են թարմացումներ (stream/poll) և ազդանշաններ։

Pronon startup: Մենք ստանում ենք հրացաններ սկսելիս (պարզեցնել hot-path)։

Edge cache/proxy-ը գեո բաշխված բեռների համար։

Հիմնական բանը ատոմականությունն է և հրացանների տարբերակումը, վերահսկումը և արագ արձագանքը։

6) Գործիքներ և դերեր

Դելեգոգները ՝ Git (ճշմարտության աղբյուրը) + GitOps (Argo/Flux), Parameter Store/Lenta.ru։

Ռուսական գաղտնիքները ՝ Vox, AWS Secrets System/SSM, GCP Secrets, Azure KV։

Կոդավորումը ՝ KFC/HSM, SOPS (AGE/KPG/KLS), Sealed Secrets, Transit-կոդավորումը (Vox)։

Առաքում ՝ CSI Secrets Store, Vast Agent Injector/Sidecar, init-բեռնարկղեր։

Դրոշները/դինամիկան 'ֆիչի դրոշների պլատֆորմը (համր վթարային kill-switch)։

7) Կոդավորում ՝ մոդելներ և պրակտիկա

At rest: KMS-բանալիներ նախագծի/շրջակա միջավայրի, envelope-կոդավորումը։

In transit: TMS/mTSA-ը համապատասխան վավերացումով։

At use: deshifox-ը հնարավորինս ուշ, պրոցեսորի/sidecar-ի հիշողության մեջ (առանց սկավառակի ձայնագրման)։

Հիմնական հիերարխիա ՝ root (HSM) 24KMS CMK no keys (DEK)։

Միգրացիան 'օրացուցային (90/180 օր) + իրադարձությամբ (փոխզիջում/աշխատողի հեռացում)։

8) Գաղտնիքների կառավարումը 'փամփուշտներ

8. 1 GitoPs + SOPS (ստատիկ սարքավորում)

Git-ում միայն ծածկագիր է պահվում։

CI/CD-ում կամ կլաստերի վրա (KFC/age)։

Օգտագործումը վերահսկիչի միջոցով (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 Vox Agent Injector (դինամիկ փուլ)

Ծառայողական (JWT/SA) վավերացվում է Vox-ում։

Sidecar-ը տեղադրում է tmp.ru-ում և թարմացնում TTL-ով։

Դինամիկ քրեդների աջակցությունը (DB, cloud - մեկուսացում և կարճ ժամանակ)։

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

Գաղտնիքը տեղադրեք որպես volume, ռոտացիան թափանցիկ է։

PKI-ի համար հավաստագրերի ավտոմատ նորարարությունն է/։

9) Kubernetes: գործնական ասպեկտներ

SystigMap-ը միայն հանրային/աննկատ տվյալներ է։

Secret-զգայուն (base64-ից - ոչ կոդավորումը; միացրեք Encryption at Rest-ը etcd-ի համար)։

Delksum-սենսացիա 'restart Deploy.ru, երբ փոխվում է եզրը։

Admission-վերահսկումը 'գաղտնիքների տեղադրման արգելքը ոչ թե «սպիտակ ցուցակից», մանիֆեստներում «plain» գաղտնաբառերի արգելքը։

NetworkPolicy: Սահմանափակել գաղտնիքների պրովայդերների հասանելիությունը (Vox/CSI)։

Diksum օրինակ (Helm)

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

10) Հասանելիության քաղաքականությունը (RBAC/ABAC)

Leportprivilege: Ծառայությունը տեսնում է միայն իր գաղտնիքները։ մուտք namespace/label/www.fix։

Split duties: գաղտնիքի ստեղծումը համապատասխանում է բովանդակության կարդալուն։ ցանկացած ընթերցանության աուդիտ։

Ժամանակավոր կրեդները 'դինամիկ տրամաբանություններ (DB, cloud) TTL-ի և ավտոմատ լուծարման հետ։

Սեգմենտացիա: 108/stage տարբեր նախագծերում/հաշիվներում/KMS-բանալիներ։

11) Աուդիտ, ամսագրեր, դիտողություններ

Ընթերցանության/կոդավորման գաղտնիքները 'ո՞ վ/երբ/որ/որտեղից; էքսպոզիցիա և պատահարներ։

Մետրիկները 'գաղտնիքները, ժամկետանց վկայագրերը, դինամիկ կրեդների մասնաբաժինը։

Անվտանգության իրադարձություններ 'քվոտաների ավելցուկ, IP/ժամանակի անոմալիաներ, բազմաթիվ անհաջող լուծումներ։

12) Գաղտնիքների և հավաստագրերի վերացումը

Ստանդարտացրեք ժամանակը 'API-բանալիները' 90 օր, DB գաղտնաբառերը '30 օր, TIM-serts-60-90 օր։

Ռոտացիայի իրականացումը 'արտադրությունը հաստատվում է կրկնակի հրատարակությամբ (grace) բացատրվում է հին ռուսական վերաֆինանսավորումը։

Անպատժելիությունը 'գենդերային/գաղտնիքների կրկնակի ձայնագրությունը, հաճախորդների համատեղելիությունը (accept new + old)։

PKI 'սեփական CA կամ ինտեգրումը արտաքին; ավտոմատ նորարարություն mTSA նյութերի միջոցով CSI/Vox-ի միջոցով։

13) Դինամիկ դելիգներ և feature flags

«Տաք» պարամետրերը (լիմիտներ, թայմաուտներ) վերցրեք 2019/դրոշի պլատֆորմից։

Տեղական քեշը և stickiness (հեշի տարբերակի հաշվարկը), կարճ TTL։

SLO-պաշտպանները զգայուն պարամետրերի փոփոխության վրա (Avto-and kill-switch)։

14) CI/CD և GitOps-ի ինտեգրումը

Pre-commit/CI 'սխեմաների ոսպնյակներ, SOPS ստուգումներ, «մերկ» գաղտնիքների արգելք (սկաներներ ՝ gitleaks/trufflehog)։

Policy Gate: OPA/Wintest - գենդերային արգելք առանց սխեմայի/առանց սեփականատիրոջ/առանց միջավայրի նշանների։

Progressive medivery: Եզրերի առաջխաղացումը որպես արտեֆակտներ (semver), canary փոփոխման համար։

Օրինագծերի նույնականացումները. Ո՞ վ/ինչ www.org/գաղտնիքը փոխեց. արագ հարաբերակցություն p95/5xx-ի հետ։

15) Օրինակներ

15. 1 OPA քաղաքականություն. բաց SG արգելքը ճեպազրույցի մեջ

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 Օրինակ «կեղտոտ» եզրը (տարբերակված)

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 Vox - դինամիկ BD կրեդներ

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

16) Anti-patterna

Git-ի գաղտնիքները բաց տեսքով/Helm/Ansible-ի փոփոխականների մեջ առանց պահանջների։

Միակ «մեգա-գաղտնիքը» բոլոր ծառայությունների/շրջակա միջավայրի համար։

Երկարատև հոսանքները առանց TTL/ռոտացիայի; «անմահ» հավաստագրեր։

Դինամիկ ալգորիթմները առանց սխեմաների/վալիդացիայի և առանց փոփոխությունների։

Encryption at Rest-ի բացակայությունը etcd/KMS-ի և ցանցերի համար առանց mTLS-ի։

Դելիգների ձեռքով աջերը վաճառքում (շրջանցելով GitOps)։

Զարգացողների հասանելիությունը պրոդ գաղտնիքներին «ամեն դեպքում»։

17) Ներդրման թուղթ (0-60 օր)

0-15 օր

Միացրեք սխեմաները/վալիդատորները եզրերի համար։ «digs» և GitOps հոսքը։

Բարձրացրեք KFC-ը և կոդավորումը 'SOPS/Sealed Secrets/Encryption at Rest etcd-ում։

Արգելել պլայնտեքսային գաղտնիքները CI (սկաներներ), ներմուծել owners/approvals։

16-30 օր

Բաժանել հասցեները 'հանրային դելիգներ vs զգայուն vs գաղտնիքները։

Ներդրել Vox/Secrets Express, ընտրել առաքման ճանապարհը (Agent/CSI/SOPS)։

Տեղադրել TFC/DB/PSA-kredov լուծումը։ dashbords «կյանքի/ավարտվում»։

31-60 օր

Դինամիկ դելիգները և դրոշները SLO-geiting-ի և Auto-ի հետ։

OPA/Wintest քաղաքականությունները; zero-trust (namespace/label-scoped հասանելիություն)։

Game-day 'գաղտնիության և fors-ի արտահոսքի սիմուլյացիա։

18) Հասունության մետրերը

գաղտնիքների% -ը ծածկագրված է և առանց ուղղակի մուտք Git = 100% -ի։

Դելիգների ծածկումը սխեմաներով/վալիդացիայով 95 տոկոսն է։

Կրիտիկական գաղտնիքների հաշվարկման միջին ժամանակը (նպատակը 'ժամացույց, ոչ օրեր)։

Դինամիկ կրեդների (DB/cloud) մասնաբաժինը 80 տոկոսն է։

0 ռուբլի «plain secrets «/ժամկետանց հավաստագրերի պատճառով։

MTTR-ը, երբ սխալվում է, հետաձգում է <5 րոպե։

19) Թիմային դերերը և գործընթացները

Ստանիսլավ Օուներ 'տիրույթի/սխեմայի/քաղաքական սեփականատեր։

Տե՛ ս ՝ քաղաքականություն, հիմնական հիերարխիա, հասանելիության աուդիտ։

Platform/MSE: GitOps, մատակարարում/ներարկում, հեռուստաչափություն։

App Teams-ը 'դելիգների/գաղտնիքների սպառումը, կոդավորման թեստերը։

20) Եզրակացություն

Ներարկումների և գաղտնիքների հուսալի իրականացումը + GitOps + կոդավորումը + անջատումը + քաղաքականությունը։ Բաժանեք հանրային և գաղտնի, ծածկագրեք ամեն ինչ, օգտագործեք ատոմային և տարբերակիչ ալգորիթմներ, նվազեցրեք ձեր իրավունքները և կյանքի տևողությունը, ավտոմատիզացրեք պարտատոմսերն ու աուդիտը։ Այդ ժամանակ փոփոխությունները կդառնան արագ և անվտանգ, իսկ արտահոսքի և անկման ռիսկը նվազագույն է։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։