Kontrolên di 21-compliance.md beş 14 de ku denetmêr bi nav daxwaz dike. Ev rûpel procedûr e; supayên ku wê dide dîtin evidans in.
Kilît
Her têketnaver ku tê parastin bi kilîteke nû ya şifrakirina datayê (DEK) tê mühûrkirin. DEK bi kilîta sereke (KEK) tê veşartîn, û nîşankera kilîta sereke li alî wê tê parastin (key_ref, an nîşankera di nawa nirxekî veşartî de). Biguherîna kilîta sereke DEKan dîsa veşarî dike. Her tim têketnavek şifra nake an dîsa şifra nake.
| Mîhaz | Mani |
|---|---|
QUIRE_MASTER_KEY |
Kilîta sereke ya niha: 32 hejmara, base64. Her nepûrekî nû bi wê tê veşartîn |
QUIRE_MASTER_KEY_VERSION |
Nîşanera nûşeya wê. Gava neyê sazkirin v1. Her car ku tu kilîtê biguherînî bilind bike |
QUIRE_MASTER_KEY_RETIRED |
Kilîtên berê yên ku nepûr parastî in dikarin hê di bin wê bin, wek v1=<base64>,v0=<base64>. Tenê dixwînin, her tim ne nivîsin |
Navûpa web, worker û fermana bun run kek:rotate heman sê mîhazan dixwînin. Hemû divê heman nirxan bin, an yek ji wan nikare ewî veke ku digerek mühûrkiriye.
Bê QUIRE_MASTER_KEY her subsistem kilîta ku ji QUIRE_SECRET_KEY derdike parastî dike. Ew karekî dike, rûpela sagiya pergalê wê wekî kêm nîşan dike, û dûpiştî ku tu kilîteke sereke saz bikî hê dixwînî ye, ku bi vê re gurîştina yekem her tişt ji wê ve digure. Her kes ku dikare pêşandanîya prosesê bixwîne dikare her têketnaver parastî şifra, ji ber vê sazkirinek production divê kilîteke sereke heye, ku di daneke nepûrê de tê parastin û ne di heman veparîstinê de wek danegirşê.
Biguherîn
Temaû dema kilîtê di konsola platform, Parastin, Kilîta sereke de dide xweyîn, û wek metrîka quire.secrets.master_key.age (roj). Pêşnîşana rojane ya platform.key_age (03:41 UTC) gava kilît bibe 365 roj di zencîra denetinê de tiştekî bîranînê nivîsî dike, û her 30 rojan dîsa heta biguherînê. Bi bîranînê biguherîne, û her car ku kilît dibe hatiye rakerandin.
- Kilîta nû çêke:
openssl rand -base64 32. QUIRE_MASTER_KEYbi wê saz bike ûQUIRE_MASTER_KEY_VERSIONbi nîşanera piştî (v2). Kilîta kevn bavêjeQUIRE_MASTER_KEY_RETIREDwekv1=<old base64>. Kopîya herduyan di cîgeke dinî ji vê serverê biparîzê.- Navûpa web û worker bi mîhazên nû bezoste. Nepûrên nû niha di
env:QUIRE_MASTER_KEY:v2de tên veşartîn; yên kevn hê bi kilîta bêjestî ve tên vekirin. - Biguherînê bixwaze, bi aboka ku di serîdana denetinê de dimîne:
- di konsolê de: Parastin, Kilîta sereke, Kilîta sereke biguherîne; an
- di shellê bi heman derdikevarinê de:
bun run kek:rotate request --reason "Annual rotation, ticket SEC-114".
- Worker her deqîqeyek parçeke dîsa veşarî dike (pêşnîşana planerê ya
platform.key_rotation) û dûpiştî destpekvekê dewam dike. Ji bo temamkirina wê bi nivîşanekî:bun run kek:rotate run. Wê bibun run kek:rotate statussaz bike. - Gava supayê nîşan dide ku biguherîn bi sifirê neçareser û sifirê serket temam bûye, kilîta bêjestî ji
QUIRE_MASTER_KEY_RETIREDrake û dîsa bezoste. Heta wê demê wê biparîzê: nirxekek ku nikarî veguherîne hê di kilîta kevn de veşartî ye.
Erek çi dişopîne
Her daneke ku DEKê veşartî dihêle: wên di SEALED_STORES de (apps/worker/src/key-rotation.ts). Danên danegirşa kontrolê li ser danegirşa kontrolê tên şopîn; danên rêxistin bi rêxistinek bi parastina rizê tên şopîn, li danegirşê ku rêxistin dihêle, ji ber vê tenantekî veşartî li danegirşê wekî taybet di wê danegirşê de biguherîne. Ceribandekek serket gava mîgar ûstûlekî kilîta veşartî pezîr dike ku lîste nav nade, an digere gava çawaskiriya têketnaver ûstûleke mühûrkirî ku lîste derdike tê hezkirin.
Supay
ops.key_rotation: rizyek ji bo her biguherînek, bi aboka wê, kê daxwaz kirîye, derengama wê û tevahî wê (veşartî nû, hê niha, neçareser, serket).ops.key_rotation_progress: rizyek ji bo her daneû scope gava şopîn bûn, bi nîşankera kilîtên ku nikarî bixwîne û çend nirx di bin her yek de. Biguherînek ku dewam dike wan derdike.- Zencîra denetinê ya platform:
platform/key_rotation_request(bi aboka wê),platform/key_rotation_storeji bo her dane bi hejmara wê, ûplatform/key_rotation_completeanplatform/key_rotation_fail;platform/key_age_reminderji bo bîranînê. - Metrîk:
quire.secrets.master_key.ageûquire.secrets.rewrap.outstanding(nirxên ku gurîştina dawî nikarî veguherîne).
Gava nirx neçareser in
Nirxeke neçareser bi nîşankerekî kilît ku vê sazkirinê tune veşartî ye, an ne di şîle ku ûstûl wê awête dike. Supaya pêşketinê nîşankera navdide (mîna env:QUIRE_MASTER_KEY:v0 (unreadable)). Ew kilîtî QUIRE_MASTER_KEY_RETIRED vegerîne û biguherînekî din bixebitîne, an, ger kilît bi temavî derket, rêveberyê rêxistinê bivêje têketnaverê dîsa binivîse: lewra di kilîta niha de tê mühûrkirin. Biguherînên serket xeltê li supayê nîşan dide; abokê rastîrke û dîsa bixwaze.
Kilîtên qedandin
Cuda ji kilîta sereke: her rêxistin tokeyên OpenID Connect û peyamên LTI bi kilîta RSA a xwe qedê dike, ku di /.well-known/jwks.json de tê belavkirin. Tiştek li vir ji operator pêwîst nake. Pêşnîşana saetî ya platform.signing_keys hefteke berê ku sedî kilîta niha qediya bibe bişîneke dide belav, hefteke piştî wê bişîne dest pê dike qedandin û kilîta kevn dibe nûvend, û navî de rojek nedeyan kilîta kevn tê rakirin û ji kilîtan derdike. Her gav têgilîyeke platform/signing_key_advance di zencîra denetinê ya platform de ye.
Ji bo biguherîna zû a kilîta rêxistinek, mîna piştî rakerandinê:
- di konsolê de: Parastin, Kilîta sereke, Kilîteke qedandinê nû belav bike (pêwîst e
platform/keys_manage); an - di shellê bi derdikevariya worker de:
bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310".bun run kek:rotate signing-keys statuskilîtên her rêxistinê bi astê li lîsteyê dide.
Kilîta nû bi tenê tê belavkirin û dûpiştî heftekeke qedandin dest pê dike, gava kilîta niha nûvend dike. Hefte bikûtîya e: relye partenên kilîtan divêşarin, û hevpariya kêmtr her amûrek bi tenê serneket dike. Kilîta nûvend neyî de di kilîtan de 90 rojan mayî digire ta tokeyên ku hê qedandiye hê tê rastînkirin; ger rakerandin tê were wêjîn ka divê zûtre bavêjî bêbaweriyê, rakina rizê wê guherdineke ye ku bi gihîştina danegirşê ya operator bi supaya guhertina xwe ye, derveyî vê berhevokê (gihîştina gagiz tenê dixwîne), û tokeyên bi wê qedandî piştî rastînkirinê serket dibe. Biguherîna epêç di zencîra denetinê de platform/signing_key_rotate ye, bi aboka re. Worker heman mîhazên QUIRE_MASTER_KEY ya navûpa web pêwîst dike ta kilîta nû veşarî bike; bun run kek:rotate ji bo kilîta sereke kilîtên qedandinê bi her tiştî din dîsa veşarî dike (oauth_signing_key di SEALED_STORES de ye).
Gihîştina gagiz a production
Kesî gihîştina berdurekî ya production nahiye. Gava tiştek nikare bendê bike, sandiyareke ragihandî dike: Konsola platform, Parastin, Gihîştina gagiz.
- Sandiyekek scope heye (rêxistinek, an rejestra platform), abokekî ji kêmtirî 20 tîp ku tîba xete an bilez nîşan dike, û pencereyekî ji 5 heta 240 deqîqe. Bi xwe derdike: di her bayanê de bi dem re tê çawaskirin.
- Dikare weke sandiyarekê ragihandîne, an sandiyarekî din (şîla du kes). Tenê kesê ku wê ragihandiye bikar tîne. Ragihandî pêwîst e
platform/break_glass_issueû bikaranîn pêwîst eplatform/break_glass_use; herdu bi veberî tenê sandiyarek in. - Bayan bi rêkî gateway tên xebitandin, ne bi têketina danegirşê: tenê dixwînin, carekê, bişopînî bo rêxistinê an bo rejestra kontrol, bi serhêndekewekî pênc seretan û bi kêmtirî 500 riz. Nirxên binary bi mezinahî tên nîşan.
- Zencîra denetinê ya platform ragihandî (bi aboka wê), bêjestîn, her bayan berî xebitandinê (
platform/break_glass_statement, wan ê raqûlkirî bi encamêdenied) û her encam (platform/break_glass_result) tomarkî dike.ops.break_glass_statementIDyên têgilîyên denetinê dihêle, ji ber vê supaya ragihandî bi têgilîyên denetin wê tê girêdan. - Nivîsandin pêşkêş nake. Guherdinek ku nikare bendê wêşanê bikare gihîştina danegirşê ya operator bi supaya guhertina xwe re, derveyî vê berhevokê, û supay divê nîşankera tîba xete ya li vir bikar anîneye.
Ji bo çi têketnaverên danegirş neyên ragihandîn: têketinek Postgres ji seansa ku wê daxwaz kirîye bilindtir dibe, parastina rizê ya nivîsbariyê bigire, û nikare di zencîra denetinê ya vê berhevokê de nivîsî, ji ber vê bayanên wê tenê ta kêyê ku kes loga serwerê hatiye şandin tên denetîn. Gateway rihîna denetinê wek taybetmendiya gihîştî dike, ne wekî berhevkiriyekî li gorî wê.
Ji bo bersivdanî daxwaza denetinê: sandiyên di dema ve li lîsteyê bide (Gihîştina gagiz), dîroka sandiyekê veke ji bo bayanên wê û IDyên têgilîyên denetinê, û ew têgilîyan di zencîra denetinê ya platform de bixwîne (bun run audit:verify --platform piştrîn dike ku zencîr tam e).