ʻO nā kāohi ma ka māhele 14 o 21-compliance.md a ka loiloi e noi ai ma ko lākou inoa. ʻO kēia ʻaoʻao ke kaʻina hana; ʻo nā moʻolelo i hana ʻia nā hōʻike.
Nā kī
Hoʻopaʻa ʻia kēlā me kēia palapala hōʻoia me kī hoʻopāʻālua ʻikepili hou (DEK). Hoʻopili ʻia ka DEK e ke kī haku (KEK), a mālama ʻia ka kuhikuhi kī haku ma kona ʻaoʻao (key_ref, a i ʻole ke kuhikuhi i loko o ka waiwai pūʻolo). Hoʻopili hou ka hoʻololi kī haku i nā DEK. ʻAʻole loa ia e wehe a hoʻopāʻālua hou i palapala hōʻoia.
| Hoʻonohonoho | Manaʻo |
|---|---|
QUIRE_MASTER_KEY |
Ke kī haku o kēia manawa: 32 byte, base64. Hoʻopili ʻia kēlā me kēia ʻōlelo huna hou ma lalo ona |
QUIRE_MASTER_KEY_VERSION |
Lepili mana. v1 inā ʻaʻole i hoʻonohonoho ʻia. Hoʻonui i kēlā me kēia hoʻololi kī |
QUIRE_MASTER_KEY_RETIRED |
Nā kī mua e mālama ana paha i nā ʻōlelo huna, ma ke ʻano v1=<base64>,v0=<base64>. Heluhelu wale ʻia, ʻaʻole kākau ʻia |
Heluhelu like ka papa pūnaewele, ka worker, a me ke kauoha bun run kek:rotate i kēia mau hoʻonohonoho ʻekolu. Pono e like nā waiwai a pau, i ʻole hiki ʻole i kekahi o lākou ke wehe i ka mea a kekahi i hoʻopaʻa ai.
Me ka ʻole o QUIRE_MASTER_KEY, mālama kēlā me kēia ʻōnaehana liʻiliʻi i ke kī i loaʻa mai QUIRE_SECRET_KEY. Hana kēia; hōʻike ka ʻaoʻao olakino ʻōnaehana iā ia he nāwaliwali, a hiki ke heluhelu ʻia ma hope o ka hoʻonoho ʻana i kī haku, ʻo ia ke ʻano e hoʻoneʻe ai ka hoʻololi mua i nā mea a pau mai ia kī. Hiki i ka mea hiki ke heluhelu i ke kaiapuni kaʻina ke wehe i kēlā me kēia palapala hōʻoia i mālama ʻia; no laila pono i ka hoʻouka hana ke kī haku ma ka hale ʻōlelo huna malu, ʻaʻole ma ka papaʻa like me ka waihona ʻikepili.
Hoʻololi kī
Hōʻike ʻia ka makahiki kī ma ka console paepae, Palekana, Kī haku, a ma ke ana quire.secrets.master_key.age (lā). Kākau ka papa manawa lā platform.key_age (03:41 UTC) i mea hoʻomanaʻo ma ke kaulahao hōʻoia paepae ke hiki ke kī i 365 lā, a i kēlā me kēia 30 lā ma hope a hoʻololi ʻia. Hoʻololi i ka wā hoʻomanaʻo a i kēlā me kēia manawa i hiki ai ke hōʻike ʻia ke kī.
- Hana i kī hou:
openssl rand -base64 32. - E hoʻonoho iā
QUIRE_MASTER_KEYi ia kī, a iāQUIRE_MASTER_KEY_VERSIONi ka lepili aʻe (v2). E hoʻoneʻe i ke kī kahiko iQUIRE_MASTER_KEY_RETIREDma ke ʻanov1=<old base64>. E mālama i kope o lāua ma waho o kēia host. - Hoʻouka i ka papa pūnaewele a me ka worker me nā hoʻonohonoho hou. Hoʻopili ʻia nā ʻōlelo huna hou ma lalo o
env:QUIRE_MASTER_KEY:v2; hiki nō ke wehe i nā mea kahiko ma o ke kī i hoʻomaha ʻia. - Noi i ka hoʻololi me ke kumu e mālama ʻia ma ka moʻolelo hōʻoia:
- ma ka console: Palekana, Kī haku, Hoʻololi i ke kī haku; a i ʻole
- ma kahi shell me ke kaiapuni like:
bun run kek:rotate request --reason "Annual rotation, ticket SEC-114".
- Hoʻopili hou ka worker i hoʻokahi ʻāpana i kēlā minuke (papa manawa
platform.key_rotationa ka scheduler), a hoʻomau ma hope o ka hoʻomaka hou ʻana. No ka hoʻopau ʻana i hoʻokahi noho:bun run kek:rotate run. Nānā mebun run kek:rotate status. - Ke hōʻike ka moʻolelo ua pau ka hoʻololi me ʻaʻohe mea i koe a ʻaʻohe hāʻule, e wehe i ke kī i hoʻomaha ʻia mai
QUIRE_MASTER_KEY_RETIREDa hoʻouka hou. E mālama nō a laila: ua hoʻopili ʻia kekahi waiwai hiki ʻole ke hoʻoneʻe ʻia ma lalo o ke kī kahiko.
Nā mea a ka hana e hele ai
ʻO kēlā me kēia waihona e paʻa ana i DEK i hoʻopili ʻia: nā mea i loko o SEALED_STORES (apps/worker/src/key-rotation.ts). Hele ʻia nā waihona ʻikepili hoʻomalu ma ka waihona hoʻomalu; hele ʻia nā waihona hui hoʻokahi hui i kēlā manawa ma lalo o ka palekana pae-lālani, ma ka waihona e waiho ai kēlā hui. No laila, hoʻololi ʻia kahi tenant i hoʻopaʻa ʻia i waihona hoʻolaʻa ma laila. Hāʻule kekahi hoʻāʻo ke loaʻa i ke kūkulu ʻikepili kolamu kī hoʻopili hou ʻaʻole i kapa ʻia ma ka papa inoa; hāʻule kekahi ke hoʻokaʻawale ka loiloi palapala hōʻoia i kolamu paʻa ʻole ma ka papa inoa.
Ka moʻolelo
ops.key_rotation: hoʻokahi lālani no kēlā me kēia hoʻololi, me ke kumu, ka mea noi, ke kūlana, a me nā huina (i hoʻopili hou ʻia, paʻa hou, i koe, hāʻule).ops.key_rotation_progress: hoʻokahi lālani no kēlā me kēia waihona a laulā i nānā ʻia, me nā kuhikuhi kī hiki ʻole ke heluhelu a me ka helu waiwai ma lalo o kēlā me kēia. Kāpae ʻia kēia mau mea ke hoʻomau hou ʻia ka hoʻololi.- Kaulahao hōʻoia paepae:
platform/key_rotation_request(me ke kumu), hoʻokahiplatform/key_rotation_storeno kēlā me kēia waihona me kona mau helu, a meplatform/key_rotation_completea i ʻoleplatform/key_rotation_fail;platform/key_age_reminderno ka hoʻomanaʻo. - Nā ana:
quire.secrets.master_key.agea mequire.secrets.rewrap.outstanding(nā waiwai hiki ʻole i ka hoʻololi hope ke neʻe).
Ke koe nā waiwai
Hoʻopili ʻia kekahi waiwai i koe ma lalo o kuhikuhi kī i loaʻa ʻole i kēia hoʻouka ʻana, a i ʻole ʻaʻohe ona ʻano i hoʻohiki ʻia e kona kolamu. Hōʻike ka moʻolelo holomua i ke kuhikuhi (e laʻa me env:QUIRE_MASTER_KEY:v0 (unreadable)). Hoʻihoʻi i ia kī i QUIRE_MASTER_KEY_RETIRED a holo i kekahi hoʻololi; a i ʻole, inā ua nalowale loa ke kī, e hoʻokomo hou ka luna hoʻomalu hui i ka palapala hōʻoia: hoʻopaʻa ʻia ia ma lalo o ke kī o kēia manawa. Hōʻike nā hoʻololi hāʻule i ko lākou hewa ma ka moʻolelo; hoʻoponopono i ke kumu a noi hou.
Nā kī pūlima
He ʻokoʻa kēia mau mea mai ke kī haku: pūlima kēlā me kēia hui i kona mau token OpenID Connect a me nā memo LTI me kī RSA ponoʻī, i paʻi ʻia ma /.well-known/jwks.json. ʻAʻohe hana a ka mea hoʻokele e pono ai. Paʻi ka papa manawa hola platform.signing_keys i kī pani i ʻehiku lā ma mua o ka hala ʻana o nā lā he kanaiwa o ke kī o kēia manawa; hoʻokahi pule ma hope, hoʻomaka ke kī pani e pūlima a komo ke kī kahiko i ka wā hoʻomaha; ma hope o 90 lā, holoi ʻia ke kī kahiko mai ka pūʻulu kī. He komo platform/signing_key_advance kēlā me kēia ʻanuʻu ma ke kaulahao hōʻoia paepae.
No ka pani mua ʻana i kī hui, no ka laʻana ma hope o ka hōʻike ʻia ʻana:
- ma ka console: Palekana, Kī haku, Paʻi i kī pūlima hou (pono
platform/keys_manage); a i ʻole - ma kahi shell me ke kaiapuni worker:
bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310". Papa inoa ʻobun run kek:rotate signing-keys statusi nā kī hui a pau ma ko lākou pae.
Paʻi koke ʻia ke kī hou a hoʻomaka e pūlima ma hope o nā lā ʻehiku, i ka wā hoʻomaha o ke kī o kēia manawa. He koho noʻonoʻo ka pule: mālama nā ʻaoʻao hilinaʻi i ko lākou cache pūʻulu kī, a hāʻule nā lako a pau i ka manawa hoʻokahi ke pōkole ka uhi pū. Noho ke kī hoʻomaha ma ka pūʻulu kī no 90 lā hou aʻe i hōʻoia mau ʻia ai nā token i pūlima ʻia ma mua; inā pono e hoʻopau koke i ka hilinaʻi ma muli o ka hōʻike ʻia ʻana, he hoʻololi ka holoi ʻana i kona lālani ma o ke komo waihona ʻikepili ponoʻī o ka mea hoʻokele, ma lalo o moʻolelo hoʻololi (heluhelu wale nō ke komo ulia pōpilikia), a laila hāʻule ka hōʻoia o nā token i pūlima ʻia me ia. ʻO platform/signing_key_rotate ka hoʻololi koi ʻia ma ke kaulahao hōʻoia, me ke kumu. Pono ka worker i nā hoʻonohonoho QUIRE_MASTER_KEY like me ka papa pūnaewele e hoʻopili ai i ke kī hou; hoʻopili hou ke kauoha kī haku bun run kek:rotate i nā kī pūlima me nā mea ʻē aʻe (oauth_signing_key aia ma SEALED_STORES).
Ke komo hana ulia pōpilikia
ʻAʻohe mea e paʻa ana i ke komo mau i ka hana. Ke hiki ʻole ke kali, hāʻawi kekahi mea nona i ʻae ulia pōpilikia: Console paepae, Palekana, Ke komo ulia pōpilikia.
- Loaʻa i ka ʻae ka laulā (hoʻokahi hui a i ʻole ka papa inoa paepae), kumu o 20 huapalapala a ʻoi e kapa ana i ka pilikia a i ʻole ticket, a me wā o 5 a 240 minuke. Pau ʻakomi ia: nānā ʻia me ka uaki i kēlā me kēia ʻōlelo.
- Hiki ke hāʻawi ʻia i ka mea nona nāna e hāʻawi, a i ʻole i mea nona ʻē aʻe (ʻano kānaka ʻelua). ʻO ka mea i hāʻawi ʻia ai wale nō ka mea hiki ke hoʻohana. Pono ʻo
platform/break_glass_issueno ka hāʻawi a ʻoplatform/break_glass_useno ka hoʻohana ʻana; no nā mea nona wale nō lāua ma ke ʻano paʻamau. - Holo nā ʻōlelo ma o ka puka komo, ʻaʻole ma ke komo waihona ʻikepili: heluhelu wale nō, hoʻokahi i ka manawa, kaupalena ʻia i ka hui a i ʻole ka papa inoa hoʻomalu, palena manawa ʻelima kekona a ʻaʻole ʻoi aku ma mua o 500 lālani. Hōʻike ʻia ka nui o nā waiwai binary.
- Hoʻopaʻa ke kaulahao hōʻoia paepae i ka hāʻawi (me ke kumu), ka hoʻopau, kēlā me kēia ʻōlelo ma mua o ka holo ʻana (
platform/break_glass_statement, me ka hopenadeniedno nā mea i hōʻole ʻia), a me kēlā me kēia hopena (platform/break_glass_result). Mālama ʻoops.break_glass_statementi nā ID komo hōʻoia, i hoʻohui ʻia ai ka moʻolelo hāʻawi i kona mau komo hōʻoia. - ʻAʻole hāʻawi ʻia nā kākau. Hoʻohana kekahi hoʻololi hiki ʻole ke kali i ka hoʻokuʻu i ke komo waihona ʻikepili ponoʻī o ka mea hoʻokele ma lalo o kāna moʻolelo hoʻololi, ma waho o kēia huahana; pono ka moʻolelo e haʻi i ka kuhikuhi pilikia i hoʻohana ʻia ma ʻaneʻi.
No ke aha e hāʻawi ʻole ai i palapala hōʻoia waihona ʻikepili: ola ka ʻeʻe Postgres ma hope o ke kau i noi ai iā ia, kāpae i ka palekana pae-lālani a ka polokalamu e hilinaʻi ai, ʻaʻole hiki ke kākau i ke kaulahao hōʻoia o kēia huahana; no laila, hōʻoia ʻia kāna mau ʻōlelo a hiki wale i ka mea i hoʻouna ʻia ma ka moʻolelo kikowaena. Hoʻolilo ka puka komo i ke kaulahao hōʻoia i waiwai o ke komo ponoʻī, ʻaʻole i hana maʻamau e puni ana iā ia.
No ka pane ʻana i noi loiloi: papa inoa i nā ʻae i ka wā (Ke komo ulia pōpilikia), wehe i ka moʻolelo o kekahi ʻae no kāna mau ʻōlelo a me nā ID komo hōʻoia, a heluhelu i kēlā mau komo ma ke kaulahao hōʻoia paepae (bun run audit:verify --platform e hōʻoia ana i ka paʻa o ke kaulahao).