Fara beint í efni

Snúningur aðallykils og undirritunarlykla, og neyðaraðgangur

Snúðu aðallyklinum sem verndar geymd auðkenni, og notaðu neyðaraðgang.

Skoða sem Markdown

Stjórntækin í 21-compliance.md kafla 14 sem úttektarmaður biður um með nafni. Þessi síða er verklagið; skrárnar sem hún framleiðir eru sönnunargögnin.

Lyklarnir

Hvert geymt auðkenni er innsiglað með nýjum gagnadulritunarlykli (DEK). DEK-inn er vafinn aðallyklinum (KEK), og tilvísun aðallykilsins er geymd við hlið hans (key_ref, eða tilvísunin inni í pakkað gildi). Að snúa aðallyklinum vefur DEK-inn upp á nýtt. Hann afdulritar aldrei né endurdulritar auðkenni.

Stilling Merking
QUIRE_MASTER_KEY Núverandi aðallykill: 32 bæti, base64. Hvert nýtt leyndarmál er vafið undir honum
QUIRE_MASTER_KEY_VERSION Útgávumerki hans. v1 þegar óstillt. Hækkaðu það þegar þú skiptir um lykil
QUIRE_MASTER_KEY_RETIRED Eldri lyklar sem geymd leyndarmál kunna enn að vera undir, sem v1=<base64>,v0=<base64>. Lesið, aldrei skrifað

Vefþrepið, vinnsluvélin og bun run kek:rotate skipunin lesa sömu þrjár stillingar. Þær verða allar að hafa sömu gildi, annars getur önnur þeirra ekki opnað það sem önnur innsiglaði.

Án QUIRE_MASTER_KEY heldur hvert undirkerfi lykilnum sem það leiðir frá QUIRE_SECRET_KEY. Það virkar, Heilsa kerfisins sýnir það sem skert, og það helst læsilegt eftir að þú stillir aðallykil, sem er hvernig fyrsti snúningur færir allt af honum. Hver sem getur lesið ferlisumhverfið getur afdulritað hvert geymt auðkenni, svo framleiðsluuppsetning ætti að hafa aðallykil, geymdan í leyndarmálageymslu og ekki í sama öryggisafriti og gagnagrunnurinn.

Snúningur

Aldur lykilsins sést á stjórnborði vettvangs, Öryggi, Aðallykill, og sem mæligildið quire.secrets.master_key.age (dagar). Daglega platform.key_age áætlunin (03:41 UTC) skrifar áminningarfærslu í úttektarkeðju vettvangs þegar lykillinn nær 365 dögum, og aftur á 30 daga fresti þar til honum er snúið. Snúðu við áminningu, og þegar lykill kann að hafa verið afhjúpaður.

  1. Búðu til nýja lykilinn: openssl rand -base64 32.
  2. Stilltu QUIRE_MASTER_KEY á hann og QUIRE_MASTER_KEY_VERSION á næsta merki (v2). Færðu gamla lykilinn í QUIRE_MASTER_KEY_RETIRED sem v1=<old base64>. Haltu afriti af báðum annars staðar en á þessum hýsil.
  3. Settu út vefþrepið og vinnsluvélina með nýju stillingunum. Ný leyndarmál eru nú vafin undir env:QUIRE_MASTER_KEY:v2; gömul opnast enn í gegnum starfslokna lykilinn.
  4. Biddu um snúninginn, með ástæðunni sem mun sitja í úttektarslóðinni:
    • í stjórnborðinu: Öryggi, Aðallykill, Snúa aðallyklinum; eða
    • á skel með sama umhverfi: bun run kek:rotate request --reason "Annual rotation, ticket SEC-114".
  5. Vinnsluvélin vefur sneið á mínútu upp á nýtt (platform.key_rotation áætlun stýringarinnar) og heldur áfram eftir endurræsingu. Til að klára hana í einni lotu: bun run kek:rotate run. Fylgstu með henni með bun run kek:rotate status.
  6. Þegar skráin sýnir að snúningnum lauk með núll óleyst og núll misheppnuð, fjarlægðu starfslokna lykilinn úr QUIRE_MASTER_KEY_RETIRED og settu út aftur. Haltu honum þar til þá: gildi sem hún gat ekki fært er enn vafið undir gamla lyklinum.

Hvað verkið gengur yfir

Hver geymsla sem heldur vöfðum DEK: þær í SEALED_STORES (apps/worker/src/key-rotation.ts). Stjórngagnagrunnsgeymslur eru gengnar á stjórngagnagrunninum; stofnanageymslur eru gengnar ein stofnun í einu undir öryggi á raðarstigi, í þeim gagnagrunni sem heldur stofnuninni, svo leigjandi festur við sérstakan gagnagrunn er snúinn í þeim gagnagrunni. Prófun bilar þegar skemað fær vafinn-lykil dálk sem listinn nefnir ekki, og önnur þegar auðkennaúttektin flokkar innsiglaðan dálk sem listinn missir.

Skráin

  • ops.key_rotation: ein röð á snúning, með ástæðu hans, hver bað um hann, stöðu hans og heildartölur (endurvefið, þegar núverandi, óleyst, misheppnað).
  • ops.key_rotation_progress: ein röð á geymslu og umfang þegar gengið, með lykiltilvísunum sem hún gat ekki lesið og hversu mörg gildi sátu undir hverri. Haldið áfram snúningur sleppir þessum.
  • Úttektarkeðja vettvangs: platform/key_rotation_request (með ástæðunni), ein platform/key_rotation_store á geymslu með talningum hennar, og platform/key_rotation_complete eða platform/key_rotation_fail; platform/key_age_reminder fyrir áminninguna.
  • Mæligildi: quire.secrets.master_key.age og quire.secrets.rewrap.outstanding (gildi sem síðasti snúningur gat ekki fært).

Þegar gildi eru óleyst

Óleyst gildi er vafið undir lykiltilvísun sem þessi uppsetning hefur ekki, eða er ekki í því formi sem dálkur þess lofar. Framvinduskráin nefnir tilvísunina (til dæmis env:QUIRE_MASTER_KEY:v0 (unreadable)). Endurheimtu þann lykil í QUIRE_MASTER_KEY_RETIRED og keyrðu annan snúning, eða, ef lykillinn er horfinn fyrir fullt og allt, láttu stjórnanda stofnunarinnar slá auðkennið inn aftur: það er þá innsiglað undir núverandi lykli. Misheppnaðir snúningar sýna villu sína á skránni; lagaðu orsökina og biddu aftur.

Undirritunarlyklar

Aðskilið frá aðallyklinum: hver stofnun undirritar sín OpenID Connect-tákn og LTI-skilaboð með eigin RSA-lykli, birtum á /.well-known/jwks.json. Ekkert hér þarf rekstraraðila. Klukkutíma platform.signing_keys áætlunin birtir eftirmann sjö dögum áður en níutíu dagar núverandi lykils eru liðnir, viku síðar byrjar eftirmaðurinn að undirrita og gamli lykillinn verður starfslokinn, og níutíu dögum eftir það er gamla lyklinum eytt og hann hverfur úr lyklasettinu. Hvert skref er platform/signing_key_advance færsla á úttektarkeðju vettvangs.

Til að skipta út lykli stofnunar snemma, til dæmis eftir afhjúpun:

  • í stjórnborðinu: Öryggi, Aðallykill, Birta nýjan undirritunarlykil (þarf platform/keys_manage); eða
  • á skel með umhverfi vinnsluvélarinnar: bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310". bun run kek:rotate signing-keys status telur upp lykla hverrar stofnunar eftir stigi.

Nýi lykillinn er birtur þegar í stað og byrjar að undirrita eftir sjö daga, þegar núverandi lykill fer á eftirlaun. Vikan er vísvitandi: traustar aðilar geyma lyklassettið, og styttri skarast bilar hvert tæki í einu. Starfslokni lykillinn helst í lyklasettinu í níutíu daga til viðbótar svo tákn sem hann þegar undirritaði haldist sannvotanleg; ef afhjúpunin þýðir að hætta verður að treysta honum fyrr, er það breyting að eyða röð hans gerð með eigin gagnagrunnsaðgangi rekstraraðilans undir breytingaskrá (neyðaraðgangur er eingöngu lesaðgangur), og tákn undirrituð með honum falla þá í sannvottun. Þvingaður snúningur er platform/signing_key_rotate í úttektarkeðjunni, með ástæðunni. Vinnsluvélin þarf sömu QUIRE_MASTER_KEY stillingar og vefþrepið til að vefja nýja lykilinn; bun run kek:rotate fyrir aðallykilinn vefur undirritunarlykla upp á nýtt með öllu öðru (oauth_signing_key er í SEALED_STORES).

Neyðarframleiðsluaðgangur

Enginn hefur varanlegan aðgang að framleiðslu. Þegar eitthvað getur ekki beðið gefur eigandi út neyðarveitingu: Stjórnborð vettvangs, Öryggi, Neyðaraðgangur.

  • Veiting hefur umfang (eina stofnun, eða vettvangsskrána), ástæðu að minnsta kosti 20 stafa sem nefnir atvikið eða miðann, og glugga frá 5 til 240 mínútna. Hún rennur út af sjálfri sér: hún er athuguð gagnvart klukkunni við hverja setningu.
  • Hana má gefa út til eigandans sem gefur hana út, eða til annars eiganda (tvímenningsformið). Aðeins sá sem hún var gefin út til getur notað hana. Útgáfa þarf platform/break_glass_issue og notkun þarf platform/break_glass_use; bæði eru aðeins fyrir eigendur sjálfgefið.
  • Setningar keyra í gegnum gáttina, ekki á gagnagrunnsinnskráningu: aðeins lestur, ein í einu, bundin við stofnunina eða við stjórnskrána, með fimm sekúndna tímamörkum og að hámarki 500 röðum. Tvíundargildi eru sýnd eftir stærð.
  • Úttektarkeðja vettvangs skráir útgáfuna (með ástæðunni), afturköllunina, hverja setningu áður en hún keyrir (platform/break_glass_statement, hafnaðar með útkomu denied) og hverja niðurstöðu (platform/break_glass_result). ops.break_glass_statement heldur úttektarfærsluauðkennum, svo útgáfuskráin tengist úttektarfærslum sínum.
  • Skrif eru ekki í boði. Breyting sem getur ekki beðið útgáfu notar eigin gagnagrunnsaðgang rekstraraðilans undir eigin breytingaskrá, utan þessarar vöru, og skráin ætti að vitna í atvikstilvitnunina sem notuð er hér.

Af hverju ekki að gefa út gagnagrunnsauðkenni: Postgres-innskráning lifir lengur en lotuna sem bað um hana, framhjáfer öryggi á raðarstigi sem forritið reiðir sig á, og getur ekki skrifað í úttektarkeðju þessarar vöru, svo setningar hennar yrðu útteknar aðeins eins langt og einhver sendi þjónsannálinn. Gáttin gerir úttektarslóðina að eigind hluta aðgangsins frekar en venju í kringum hann.

Til að svara úttektarbeiðni: teldu upp veitingarnar á tímabilinu (Neyðaraðgangur), opnaðu sögu veitingar fyrir setningar hennar og úttektarfærsluauðkennin, og lestu þær færslur á úttektarkeðju vettvangs (bun run audit:verify --platform sannar að keðjan sé heil).

Yfirlit

Sláðu inn til að leita…

↑↓ fletta↵ veljaEsc loka