Mga kontrol kini sa seksiyon 14 sa 21-compliance.md nga pangayoon sa auditor pinaagi sa ngalan. Mao kini ang pamaagi; ebidensiya ang mga rekord nga mahimo niini.
Mga yawe
Tinatakan ang matag natipig nga credential gamit ang bag-ong data encryption key (DEK). Giputos ang DEK sa master key (ang KEK), ug gitipigan tupad niini ang reference sa master key (key_ref, o ang reference sulod sa packed value). Ilisan sa pagtuyok sa master key ang pagkaputos sa mga DEK. Dili niini i-decrypt o i-encrypt pag-usab ang credential.
| Setting | Kahulogan |
|---|---|
QUIRE_MASTER_KEY |
Kasamtangang master key: 32 bytes, base64. Putosan niini ang matag bag-ong sekreto |
QUIRE_MASTER_KEY_VERSION |
Label sa bersiyon niini. v1 kon wala itakda. Dugangi kini matag ilis sa yawe |
QUIRE_MASTER_KEY_RETIRED |
Mga daang yawe nga mahimong gigamit pagtipig og sekreto, isip v1=<base64>,v0=<base64>. Basahon ra, dili sulatan |
Parehas nga tulo ka setting ang basahon sa web tier, worker ug command nga bun run kek:rotate. Kinahanglan parehas ang mga bili niini; kon dili, dili maablihan sa usa niini ang gitak-opan sa lain.
Kon walay QUIRE_MASTER_KEY, magpabilin sa matag subsystem ang yawe nga makuha niini gikan sa QUIRE_SECRET_KEY. Molihok kini, ipakita kini nga degraded sa panid sa System health, ug mabasa gihapon kini human nimong itakda ang master key; mao kini ang paagi nga ibalhin sa unang pagtuyok ang tanan gikan niini. Mahimong i-decrypt sa bisan kinsa nga makabasa sa palibot sa proseso ang tanang tinipig nga credential, busa kinahanglan adunay master key ang instalasyon sa production, tipigan sa secret store ug sa laing backup gikan sa database.
Pagtuyok
Makita ang gidugayon sa yawe sa Platform console, Security, Master key, ug isip metric nga quire.secrets.master_key.age (adlaw). Isulat sa adlaw-adlaw nga iskedyul nga platform.key_age (03:41 UTC) ang pahinumdom sa platform audit chain kon moabot og 365 ka adlaw ang yawe, ug usbon kini matag 30 ka adlaw hangtod matuyok. Tuyoka kini sa pag-abot sa pahinumdom ug matag higayon nga posibleng na-expose ang yawe.
- Himoa ang bag-ong yawe:
openssl rand -base64 32. - Itakda niini ang
QUIRE_MASTER_KEYug itakda angQUIRE_MASTER_KEY_VERSIONsa sunod nga label (v2). Ibalhin ang daang yawe ngadto saQUIRE_MASTER_KEY_RETIREDisipv1=<old base64>. Tipigi ang kopya sa duha ka yawe sa gawas niining host. - I-deploy ang web tier ug worker uban sa bag-ong setting. Putosan na ang bag-ong sekreto ubos sa
env:QUIRE_MASTER_KEY:v2; maablihan gihapon ang daan pinaagi sa retired key. - Hangyoa ang pagtuyok ug ang rason nga ibutang sa audit trail:
- sa console: Security, Master key, Rotate the master key; o
- sa shell nga adunay samang palibot:
bun run kek:rotate request --reason "Annual rotation, ticket SEC-114".
- Putosan pag-usab sa worker ang usa ka bahin matag minuto (iskedyul nga
platform.key_rotationsa scheduler) ug mopadayon kini human sa restart. Aron mahuman kini dayon:bun run kek:rotate run. Tan-awa ang kahimtang niini gamit angbun run kek:rotate status. - Kon ipakita sa rekord nga nahuman ang pagtuyok nga zero unresolved ug zero failed, kuhaa ang retired key gikan sa
QUIRE_MASTER_KEY_RETIREDug i-deploy pag-usab. Tipigi kini hangtod niadto: basin giputos gihapon sa daang yawe ang bili nga wala niini mabalhin.
Mga butang nga sudlan sa job
Lakawon niini ang matag store nga adunay giputos nga DEK: ang naa sa SEALED_STORES (apps/worker/src/key-rotation.ts). Lakawon ang mga store sa control database didto sa control database; tagsa-tagsa nga lakawon ang mga store sa organisasyon ubos sa row-level security sa database nga adunay niini, busa tuyokon didto ang tenant nga naka-pin sa kaugalingong database. Mapakyas ang usa ka test kon adunay idugang nga wrapped-key column sa schema apan wala kini nganli sa listahan; mapakyas usab ang laing test kon wala mailakip sa listahan ang sealed column nga giila sa credential review.
Ang rekord
ops.key_rotation: usa ka row kada pagtuyok, uban sa rason, kinsa ang mihangyo niini, kahimtang ug mga total niini (giputos pag-usab, bag-o na, wala masulbad, napakyas).ops.key_rotation_progress: usa ka row kada store ug scope human malakaw, uban sa key reference nga dili mabasa ug gidaghanon sa mga bili nga gigamit niini. Laktawan kini sa gipadayon nga pagtuyok.- Platform audit chain:
platform/key_rotation_request(uban sa rason), usa kaplatform/key_rotation_storekada store uban sa gidaghanon niini, ugplatform/key_rotation_completeoplatform/key_rotation_fail;platform/key_age_reminderpara sa pahinumdom. - Metrics:
quire.secrets.master_key.ageugquire.secrets.rewrap.outstanding(mga bili nga wala mabalhin sa kataposang pagtuyok).
Kon adunay bili nga wala masulbad
Wala masulbad ang usa ka bili kon giputos kini gamit ang key reference nga wala niini nga instalasyon, o dili kini porma nga gipaabot sa column niini. Ingnon sa progress record ang reference (pananglitan env:QUIRE_MASTER_KEY:v0 (unreadable)). Ibalik kana nga yawe ngadto sa QUIRE_MASTER_KEY_RETIRED ug padagana og laing pagtuyok; o, kon wala na gyod ang yawe, pabutanga ang administrador sa organisasyon og bag-ong credential, nga iputos dayon gamit ang kasamtangang yawe. Ipakita sa record ang sayop sa napakyas nga pagtuyok; ayoha ang hinungdan ug paghangyo pag-usab.
Mga signing key
Lahi kini sa master key: gipirmahan sa kaugalingong RSA key sa matag organisasyon ang mga token niini sa OpenID Connect ug mga mensahe sa LTI, ug gipatik kini sa /.well-known/jwks.json. Walay buluhaton ang operator dinhi. Publikohon sa hourly nga iskedyul nga platform.signing_keys ang kapuli pito ka adlaw sa dili pa moabot sa siyamnapung adlaw ang kasamtangang yawe; human sa usa ka semana, magsugod pagpirma ang kapuli ug mahimong nagretiro ang daan nga yawe; tangtangon ang daan nga yawe paglabay sa 90 ka adlaw ug mawala kini sa key set. Matag lakang usa ka platform/signing_key_advance entry sa platform audit chain.
Aron sayo ilisan ang yawe sa organisasyon, pananglitan human ma-expose kini:
- sa console: Security, Master key, Publish a new signing key (kinahanglan ang
platform/keys_manage); o - sa shell nga adunay palibot sa worker:
bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310". Gilista sabun run kek:rotate signing-keys statusang matag yawe sa organisasyon sumala sa yugto niini.
Ipatik dayon ang bag-ong yawe ug magsugod kini pagpirma human sa pito ka adlaw, sa pagretiro sa kasamtangang yawe. Tinuyo ang usa ka semana: nag-cache sa key set ang mga relying party, ug mapakyas dayon ang tanang tool kon mubo ang pag-overlap. Magpabilin sa key set ang nagretirong yawe sulod pa sa 90 ka adlaw aron mapamatud-an gihapon ang mga token nga gipirmahan niini. Kon kinahanglan kining dili na saligan dayon tungod sa pag-expose, usbon ang row gamit ang kaugalingong database access sa operator ubos sa change record (read only ang break-glass access), ug mapakyas unya ang pag-verify sa mga token nga gipirmahan niini. Ang pinugos nga pagtuyok mao ang platform/signing_key_rotate sa audit chain, uban sa rason. Kinahanglan gamiton sa worker ang samang mga setting sa QUIRE_MASTER_KEY sa web tier aron maputos ang bag-ong yawe; iputos pag-usab sa bun run kek:rotate para sa master key ang mga signing key uban sa uban pa (oauth_signing_key anaa sa SEALED_STORES).
Break-glass nga access sa production
Walay tawo nga adunay permanenteng access sa production. Kon dili na makahulat ang usa ka butang, mohatag ang owner og break-glass grant: Platform console, Security, Break-glass access.
- Adunay scope ang grant (usa ka organisasyon, o ang platform registry), rason nga labing menos 20 ka karakter ug nagtudlo sa insidente o ticket, ug panahon nga 5 hangtod 240 ka minuto. Mohurot kini sa kaugalingon: susihon kini batok sa orasan sa matag statement.
- Mahimo kining ihatag sa owner nga nag-isyu niini, o sa laing owner (two person form). Ang tawo lamang nga gihatagan niini ang makagamit. Kinahanglan ang
platform/break_glass_issuesa pag-isyu ugplatform/break_glass_usesa paggamit; owner ra kini sa default. - Ipadagan ang mga statement pinaagi sa gateway, dili pinaagi sa database login: read only, tagsa-tagsa, limitado sa organisasyon o control registry, adunay timeout nga lima ka segundo ug kutob sa 500 ka row. Ipakita ang gidak-on sa binary nga bili.
- Irekord sa platform audit chain ang pag-isyu (uban sa rason), pagbawi, matag statement sa dili pa modagan (
platform/break_glass_statement, lakip ang gisalikway nga adunay resulta ngadenied) ug matag resulta (platform/break_glass_result). Tipigan saops.break_glass_statementang mga id sa audit entry aron maapil sa rekord sa pag-isyu ang mga entry niini. - Dili itanyag ang write. Ang kausaban nga dili na makahulat sa release himoon gamit ang kaugalingong database access sa operator ubos sa lahi nga change record ug gawas niining produkto; ang rekord kinahanglang maghisgot sa reference sa insidente nga gigamit dinhi.
Ngano nga dili mohatag og database credential: magpabilin ang Postgres login human sa session nga mihangyo niini, molaktaw kini sa row-level security nga gisaligan sa aplikasyon, ug dili kini makasulat sa audit chain sa produkto. Busa kutob ra sa server log nga gipadala sa usa ka tawo ang pag-audit sa mga statement. Gihimo sa gateway nga kabahin sa access ang audit trail imbis nga batasan lang nga sundon.
Aron motubag sa hangyo sa audit: ilista ang mga grant niadtong panahona (Break-glass access), ablihi ang history sa grant aron makita ang mga statement ug id sa audit entry, ug basaha kana nga mga entry sa platform audit chain (bun run audit:verify --platform nagpamatuod nga kompleto ang chain).