މައި ކޮންޓެންޓަށް ދާ

މާސްޓަރ ކީ އަދި ސޮއި ކީ ރޮޓޭޝަން، ބްރޭކް-ގްލާސް ލިބުން

ސްޓޯރ ކުރި ކްރެޑެންޝަލްތައް ރައްކާކުރާ މާސްޓަރ ކީ ރޮޓޭޓްކޮށް، ބްރޭކް-ގްލާސް ލިބުން ބޭނުންކުރާށެވެ.

Markdown ގޮތަށް ބަލާ

އޮޑިޓަރުން ނަންގަނައި އެދޭ 21-compliance.md ގެ 14 ވަނަ ސެކްޝަންގެ ކޮންޓްރޯލްތައް. މި ޞަފްޙާ ޕްރޮސީޖަރެވެ؛ އެއިން އުފައްދާ ރެކޯޑުތައް އެވިޑެންސެވެ.

ކީތައް

ކޮންމެ ސްޓޯރ ކުރި ކްރެޑެންޝަލެއް އާ ޑޭޓާ އެންކްރިޕްޝަން ކީ (DEK) އަކުން ސީލްކުރެވެއެވެ. DEK މާސްޓަރ ކީ (KEK) އިން ރެޕްކުރެވެއެވެ؛ މާސްޓަރ ކީގެ ރިފަރެންސްވެސް އޭގެ ކައިރީ (key_ref، ނުވަތަ packed value ގެ ތެރޭ) ސްޓޯރކުރެވެއެވެ. މާސްޓަރ ކީ ރޮޓޭޓްކުރުމުން DEK ތައް އަލުން ރެޕް ކުރެވެއެވެ؛ ކްރެޑެންޝަލެއް ޑިކްރިޕްޓް ނުވަތަ އަލުން އެންކްރިޕްޓް ނުކުރެއެވެ.

ސެޓިންގް މާނަ
QUIRE_MASTER_KEY މިހާރުގެ މާސްޓަރ ކީ: 32 bytes، base64. އާ ސިކްރެޓްތައް މިކީއަކުން ރެޕްކުރެވެއެވެ
QUIRE_MASTER_KEY_VERSION އޭގެ ވަރޝަން ލޭބަލް. ސެޓްނުކުރިޔާ v1. ކީ ބަދަލުވާއިރު މިއީ މަތިކުރާށެވެ
QUIRE_MASTER_KEY_RETIRED ކުރީގެ ސިކްރެޓް އަދި އެކީ އަކުން ހުރިއްޔާ: v1=<base64>,v0=<base64>. ކިޔެވޭނީ، ލިޔެވޭ ނޫނެވެ

ވެބް ޓިއަރ، worker އަދި bun run kek:rotate command އިން މި ތިން ސެޓިންގެއް އެއްވަރަށް ކިޔައެވެ. އެތިން އެއް އަގު ނޫންނަމަ، އެއްކަން އެހެންކަމަކުން ސީލް ކުރި ކަމެއް ހުޅުވޭނެއް ނޫނެވެ.

QUIRE_MASTER_KEY ނެތްނަމަ ސިސްޓަމް ކޮންމެ ބަޔަކު QUIRE_SECRET_KEY އިން ލިބޭ ކީ ބޭނުންކުރެއެވެ. އެއީ ހިންގައެވެ؛ System health ޞަފްޙާ ބުނައެވެ ތިބާ master key ސެޓް ކުރިޔަސް ކިޔެވޭގޮތް ދެމިތިބެއެވެ؛ ފުރަތަމަ ރޮޓޭޝަނުން ހުރިހާ ތަކެތި އެއިން ނަގާއެވެ. process environment ކިޔަން ހުއްދަވާ ކޮންމެމީހަކު ސްޓޯރ ކުރި ހުރިހާ credential ޑިކްރިޕްޓްކުރެވޭތީ، production installation އަކަށް master key ހުރުން މުހިންމެވެ؛ secret store އެއްގައި ބެހެއްޓި، database ބެކަޕާއެކު އެއްތަނަކު ނުބެހެއްޓާށެވެ.

ރޮޓޭޓް ކުރުން

ކީގެ ޢުމުރު Platform console، Security، Master key ގައި އަދި quire.secrets.master_key.age metric (ދުވަސް) ގައި ފެންނަނީ. ދުވަހު ހިންގޭ platform.key_age schedule (03:41 UTC) ކީ 365 ދުވަސްވިއިރު platform audit chain އަށް އެންގުމެއް ލިޔެ، ކޮންމެ 30 ދުވަހަކުން ރޮޓޭޓް ނުވާހާ އެ ލިޔެއެވެ. ނޯޓިސް ލިބުމުން ރޮޓޭޓްކޮށް، ކީ ފައްތާފައި ހުރި ޝައްކުވުމުންވެސް ރޮޓޭޓްކުރާށެވެ.

  1. އާ ކީ ހަދާށެވެ: openssl rand -base64 32.
  2. QUIRE_MASTER_KEY އެއަށް ސެޓްކޮށް QUIRE_MASTER_KEY_VERSION ދެން ޖެހޭ ލޭބަލަށް (v2) މަތިކުރާށެވެ. ކުރީގެ ކީ QUIRE_MASTER_KEY_RETIRED ގައި v1=<old base64> ގޮތަށް ލާށެވެ. ދެ ކީއެއްގެ ކޮޕީވެސް މި host ނޫން ތަނަކުގައި ބެހެއްޓާށެވެ.
  3. ވެބް ޓިއަރ އަދި worker އާ ސެޓިންގްއާއެކު deploy ކުރާށެވެ. އާ ސިކްރެޓްތައް env:QUIRE_MASTER_KEY:v2 ދަށުން ރެޕްކުރެވޭނެއެވެ؛ ކުރީގެ ކީތައް retired key އިން އަދި ހުޅުވޭނެއެވެ.
  4. audit trail ގައި އޮތް ސަބަބާއެކު ރޮޓޭޝަން ރިކުއެސްޓްކުރާށެވެ:
    • console ގައި: Security، Master key، Rotate the master key؛ ނުވަތަ
    • އެއް environment ހުރި shell އަކުން: bun run kek:rotate request --reason "Annual rotation, ticket SEC-114".
  5. worker އިން ކޮންމެ މިނިޓަކު slice އެއް ރެޕްކޮށް (platform.key_rotation schedule) restart ފަހުން ދެމިއެވެ. އެއް ހިންގުމަކު ނިމުމަށް: bun run kek:rotate run. bun run kek:rotate status އިން ބަލާށެވެ.
  6. record ގައި ބާކީ ނުނިމި އަދި ފޭލްވި ހުސް ކަމަށް ފެނުމުން QUIRE_MASTER_KEY_RETIRED އިން retired key ފޮހެ، redeploy ކުރާށެވެ. އެދެންދެން ބެހެއްޓާށެވެ؛ ނުކުރެވޭފައިވާ value އެއިން ރެޕް ކުރިފައި ހުރެދާނެއެވެ.

ޖޮބް ކިޔާ ތަކެތި

ރެޕް ކުރެވޭ DEK ހުރި ހުރިހާ store: SEALED_STORES ގައިވާތަކެތި (apps/worker/src/key-rotation.ts). Control database store އެއް control database ގައި ކިޔާއެވެ؛ organisation store އެއް row-level security ދަށުން ކޮންމެ އޮގަނައިޒޭޝަނަކުން، އެއޮގަނައިޒޭޝަންގެ database ގައި ކިޔާއެވެ؛ dedicated database އަށް pin ކުރި tenant އެތާގައި ރޮޓޭޓް ވެއެވެ. Schema އަށް wrapped-key column އެއް އިތުރުވިއްޔާ ލިސްޓުގައި ނެތްނަމަ އެއް ޓެސްޓެއް ފޭލްވެ، credential review އިން sealed column އެއް ލިސްޓް ކަމަށް ލިޔެ، ލިސްޓުން ފެއިލް ކުރިޔާ އިތުރު ޓެސްޓެއް ފޭލްވެއެވެ.

ރެކޯޑް

  • ops.key_rotation: ކޮންމެ ރޮޓޭޝަނަކަށް އެއް row؛ ސަބަބާއި، އެދިމީހާ، ހާލަތު އަދި މުޅި ނަތީޖާ (އަލުން ރެޕް ކުރި، ކުރިން މިހާރުގެ، ނުނިމިހުރި، ފޭލް ވި).
  • ops.key_rotation_progress: ކިޔި ފަހުން store އަދި scope އަކަށް row؛ ކިޔެވޭ ނުވި key reference އަދި އެއަށް ކިހާ އަގެއް ހުރިތޯ. އަލުން ފެށިޔަސް މިތަކެއްޗެއް ދޫކޮށްލައެވެ.
  • Platform audit chain: platform/key_rotation_request (ސަބަބާއެކު)، ކޮންމެ store އަކަށް count އާއެކު އެއް platform/key_rotation_store، އަދި platform/key_rotation_complete ނުވަތަ platform/key_rotation_fail; reminder އަށް platform/key_age_reminder.
  • Metrics: quire.secrets.master_key.age އަދި quire.secrets.rewrap.outstanding (ފަހު ރޮޓޭޝަނުން ނުރައްކާ ނުވަތަ ނުރެޕް ކުރެވި ފަހުން އޮތް އަގުތައް).

އަގުތައް ނުނިމުން

ނުނިމި ހުރި value އެއް އިންސްޓޮލޭޝަނުން ނެތް key reference އަކުން wrap ކުރެވިފައި ހުރެދާނެއެވެ، ނުވަތަ އޭގެ column އެދޭ shape ގައި ނެތެވެ. progress record އިން reference ދައްކާނެއެވެ (މިސާލަކަށް env:QUIRE_MASTER_KEY:v0 (unreadable)). އެ ކީ އަނބުރާ QUIRE_MASTER_KEY_RETIRED ގައި ލައި އަލުން ރޮޓޭޓްކުރާށެވެ؛ ކީ ހިލަވެފައި ނަމަ، އޮގަނައިޒޭޝަންގެ އެޑްމިނިސްޓްރޭޓަރަށް credential އަލުން ލިޔެދޭށެވެ؛ އެއިރު މިހާރުގެ ކީއިން ސީލްކުރެވޭނެއެވެ. ފޭލް ވި ރޮޓޭޝަންގެ އެރަރު ރެކޯޑްގައި ފެންނާނެއެވެ؛ ސަބަބު އިސްލާހުކޮށް އަލުން ރިކުއެސްޓްކުރާށެވެ.

ސޮއި ކީތައް

މާސްޓަރ ކީއާ ވަކިން: ކޮންމެ އޮގަނައިޒޭޝަނެއްގެ OpenID Connect token އަދި LTI މެސެޖްތައް އޭގެ RSA key އިން ސޮއިކޮށް، /.well-known/jwks.json ގައި ޕަބްލިޝްކުރެއެވެ. މީގެ ކަމަށް އޮޕަރޭޓަރެއް ނުބޭނުންވެއެވެ. ގަޑިއަކުން platform.signing_keys schedule ކީ 90 ދުވަހު ނިމުމުގެ 7 ދުވަސް ކުރިން އާ ކީ ޕަބްލިޝްކުރެއެވެ؛ އެ ފަހުން އާ ކީ ސޮއިކުރުން ފަށާ، ކުރީގެ ކީ retiring ވެއެވެ؛ އެ ފަހުން 90 ދުވަސްވުމުން ކުރީގެ ކީ ޑިލީޓްކޮށް key set އިން ނަގައެވެ. ކޮންމެ ފިޔަވަޅެއްވެސް platform audit chain ގައި platform/signing_key_advance ކަމަށް ރެކޯޑްވެއެވެ.

އޮގަނައިޒޭޝަނެއްގެ ކީ ގަޑިއިރު ކުރިން ބަދަލުކުރަން، މިސާލަކަށް އެކްސްޕޯޝަރއެއް ފަހުން:

  • console ގައި: Security، Master key، Publish a new signing key (platform/keys_manage ލާޒިމެވެ)؛ ނުވަތަ
  • worker environment ހުރި shell އަކުން: bun run kek:rotate signing-keys rotate --tenant <slug or id> --reason "Key exposed, INC-3310". bun run kek:rotate signing-keys status އިން ކޮންމެ އޮގަނައިޒޭޝަނަކުގެ stage ގައި ހުރި ކީ ލިސްޓްކުރެއެވެ.

އާ ކީ އެވަގުތު ޕަބްލިޝްކޮށް، ހަފްތާއެއްފަހުން ސޮއި ކުރަން ފަށާއެވެ؛ އެވަގުތު މިހާރުގެ ކީ retiring ވެއެވެ. ހަފްތާއަކީ ހިސާބުކޮށް ހޮވި ގަޑިއެކެވެ: relying party އިން key set cache ކުރާތީ އޭތައް އަލުން ކިޔަން މުއްދަތު ހުރުން މުހިންމެވެ؛ ކުރު އެވަގުތު ހުރިހާ ޓޫލެއް އެއްފަހަރާ ފޭލްވެދާނެއެވެ. Retiring ކީ ތިބާގެ ކީ set ގައި 90 ދުވަސްދެމިތިބި، އެއިން ސޮއިކުރި token އަދި ވެރިފައިކުރެވޭނެއެވެ؛ އެކްސްޕޯޝަރެއް ވާތީ އަވަހަށް ޓްރަސްޓް ނުކުރާނަމަ، އޭގެ row ފޮހުމަކީ ޗޭންޖް ރެކޯޑަކުގައި އޮޕަރޭޓަރގެ އަމިއްލަ database access އިން ކުރާ ކަމެކެވެ (break-glass access އަކީ read-only)؛ އެ ކީއަކުން ސޮއި ކުރި token ފަހުން ވެރިފައި ނުކުރެވޭނެއެވެ. އެ ފޯސްޑް ރޮޓޭޝަން audit chain ގައި ސަބަބާއެކު platform/signing_key_rotate ކަމަށް ހުންނާނެއެވެ. އާ ކީ wrap ކުރަން worker އަށް ވެބް ޓިއަރގެ QUIRE_MASTER_KEY settings އެއްގޮތް ލާޒިމެވެ؛ master key އަށް bun run kek:rotate ހިންގުމުން signing key ތައްވެސް ރެޕް ކުރެއެވެ (oauth_signing_key SEALED_STORES ގައިވެއެވެ).

Production އަށް break-glass އެކްސެސް

މީހެއްގެ production access ހުޅުވިގޮތަށް ދެމިތިބޭނެ ނޫނެވެ. ކަމެއް ގަޑިނުހިފާނަމަ، owner އަކު break-glass grant އެއް ދެއެވެ: Platform console، Security، Break-glass access.

  • Grant އަށް scope އެއް (އެއް އޮގަނައިޒޭޝަން ނުވަތަ platform registry)، 20 އަކުރުން ދިގު incident ނުވަތަ ticket ނަންދޭ ސަބަބެއް، އަދި 5 އިން 240 މިނިޓަށް window އެއް ހުންނާނެއެވެ. އޭނާ އަމިއްލައަށް ނިމޭ: statement ކޮންމެއްގައި ގަޑި ބަލައެވެ.
  • އެއް grant އެދި ދޭ owner އަށް ނުވަތަ އެހެން owner އަކަށް (ދެމީހުންގެ ގޮތް) ދެވޭނެއެވެ. ދިން މީހާއަށް އެކަނި ބޭނުންކުރެވެއެވެ. ދިނުމަށް platform/break_glass_issue އަދި ބޭނުންކުރުމަށް platform/break_glass_use ލާޒިމެވެ؛ ޑިފޯލްޓުން ދެތިން ހުއްދަ owner އަކަށެވެ.
  • Statement ތައް database login ގައި ނޫން gateway ގައި ހިންގައެވެ: read-only، އެކްކަކުން އެކަކު، އޮގަނައިޒޭޝަނަށް ނުވަތަ control registry އަށް ބަންދުކޮށް، 5 ސިކުންތުގެ timeout އާއެކު އަދި 500 row އަށް ހަމަކޮށް. Binary value ތައް size އަކުން ދައްކާއެވެ.
  • Platform audit chain ގައި ދިނުން (ސަބަބާއެކު)، revocation، ހުރިހާ statement ހިންގާ ކުރިން (platform/break_glass_statement، މަނާވި އެއް denied ނަތީޖާއާއެކު)، އަދި ނަތީޖާ (platform/break_glass_result) ރެކޯޑްކުރެއެވެ. ops.break_glass_statement ގައި audit entry ID ތައް ހުރެއެވެ، އެހެންވެ grant އާއި audit entry ތައް ގުޅޭނެއެވެ.
  • ލިޔުމަށް އެދޭނެ ގޮތެއް ނެތެވެ. ރިލީޒެއް ދެންދެން ނުހުރޭ ބަދަލެއް އޮޕަރޭޓަރގެ އަމިއްލަ database access އިން، އަމިއްލަ change record ދަށުން، އެއްމެ ކަމުން ބޭރަށް ކުރަންޖެހެއެވެ؛ އެ record ގައި މިތަނުގައި ބޭނުންކުރި incident reference ލިޔާށެވެ.

Database credential ނުދޭނީ ކީއްވެތޯ: Postgres login އެކަން އެދިފައި އޮތް session ފަހުންވެސް ދެމިތިބެއެވެ، އެޕްލިކޭޝަން އަސަސް ކުރާ row-level security ބޭރުކޮށް، އެ ޕްރޮޑަކްޓްގެ audit chain އަށް ލިޔަން ނުކުރެވޭނެއެވެ؛ އެހެންވެ statement ތައް ސާރވަރ log ޝިޕް ކުރާ ހަމައަކަށްވުރެ ވާހަކައެއް ނެތެވެ. Gateway އިން audit trail އެކްސެސްގެ ޚުޞޫޞިއްޔަތަށް ހަދައެވެ، އެކްސެސް ކައިރީގައި ކުރާ ޢަމަލަކަށް ނޫނެވެ.

Audit އެދުމަށް: އެ މުއްދަތުގެ grant ތައް ލިސްޓްކޮށް (Break-glass access)، statement އަދި audit entry ID ތަކަށް grant ގެ history ހުޅުވާ، platform audit chain ގައި އެ entry ތައް ކިޔާށެވެ (bun run audit:verify --platform އިން chain ރަނގަޅުކަން ތައިދީކުރެއެވެ).

ނެވިގޭޝަން

ހޯދުމަށް ލިޔޭ…

↑↓ ބަދަލުކުރޭ↵ ނަންގާEsc ބަންދުކުރޭ