---
title: "Wotasyon kle prensipal ak kle siyati, aksè ijans"
description: "Chanje kle prensipal ki pwoteje kalifikatif ki estoke yo epi sèvi ak aksè ijans."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/ht/llms.txt
> Use this file to discover all available pages before exploring further.

# Wotasyon kle prensipal ak kle siyati, aksè ijans

<span id="master-key-and-signing-key-rotation-and-break-glass-access"></span>

Kontwòl yo nan 21-compliance.md, seksyon 14, oditè mande pa non. Paj sa a bay pwosedi a; rejis li pwodui yo sèvi kòm prèv.

## Kle yo <!--quire:the-keys-->

Yo sele chak kalifikatif ki estoke ak yon nouvo kle chifreman done (DEK). Kle prensipal la (KEK) vlope DEK la epi yo estoke referans kle prensipal la akote li (`key_ref` oswa referans ki nan yon valè pake). Chanje kle prensipal la re-vlope DEK yo; li pa janm dechifre oswa re-chifre yon kalifikatif.

| Paramèt | Siyifikasyon |
| --- | --- |
| `QUIRE_MASTER_KEY` | Kle prensipal aktyèl la: 32 bytes, base64. Yo vlope chak nouvo sekrè avèk li |
| `QUIRE_MASTER_KEY_VERSION` | Etikèt vèsyon li. `v1` si pa gen valè. Ogmante li chak fwa w chanje kle a |
| `QUIRE_MASTER_KEY_RETIRED` | Ansyen kle ki ka toujou sèvi anba sekrè estoke yo, sou fòm `v1=<base64>,v0=<base64>`. Yo sèlman li yo, yo pa ekri anba yo |

Web tier la, worker a ak kòmand `bun run kek:rotate` li menm twa paramèt sa yo. Yo dwe gen menm valè, sinon youn ladan yo pa kapab ouvri sa yon lòt te sele.

San `QUIRE_MASTER_KEY`, chak sou-sistèm kenbe kle li derive apati `QUIRE_SECRET_KEY`. Sa mache; paj sante System la montre eta a degrade, epi valè yo rete lizib apre ou mete yon kle prensipal. Se konsa premye wotasyon an deplase tout bagay pou kite ansyen kle a. Nenpòt moun ki ka li anviwònman pwosesis la kapab dechifre tout kalifikatif estoke; kidonk yon enstalasyon pwodiksyon ta dwe gen yon kle prensipal nan depo sekrè, ki pa nan menm sovgad ak bazdone a.

## Chanje kle yo <!--quire:rotating-->

Laj kle a parèt nan Platform console, Security, Master key ak nan mezi `quire.secrets.master_key.age` (jou). Orè chak jou `platform.key_age` (03:41 UTC) ekri yon rapèl nan chèn odit platfòm la lè kle a rive 365 jou, epi chak 30 jou apre sa jiskaske yo chanje li. Fè chanjman an lè w jwenn rapèl la ak chak fwa gen posiblite kle a te ekspoze.

1. Jenere nouvo kle a: `openssl rand -base64 32`.
2. Mete `QUIRE_MASTER_KEY` sou li epi `QUIRE_MASTER_KEY_VERSION` sou pwochen etikèt la (`v2`). Mete ansyen kle a nan `QUIRE_MASTER_KEY_RETIRED` kòm `v1=<old base64>`. Konsève yon kopi toude kle yo yon lòt kote pase sou host sa a.
3. Deplwaye web tier ak worker avèk nouvo paramèt yo. Kounye a yo vlope nouvo sekrè anba `env:QUIRE_MASTER_KEY:v2`; ansyen yo toujou ouvri ak kle ki pran retrèt la.
4. Mande wotasyon an epi bay rezon ki pral rete nan rejis odit la:
   - nan konsole a: Security, Master key, Rotate the master key; oswa
   - nan shell ak menm anviwònman an: `bun run kek:rotate request --reason "Annual rotation, ticket SEC-114"`.
5. Worker la re-vlope yon pòsyon chak minit (orè `platform.key_rotation` scheduler la) epi li reprann apre rekòmansman. Pou fini l yon sèl kou: `bun run kek:rotate run`. Suiv pwogrè a ak `bun run kek:rotate status`.
6. Lè rejis la montre wotasyon an fini avèk **zewo ki poko rezoud ak zewo echèk**, retire ansyen kle a nan `QUIRE_MASTER_KEY_RETIRED` epi redeplwaye. Konsève li jouk lè sa a: valè li pa t kapab deplase toujou anba ansyen kle a.

### Sa travay la pase sou li <!--quire:what-the-job-walks-->

Chak depo ki kenbe DEK vlope: sa yo ki nan `SEALED_STORES` (`apps/worker/src/key-rotation.ts`). Yo pase sou depo bazdone kontwòl yo nan bazdone kontwòl la; yo pase sou depo òganizasyon yo youn apre lòt, anba sekirite nivo liy, nan bazdone kote chak òganizasyon ye a. Se poutèt sa, si tenant lan fikse nan yon bazdone dedye, yo chanje kle li nan bazdone sa a. Yon tès echwe lè estrikti a ajoute yon chan ki gen kle vlope men lis la pa site li; gen yon lòt tès lè klasifikasyon verifikasyon kalifikatif la idantifye yon chan sele lis la pa genyen.

### Rejis la <!--quire:the-record-->

- `ops.key_rotation`: yon liy pou chak wotasyon, avèk rezon an, kiyès ki mande li, estati ak total yo (re-vlope, deja aktyèl, poko rezoud, echwe).
- `ops.key_rotation_progress`: yon liy pou chak depo ak nivo apre yo fin pase ladan, ansanm ak referans kle li pa t ka li ak kantite valè anba chak referans. Yon wotasyon ki reprann sote liy sa yo.
- Chèn odit platfòm: `platform/key_rotation_request` (avèk rezon an), yon `platform/key_rotation_store` pou chak depo ak total li yo, epi `platform/key_rotation_complete` oswa `platform/key_rotation_fail`; rapèl la se `platform/key_age_reminder`.
- Mezi: `quire.secrets.master_key.age` ak `quire.secrets.rewrap.outstanding` (valè dènye wotasyon an pa t kapab deplase).

### Lè gen valè ki poko rezoud <!--quire:when-values-are-unresolved-->

Yon valè poko rezoud lè li vlope ak yon referans kle enstalasyon sa a pa genyen oswa fòm kolòn nan deklare a pa matche. Rejis pwogrè a bay referans lan (pa egzanp `env:QUIRE_MASTER_KEY:v0 (unreadable)`). Remete kle sa a nan `QUIRE_MASTER_KEY_RETIRED` epi kouri yon lòt wotasyon; oswa si kle a pèdi nèt, fè administratè òganizasyon an antre kalifikatif la ankò pou sele l avèk kle aktyèl la. Wotasyon ki echwe montre erè a nan rejis; korije koz la epi mande ankò.

## Kle siyati <!--quire:signing-keys-->

Apa de kle prensipal la, chak òganizasyon siyen token OpenID Connect ak mesaj LTI yo avèk pwòp kle RSA pa li, ki pibliye nan `/.well-known/jwks.json`. Operatè a pa bezwen fè anyen isit la. Orè chak èdtan `platform.signing_keys` pibliye yon nouvo kle sèt jou anvan kle aktyèl la gen 90 jou; yon semèn apre nouvo kle a kòmanse siyen epi ansyen an pran retrèt; 90 jou pi ta yo efase ansyen an epi retire li nan seri kle a. Chak etap se yon antre `platform/signing_key_advance` nan chèn odit platfòm la.

Pou ranplase kle yon òganizasyon anvan lè, pa egzanp apre yon ekspozisyon:

- nan konsole a: Security, Master key, Publish a new signing key (mande `platform/keys_manage`); oswa
- nan yon shell ki gen anviwònman worker la: `bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310"`. `bun run kek:rotate signing-keys status` bay lis kle tout òganizasyon yo selon etap.

Yo pibliye nouvo kle a tousuit epi li kòmanse siyen apre sèt jou, lè kle aktyèl la pran retrèt. Yo chwazi semèn sa a espre: pati ki depann sou kle a mete seri a nan kach, epi yon peryòd sipèpozisyon pi kout ta fè tout zouti yo echwe ansanm. Kle k ap pran retrèt la rete nan seri a pandan 90 jou anplis pou token li te deja siyen yo kontinye verifye. Si ekspozisyon an mande pou yo sispann fè konfyans li pi bonè, efase liy li nan bazdone ak pwòp aksè operatè a, anba yon dosye chanjman (aksè ijans an lekti sèlman); lè sa a, verifikasyon token li te siyen yo echwe. Wotasyon fòse a ekri nan chèn odit la kòm `platform/signing_key_rotate`, ansanm ak rezon an. Worker la bezwen menm paramèt `QUIRE_MASTER_KEY` ak web tier la pou vlope nouvo kle; kòmand `bun run kek:rotate` pou kle prensipal la re-vlope kle siyati ansanm ak tout lòt yo (`oauth_signing_key` nan `SEALED_STORES`).

## Aksè ijans nan pwodiksyon <!--quire:break-glass-production-access-->

Pèsonn pa gen aksè pèmanan nan pwodiksyon. Lè yon bagay pa kapab tann, yon pwopriyetè bay yon otorizasyon aksè ijans: Platform console, Security, Break-glass access.

- Otorizasyon an gen yon scope (yon òganizasyon oswa rejis platfòm nan), yon rezon ki gen omwen 20 karaktè epi ki site ensidan oswa tikè a, ak yon dire ant 5 ak 240 minit. Li ekspire otomatikman: yo verifye lè revèy la chak fwa gen yon deklarasyon.
- Yo kapab bay li pwopriyetè ki bay li a oswa yon lòt pwopriyetè (pwosedi de moun). Se moun yo bay li a sèlman ki kapab sèvi avè l. Pou bay li, sa mande `platform/break_glass_issue`; pou sèvi avè l, sa mande `platform/break_glass_use`; pa default, pwopriyetè sèlman gen dwa sa yo.
- Deklarasyon yo pase nan passerelle a, pa nan login bazdone: lekti sèlman, youn alafwa, limite ak òganizasyon an oswa rejis kontwòl la, avèk timeout senk segonn ak maksimòm 500 liy. Valè binè yo parèt ak gwosè yo.
- Chèn odit platfòm la anrejistre emisyon an (avèk rezon an), anilasyon an, chak deklarasyon anvan li kouri (`platform/break_glass_statement`; sila yo refize gen rezilta `denied`) ak chak rezilta (`platform/break_glass_result`). `ops.break_glass_statement` konsève ID antre odit yo, konsa anrejistreman emisyon an konekte ak antre odit pa li yo.
- Yo pa ofri ekriti. Yon chanjman ki pa ka tann pwochen vèsyon fèt deyò pwodwi sa a ak pwòp aksè bazdone operatè a, anba pwòp rejis chanjman li; rejis la ta dwe site referans ensidan yo te itilize isit la.

Poukisa nou pa bay kalifikatif bazdone: yon login Postgres dire pi lontan pase sesyon ki te mande li a, li evite sekirite nivo liy aplikasyon an depann sou li, epi li pa ka ekri nan chèn odit pwodwi sa a. Donk deklarasyon li yo ta sèlman pase nan odit jiska kote yon moun voye log sèvè a. Passerelle a fè rejis odit la tounen yon pati nan aksè a, olye li yon pratik apa.

Pou reponn yon demann odit: bay lis otorizasyon nan peryòd la (Break-glass access), ouvri istwa youn pou jwenn deklarasyon ak ID antre odit yo, epi li antre sa yo nan chèn odit platfòm la (`bun run audit:verify --platform` pwouve chèn nan entak).

Source: https://docs.quirelms.com/ht/ops/key-rotation/index.mdx
