Aqbeż għall-kontenut

Rotazzjoni taċ-ċavetta master u taċ-ċwievet tal-iffirmar, u aċċess break-glass

Dawwar iċ-ċavetta master li tipproteġi l-kredenzjali maħżuna, u uża aċċess break-glass.

Ara bħala Markdown

Il-kontrolli f’21-compliance.md sezzjoni 14 li awditur jitlob b’isimhom. Din il-paġna hija l-proċedura; ir-rekords li tipproduċi huma l-evidenza.

Iċ-ċwievet

Kull kredenzjali maħżuna hija ssiġillata b’ċavetta friska ta’ encryption tad-data (DEK). Id- DEK hija mgeżwra miċ-ċavetta master (il-KEK), u r-referenza taċ-ċavetta master tinħażen ħdejha (key_ref, jew ir-referenza ġewwa valur ippakkjat). Ir-rotazzjoni taċ-ċavetta master terġa’ tgeżwer id-DEKs. Qatt ma tiddekripta jew terġa’ tenkripta kredenzjali.

Setting Meaning
QUIRE_MASTER_KEY Iċ-ċavetta master attwali: 32 bytes, base64. Kull sigriet ġdid huwa mgeżwer taħtha
QUIRE_MASTER_KEY_VERSION It-tikketta tal-verżjoni tagħha. v1 meta mhijiex issettjata. Għolliha kull meta tbiddel iċ-ċavetta
QUIRE_MASTER_KEY_RETIRED Ċwievet ta’ qabel li sigrieti maħżuna jistgħu għadhom taħthom, bħala v1=<base64>,v0=<base64>. Aqra, qatt tikteb

Il-livell web, il-worker u l-kmand bun run kek:rotate jaqraw l-istess tliet settings. Kollha jrid ikollhom l-istess valuri, jew wieħed minnhom ma jistax jiftaħ dak li ieħor issiġilla.

Mingħajr QUIRE_MASTER_KEY kull sottosistema żżomm iċ-ċavetta li tidderiva minn QUIRE_SECRET_KEY. Dan jaħdem, il-paġna tas-saħħa tas-Sistema turih bħala degradat, u jibqa’ jinqara wara li tissettja ċavetta master, li huwa kif l-ewwel rotazzjoni tmexxi kollox minn fuqha. Kull min jista’ jaqra l-ambjent tal-proċess jista’ jiddekripta kull kredenzjali maħżuna, għalhekk installazzjoni ta’ produzzjoni għandu jkollha ċavetta master, miżmuma f’maħżen ta’ sigrieti u mhux fl-istess backup mad-database.

Rotazzjoni

L-età taċ-ċavetta tidher fuq il-console tal-Pjattaforma, Sigurtà, Ċavetta master, u bħala l-metrika quire.secrets.master_key.age (jiem). L-iskeda ta’ kuljum platform.key_age (03:41 UTC) tikteb entrata ta’ tfakkira fil-katina tal-verifika tal-pjattaforma meta ċ-ċavetta tilħaq 365 jum, u mill-ġdid kull 30 jum sakemm tiddawwar. Dawwar mat-tfakkira, u kull meta ċavetta setgħet kienet esposta.

  1. Iġġenera ċ-ċavetta l-ġdida: openssl rand -base64 32.
  2. Issettja QUIRE_MASTER_KEY għaliha u QUIRE_MASTER_KEY_VERSION għat-tikketta li jmiss (v2). Mexxi ċ-ċavetta l-qadima għal QUIRE_MASTER_KEY_RETIRED bħala v1=<old base64>. Żomm kopja tat-tnejn xi mkien ieħor barra dan il-host.
  3. Deployja l-livell web u l-worker bis-settings il-ġodda. Sigrieti ġodda issa huma mgeżwra taħt env:QUIRE_MASTER_KEY:v2; dawk qodma xorta jinfetħu permezz taċ- ċavetta rtirata.
  4. Itlob ir-rotazzjoni, bir-raġuni li se toqgħod fit-trail tal-verifika:
    • fil-console: Sigurtà, Ċavetta master, Dawwar iċ-ċavetta master; jew
    • fuq shell bl-istess ambjent: bun run kek:rotate request --reason "Annual rotation, ticket SEC-114".
  5. Il-worker jerġa’ jgeżwer porzjon kull minuta (l-iskeda platform.key_rotation tal-iskedar) u jkompli wara restart. Biex tlestiha f’seduta waħda: bun run kek:rotate run. Araha b’bun run kek:rotate status.
  6. Meta r-rekord juri li r-rotazzjoni kompluta b’żero mhux solvuti u żero falluti, neħħi ċ-ċavetta rtirata minn QUIRE_MASTER_KEY_RETIRED u erġa’ deployja. Sa dakinhar żommha: valur li ma setax iċaqalqu għadu mgeżwer taħt iċ-ċavetta l-qadima.

X’jimxi x-xogħol

Kull maħżen li fih DEK imgeżwer: dawk f’SEALED_STORES (apps/worker/src/key-rotation.ts). Maħżen tad-database tal-kontroll jimxew fuq id- database tal-kontroll; maħżen tal-organizzazzjoni jimxew organizzazzjoni waħda kull darba taħt sigurtà fil-livell tar-ringieli, f’kull database li żżomm l-organizzazzjoni, biex tenant imwaħħal ma’ database dedikata jiddawwar f’dik id-database. Test ifalli meta l- iskema tikseb kolonna ta’ ċavetta mgeżwra li l-lista ma ssemmihiex, u ieħor meta ir-reviżjoni tal-kredenzjali tikklassifika kolonna ssiġillata li l-lista titlef.

Ir-rekord

  • ops.key_rotation: ringiela waħda għal kull rotazzjoni, bir-raġuni tagħha, min talabha, l-istat tagħha u t-totali tagħha (mgeżwra mill-ġdid, diġà attwali, mhux solvuti, falluti).
  • ops.key_rotation_progress: ringiela waħda għal kull maħżen u skop ladarba jimtela, bir- referenzi taċ-ċwievet li ma setax jaqra u kemm valuri kien hemm taħt kull waħda. Rotazzjoni mkomplija taqbeż dawn.
  • Katina tal-verifika tal-pjattaforma: platform/key_rotation_request (bir-raġuni), waħda platform/key_rotation_store għal kull maħżen bil-għadd tiegħu, u platform/key_rotation_complete jew platform/key_rotation_fail; platform/key_age_reminder għat-tfakkira.
  • Metriki: quire.secrets.master_key.age u quire.secrets.rewrap.outstanding (valuri li l-aħħar rotazzjoni ma setgħetx iċċaqlaq).

Meta l-valuri huma mhux solvuti

Valur mhux solvut huwa mgeżwer taħt referenza ta’ ċavetta li din l-installazzjoni ma jkollhiex, jew mhuwiex fil-forma li l-kolonna tiegħu twiegħed. Ir-rekord tal-progress isemmi r- referenza (pereżempju env:QUIRE_MASTER_KEY:v0 (unreadable)). Erġa’ poġġi dik iċ-ċavetta f’QUIRE_MASTER_KEY_RETIRED u ħaddem rotazzjoni oħra, jew, jekk iċ-ċavetta intilfet għal kollox, ħalli l-amministratur tal-organizzazzjoni jerġa’ jdaħħal il-kredenzjali: imbagħad tiġi ssiġillata taħt iċ-ċavetta attwali. Rotazzjonijiet falluti juru l-iżball tagħhom fuq ir- rekord; iffissa l-kawża u itlob mill-ġdid.

Ċwievet tal-iffirmar

Separati miċ-ċavetta master: kull organizzazzjoni tiffirma t-tokens OpenID Connect tagħha u l-messaġġi LTI biċ-ċavetta RSA tagħha, ippubblikata f’/.well-known/jwks.json. Xejn hawnhekk ma jeħtieġ operatur. L-iskeda ta’ kull siegħa platform.signing_keys tippubblika suċċessur sebat ijiem qabel ma d-disgħin jum taċ-ċavetta attwali jispicċaw, ġimgħa aktar tard is-suċċessur jibda jiffirma u ċ-ċavetta l-qadima ssir rtiranti, u disgħin jum wara li ċ-ċavetta l-qadima titħassar u tħalli s-sett taċ-ċwievet. Kull pass huwa entrata platform/signing_key_advance fuq il-katina tal-verifika tal-pjattaforma.

Biex tissostitwixxi ċ-ċavetta ta’ organizzazzjoni kmieni, pereżempju wara espożizzjoni:

  • fil-console: Sigurtà, Ċavetta master, Ippubblika ċavetta ġdida tal-iffirmar (teħtieġ platform/keys_manage); jew
  • fuq shell bl-ambjent tal-worker: bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310". bun run kek:rotate signing-keys status jelenka ċ-ċwievet ta’ kull organizzazzjoni skont l-istadju.

Iċ-ċavetta l-ġdida tiġi ppubblikata f’daqqa u tibda tiffirma wara sebat ijiem, meta ċ- ċavetta attwali tirtħa. Il-ġimgħa hija deliberata: partijiet li jiddependu jikkesċjaw is-sett taċ-ċwievet, u overlap iqsar ifalli kull għodda f’daqqa. Iċ-ċavetta rtiranti tibqa’ fis-sett taċ-ċwievet għal disgħin jum oħra biex tokens li diġà ffirmat ikomplu jivverifikaw; jekk l- espożizzjoni tfisser li trid tieqaf tiġi fdata aktar kmieni, it-tħassir tar-ringiela tagħha hija bidla magħmula bl-aċċess tad-database tal-operatur stess taħt rekord ta’ bidla (l-aċċess break-glass huwa qari biss), u tokens iffirmati biha mbagħad ifallu l-verifika. Ir- rotazzjoni sfurzata hija platform/signing_key_rotate fil-katina tal-verifika, bir- raġuni. Il-worker jeħtieġ l-istess settings ta’ QUIRE_MASTER_KEY bħal-livell web biex jgeżwer iċ-ċavetta l-ġdida; bun run kek:rotate għaċ-ċavetta master jerġa’ jgeżwer ċwievet tal-iffirmar ma’ kollox (oauth_signing_key tinsab f’SEALED_STORES).

Aċċess break-glass għall-produzzjoni

Ħadd m’għandu aċċess permanenti għall-produzzjoni. Meta xi ħaġa ma tistax tistenna, sid joħroġ għotja break-glass: Console tal-Pjattaforma, Sigurtà, Aċċess break-glass.

  • Għotja għandha skop (organizzazzjoni waħda, jew ir-reġistru tal-pjattaforma), raġuni ta’ mill- inqas 20 karattru li ssemmi l-inċident jew it-ticket, u tieqa ta’ 5 sa 240 minuta. Tiskadi waħedha: tiġi ċċekkjata mal-arloġġ f’kull dikjarazzjoni.
  • Tista’ tinħareġ lis-sid li joħroġha, jew lil sid ieħor (il-forma ta’ żewġ persuni). Il-persuna li nħarġet lilha biss tista’ tużaha. Il-ħruġ jeħtieġ platform/break_glass_issue u l-użu jeħtieġ platform/break_glass_use; it-tnejn huma tas-sid biss default.
  • Dikjarazzjonijiet jaħdmu permezz tal-gateway, mhux fuq login tad-database: qari biss, waħda kull darba, limitati għall-organizzazzjoni jew għar-reġistru tal-kontroll, b’timeout ta’ ħames sekondi u l-aktar 500 ringiela. Valuri binarji jintwerew bid-daqs.
  • Il-katina tal-verifika tal-pjattaforma tirreġistra l-ħruġ (bir-raġuni), ir-revoka, kull dikjarazzjoni qabel ma taħdem (platform/break_glass_statement, dawk rifjutati b’riżultat denied) u kull riżultat (platform/break_glass_result). ops.break_glass_statement fih l-ids tal-entrati tal-verifika, biex ir-rekord tal-ħruġ jingħaqad mal-entrati tal-verifika tiegħu.
  • Kitbiet mhumiex offruti. Bidla li ma tistax tistenna release tuża l- aċċess tad-database tal-operatur stess taħt ir-rekord tal-bidla tiegħu, barra dan il-prodott, u r-rekord għandu jiċċita r-referenza tal-inċident użata hawnhekk.

Għaliex ma toħroġx kredenzjali tad-database: login Postgres jgħix aktar mis-sessjoni li talbitu, jevita s-sigurtà fil-livell tar-ringieli li l-applikazzjoni tiddependi fuqha, u ma jistax jikteb fil-katina tal-verifika ta’ dan il-prodott, biex id-dikjarazzjonijiet tiegħu jiġu vverifikati biss safejn xi ħadd bagħat il-log tas-server. Il-gateway jagħmel it-trail tal-verifika proprjetà tal-aċċess aktar milli prattika madwaru.

Biex twieġeb talba tal-verifika: elenka l-għotjiet fil-perjodu (Aċċess break-glass), iftaħ l-istorja ta’ għotja għad-dikjarazzjonijiet tagħha u l-ids tal-entrati tal-verifika, u aqra dawk l-entrati fuq il-katina tal-verifika tal-pjattaforma (bun run audit:verify --platform jipprova li l- katina hija intatta).

Navigazzjoni

Ittajpja biex tfittex…

↑↓ innaviga↵ agħżelEsc agħlaq