---
title: "Kiteny lehibe sy fanavaozana kiteny marinana, ary fidirana anatra"
description: "Manavao ny kiteny lehibe miaro ny mombamomba alefa voatahiry, ary mampiasa ny fidirana anatra."
image: "https://docs.quirelms.com/og.png"
---

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

# Kiteny lehibe sy fanavaozana kiteny marinana, ary fidirana anatra

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

Ny fifehezana ao amin'ny 21-compliance.md singa 14 izay angatahin'ny mpitsara anarana. Ity pejy ity ny fomba fiasa; ny tontolon-kevitra averiny no porofo.

## Ny kiteny <!--quire:the-keys-->

Sasina amin'ny kiteny famantarana data vaovao (DEK) ny mombamomba alefa voatahiry tsirairay. Afohan'ny kiteny lehibe (KEK) ny DEK, ary tahirizina akaiky azy ny famantarana ny kiteny lehibe (`key_ref`, na ny famantarana ao anatin'ny sanda fampitarana). Ny fanavaozana kiteny lehibe dia manapaka ny DEK indray. Tsy manala na mamintina mombamomba alefa mihitsy izy.

| Filàlana | Hevitra |
| --- | --- |
| `QUIRE_MASTER_KEY` | Ny kiteny lehibe ankehitriny: 32 octet, base64. Afohana azy ny teny miafina vaovao tsirairay |
| `QUIRE_MASTER_KEY_VERSION` | Ny etiketan'ny version. `v1` raha tsy misy. Ampio azy isaky ny fanovana kiteny |
| `QUIRE_MASTER_KEY_RETIRED` | Ny kiteny taloha nanatahiry teny miafina mbola mety ao ambany, toy ny `v1=<base64>,v0=<base64>`. Mamaky ihany, tsy manoratra mihitsy |

Mamaky ny filàlana telo mitovy ny sehatra ve-dalana, ny mpandray asa ary ny fehezanteny `bun run kek:rotate`. Tsy maintsy mitovy ny sandany rehetra, na iray aminy tsy afaka manokafa ny nataon'ny hafa.

Tsy misy `QUIRE_MASTER_KEY` dia mitazona ny kiteny avy amin'ny `QUIRE_SECRET_KEY` isaky ny sehatra. Miasa izany, mampiseho azy ho rabotra ny pejy fahasalaman'ny rindrina, ary mbola azo vakiana aorian'ny fanetrahanao kiteny lehibe, izay fomba firahitan'ny fanavaozana voalohany hanelengelena ny zavatra rehetra aminy. Olona afaka mamaky ny tontolon'ny rindrina dia afaka manala mombamomba alefa voatahiry tsirairay, ka tokony hisy kiteny lehibe ny fampandrafiana fiasa, tahirizina eo amin'ny trano teny miafina ary tsy ao amin'ny backup mitovy amin'ny data-by.

## Fanavaozana <!--quire:rotating-->

Aseho ny taon'ny kiteny ao amin'ny konsolin'ny serivera, Fiarovana, Kiteny lehibe, ary amin'ny metrika `quire.secrets.master_key.age` (andro). Ny fandaminana isan'andro `platform.key_age` (03:41 UTC) dia manoratra singa fampandrenesana ao amin'ny rindrin'ny fitsaran'ny serivera rehefa tonga ny kiteny 365 andro, ary indray isaky ny 30 andro mandraaka fanavaozana azy. Avaovy amin'ny fampandrenesana, ary isaky ny fotoana mety nofoana ny kiteny.

1. Mamorona ny kiteny vaovao: `openssl rand -base64 32`.
2. Metrahana `QUIRE_MASTER_KEY` aminy ary `QUIRE_MASTER_KEY_VERSION` amin'ny etiketa manaraka (`v2`). Alaina ny kiteny taloha mankany amin'ny `QUIRE_MASTER_KEY_RETIRED` amin'ny endrika `v1=<old base64>`. Tazomina kalitao tsirairay amin'ny toerana tsy eo amin'io mpandray anjara io ny roa.
3. Fampandrafina ny sehatra ve-dalana sy ny mpandray asa amin'ny filàlana vaovao. Ny teny miafina vaovao dia apetraka ankehitriny amin'ny `env:QUIRE_MASTER_KEY:v2`; ny taloha mbola voasokafana amin'ny kiteny voavelana.
4. Mangataka ny fanavaozana, misy antony hahatongavana ao amin'ny rindrin'ny fitsarana:
   - ao amin'ny konsoly: Fiarovana, Kiteny lehibe, Avaovy ny kiteny lehibe; na
   - amin'ny shell misy ny tontolo mitovy: `bun run kek:rotate request --reason "Annual rotation, ticket SEC-114"`.
5. Manapaka slice iray isaky ny minitra ny mpandray asa (ny fandaminana `platform.key_rotation` an'ny mpandrinjaka) ary manohy aorian'ny fanavaozana. Hamarina amin'ny fandraisana iray: `bun run kek:rotate run`. Jereo amin'ny `bun run kek:rotate status`.
6. Rehefa misy ny tontolon-kevitra fa vita ny fanavaozana amin'ny **tsy misy tsy voavaha sy tsy diso**, esory ny kiteny voavelana avy amin'ny `QUIRE_MASTER_KEY_RETIRED` ary fampandrafina. Mandraaka izany tazomina azy: ny sanda tsy nahafahany monjy dia mbola apetraka amin'ny kiteny taloha.

### Ny zavatra alefan'ny asa <!--quire:what-the-job-walks-->

Ny tahirin'ny DEK apetraka rehetra: ny ao amin'ny `SEALED_STORES` (`apps/worker/src/key-rotation.ts`). Alefa eo amin'ny data-by fifehezana ny tahirin'ny data-by fifehezana; alefa ny tahirin'ny organisasa isaky ny organisasa iray amin'ny fiarovana isakin-tseza, ao amin'ny data-by misy ny organisasa, ka alefa ao amin'io data-by io ny mpanjifa voafaritra amin'ny data-by manokana. Diso ny fanadinana raha misy gerbozy kiteny apetraka ao amin'ny schema tsy voasoratra ao amin'ny lisitra, ary iray hafa raha tsy hitan'ny fijerena mombamomba alefa ny gerbozy sasina tsy ao amin'ny lisitra.

### Ny tontolon-kevitra <!--quire:the-record-->

- `ops.key_rotation`: toerana iray isaky ny fanavaozana, misy antony, iza no mangataka, toe-javatra sy volany (voapakana, efa ankehitriny, tsy voavaha, diso).
- `ops.key_rotation_progress`: toerana iray isaky ny tahirina sy faritra rehefa alefa, misy ny famaritan'ny kiteny tsy afaka novakiany sy ny faharanitan'ny sanda misy eo ambany. Aseho eto ny fanavaozana atomboyina.
- Rindrin'ny fitsaran'ny serivera: `platform/key_rotation_request` (misy antony), `platform/key_rotation_store` iray isaky ny tahirina misy isany, ary `platform/key_rotation_complete` na `platform/key_rotation_fail`; `platform/key_age_reminder` ho an'ny fampandrenesana.
- Metrika: `quire.secrets.master_key.age` ary `quire.secrets.rewrap.outstanding` (ny sanda tsy nahafahy monjy ny fanavaozana farany).

### Rehefa tsy voavaha ny sanda <!--quire:when-values-are-unresolved-->

Sanda tsy voavaha dia apetraka amin'ny famaritan'ny kiteny tsy ahitana io fampandrafiana io, na tsy ao amin'ny endrika noheveran'ny gerbozy any. Mampiseho ny famaritana ny tontolon-kevitra fandrosoana (ohatra `env:QUIRE_MASTER_KEY:v0 (unreadable)`). Avereno io kiteny io amin'ny `QUIRE_MASTER_KEY_RETIRED` alefa fanavaozana hafa, na, raha very tanteraka io kiteny, angataho an'ny mpikarakarana ny organisasa hanampy indray ny mombamomba alefa: dia apetraka amin'ny kiteny ankehitriny avy eo izy. Mampiseho ny fahadisoany ao amin'ny tontolon-kevitra ny fanavaozana diso; lanjo ny antony ary mangataka indray.

## Kiteny marinana <!--quire:signing-keys-->

Samy hafa amin'ny kiteny lehibe: isaky ny organisasa dia manamarina ny token OpenID Connect sy ny hafatra LTI amin'ny kiteny RSA manokany, apetraka ao amin'`/.well-known/jwks.json`. Tsy mila mpikasoka mihitsy eto. Ny fandaminana isan'ora `platform.signing_keys` dia manome mpandray toerana herinandro alohan'ny faran'ny 90 andrin'ny kiteny ankehitriny, herinandro avy eo dia manomboka manamarina ny mpandray toerana ary ho retiring ny kiteny taloha, ary 90 andro avy eo dia esorina ny kiteny taloha avy amin'ny setin'ny kiteny. Singa `platform/signing_key_advance` tsirairay ao amin'ny rindrin'ny fitsaran'ny serivera ny dingana tsirairay.

Hanova kiteny organisasa amin'ny haingana, ohatra aorian'ny fanehoana:

- ao amin'ny konsoly: Fiarovana, Kiteny lehibe, Apetraho kiteny marinana vaovao (mila `platform/keys_manage`); na
- amin'ny shell misy ny tontolo an'ny mpandray asa: `bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310"`. Ny `bun run kek:rotate signing-keys status` dia mizara ny kiteny an'ny samy organisasa arakaty ny dingana.

Aseho haingana ny kiteny vaovao ary manomboka manamarina aorian'ny herinandro, rehefa mivoaka ny kiteny ankehitriny. Lalina ny herinandro: mitahiry ny setin'ny kiteny ny mpanankarena, ary ny overlap fohy kokoa dia manakona ny fitaovana tsirairay amin'ny fotoana iray. Mbola ao amin'ny setin'ny kiteny 90 andro fanampiny ny kiteny mivoaka ka mbola marina ny token notenany; raha midika ny fanehoana fa tokony hosasana haingana kokoa azy, ny fanesana ny anjarany dia fanovana ataon'ny mpikasoka amin'ny fifanarahan'ny data-by manokany amin'ny alàlan'ny tontolon-kevitra fanovana (fidirana anatra tsy miankina amin'ny fanoratana ihany), ary tsy mahomby ny fanamarinana ny token notenana aminy avy eo. Ny fanavaozana an-teraka dia `platform/signing_key_rotate` ao amin'ny rindrin'ny fitsarana, misy antony. Mila ny filàlana `QUIRE_MASTER_KEY` mitovy amin'ny sehatra ve-dalana ny mpandray asa hanapakana ny kiteny vaovao; ny `bun run kek:rotate` ho an'ny kiteny lehibe dia manapaka indray ny kiteny marinana miaraka amin'ny zavatra hafa rehetra (`oauth_signing_key` ao amin'ny `SEALED_STORES`).

## Fidirana anatra amin'ny fiasa <!--quire:break-glass-production-access-->

Tsy manana fahafahana maharitra amin'ny fiasa olona na inona na inona. Rehefa tsy mety miandry, dia mamela fahafahana anatra tompony iray: konsolin'ny serivera, Fiarovana, Fidirana anatra.

- Misy faritra ny fahafahana (organisasa iray, na lisitin'ny serivera), antony farany 20 litera manambara ny zava-mitranga na karatra, ary fotoana 5 hatramin'240 minitra. Manapaky azy an-kibo: jerena amin'ny ontolo isaky ny fehezanteny.
- Afaka alefa azy ho an'ny tompony mamela azy, na ho an'ny tompony hafa (endrika olona roa). Ny olona noforoniny no afaka mampiasa azy. Ny fanomehana mila `platform/break_glass_issue` ary ny fampiasana mila `platform/break_glass_use`; olona tompony ihany roa amin'ny toe-javatra fototra.
- Mandeha ny fehezanteny amin'ny alàlan'ny gateway, tsy amin'ny fandraisana data-by: famakarana ihany, iray iray, voafehy amin'ny organisasa na amin'ny lisitin'ny fifehezana, misy fetra 5 segondra ary farany 500 toerana. Aseho amin'ny habeny ny sanda binary.
- Mijery ny rindrin'ny fitsaran'ny serivera ny fanomehana (misy antony), ny fanalana, isaky ny fehezanteny alohan'ny hisoratany (`platform/break_glass_statement`, ny acomina misy vokany `denied`) ary isaky ny vokany (`platform/break_glass_result`). Ny `ops.break_glass_statement` dia mitahiry ny ID singam-panitsarana, ka mifandray ny tontolon-kevitra fanomehana amin'ny singam-panitsarany.
- Tsy omena ny fanoratana. Ny fanovana tsy mety miandry fandefasana dia ampiasain'ny mpikasoka ny fifanarahan'ny data-by manokany amin'ny alàlan'ny tontolon-kevitriny fanovana manokana, ivelany an'ity rindrina ity, ary tokony mampitahao ny mari-pamaritana zava-mitranga ampiasaina eto.

Antony tsy fanomevana mombamomba alefa data-by: ny fandraisana Postgres dia nohoana ny session nangataka azy, mamaky ny fiarovana isakin-tseza an'ny fampiharana, ary tsy afaka manoratra ao amin'ny rindrin'ny fitsarana an'ity rindrina ity, ka ny fehefantany dia hitsaraina amin'ny fahatanterahana ny nandefasan'ny log an'ny serivera ihany. Mahatonga ny rindrin'ny fitsarana ho toetran'ny fahafahana fa tsy fomba aminy ny gateway.

Hanamora fangatan-kevitra fitsarana: lisitio ny fahafahana ao amin'ny fotoana (Fidirana anatra), sokafy ny tantaran'ny fahafahana iray hanitsiana ny fehefantany sy ny ID singam-panitsarana, ary vakio ireo singa ao amin'ny rindrin'ny fitsaran'ny serivera (`bun run audit:verify --platform` dia manamarinana fa tsy simba ny rindrina).

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