Leum dhan t-susbaint

Cuairteachadh na h-iuchrach-mhaighstir is nan iuchraichean-soidhnidh, agus ruigsinneachd èiginn

Cuairtich iuchair-mhaighstir a dhìonas teisteanasan stòraichte agus cleachd ruigsinneachd èiginn.

Seall mar Markdown

Na smachdan ann an earrann 14 de 21-compliance.md a dh’iarras neach-sgrùdaidh nan ainm. Seo am modh-obrach; ’s iad na clàran a chruthaicheas e an fhianais.

Na h-iuchraichean

Tha gach teisteanas stòraichte air a sheulachadh le iuchair-chrioptachaidh dàta (DEK) ùr. Tha an DEK air a pasgadh leis an iuchair-mhaighstir (an KEK), agus tha iomradh na h-iuchrach-mhaighstir air a stòradh ri thaobh (key_ref, no an t-iomradh taobh a-staigh luach pacaichte). Bidh cuairteachadh na h-iuchrach-mhaighstir ag ath-phasgadh nan DEK. Cha dì-chrioptaich no ath-chrioptaich e teisteanas.

Roghainn Brìgh
QUIRE_MASTER_KEY An iuchair-mhaighstir làithreach: 32 baidht, base64. Thèid gach dìomhaireachd ùr a phasgadh innte
QUIRE_MASTER_KEY_VERSION Leubail an tionndaidh. v1 mura h-eil i suidhichte. Meudaich e gach turas a dh’atharraicheas tu an iuchair
QUIRE_MASTER_KEY_RETIRED Iuchraichean na bu tràithe a dh’fhaodadh fhathast dìomhaireachdan a dhìon, mar v1=<base64>,v0=<base64>. Leugh a-mhàin, na sgrìobh

Leughaidh an t-sreath-lìn, an neach-obrach agus àithne bun run kek:rotate na trì roghainnean ceudna. Feumaidh na h-aon luachan a bhith aca uile, no chan urrainn do dh’aon dhiubh fosgladh na sheulaich fear eile.

Gun QUIRE_MASTER_KEY, cumaidh gach fo-shiostam iuchair a thig e à QUIRE_SECRET_KEY. Obraichidh seo; tha duilleag slàinte an t-siostaim a’ sealltainn gu bheil an t-inbhe air a dhol sìos agus bidh an iuchair fhathast furasta a leughadh an dèidh dhut prìomh iuchair a shuidheachadh, agus sin mar a ghluaiseas a’ chiad chuairteachadh a h-uile càil air falbh bhuaipe. Faodaidh neach sam bith a leughas àrainneachd a’ phròiseis gach teisteanas stòraichte a dhì-chrioptachadh; mar sin bu chòir iuchair-mhaighstir a bhith aig stàladh riochdachaidh, ann an stòr dhìomhaireachdan seach sa chùl-taic cheudna ris an stòr-dàta.

Cuairtich

Tha aois na h-iuchrach ri fhaicinn ann an Consol Àrd-chabhsaire, Tèarainteachd, Iuchair-mhaighstir agus mar mheatraig quire.secrets.master_key.age (làithean). Sgrìobhaidh an clàr làitheil platform.key_age (03:41 UTC) inntrigeadh cuimhneachaidh ann an sreath sgrùdaidh an àrd-chabhsaire nuair a ruigeas an iuchair 365 latha, agus a-rithist gach 30 latha gus an tèid a cuairteachadh. Dèan cuairteachadh nuair a thig an cuimhneachan, agus uair sam bith a dh’fhaodadh iuchair a bhith fosgailte.

  1. Cruthaich an iuchair ùr: openssl rand -base64 32.
  2. Suidhich QUIRE_MASTER_KEY rithe agus QUIRE_MASTER_KEY_VERSION chun ath leubail (v2). Gluais an t-seann iuchair gu QUIRE_MASTER_KEY_RETIRED mar v1=<old base64>. Cùm lethbhreac den dà iuchair an àiteigin eile seach air an aoigh seo.
  3. Cleachd an t-sreath-lìn agus an neach-obrach leis na roghainnean ùra. Thèid dìomhaireachdan ùra a phasgadh a-nis fo env:QUIRE_MASTER_KEY:v2; fosglaidh feadhainn shean fhathast leis an iuchair a chaidh a leigeil dhith.
  4. Iarr an cuairteachadh leis an adhbhar a thèid a chlàradh ann an sreath an sgrùdaidh:
    • anns a’ chonsol: Tèarainteachd, Iuchair-mhaighstir, Cuairtich an iuchair-mhaighstir; no
    • ann an slige leis an aon àrainneachd: bun run kek:rotate request --reason "Annual rotation, ticket SEC-114".
  5. Ath-phaisgidh an neach-obrach pìos dhiubh gach mionaid (clàr platform.key_rotation a’ chlàradair) agus leanaidh e às dèidh ath-thòiseachaidh. Gus crìoch a chur air ann an aon sheisean: bun run kek:rotate run. Cumaibh sùil leis bun run kek:rotate status.
  6. Nuair a sheallas an clàr gun deach an cuairteachadh a chrìochnachadh le neoni gun fhuasgladh agus neoni fàilligeadh, thoir air falbh an t-seann iuchair à QUIRE_MASTER_KEY_RETIRED agus cleachd a-rithist e. Cùm i gus an uair sin: tha luach nach b’ urrainn dhi gluasad fhathast paisgte fon t-seann iuchair.

Na thèid an obair troimhe

Gach stòr a chumas DEK paisgte: an fheadhainn ann an SEALED_STORES (apps/worker/src/key-rotation.ts). Thèid stòran bunait smachd a choiseachd san stòr-dàta smachd; thèid stòran buidhne a choiseachd aon bhuidheann aig aon àm fo tèarainteachd ìre-shreathan, anns an stòr-dàta far a bheil a’ bhuidheann. Mar sin thèid neach-gabhail a tha ceangailte ri stòr-dàta sònraichte a chuairteachadh anns an stòr-dàta sin. Fàilligidh deuchainn nuair a chuireas an sgeama colbh iuchair-phaisgte ris nach eil air ainmeachadh san liosta, agus fàilligidh tè eile nuair nach fhaic lèirmheas theisteanasan colbh seulaichte a tha air chall às an liosta.

An clàr

  • ops.key_rotation: aon sreath airson gach cuairteachadh, le adhbhar, cò dh’iarr e, inbhe agus àireamhan (ath-phasgta, làithreach mar-thà, gun fhuasgladh, air fàilligeadh).
  • ops.key_rotation_progress: sreath airson gach stòr is raon a chaidh a choiseachd, le iomraidhean iuchrach nach gabhadh leughadh agus cia mheud luach a bha fo gach tè. Leumaidh cuairteachadh a thèid ath-thòiseachadh thairis orra sin.
  • Sreath sgrùdaidh an àrd-chabhsaire: platform/key_rotation_request (leis an adhbhar), aon platform/key_rotation_store gach stòr le àireamhan, agus platform/key_rotation_complete no platform/key_rotation_fail; platform/key_age_reminder airson a’ chuimhneachaidh.
  • Meatraigean: quire.secrets.master_key.age agus quire.secrets.rewrap.outstanding (luachan nach b’ urrainn don chuairteachadh mu dheireadh gluasad).

Nuair a tha luachan gun fhuasgladh

Tha luach gun fhuasgladh paisgte fo iomradh iuchrach nach eil aig an stàladh seo, no chan eil e san chruth a tha an colbh a’ gealltainn. Ainmichidh an clàr adhartais an t-iomradh (mar eisimpleir env:QUIRE_MASTER_KEY:v0 (unreadable)). Cuir an iuchair air ais ann an QUIRE_MASTER_KEY_RETIRED agus ruith cuairteachadh eile; no, ma tha an iuchair air chall gu bràth, iarr air rianaire na buidhne an teisteanas a chur a-steach a-rithist, agus thèid a sheulachadh leis an iuchair làithreach. Seallaidh cuairteachadh a dh’fhàillig a mhearachd air a’ chlàr; ceartaich an t-adhbhar agus iarr a-rithist e.

Iuchraichean-soidhnidh

Air leth bhon iuchair-mhaighstir, soidhnichidh gach buidheann tòcan OpenID Connect agus teachdaireachdan LTI leis an iuchair RSA aice fhèin, air fhoillseachadh aig /.well-known/jwks.json. Chan fheum an gnìomhaiche dad a dhèanamh an seo. Foillsichidh an clàr uairail platform.signing_keys iuchair a thig na h-àite seachd làithean mus tig 90 latha na h-iuchrach làithrich gu crìch; seachdain às dèidh sin tòisichidh an tè ùr air soidhnigeadh agus thèid an t-seann tè a chur a-mach à seirbheis; agus às dèidh 90 latha eile thèid an t-seann iuchair a sguabadh às agus às an t-seata. Tha gach ceum na inntrigeadh platform/signing_key_advance ann an sreath sgrùdaidh an àrd-chabhsaire.

Gus iuchair buidhne a chur na h-àite tràth, mar eisimpleir an dèidh nochdadh:

  • sa chonsol: Tèarainteachd, Iuchair-mhaighstir, Foillsich iuchair-soidhnidh ùr (feumar platform/keys_manage); no
  • ann an slige le àrainneachd an neach-obrach: bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310". Tha bun run kek:rotate signing-keys status a’ liostadh iuchraichean gach buidhne a rèir ìre.

Foillsichear an iuchair ùr sa bhad agus tòisichidh i air soidhnigeadh an dèidh seachd làithean nuair a thèid an iuchair làithreach a leigeil dhith. Tha an t-seachdain sin a dh’aona ghnothach: tasgaidh pàrtaidhean earbsach seata na h-iuchrach, agus dh’fhàilligheadh a h-uile inneal aig an aon àm le tar-lùbadh nas giorra. Fanaidh an iuchair a tha ga leigeil dhith san t-seata airson 90 latha eile gus an lean tòcan a chaidh a soidhnigeadh leatha orra a bhith air an dearbhadh. Ma tha an nochdadh a’ ciallachadh nach bu chòir earbsa a bhith innte nas tràithe, ’s e atharrachadh a nì an gnìomhaiche le ruigsinneachd stòr-dàta fhèin fo chlàr atharrachaidh a th’ ann a sreath a sguabadh às (tha ruigsinneachd èiginn leughaidh a-mhàin), agus fàilligidh dearbhadh tòcan a chaidh a soidhnigeadh leatha. Tha an cuairteachadh èignichte clàraichte mar platform/signing_key_rotate ann an sreath sgrùdaidh an àrd-chabhsaire leis an adhbhar. Feumaidh an aon roghainn QUIRE_MASTER_KEY a bhith aig an neach-obrach agus aig an t-sreath-lìn gus an iuchair ùr a phasgadh; nì bun run kek:rotate airson an iuchair-mhaighstir ath-phasgadh air iuchraichean-soidhnidh còmhla ris a’ chòrr (oauth_signing_key ann an SEALED_STORES).

Ruigsinneachd èiginn riochdachaidh

Chan eil ruigsinneachd sheasmhach gu riochdachadh aig duine sam bith. Nuair nach urrainn rudeigin feitheamh, bheir sealbhadair cead èiginn seachad: Consol Àrd-chabhsaire, Tèarainteachd, Ruigsinneachd èiginn.

  • Tha raon aig cead (aon bhuidheann no clàr an àrd-chabhsaire), adhbhar co-dhiù 20 caractar ag ainmeachadh na tachartais no na tiogaid, agus uinneag 5 gu 240 mionaid. Thig e gu crìch leis fhèin: thèid sùil a thoirt air a’ ghleoc airson gach aithris.
  • Faodar a chur chun an t-sealbhadair a dh’iarras e no gu sealbhadair eile (dòigh dithis). Chan urrainn ach don neach dha an deach a thoirt a chleachdadh. Feumar platform/break_glass_issue airson a thoirt seachad agus platform/break_glass_use airson a chleachdadh; ’s ann do shealbhadairean a-mhàin a tha an dà chuid mar bhun-roghainn.
  • Bidh aithrisean a’ dol tron gheata seach logadh a-steach stòr-dàta: leughadh a-mhàin, aon aig aon àm, cuingichte ris a’ bhuidhinn no ris a’ chlàr smachd, le ùine-ama còig diogan agus 500 sreath aig a’ char as motha. Tha luachan dàna air an sealltainn a rèir meud.
  • Clàraidh sreath sgrùdaidh an àrd-chabhsaire an cead (leis an adhbhar), a chùl-ghairm, gach aithris mus ruith i (platform/break_glass_statement, feadhainn a chaidh a dhiùltadh leis an toradh denied) agus gach toradh (platform/break_glass_result). Tha IDan inntrigidhean sgrùdaidh aig ops.break_glass_statement, agus mar sin thèid clàr an aontachaidh a cheangal ris na h-inntrigidhean sgrùdaidh aige.
  • Chan eil sgrìobhadh ri fhaighinn. Airson atharrachadh nach urrainn feitheamh ri tionndadh, cleachdaidh an gnìomhaiche a ruigsinneachd stòr-dàta fhèin fo chlàr atharrachaidh fhèin, taobh a-muigh a’ bhathair seo; bu chòir don chlàr iomradh na tachartais a chaidh a chleachdadh an seo ainmeachadh.

Carson nach toir thu teisteanasan stòr-dàta seachad? Mairidh logadh a-steach PostgreSQL nas fhaide na an seisean a dh’iarr e, seachnaidh e tèarainteachd ìre-shreathan air a bheil an t-aplacaid an urra agus chan urrainn dha sgrìobhadh gu sreath sgrùdaidh a’ bhathair seo; cha bhiodh na h-aithrisean aige air an sgrùdadh nas fhaide na log an fhrithealaiche nam biodh cuideigin air a lìbhrigeadh. Nì an geata lorg an sgrùdaidh na phàirt den ruigsinneachd, seach cleachdadh mun cuairt oirre.

Gus freagairt a thoirt do dh’iarrtas sgrùdaidh: liostaich na ceadan san ùine (Ruigsinneachd èiginn), fosgail eachdraidh ceada airson na h-aithrisean agus IDan nan inntrigidhean sgrùdaidh aige, agus leugh na h-inntrigidhean sin ann an sreath sgrùdaidh an àrd-chabhsaire (bun run audit:verify --platform a’ dearbhadh gu bheil an t-sreath slàn).

Seòladh

Sgrìobh airson lorg…

↑↓ gluais↵ taghEsc dùin