GH GambleHub

Գաղտնիքների կառավարումը

Գաղտնիքների կառավարումը

1) Ինչու՞ և ի՞ նչ ենք կարծում «գաղտնիքը»

Գաղտնիքը ցանկացած նյութ է, որի բացահայտումը հանգեցնում է համակարգի կամ տվյալների փոխզիջման, գաղտնաբառերի, API-tokens, OAuth/JWT private keys, SSH-բանալիներ, վկայագրեր, բանալիներ (KEK/DEK), webhuks ստորագրման բանալիներ, DSN NoWWWE WWWWWWE WE WWWE WWE WE E E WE E E E E WE E E WWE E E, փոստի/SMS), cookie-աղ/pepper, bots/chats, լիցենզիա։

Գաղտնիքները ապրում են կոդում, գլանափաթեթում, շրջապատում, բեռնարկղերում, CI/CD, Terraform/Ansible-ում, լոգարաններում/դամպերում, գաղտնիքների կառավարման խնդիրն է 'ռուսական առաքման պահեստավորման լուծարման օգտագործումը։

2) Ճարտարապետության սկզբունքները

Կենտրոնացումը։ Մեկ վստահելի շերտ (Vox/Cloud Secret System/KMS) պահեստավորման, պահեստավորման և արտադրության համար։

Ամենափոքր առավելությունները (PoLP)։ Միայն անհրաժեշտ ծառայությունների/դերերի հասանելիությունը նվազագույն ժամանակահատվածի համար։

Կարճ կյանք։ Նախընտրելի են դինամիկ/ժամանակավոր գաղտնիքները TTL/leport-ի հետ։

Crypto-agility. Ալգորիթմները/տևողությունը փոխելու հնարավորությունը կատարվում է առանց անցքի։

Գաղտնիքների բաժանումը կոդից/պատկերներից։ Ոչ գաղտնաբառեր, ոչ էլ Docker-պատկերներում։

Դիտարկումը և աուդիտը։ Գաղտնիքների յուրաքանչյուր վիրահատություն տրամաբանվում է և ալերտացվում։

Ավտոմատ ռոտացիան։ Միգրացիան pipeline գործընթացն է, ոչ թե ձեռքի ակցիան։

3) Տիպային լուծումներ և բաղադրիչների դերեր

KMS/HSM. Արմատային վստահություն, վիրահատություն 2019/ծածկագրեր (envelope)։

Secret Manager/Vault. Գաղտնիքների տարբերակների, ACL, աուդիտ, դինամիկ գաղտնիքներ (DB, cloud-IAM, PKI), ռոտացիայի օրինակներ։

PKI/CA. mTSA/SSH/JWT ստորագրությունների հակիրճ հավաստագրերի թողարկումը։

Գործակալ/sidecar։ Գաղտնիքների առաքումը rantaim (ֆայլեր tmp.ru, in-memory k/v, hot-reload)։

CSI վարորդներ/օպերատորներ։ Kubernetes-ի հետ ինտեգրումը (Secret Store CSI Driver, cast-2019)։

Շերտը տեղադրված է Git-ում։ SOPS/age, git-crypt (ենթակառուցվածքային կոդի համար)։

4) Դասակարգում և քաղաքականություն

Բաժանեք քննադատության գաղտնիքները (P0/P1/P2) և վնասի ծավալը (tenault-scoped, enviance no-scoped, org-wide)։ Յուրաքանչյուր դասարանի համար տվեք

TTL/lement և ռոտացիայի հաճախությունը։

մեթոդը (դինամիկա vs statik), ձևաչափը, կրողը։

հասանելիության քաղաքականությունը (որտեղ/որտեղ/երբ/ինչու), mTSA-ի պահանջները և ռուսական ստանդարտները։

աուդիտ (որը տրամաբանությունն է, թե քանի ենք մենք, ովքեր նախանձում են)։

break-glass-ը և վերանայումը։

5) Գաղտնիության կյանքի ցիկլը

1. Ստեղծումը 'API Secret System-ի միջոցով (owner, tags, scope)։

2. Պահեստավորում: ծածկագրված տեսքով (envelope: DEK-ը կվերցնի KEK-ը KMS/HSM-ից)։

3. Առաքումը 'հեղինակային սուբյեկտի խնդրանքով (OIDC/JWT, SPIFFE/SVID, mTSA)։

4. Օգտագործումը 'բացառապես հիշողության/tmp.ru; տրամաբանության/ամբոխների արգելք։

5. Ռոտացիան 'TTL-ով կամ իրադարձությամբ (փոխզիջում); զուգահեռ տարբերակների աջակցություն (N-1)։

6. Վերանայումը/արգելափակումը 'leations-ի չարտոնված մաքրումը, հաշիվի/ստեղնը պաշտոնական համակարգում։

7. Հեռացումը 'տարբերակների/նյութի ոչնչացումը, պարզ շղթան։

6) Դինամիկ գաղտնիքները (խորհուրդ է տրվում լռելյայն)

Գաղափարը 'գաղտնիքը կարճ է և ինքնաբերաբար լրանում է։ Օրինակներ

Նշված տվյալները BD (Postgres/MySQL) TTL 15-60-ից։

Ամպերի ժամանակավոր բանալիները (AWS/GCP/Azure) մրցույթի դերի վրա։

SSH հավաստագրեր (5-30 րոպե), X5.59 հավաստագրեր (ժամ/օր)։

Ժամանակավոր JWT-ը հարցումների ստորագրման համար, session-tickets բրոքերներ։

Պլյուսներ ՝ նվազագույն blast radius, պարզեցված ակնարկ (աշխարհում ոչինչ չի մնա)։

7) Գաղտնիքների առաքումը ռանտայմ

Kubernetes:
  • Secret Store CSI Driver-ը նկարագրում է արտաքին կառավարչի գաղտնիքները pod-ում որպես ֆայլեր (tmp.ru)։
  • Խուսափեք Kubernetes Secret-ից որպես միակ աղբյուրը (base64 հազար կոդավորումը); անհրաժեշտության դեպքում միացրեք KFC պրովայդերը etcd-ի համար։
  • Sidecar-գործակալ (Vance Agent/Secrets Store) հետ leox և hot-reload։
  • VM/Bare-metal: համակարգային գործակալ + mTSA k Vox/Secret System, kash հիշողության մեջ, նվազագույն TCB։
  • Serverless: International ամպ, որն ունի թափանցիկ գաղտնիքներ որպես փոփոխական շրջապատեր/ֆայլեր, բայց խուսափել երկար գոյատևող envvars-ից 'հիշողության ֆայլեր/հիշողության մեջ։

Օրինակ (Kubernetes + CSI, հայեցակարգային)

yaml apiVersion: v1 kind: Pod metadata: { name: app }
spec:
serviceAccountName: app-sa # is associated with a role in Secret Manager volumes:
- name: secrets csi:
driver: secrets-store. csi. k8s. io readOnly: true volumeAttributes:
secretProviderClass: app-spc containers:
- name: app volumeMounts:
- mountPath: /run/secrets name: secrets readOnly: true

8) DiCI/CD և IaC

CI 'գողերը ստանում են կարճ հոսանքներ OIDC-ով (Workload Identity)։ Արգելքը «քողարկված» գաղտնիքների վրա, որոնք ընկնում են լոգայի մեջ։ «արտահոսքի սկան» (trufflehog/gitleaks)։

CD 'Deple-ը վերցնում է գաղտնիքները, չի ձայնագրում դրանք արտեֆակտների մեջ։

IaC: Terraform-ը պահպանվում է Secret Pro-ում։ վիճակը (state) կոդավորված է և սահմանափակվում է հասանելի։

SOPS/age 'ռեպոյի համար ծածկագրված մանիֆեստներ, բանալիներ - KFC-ի կառավարման տակ։

Օրինակ (SOPS հատված)

yaml apiVersion: v1 kind: Secret metadata: { name: app }
data:
PASSWORD: ENC[AES256_GCM,data:...,sops:...]
sops:
kms:
- arn: arn:aws:kms:...
encrypted_regex: '^(data    stringData)$'
version: '3. 8. 0'

9) Հասանելիության քաղաքականությունը և աշխատանքային բեռների վավերացումը

Workload identity: SPIFFE/SPIRE, Kubernetes SA→OIDC→IAM-роль, mTLS.

Ժամանակավոր հոսանքները 'կարճ TTL, նեղ scope։

ABAC/RBAC Secret Pro-ում. <<Ով կարող է կարդալ X գաղտնիքը Y-ի միջավայրում> առանձնացված է "ով կարող է ստեղծել/ստեղծել>։

Բազմաբնույթ 'առանձին namespaces/key-rings վարձողի վրա։ առանձին քաղաքականություններ և հաշվետվություններ։

10) Ռոտացիան, տարբերակները և համատեղելիությունը

Բաժանեք ռուսական գաղտնիքը և նրա տարբերակները («secret/app/db # v17»)։

Աջակցեք երկու ակտիվ տարբերակներ (N և N-1) անկայուն ռոտացիայի համար։

Լուծումը իրադարձություն է 'աշխատանքից ազատվելու, փոխզիջման, պրովայդերի փոփոխության, ալգորիթմների ավելացման ժամանակ։

Ավտոմատիզացրեք: com/backend Vox/Secret Pro + webhook-Stugger վերագործարկումը/reneval։

text
T0: we publish two secrets in the provider: current, next
T1: the application starts accepting signatures by both current and next
T2: external system switches signature to next
T3: we do next -> current, re-release new next

11) Պահեստավորում ռանտայմից դուրս 'պահեստային պատճեններ և արտեֆակտներ

Երբեք չընկնել արտեֆակտների մեջ (պատկերներ, լոգարանների արխիվներ, տիկնայք)։

Bekaps Secret Express-ը կոդավորում է, պահեստավորման բանալիները նույն կոդից դուրս (separation of duties)։

DLP-սկանները 'S3/Blob/GCS, Git, CI արտեֆակտներ։

12) Դիտարկումը, աուդիտը և SLO-ն

Մետրիկները 'կոդերի/գաղտնիքների/ծառայության քանակը, վերջացրած leport մասը, միջին TTL-ը, ռոտացիայի ժամանակը, փոխակերպման ժամանակը (վայրկյան/րոպե մինչև նոր տարբերակի «ընդունումը»)։

Աուդիտ-լոգներ 'ով/ինչ/երբ/որտեղից/ինչու; պահեստավորում, նույնպես ծածկագրված է։

SLO: 99% 07 <200 մզ; 0 արտահոսք լոգարանում; Գաղտնիքների 100 տոկոսը ունեն owner/TTL/tegi; Քննադատական գաղտնիքների 100 տոկոսը դինամիկ կամ ռոտացիան 30 օր է։

Ալբերտներ ՝ գաղտնիքը լրանում է <7 օր (ստատիկների համար), մերժման բարձրացում, չկա ընթերցումներ գաղտնի> N օր (մահացած), անսպասելի գեո/ASN աղբյուրներ։

13) Հաճախակի սխալներ և ինչպես խուսափել դրանցից

Գաղտնիքները Git/պատկերներում։ Օգտագործեք SOPS/age և սկաներներ։ արգելել «մերկ» տողերը։

Envars-ը որպես երկարատև կրող է։ Նախընտրեք tmp.ru/in-memory ֆայլերը։ մաքրեք շրջապատը ամրոցներում/ամբոխներում։

Նույն գաղտնիքները dev/stage/2019 համար։ Բաժանվեք շրջապատով։

Երկարատև ստատիկ գաղտնաբառեր։ Անցեք դինամիկ/հակիրճ։

Միակ վարպետության բանալին «ամեն ինչի համար»։ Կիսեք վարձկաններին/նախագծերին/ծառայություններին։

Ոչ hot-reload։ Ծրագիրը պահանջում է ռեստարտը նվազեցնել խոցելիության պատուհանը ռոտացիայի ժամանակ։

14) Ինտեգրման օրինակներ (սխեմատիկ)

Vox դինամիկ հասանելիությունը Postgres

hcl
Vault: role -> issues the user to the database with TTL 30m and privileges only to the app path "database/creds/app-role" {
capabilities = ["read"]
}
Application requests/database/creds/app-role -> receives (user, pass, ttl)

JWT ստորագրություն հարցումների (կարճ ժամանակով)

Մասնավոր բանալին պահպանվում է Secret Tramp-ում։ ծառայությունը պահանջում է հակիրճ signing-token և տեղական գործակալը ստորագրում է payload (բանալին չի փոխանցվում որպես տող)։

SSH հավաստագրեր admins համար

SSH-cript-ի թողարկումը 10 րոպե SSO (OIDC), առանց մշտական կոմպոզիցիաների տարածման։

15) Տարածքի անվտանգությունը

Logs/treiss/metriks: Altaisers, ֆիլտրեր հայտնի կոդերի/պաթոգենների համար։ «գաղտնի» դաշտերը դիմակավորում են APM-ում։

Տիկնայք/ծովախեցգետնյա զեկույցներ 'կտրել լռելյայն; եթե անհրաժեշտ է ծածկել և մաքրել։

Հաճախորդների ծրագրերը/պոլիմիլները 'նվազագույնի հասցնել օֆլինի գաղտնիքները, օգտագործել պլատֆորմաներ (Keychain/Keystore), կառուցվածքի հետ կապված, TMS-pinning-ը արտակարգ ճեղքման հետ։

16) Կոմպլաենսը

PCI DSS 'PAN/գաղտնիքների պահեստավորման արգելք առանց վիզաների; մուտքի և տարհանման խիստ վերահսկողություն։

MS27001/SOC 2 'ակտիվների կառավարման, լրագրության, մուտքի վերահսկման, միգրացիայի փոփոխության պահանջներ։

GDPR/տեղական կարգավորիչները 'նվազեցում, հասանելիություն անհրաժեշտության, աուդիտ։

17) Գործընթացներ և runbook

Շահագործման շահագործումը

1. Գաղտնիքների բուլարիզացիա (ռեպոզորիա, CI, պատկերներ, runtime, bakaps)։

2. Դասակարգումը և թեգերը (owner, envi.ru, tenae, rotation-policy)։

3. Մրցույթի ընտրությունը (Vox/Cloud SM) + ինտեգրումը KFC/HSM-ի հետ։

4. Workload identity (OIDC/SPIRE)։

5. Դինամիկ գաղտնիքների իրականացումը BD/ամպերի/PKI-ի համար։

6. Avto-ռոտացիան և hot-reload; ալտերտերը էքսպիրացիայի վրա։

7. Արտահոսքի սկաներների և Live Catalog/DS-ի կարգավորում։

Արտակարգ սցենարներ

Արտահոսքի կասկածն այն է, որ հասանելիության ստոպը, որը համապատասխանում է ռոտացիային, արձագանքում է վկայագրերին/բանալիներին, հոսանքներին, բարձրացված հոսանքին, RCA-ին։

Secret Express-ը անհասանելի է, տեղական կեսը հիշողության փոքր TTL-ով, գործառույթների դեգրադացիան, նոր պարամետրերի սահմանափակումը, ձեռքի break-glass քայլերը։

Կորեական ստեղնաշարի փոխզիջումը 'key-hierarchy, rewrap բոլոր DEK, ռիսկի պատուհանի բոլոր պարամետրերի ստուգում։

18) Չեկ թերթերը

Մինչ վաճառքը

  • Գաղտնիքները հանվում են կոդից/պատկերներից; ներառում են արտահոսքի սկաներներ։
  • Քննադատական գաղտնիքների համար ներառված են դինամիկ մեխանիզմները։
  • Առաքումը sidecar/CSI/tmp.ru hot-reload-ի միջոցով առանց երկարաժամկետ envars։
  • Տրամադրված է IAM/ABAC քաղաքականությանը, կապված է workload identity-ի հետ։
  • Avto-Avto-ի և կրկնակի տարբերակների համար (N, N-1)։
  • Metriki/alerta/aludit ներառվում են; դեգրադացիայի թեստերը շարունակվում են։

Վիրահատություն

  • Ամսական հաշվետվություն 'սեփականատերեր, TTL, ժամկետանց գաղտնիքներ, որոնք չեն օգտագործվում։
  • Արտահոսքի ուղիների պարբերականներն ու պենտեստները (լոգներ, տիկնայք, արտեֆակտներ)։
  • crypto-agility պլանը և SA/արմատների արտակարգ փոխարինումը։

19) FAQ

Արդյո՞ ք Secret Pro-ն առանց KFC-ի բավարար է։

Օ 'Հիմնական մակարդակի համար այո, բայց ավելի լավ է օգտագործել envelope-կոդավորումը' KEK-ը KFC/HSM-ում, գաղտնիքները ծածկված են։ Սա պարզեցնում է ակնարկները և կոմպլենսը։

Ի՞ նչ ընտրել 'ստատիկ կամ դինամիկա։

Օ 'Լռելյայն' դինամիկա։ Ստատիկը թողեք միայն այնտեղ, որտեղ չկա աջակցվող պրովայդերներ, և այրեք TTL-ը մինչև օր/ժամ + ավտոմատ նավարկություն։

Ինչպե՞ ս կարող եք ապահով կերպով գաղտնիքները տեղափոխել միկրովայրկյան։

О: Workload identity → mTLS к Secret Manager → sidecar/CSI → файлы в tmpfs + hot-reload. Առանց լոգարանների, առանց envars «ընդմիշտ»։

Արդյո՞ ք դուք կարող եք գաղտնիքները պահել Kubernetes Secret-ում։

Օ 'Միայն etcd կոդավորման ժամանակ KFC-պրովայդերի և խիստ քաղաքական գործիչների հետ։ Նախընտրեք արտաքին պահեստ և CSI։

Ինչպե՞ ս կարելի է «ծպտյալ-ջնջել» վարձողի հասանելիությունը։

Օ 'Հետ կանչեք/արգելափակել նրա քաղաքականությունը Secret Pro-ում, հաշմանդամացնել բոլոր leases, միգրացիա/վերակենդանացում։ KFC-ն օգտագործելիս անջատել unwrap համապատասխան KEK-ը։

Կապված նյութեր

«At Rest» կոդավորումը

«In Transit»

«Բաների կառավարումը և նավարկումը»

«S2S-վավերացում»

«Ստորագրություն և հարցումների հավատարմագրում»

Contact

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

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

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

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

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

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