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.
- Búðu til nýja lykilinn:
openssl rand -base64 32. - Stilltu
QUIRE_MASTER_KEYá hann ogQUIRE_MASTER_KEY_VERSIONá næsta merki (v2). Færðu gamla lykilinn íQUIRE_MASTER_KEY_RETIREDsemv1=<old base64>. Haltu afriti af báðum annars staðar en á þessum hýsil. - 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. - 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".
- 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. - Þ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_RETIREDog 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), einplatform/key_rotation_storeá geymslu með talningum hennar, ogplatform/key_rotation_completeeðaplatform/key_rotation_fail;platform/key_age_reminderfyrir áminninguna. - Mæligildi:
quire.secrets.master_key.ageogquire.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 statustelur 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_issueog notkun þarfplatform/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ð útkomudenied) og hverja niðurstöðu (platform/break_glass_result).ops.break_glass_statementheldur ú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).