प्रतिनिधि इंटरव्यू विषय

सिस्टम डिज़ाइन इंटरव्यू: मल्टी-टेनेंट सीक्रेट्स मैनेजमेंट सर्विस डिज़ाइन करें

सिस्टम डिज़ाइनकठिन
Offer.cc संपादकीय टीमप्रकाशित अपडेट किया गया

प्रश्न

एक ऐसी मल्टी-टेनेंट सीक्रेट्स मैनेजमेंट सर्विस डिज़ाइन करें जो 20 मिलियन सक्रिय सीक्रेट नामों को स्टोर करे, पीक लोड पर प्रति सेकंड 100,000 रीड और 2,000 राइट्स को हैंडल करे, और p99 पर 50 मिलीसेकंड से कम में रीजनल रीड्स रिटर्न करे। वर्कलोड न्यूनतम-विशेषाधिकार (least-privilege) पहचान का उपयोग करते हैं; एक रीजन के भीतर स्वीकार (acknowledge) किए गए राइट्स खोने नहीं चाहिए; सामान्य स्टोरेज को कभी भी प्लेनटेक्स्ट सीक्रेट वैल्यू प्राप्त नहीं होनी चाहिए। वर्ज़न्स, रोटेशन, रीवोकेशन, ऑडिट, डायनामिक-सीक्रेट लीज़ और किसी रीजनल विफलता से रिकवरी का समर्थन करें। थ्रेट मॉडल, APIs, डेटा मॉडल, एन्क्रिप्शन सीमा, कंसिस्टेंसी, कैशिंग, उपलब्धता (availability), डिज़ास्टर रिकवरी और वेरिफिकेशन की व्याख्या करें।

प्रॉम्प्ट और प्रासंगिक संदर्भ

एक मल्टी-टेनेंट प्लेटफ़ॉर्म के लिए सीक्रेट्स मैनेजमेंट सर्विस डिज़ाइन करें। एक सीक्रेट डेटाबेस क्रेडेंशियल, API टोकन, प्राइवेट की (private key) या सर्टिफ़िकेट हो सकता है। यह सिस्टम औसतन तीन रिटेन किए गए वर्ज़न्स के साथ 20 मिलियन सक्रिय सीक्रेट नामों को स्टोर करता है। वैल्यूज़ का औसत आकार 2 KiB है और यह 64 KiB से अधिक नहीं हो सकता। पीक ट्रैफ़िक 100,000 रीड और 2,000 वर्ज़न राइट्स प्रति सेकंड है। सीक्रेट के होम रीजन में, सफल रीड्स को p99 पर 50 मिलीसेकंड से कम समय में पूरा होना चाहिए।

प्रत्येक रीजन तीन उपलब्धता ज़ोन (availability zones) में फैला है। होम रीजन द्वारा स्वीकार (acknowledge) किए गए राइट को एक ज़ोन के नष्ट होने के बाद भी सुरक्षित रहना चाहिए। पूरे रीजन के नष्ट होने की स्थिति में डिज़ास्टर-रिकवरी का लक्ष्य 15 मिनट का RTO और एक मिनट का RPO है। ये वॉल्यूम और उद्देश्य इंटरव्यू के अनुमान हैं, किसी कमर्शियल सीक्रेट्स उत्पाद की प्रकाशित सीमाएं नहीं हैं। यदि व्यवसाय को किसी रीजनल विफलता के बाद शून्य डेटा हानि (zero data loss) की आवश्यकता है, तो उम्मीदवार को स्पष्ट रूप से सिंक्रोनस क्रॉस-रीजन सर्वसम्मति (cross-region consensus) या अन्य समकक्ष ड्यूरेबिलिटी सीमा का प्रावधान करना होगा।

थ्रेट मॉडल में चोरी हुआ डेटाबेस स्नैपशॉट, बैकअप से समझौता, क्रॉस-टेनेंट ऑथराइज़ेशन गलतियाँ, सामान्य स्टोरेज तक पहुंच रखने वाला ऑपरेटर, आकस्मिक लॉगिंग और एक डेटा-प्लेन होस्ट की चोरी शामिल है। यह पहले से अधिकृत वर्कलोड को उसके द्वारा वैध रूप से प्राप्त की गई वैल्यू का उपयोग करने से रोकने का दावा नहीं करता है। डिज़ाइन को उस वर्कलोड के विशेषाधिकारों और क्रेडेंशियल के जीवनकाल को कम करना चाहिए, एट्रिब्यूशन को सुरक्षित रखना चाहिए और समझौते के प्रभाव क्षेत्र (blast radius) को सीमित करना चाहिए।

दायरे में वर्कलोड ऑथेंटिकेशन, पॉलिसी इवैल्यूएशन, स्टेटिक और डायनामिक सीक्रेट्स, एन्क्रिप्शन, इम्यूटेबल वर्ज़न्स, चरणबद्ध रोटेशन, रीवोकेशन, लीज़, ऑडिट, रेप्लिकेशन और रिकवरी शामिल हैं। संगठन के आइडेंटिटी प्रोवाइडर, जनरेट किए गए क्रेडेंशियल का उपभोग करने वाले डेटाबेस और एक सामान्य-उद्देश्यीय क्रिप्टोग्राफ़िक की-मैनेजमेंट सर्विस का निर्माण बाहरी निर्भरताएं हैं। 2026 में उपलब्ध पब्लिक सिक्योरिटी-इंजीनियरिंग इंटरव्यू सामग्री में सीक्रेट्स मैनेजमेंट सर्विस को डिज़ाइन करने का विशिष्ट प्रॉम्प्ट शामिल है और यह एक माइक्रोसर्विसेज सीक्रेट्स मैनेजर को सिक्योरिटी सिस्टम-डिज़ाइन अभ्यास के रूप में सूचीबद्ध करता है। यह किसी विशेष कंपनी में इसकी आवृत्ति को सिद्ध किए बिना इस विषय की वर्तमान प्रासंगिकता का समर्थन करता है।

इंटरव्यूअर क्या मूल्यांकन करता है

पहला संकेत एक सटीक सुरक्षा सीमा है। “डेटाबेस को एन्क्रिप्ट करें” कहने से डिक्रिप्शन की (key) सिफरटेक्स्ट के पास ही रह जाती है और यह स्पष्ट नहीं होता कि किस तरह के समझौते को रोका गया है। एक मजबूत उत्तर हार्डवेयर- या KMS-संरक्षित रूट, टेनेंट-स्कोप्ड की-एन्क्रिप्शन कीज़ (key-encryption keys), प्रति-वर्ज़न डेटा-एन्क्रिप्शन कीज़ (data-encryption keys) और सामान्य सिफरटेक्स्ट स्टोरेज को अलग करता है। यह यह भी पहचानता है कि प्लेनटेक्स्ट संक्षेप में कहाँ मौजूद रह सकता है।

दूसरा संकेत प्रत्येक रिक्वेस्ट पर ऑथराइज़ेशन है। टेनेंट आइसोलेशन कॉलर द्वारा दिए गए पाथ प्रीफ़िक्स पर निर्भर नहीं हो सकता। सर्विस प्रमाणित पहचान से टेनेंट, वर्कलोड, एनवायरनमेंट और रोल्स प्राप्त करती है, सटीक एक्शन और रिसोर्स के लिए एक वर्ज़न वाली पॉलिसी का मूल्यांकन करती है, और उन तथ्यों को ऑडिट इवेंट में शामिल करती है। ऑथेंटिकेशन, ऑथराइज़ेशन, एन्क्रिप्शन और ऑडिटिंग अलग-अलग नियंत्रण हैं।

तीसरा संकेत लाइफसाइकिल से जुड़ा तर्क है। एक नई वैल्यू, एक क्रिप्टोग्राफ़िक रैपिंग-की परिवर्तन और बाहरी डेटाबेस में क्रेडेंशियल परिवर्तन तीन अलग-अलग ऑपरेशन हैं। किसी बाहरी सिस्टम में रोटेशन एक ही एटॉमिक डेटाबेस ट्रांज़ैक्शन नहीं होता है। इसके लिए ड्यूरेबल चरणों, ओवरलैप नियमों, इडेम्पोटेंसी, टेस्टिंग, कंपेंसेशन और सामंजस्य (reconciliation) की आवश्यकता होती है।

चौथा संकेत ईमानदार रीवोकेशन सेमांटिक्स है। भविष्य के रीड्स को अस्वीकार करने से किसी प्रोसेस में पहले से कॉपी किया गया स्टेटिक पासवर्ड नहीं मिट जाता है। प्रभावी आपातकालीन रीवोकेशन उस सिस्टम पर भी क्रेडेंशियल को अक्षम या रोटेट करता है जो इसे स्वीकार करता है। एक डायनामिक क्रेडेंशियल अधिक मजबूत समाप्ति (expiry) और रीवोकेशन प्रदान कर सकता है क्योंकि लक्ष्य सिस्टम लीज़ में भाग लेता है।

अंत में, उम्मीदवार को लेटेंसी, सुरक्षा और उपलब्धता को संतुलित करना चाहिए। प्रति सेकंड 100,000 रीड्स में से प्रत्येक के लिए HSM को कॉल करना आमतौर पर गलत अड़चन (bottleneck) है। एक साझा डिस्ट्रीब्यूटेड कैश में प्लेनटेक्स्ट को कैश करना गलत समाधान है। उत्तर में एक की-हायरार्की, संकीर्ण रूप से स्कोप्ड संरक्षित-मेमोरी कैश, स्पष्ट स्टेल-पॉलिसी सीमाएं और परीक्षण किए गए विफलता मोड का उपयोग किया जाना चाहिए।

उत्तर देने से पहले स्पष्ट करने योग्य प्रश्न

  • कौन से सीक्रेट प्रकार दायरे में हैं? ओपेक स्टेटिक वैल्यूज़ को वर्ज़न स्टोरेज की आवश्यकता होती है। डेटाबेस यूज़र्स और सर्टिफ़िकेट डायनामिक जारी करने और टारगेट-साइड रीवोकेशन का भी समर्थन कर सकते हैं।
  • सीक्रेट्स कौन पढ़ता है? वर्कलोड पहचानों और अल्पकालिक सेशन्स को प्राथमिकता दें। मनुष्यों द्वारा देखना, यदि अनुमति हो, तो अधिक मजबूत अनुमोदन, स्टेप-अप ऑथेंटिकेशन और अलग ऑडिट पॉलिसी की आवश्यकता होती है।
  • रीवोकेशन क्या वादा करता है? सर्विस तुरंत नए रीड्स को अस्वीकार कर सकती है। कॉपी की गई स्टेटिक वैल्यू को अमान्य करने के लिए डाउनस्ट्रीम सिस्टम को इसे रोटेट या अक्षम करना होगा।
  • current को किस कंसिस्टेंसी की आवश्यकता है? यह डिज़ाइन अपने होम रीजन में प्रति सीक्रेट प्रमोशन और रीवोकेशन को लीनियरलाइज़ेबल बनाता है। एक कॉलर स्पष्ट रूप से एक इम्यूटेबल वर्ज़न का अनुरोध भी कर सकता है।
  • क्या कोई रीजन शून्य डेटा हानि के साथ विफल हो सकता है? घोषित DR RPO एक मिनट है। RPO शून्य के लिए सिंक्रोनस क्रॉस-रीजन पावती (acknowledgement) की आवश्यकता होती है और यह लेटेंसी और उपलब्धता के बीच के ट्रेड-ऑफ़ को बदल देता है।
  • क्या आउटेज के दौरान एप्लिकेशन स्थानीय कैश का उपयोग कर सकते हैं? केवल एक स्पष्ट पॉलिसी चयनित स्टेटिक सीक्रेट्स के लिए एन्क्रिप्टेड, समय-बद्ध एजेंट कैश की अनुमति दे सकती है। यह तत्काल-रीवोकेशन की गारंटी को कमजोर करता है।
  • वैल्यूज़ और वर्ज़न्स कितने बड़े हैं? प्रॉम्प्ट वैल्यूज़ को 64 KiB पर सीमित करता है और औसतन तीन रिटेन किए गए वर्ज़न्स मानता है। बड़े दस्तावेज़ एक अलग एन्क्रिप्टेड ऑब्जेक्ट-स्टोरेज डिज़ाइन से संबंधित हैं।
  • ऑडिट रिकॉर्ड में क्या होना चाहिए? प्रिंसिपल, वर्कलोड, टेनेंट, रिसोर्स आइडेंटिफ़ायर, एक्शन, पॉलिसी वर्ज़न, निर्णय, रिक्वेस्ट ID, रीजन और समय; कभी भी प्लेनटेक्स्ट वैल्यू नहीं।
  • रूट ऑफ़ ट्रस्ट का प्रशासन कौन कर सकता है? कर्तव्यों का पृथक्करण, कोरम-नियंत्रित ब्रेक-ग्लास एक्सेस और रिकवरी ड्रिल आवश्यक हैं। एक सार्वभौमिक दैनिक प्रशासक टेनेंट आइसोलेशन को विफल कर देता है।

30-सेकंड का उत्तर ढांचा

“मैं एक पॉलिसी और ऑथरिंग कंट्रोल प्लेन को लो-लेटेंसी रीड डेटा प्लेन से अलग करूँगा। एक वर्कलोड अल्पकालिक प्लेटफ़ॉर्म पहचान के साथ प्रमाणित होता है; सर्विस इसके टेनेंट को प्राप्त करती है और सटीक सीक्रेट और एक्शन के लिए एक वर्ज़न वाली न्यूनतम-विशेषाधिकार पॉलिसी का मूल्यांकन करती है। प्रत्येक इम्यूटेबल सीक्रेट वर्ज़न को ऑथेंटिकेटेड एन्क्रिप्शन का उपयोग करके एक रैंडम डेटा की (data key) से एन्क्रिप्ट किया जाता है। उस डेटा की को एक टेनेंट की (tenant key) द्वारा रैप किया जाता है, जबकि एक HSM या KMS उस रूट की सुरक्षा करता है जो टेनेंट कीज़ को अनरैप करता है; सामान्य स्टोरेज केवल सिफरटेक्स्ट और रैप की गई कीज़ को देखता है। एक रीजनल ट्रांज़ैक्शनल कोरम एटॉमिक रूप से एक वर्ज़न जोड़ता है और कंपेयर-एंड-सेट के साथ current पॉइंटर को स्थानांतरित करता है। रोटेशन एक ड्यूरेबल क्रिएट, इंस्टॉल, टेस्ट, प्रमोट, ओवरलैप और रिटायर वर्कफ़्लो है, क्योंकि बाहरी टारगेट एक ही ट्रांज़ैक्शन में शामिल नहीं हो सकता है। डायनामिक क्रेडेंशियल्स में लीज़ होती है जिसे जारीकर्ता रिन्यू या रीवोक करता है। मैं सिफरटेक्स्ट को कैश करूँगा और अनरैप की गई कीज़ को केवल हार्डन्ड सर्विस मेमोरी के भीतर संक्षेप में कैश करूँगा, कभी भी साझा प्लेनटेक्स्ट कैश में नहीं। ऑडिट एक अलग से संरक्षित अपेंड-ओनली पाइपलाइन में जाता है। मैं क्रॉस-टेनेंट अस्वीकृति, समवर्ती प्रमोशन, की हानि, KMS आउटेज, अटके हुए रीवोकेशन, लॉग रिसाव और पूर्ण रीजनल रीस्टोर को सत्यापित करूँगा।”

चरण-दर-चरण विस्तृत विश्लेषण

चरण 1: प्रॉम्प्ट को इनवेरिएंट्स और एक थ्रेट सीमा में बदलें

पाँच इनवेरिएंट्स के साथ शुरुआत करें:

text
1. A request can address only a tenant derived from authenticated identity.
2. Ordinary databases, queues, logs, traces, and backups never receive plaintext values or plaintext keys.
3. A published version is immutable; promotion only changes a version pointer.
4. Every allow and deny decision emits an audit event without the value.
5. Acknowledged regional writes survive one availability-zone failure.

ये इनवेरिएंट्स अभी भी अवशिष्ट जोखिम (residual risk) छोड़ते हैं। एक अधिकृत वर्कलोड प्लेनटेक्स्ट प्राप्त करता है और उससे समझौता किया जा सकता है। एक डेटा-प्लेन प्रोसेस थोड़े समय के लिए अनरैप की गई की-सामग्री और प्लेनटेक्स्ट रखता है। एक दुर्भावनापूर्ण रूट-ऑफ़-ट्रस्ट प्रशासक सामान्य पॉलिसी से परे जा सकता है। अल्पकालिक पहचान, संकीर्ण पॉलिसियों, प्रोसेस आइसोलेशन, डिसेबल्ड कोर डंप, संरक्षित मेमोरी, स्वतंत्र ऑडिट, कर्तव्यों के पृथक्करण और छोटे की-स्कोप के साथ उन जोखिमों को कम करें। यह दावा न करें कि एन्क्रिप्शन एट रेस्ट रनटाइम समझौते को हल करता है।

चरण 2: कंट्रोल प्लेन को रीड डेटा प्लेन से अलग करें

कंट्रोल प्लेन टेनेंट्स, पॉलिसियों, सीक्रेट मेटाडेटा, नए वर्ज़न्स, रोटेशन जॉब्स, अनुमोदनों और आपातकालीन कार्रवाइयों का प्रबंधन करता है। इसकी राइट दर कम है, और यह सख्त सत्यापन और ऑडिट करने योग्य वर्कफ़्लो का पक्षधर है। डेटा प्लेन वर्कलोड को प्रमाणित करता है, पॉलिसी का मूल्यांकन करता है, अनुमत वर्ज़न को डिक्रिप्ट करता है, और इसे म्यूचुअली ऑथेंटिकेटेड TLS पर लौटाता है। इसका हॉट पाथ छोटा रहना चाहिए।

आधिकारिक सीक्रेट और पॉलिसी राइट्स के लिए प्रत्येक टेनेंट का एक होम रीजन होता है। उस रीजन में तीन-ज़ोन ट्रांज़ैक्शनल कोरम मेटाडेटा, सिफरटेक्स्ट, वर्ज़न पॉइंटर्स, लीज़, इडेम्पोटेंसी रिकॉर्ड और एक ऑडिट आउटबॉक्स को कमिट करता है। रीड नोड्स हॉरिजॉन्टली स्केल हो सकते हैं, लेकिन current रीड्स होम रीजन के स्ट्रॉन्गली कंसिस्टेंट स्टोर या सिद्ध रीड बैरियर वाले रेप्लिकेट से होकर गुजरते हैं। एक स्टेल रेप्लिकेट को रीवोक किए गए वर्ज़न को पुनर्जीवित नहीं करना चाहिए।

पहचान प्लेटफ़ॉर्म आइडेंटिटी प्रोवाइडर से वर्कलोड सर्टिफ़िकेट या हस्ताक्षरित सर्विस-अकाउंट टोकन जैसे तंत्रों के माध्यम से आती है। सीक्रेट्स सर्विस जारीकर्ता, ऑडियंस, समाप्ति, वर्कलोड पहचान और चैनल बाइंडिंग को मान्य करती है, फिर विश्वसनीय पहचान को टेनेंट और रोल में मैप करती है। क्लाइंट हेडर के साथ उस टेनेंट को ओवरराइड नहीं कर सकता है।

चरण 3: एक छोटा API और इम्यूटेबल डेटा मॉडल परिभाषित करें

एक संभावित API है:

text
POST /v1/secrets/{path}/versions
  { value, idempotencyKey, expectedCurrentVersion? }
  -> { secretId, version, status: "PENDING" }

POST /v1/secrets/{path}/versions/{version}/promote
  { expectedCurrentVersion, idempotencyKey }
  -> { currentVersion }

GET /v1/secrets/{path}?version=current
  -> { value, version, expiresAt? }

POST /v1/dynamic/{role}/credentials
  { requestedTtl, idempotencyKey }
  -> { value, leaseId, expiresAt, renewable }

POST /v1/leases/{leaseId}/renew
POST /v1/leases/{leaseId}/revoke

पाथ एक रिसोर्स का नाम है, ऑथराइज़ेशन का प्रमाण नहीं। सर्वर इसे एक बार सामान्यीकृत करता है, अस्पष्ट एन्कोडिंग को अस्वीकार करता है, पहचान से टेनेंट प्राप्त करता है, और एक्शन-विशिष्ट पॉलिसी की जाँच करता है।

text
Secret(secret_id, tenant_id, canonical_path, state,
       current_version, policy_ref, created_at)

SecretVersion(secret_id, version, status, ciphertext, nonce, auth_tag,
              wrapped_dek, tenant_kek_version, content_fingerprint_hmac,
              created_by, created_at)

Policy(policy_id, tenant_id, version, document, state, created_at)

Lease(lease_id, tenant_id, secret_id, principal_id, target_ref,
      status, expires_at, renewable_until, last_error)

Idempotency(tenant_id, principal_id, operation, key,
            request_fingerprint_hmac, result_ref, expires_at)

(tenant_id, canonical_path) और (secret_id, version) यूनीक हैं। वर्ज़न पंक्तियाँ अपने एन्क्रिप्टेड पेलोड को कभी नहीं बदलती हैं। प्रमोशन current_version पर एक सशर्त अपडेट (conditional update) का उपयोग करता है; वर्ज़न 7 से प्रमोट करने के लिए रेस करने वाले दो प्रशासक चुपचाप एक दूसरे को ओवरराइट नहीं कर सकते हैं। ऑडिट आउटबॉक्स प्रत्येक स्टेट परिवर्तन के साथ कमिट किया जाता है और बाद में अलग से नियंत्रित स्टोरेज में निर्यात किया जाता है। फ़िंगरप्रिंट अलग टेनेंट-स्कोप्ड की के साथ बनाए गए कीड HMAC हैं, कम-एन्ट्रॉपी क्रेडेंशियल्स के कच्चे हैश नहीं जिन्हें एक चोरी हुआ स्नैपशॉट ऑफ़लाइन टेस्ट कर सके।

चरण 4: एक एनवलप-एन्क्रिप्शन हायरार्की बनाएं

प्रत्येक वर्ज़न के लिए एक रैंडम डेटा-एन्क्रिप्शन की जनरेट करें और ऑथेंटिकेटेड-एन्क्रिप्शन मोड के साथ वैल्यू को एन्क्रिप्ट करें। tenant_id, secret_id, वर्ज़न और एल्गोरिदम आइडेंटिफ़ायर को अतिरिक्त ऑथेंटिकेटेड डेटा (AAD) के रूप में बाइंड करें, ताकि सिफरटेक्स्ट को बिना पकड़े किसी अन्य टेनेंट या वर्ज़न में स्थानांतरित न किया जा सके। सिफरटेक्स्ट, नॉन्स (nonce), ऑथेंटिकेशन टैग और रैप की गई डेटा की को एक साथ स्टोर करें।

प्रत्येक टेनेंट के पास एक या अधिक वर्ज़न्ड की-एन्क्रिप्शन कीज़ होती हैं। HSM या क्लाउड KMS द्वारा संरक्षित एक रूट उन टेनेंट कीज़ को केवल अधिकृत डेटा-प्लेन नोड्स के लिए अनरैप करता है। टेनेंट की प्रत्येक वर्ज़न की डेटा की को रैप करती है। इसलिए एक सामान्य स्टोरेज स्नैपशॉट में वैल्यूज़ को डिक्रिप्ट करने के लिए आवश्यक सामग्री का अभाव होता है। एक चोरी हुआ डेटा-प्लेन होस्ट केवल उस प्रोसेस में मौजूद टेनेंट कीज़ और डेटा कीज़ को उजागर करता है, इसलिए प्लेसमेंट और कैश स्कोप को सीमित करना चाहिए कि एक नोड कितने टेनेंट्स की सेवा कर सकता है।

text
HSM/KMS root
  -> unwrap tenant KEK version
      -> unwrap per-secret-version DEK
          -> AEAD-decrypt secret value with bound tenant/version metadata

प्रत्येक रीड के लिए HSM को कॉल करने से रूट सर्विस लेटेंसी और थ्रूपुट की अड़चन बन जाएगी। डेटा-प्लेन नोड्स अनरैप की गई टेनेंट कीज़ या डेटा कीज़ को हार्डन्ड मेमोरी में थोड़े समय के लिए कैश कर सकते हैं, जिसे टेनेंट जोखिम द्वारा विभाजित किया जाता है। वे पॉलिसी या की (key) इवेंट्स और प्रोसेस शटडाउन पर कैश साफ़ करते हैं। शेयर्ड Redis, डिस्क स्वैप, क्रैश डंप, लॉग और ट्रेस कभी भी प्लेनटेक्स्ट या अनरैप की गई कीज़ प्राप्त नहीं करते हैं।

टेनेंट रैपिंग की को बदलने से प्रत्येक संग्रहीत वैल्यू को डिक्रिप्ट किए बिना डेटा कीज़ को फिर से रैप (rewrap) किया जा सकता है। डेटाबेस पासवर्ड बदलने से एक नया सीक्रेट वैल्यू बनता है और इसे डेटाबेस के साथ समन्वयित करना चाहिए। इन ऑपरेशन्स के अलग-अलग प्रभाव क्षेत्र होते हैं और इन्हें एक अस्पष्ट "रोटेट" बटन साझा नहीं करना चाहिए।

चरण 5: ऑथराइज़ेशन और कैशिंग को रीवोकेशन-अवेयर बनाएं

पॉलिसियाँ क्रिएट-वर्ज़न, प्रमोट, रीड, इश्यू-डायनामिक, रिन्यू, रीवोक और एडमिनिस्टर-पॉलिसी जैसे कार्यों का नाम देती हैं। वे टेनेंट, प्रोजेक्ट, एनवायरनमेंट, पाथ, वर्कलोड, नेटवर्क ज़ोन, समय और अधिकतम TTL को सीमित कर सकते हैं। डिनाई (Deny) हमेशा अलाउ (allow) पर हावी होता है। मानव प्लेनटेक्स्ट एक्सेस डिफ़ॉल्ट रूप से अक्षम है; एक स्वीकृत अपवाद टिकट, अनुमोदक, कारण और अल्पकालिक अनुदान रिकॉर्ड करता है।

लेटेंसी के लिए पॉलिसी इवैल्यूएशन स्थानीय रूप से चलता है, लेकिन कैश्ड पॉलिसी का एक वर्ज़न और अधिकतम आयु होती है। एक पॉलिसी या प्रिंसिपल रीवोकेशन पहले कमिट होता है, इनवैलिडेशन प्रकाशित करता है, और एक टेनेंट ऑथराइज़ेशन एपॉक (epoch) को आगे बढ़ाता है। एक रीड नोड को सेवा देने से पहले यह साबित करना होगा कि उसके पास कम से कम आवश्यक एपॉक है। यदि इनवैलिडेशन अनुपलब्ध है और अधिकतम आयु समाप्त हो जाती है, तो संवेदनशील रीड्स पॉलिसी पर हमेशा भरोसा करने के बजाय सुरक्षित रूप से फ़ेल-क्लोज़्ड (fail closed) हो जाते हैं।

सिफरटेक्स्ट और इम्यूटेबल मेटाडेटा को व्यापक रूप से कैश करना सुरक्षित है। प्लेनटेक्स्ट को नहीं। एक वर्कलोड-साइड एजेंट बार-बार होने वाले रीड्स को कम करते हुए, घोषित TTL तक अपनी मेमोरी में एक अनुमत वैल्यू रख सकता है। यदि उत्पाद चयनित उपलब्धता-महत्वपूर्ण सीक्रेट्स के लिए एक एन्क्रिप्टेड डिस्क कैश की अनुमति देता है, तो इसकी डिवाइस-बाउंड की, समाप्ति और कमजोर रीवोकेशन वादा स्पष्ट होना चाहिए। केवल इसलिए एक पुराना सीक्रेट वापस करना क्योंकि कंट्रोल प्लेन डाउन है, एक सार्वभौमिक फ़ॉलबैक नहीं है।

चरण 6: क्रेडेंशियल रोटेशन को एक रिकवरेबल वर्कफ़्लो के रूप में समझें

टारगेट डेटाबेस में स्टेटिक क्रेडेंशियल रोटेशन ड्यूरेबल चरणों का पालन करता है:

text
CREATED_PENDING
  -> INSTALLED_AT_TARGET
  -> VERIFIED
  -> PROMOTED_CURRENT
  -> OLD_VERSION_IN_OVERLAP
  -> OLD_VERSION_REVOKED
  -> COMPLETE

प्रत्येक ट्रांज़िशन में एक इडेम्पोटेंट कनेक्टर ऑपरेशन और रिकॉर्ड किए गए साक्ष्य होते हैं। नया क्रेडेंशियल बनाएं, इसे टारगेट में इंस्टॉल करें, इच्छित पाथ के माध्यम से इसका परीक्षण करें, नए वर्ज़न को प्रमोट करें, उपभोक्ता को आवश्यकता होने पर एक सीमित ओवरलैप की अनुमति दें, फिर टारगेट पर पुराने क्रेडेंशियल को अक्षम करें। एक सामंजस्य कार्यकर्ता (reconciliation worker) वर्कफ़्लो स्थिति की टारगेट से तुलना करता है और क्रैश के बाद फिर से शुरू होता है। यदि इंस्टॉलेशन सफल होता है लेकिन प्रतिक्रिया खो जाती है, तो लुकअप को दूसरा क्रेडेंशियल बनाने के बजाय उस तथ्य को खोजना होगा।

आपातकालीन रोटेशन ओवरलैप को छोड़ सकता है क्योंकि पुराने वैल्यू के साथ समझौता होने का संदेह है। यह विकल्प एप्लिकेशन आउटेज बना सकता है और इसके लिए एक घटना-स्कोप्ड ऑथराइज़ेशन पाथ की आवश्यकता होनी चाहिए। पुराने स्टोर्ड वर्ज़न के रीड्स को अकेले अस्वीकार करना तब तक अपर्याप्त है जब तक कि टारगेट सिस्टम अभी भी इसे स्वीकार करता है।

डायनामिक सीक्रेट्स के लिए, एक कनेक्टर वर्कलोड के लिए एक यूनीक अल्पकालिक क्रेडेंशियल बनाता है और एक लीज़ रिकॉर्ड करता है। नवीनीकरण वास्तविक नई समाप्ति लौटाता है, जो अनुरोधित से कम हो सकती है। समाप्ति या मैन्युअल रीवोकेशन टारगेट को क्रेडेंशियल को अमान्य करने के लिए कहता है। यदि टारगेट अनुपलब्ध है, तो लीज़ REVOCATION_PENDING में प्रवेश करती है; पुनः प्रयास, अलर्ट और ऑपरेटर रनबुक सक्रिय रहते हैं। सर्विस को केवल इसलिए इसे रीवोक चिह्नित नहीं करना चाहिए क्योंकि एक कतार संदेश भेजा गया था।

चरण 7: क्षमता का बजट बनाएं और हॉट टेनेंट्स को अलग करें

प्रति 20 मिलियन नामों पर तीन रिटेन किए गए वर्ज़न्स और प्रति वैल्यू 2 KiB पर, कच्चे एन्क्रिप्टेड वैल्यू बाइट्स लगभग हैं:

text
20,000,000 × 3 × 2 KiB = 122,880,000,000 bytes ≈ 114 GiB

यदि एन्क्रिप्टेड मेटाडेटा प्रति वर्ज़न औसतन 1 KiB जोड़ता है, तो यह लगभग 57 GiB जोड़ता है। तीन रीजनल रेप्लिकेट्स इंडेक्स, ऑडिट, लीज़, इडेम्पोटेंसी, बैकअप और विकास से पहले शुरुआती स्टोरेज अनुमान को 513 GiB के करीब लाते हैं। यह अंकगणित प्रॉम्प्ट से आता है और एक साइज़िंग बेसलाइन है, कोई उत्पाद बेंचमार्क नहीं।

100,000 रीड्स प्रति सेकंड और औसतन 2 KiB लौटाई गई वैल्यू पर, TLS और रिस्पॉन्स ओवरहेड से पहले केवल प्लेनटेक्स्ट इग्रेस ही लगभग 195 MiB प्रति सेकंड तक पहुंच जाता है। टेनेंट्स को एक स्थिर टेनेंट आइडेंटिफ़ायर द्वारा शार्ड करें, फिर अत्यधिक हॉट या विनियमित टेनेंट्स को समर्पित सेल्स में अलग करें। प्रति-टेनेंट कंकरेंसी और रेट बजट लागू करें ताकि एक समझौता किया गया वर्कलोड सभी डिक्रिप्शन वर्कर्स या ऑडिट क्षमता का उपभोग न कर सके।

रीड लेटेंसी को पहचान सत्यापन, पॉलिसी मूल्यांकन, मेटाडेटा लुकअप, की अनरैप/कैश, डिक्रिप्शन, ऑडिट एनक्यू और नेटवर्क समय में विघटित किया जाना चाहिए। HSM कैश मिस और ऑडिट बैकप्रेशर स्वतंत्र बजट के पात्र हैं। p99 की सुरक्षा के लिए ऑडिट को कभी भी चुपचाप ड्रॉप न करें; या तो एक ड्यूरेबल स्थानीय/आउटबॉक्स सीमा का उपयोग करें या संवेदनशील अनुरोधों को अस्वीकार करें जब आवश्यक ऑडिट रिकॉर्ड को संरक्षित नहीं किया जा सकता है।

चरण 8: रीजनल रिकवरी और रूट रिकवरी को अलग से डिज़ाइन करें

मापे गए रेप्लिकेशन अंतराल के साथ एन्क्रिप्टेड स्थिति और ऑडिट आउटबॉक्स रिकॉर्ड को एक वार्म डिज़ास्टर-रिकवरी रीजन में एसिंक्रोनस रूप से दोहराएं। प्रमोशन के लिए एक फेंसिंग एपॉक की आवश्यकता होती है ताकि पुराना होम रीजन दूसरे प्राइमरी के रूप में राइट्स को फिर से शुरू न कर सके। बताए गए एक मिनट के RPO पर, कॉलर्स को यह समझना चाहिए कि पूरे रीजन के नष्ट होने के बाद नवीनतम स्वीकृत वर्ज़न्स को फिर से बनाने की आवश्यकता हो सकती है। यदि यह अस्वीकार्य है, तो राइट को स्वीकार करने से पहले क्रॉस-रीजन कोरम की आवश्यकता होती है।

DR रीजन को रूट-ऑफ़-ट्रस्ट सर्विस, कार्यशील वर्कलोड पहचान, पॉलिसी स्थिति और ऑडिट निर्यात तक स्वतंत्र पहुंच की भी आवश्यकता है। केवल सिफरटेक्स्ट को कॉपी करना कोई रिकवरी प्लान नहीं है। एन्क्रिप्टेड स्नैपशॉट और पॉइंट-इन-टाइम रीस्टोर का परीक्षण करें, लेकिन कॉन्फ़िगरेशन, बूट क्रेडेंशियल्स और ऑटो-अनसील सामग्री को अलग से सुरक्षित रखें क्योंकि डेटा स्नैपशॉट एन्क्रिप्ट होने पर भी वे संवेदनशील हो सकते हैं।

रूट रिकवरी कोरम-नियंत्रित ब्रेक-ग्लास प्रक्रियाओं, अलग प्रशासकों, इम्यूटेबल साक्ष्य और नियमित ड्रिल का उपयोग करती है। टेनेंट की खोने से उस टेनेंट की वैल्यूज़ तक पहुंच नष्ट हो सकती है; इसे लीक करने से उस की द्वारा रैप की गई प्रत्येक वैल्यू उजागर हो सकती है। इसलिए की-बैकअप, रोटेशन, प्लेसमेंट और विनाश के लिए स्पष्ट लाइफसाइकिल परीक्षणों की आवश्यकता होती है।

चरण 9: सुरक्षा गुणों और विफलता व्यवहार को सत्यापित करें

केवल हैप्पी-पाथ लेटेंसी पर ही नहीं, बल्कि इनवेरिएंट्स के आधार पर टेस्ट बनाएं:

  • क्रॉस-टेनेंट पाथ, एन्कोडेड-पाथ, वाइल्डकार्ड-पॉलिसी और स्टेल-पहचान के प्रयास जनरेट करें और साबित करें कि हर एक को अस्वीकार कर दिया गया है।
  • वर्ज़न निर्माण, प्रमोशन, पॉलिसी रीवोकेशन और रीड्स के बीच रेस कराएं; पुष्टि करें कि कोई भी स्टेल नोड नए अस्वीकृत वर्ज़न की सेवा नहीं करता है।
  • कैनरी प्लेनटेक्स्ट और अनरैप की गई की-सामग्री के लिए डेटाबेस, कतारों, लॉग, ट्रेस, क्रैश डंप और बैकअप को स्कैन करें।
  • KMS लेटेंसी, की-कैश निष्कासन, स्टोरेज कोरम हानि, ऑडिट बैकप्रेशर और पूर्ण कंट्रोल-प्लेन आउटेज इंजेक्ट करें।
  • टारगेट-साइड कार्रवाई से पहले और बाद में प्रत्येक रोटेशन चरण को बाधित करें; साबित करें कि डुप्लिकेट क्रेडेंशियल्स या गलत पूर्णता के बिना सामंजस्य पूरा होता है।
  • समाप्ति के दौरान एक डायनामिक-सीक्रेट टारगेट को अनुपलब्ध बनाएं; साबित करें कि लीज़ तब तक स्पष्ट रूप से पेंडिंग रहती है जब तक कि टारगेट-साइड अमान्यीकरण सफल न हो जाए।
  • एन्क्रिप्टेड रेप्लिकेशन और स्नैपशॉट से DR रीजन को रीस्टोर करें; फेंसिंग, पहचान, पॉलिसी, कीज़, ऑडिट, RTO और मापे गए RPO को सत्यापित करें।
  • p99, डिनाई सटीकता, HSM ट्रैफ़िक, कैश स्कोप और ऑडिट पूर्णता को मापते हुए 100,000 रीड और 2,000 राइट्स प्रति सेकंड पर अत्यधिक विषम (skewed) टेनेंट वितरण का लोड-टेस्ट करें।

उच्च गुणवत्ता वाला नमूना उत्तर

“मैं सबसे पहले यह कहूँगा कि सर्विस स्टोरेज, बैकअप, क्रॉस-टेनेंट, लॉगिंग और सीमित होस्ट समझौते से सुरक्षा करती है, जबकि एक अधिकृत वर्कलोड प्राप्त होने वाली वैल्यू का दुरुपयोग करने में सक्षम रहता है। प्रत्येक अनुरोध एक अल्पकालिक वर्कलोड पहचान के साथ शुरू होता है। सर्विस उस पहचान से टेनेंट और वर्कलोड प्राप्त करती है, फिर सटीक रिसोर्स और एक्शन के लिए एक वर्ज़न वाली पॉलिसी का मूल्यांकन करती है; कॉलर द्वारा प्रदान किया गया पाथ किसी अन्य टेनेंट का चयन नहीं कर सकता है।

मैं इम्यूटेबल वर्ज़न्स का उपयोग करूँगा। एक क्रिएट अनुरोध एक पेंडिंग वर्ज़न लिखता है, और प्रमोशन सीक्रेट के current पॉइंटर को अपेक्षित पूर्व वर्ज़न से सशर्त रूप से आगे बढ़ाता है। होम रीजन में एक तीन-ज़ोन कोरम सिफरटेक्स्ट, मेटाडेटा, इडेम्पोटेंसी और एक ऑडिट आउटबॉक्स को एक साथ कमिट करता है। current रीड्स एक रीड बैरियर का उपयोग करते हैं ताकि एक स्टेल रेप्लिकेट रीवोक किए गए वर्ज़न की सेवा न कर सके।

एन्क्रिप्शन के लिए, प्रत्येक वर्ज़न को टेनेंट, सीक्रेट और वर्ज़न से बंधा एक रैंडम डेटा की और ऑथेंटिकेटेड एन्क्रिप्शन मिलता है। एक टेनेंट की उस डेटा की को रैप करती है, और एक HSM- या KMS-संरक्षित रूट केवल अधिकृत डेटा-प्लेन नोड्स पर टेनेंट कीज़ को अनरैप करता है। सामान्य स्टोरेज और बैकअप में सिफरटेक्स्ट और रैप की गई कीज़ होती हैं। रीड नोड्स हार्डन्ड, टेनेंट-पार्टिशन्ड मेमोरी में थोड़े समय के लिए अनरैप की गई कीज़ को कैश कर सकते हैं; प्लेनटेक्स्ट कभी भी शेयर्ड कैश, लॉग, ट्रेस, स्वैप या कोर डंप में प्रवेश नहीं करता है।

क्रेडेंशियल रोटेशन एक स्टेट मशीन है: क्रिएट करें, टारगेट पर इंस्टॉल करें, सत्यापित करें, प्रमोट करें, ओवरलैप करें, पुराने टारगेट क्रेडेंशियल को रीवोक करें और पूरा करें। प्रत्येक कनेक्टर कॉल इडेम्पोटेंट और सामंजस्य-योग्य (reconciled) है, क्योंकि एक बाहरी डेटाबेस मेटाडेटा ट्रांज़ैक्शन में शामिल नहीं हो सकता है। आपातकालीन समझौते में ओवरलैप हटाया जा सकता है। डायनामिक क्रेडेंशियल एक लीज़ के साथ प्रति वर्कलोड जारी किए जाते हैं; समाप्ति केवल तभी पूरी होती है जब टारगेट रीवोकेशन की पुष्टि करता है, अन्यथा सिस्टम एक दृश्यमान पेंडिंग स्थिति बनाए रखता है और अलर्ट करता है।

कंट्रोल प्लेन पॉलिसी, वर्ज़न्स, अनुमोदनों और वर्कफ़्लो का मालिक है; हॉरिजॉन्टली स्केल्ड डेटा-प्लेन सेल्स रीड्स की सेवा करती हैं। सिफरटेक्स्ट को व्यापक रूप से कैश किया जा सकता है, पॉलिसी में एक सीमित वर्ज़न्ड कैश होता है, और अनरैप-की कैशिंग छोटी और स्थानीय होती है। रीजन हानि के लिए, एन्क्रिप्टेड स्थिति एक मिनट के RPO के साथ एक वार्म रीजन में रेप्लिकेट होती है और एक फेंसिंग एपॉक स्प्लिट ब्रेन को रोकता है। यदि आवश्यकता RPO शून्य में बदल जाती है, तो मैं रीजन्स के बीच सिंक्रोनस रूप से कमिट करूँगा और उच्च लेटेंसी या कम राइट उपलब्धता को स्वीकार करूँगा।

अंत में, मैं क्रॉस-टेनेंट और एन्कोडेड-पाथ हमलों, समवर्ती प्रमोशन और रीवोकेशन, सभी ऑब्जर्वेबिलिटी और बैकअप सतहों में कैनरी रिसाव, KMS और ऑडिट आउटेज, प्रत्येक रोटेशन चरण पर क्रैश, अटके हुए लीज़ रीवोकेशन और एक पूर्ण DR रीस्टोर का परीक्षण करूँगा। डिज़ाइन केवल तभी पास होता है जब उन दोषों के तहत सुरक्षा निर्णय सही रहते हैं और 100,000-रीड पीक अभी भी अपने मापे गए लेटेंसी बजट को पूरा करता है।”

सामान्य गलतियाँ

  • डेटाबेस के बगल में एक डेटाबेस एन्क्रिप्शन की का उपयोग करना → एक स्नैपशॉट समझौते में सिफरटेक्स्ट और उसका डिक्रिप्शन पाथ दोनों शामिल हो सकते हैं → HSM/KMS रूट, टेनेंट रैपिंग कीज़, प्रति-वर्ज़न डेटा कीज़ और सामान्य स्टोरेज को अलग करें।
  • अनुरोध में टेनेंट या पाथ पर भरोसा करना → एक ऑब्जेक्ट-नाम परिवर्तन क्रॉस-टेनेंट एक्सेस बन जाता है → सत्यापित पहचान से टेनेंट प्राप्त करें, एक बार कैनोनिकलाइज़ करें, और सटीक एक्शन और रिसोर्स को ऑथराइज़ करें।
  • डीबगिंग के लिए रिक्वेस्ट या रिस्पॉन्स बॉडीज़ को लॉग करना → ऑब्जर्वेबिलिटी स्टैक एक प्लेनटेक्स्ट सीक्रेट स्टोर बन जाता है → वैल्यूज़ के बिना आइडेंटिफ़ायर्स, निर्णयों, वर्ज़न्स और कैनरी लीक टेस्ट का उपयोग करें।
  • प्रत्येक रीड पर HSM को कॉल करना → रूट-ऑफ़-ट्रस्ट लेटेंसी और कोटा प्लेटफ़ॉर्म की अड़चन बन जाते हैं → एनवलप एन्क्रिप्शन और स्पष्ट ब्लास्ट रेडियस के साथ सीमित संरक्षित-मेमोरी की-कैश का उपयोग करें।
  • डिक्रिप्टेड वैल्यूज़ को Redis में रखना → एक लेटेंसी अनुकूलन एक व्यापक प्लेनटेक्स्ट समझौता सीमा बनाता है → सिफरटेक्स्ट को व्यापक रूप से कैश करें और किसी भी प्लेनटेक्स्ट को केवल अधिकृत उपभोक्ता की सीमित मेमोरी में रखें।
  • रोटेशन को एक ही अपडेट मानना → टारगेट इंस्टॉलेशन सफल हो सकता है जबकि मेटाडेटा विफल हो जाता है या इसके विपरीत → एक ड्यूरेबल चरणबद्ध वर्कफ़्लो, इडेम्पोटेंट कनेक्टर ऑपरेशन्स, ओवरलैप नियमों और सामंजस्य का उपयोग करें।
  • मैसेज पब्लिश करने के बाद लीज़ को रीवोक चिह्नित करना → डाउनस्ट्रीम क्रेडेंशियल अभी भी काम कर सकता है → टारगेट-साइड अमान्यीकरण की पुष्टि होने तक एक पेंडिंग स्थिति बनाए रखें और अटके हुए रीवोकेशन पर अलर्ट करें।
  • कॉपी की गई स्टेटिक वैल्यूज़ के तत्काल रीवोकेशन का वादा करना → भविष्य के रीड्स को अस्वीकार किया जा सकता है, लेकिन मौजूदा प्रतियां उपयोग योग्य बनी रहती हैं → स्वीकार करने वाले सिस्टम पर क्रेडेंशियल को रोटेट या अक्षम करें और अल्पकालिक डायनामिक क्रेडेंशियल्स को प्राथमिकता दें।
  • अनिश्चित काल तक पुरानी (stale) पॉलिसी पर फ़ेल-ओपन (fail open) होना → हटाया गया प्रिंसिपल संवेदनशील वैल्यूज़ को पढ़ना जारी रख सकता है → पॉलिसी कैश का वर्ज़न बनाएं, उन्हें इनवैलिडेट करें, अधिकतम आयु लागू करें, और सीमा समाप्त होने के बाद फ़ेल-क्लोज़्ड हों।
  • सिफरटेक्स्ट को दूसरे रीजन में कॉपी करना और इसे DR कहना → पहचान, रूट कीज़, पॉलिसियाँ, फेंसिंग और ऑडिट अभी भी अनुपलब्ध हो सकते हैं → पूर्ण रिकवरी निर्भरता ग्राफ़ का परीक्षण करें और वास्तविक RTO और RPO को मापें।

फॉलो-अप प्रश्न और उत्तर

फॉलो-अप 1: सीक्रेट्स मैनेजर KMS से किस प्रकार भिन्न है?

एक सीक्रेट्स मैनेजर ओपेक क्रेडेंशियल्स को स्टोर और वर्ज़न करता है, पुनः प्राप्ति को अधिकृत करता है, रोटेशन का समन्वय करता है, लीज़ जारी करता है और एक्सेस का ऑडिट करता है। एक KMS क्रिप्टोग्राफ़िक कीज़ का प्रबंधन करता है और रैपिंग या साइनिंग जैसे ऑपरेशन करता है। यह डिज़ाइन अपने रूट ऑफ़ ट्रस्ट के रूप में KMS या HSM का उपयोग करता है; यह उस रूट को एक सामान्य पुनः प्राप्त करने योग्य सीक्रेट के रूप में उजागर नहीं करता है।

फॉलो-अप 2: क्या आप एप्लिकेशन में सीक्रेट कैश कर सकते हैं?

हाँ, केवल एक स्पष्ट अनुबंध के तहत। एक एजेंट प्रोसेस मेमोरी में एक अनुमत वैल्यू को एक सीमित TTL तक रख सकता है और समाप्ति से पहले रीफ़्रेश कर सकता है। यह उपलब्धता निर्भरता और रीड वॉल्यूम को कम करता है, लेकिन उस समय को बढ़ाता है जिसके दौरान केवल पॉलिसी रीवोकेशन मौजूदा कॉपी को नहीं हटा सकता है। उच्च-जोखिम या डायनामिक क्रेडेंशियल्स को असीमित कैश के बजाय छोटी लीज़ और टारगेट-साइड रीवोकेशन का उपयोग करना चाहिए।

फॉलो-अप 3: जब KMS या HSM अनुपलब्ध हो तो क्या होता है?

नोड्स केवल अपने स्वीकृत कैश जीवनकाल के भीतर पहले से अनरैप की गई कीज़ के साथ काम जारी रख सकते हैं। नए टेनेंट्स, कैश मिस और रूट-की ऑपरेशन्स सुरक्षित रूप से विफल (fail closed) हो जाते हैं। कैश कवरेज, KMS त्रुटि दर और शेष सुरक्षित विंडो को ट्रैक करें; सभी नोड्स के एक साथ समाप्त होने से पहले लोड को शेड करें। किसी घटना के दौरान की (key) के जीवनकाल को बढ़ाना एक सुरक्षा निर्णय है जिसके लिए पूर्वनिर्धारित पॉलिसी की आवश्यकता होती है, न कि एक स्वचालित पुनः प्रयास लूप की।

फॉलो-अप 4: आप प्रत्येक सीक्रेट को डिक्रिप्ट किए बिना टेनेंट की को कैसे रोटेट करते हैं?

पुरानी टेनेंट की के साथ प्रत्येक प्रति-वर्ज़न डेटा की को अनरैप करें और इसे नई टेनेंट की के साथ रैप करें, अधिमानतः विश्वसनीय की-सर्विस के भीतर ताकि प्लेनटेक्स्ट डेटा कीज़ उस सीमा से बाहर न जाएं। टेनेंट-की वर्ज़न और रैप की गई डेटा की दोनों को स्टोर करें, माइग्रेशन को चेकपॉइंट करें, और पुरानी टेनेंट की को तब तक बनाए रखें जब तक कि प्रत्येक संदर्भ और बैकअप पॉलिसी इसके रिटायरमेंट की अनुमति न दे दे। एन्क्रिप्टेड सीक्रेट वैल्यू स्वयं नहीं बदलती है।

फॉलो-अप 5: आप एक विशेषाधिकार प्राप्त ऑपरेटर को प्रत्येक टेनेंट के सीक्रेट्स को पढ़ने से कैसे रोकते हैं?

पॉलिसी प्रशासन, की प्रशासन, बुनियादी ढांचा संचालन और ऑडिट समीक्षा को अलग करें। नियमित मानव प्लेनटेक्स्ट पुनः प्राप्ति को अक्षम करें, अपवादों के लिए कोरम-स्वीकृत अल्पकालिक अनुदान की आवश्यकता रखें, विनियमित टेनेंट्स को अलग सेल्स और की-स्कोप में रखें, और स्वतंत्र रूप से नियंत्रित ऑडिट सिस्टम को साक्ष्य भेजें। कोई भी एकल दैनिक-उपयोग रोल बिना किसी बाहरी साक्ष्य के खुद को एक्सेस नहीं दे सकता और वैल्यूज़ को डिक्रिप्ट नहीं कर सकता।

फॉलो-अप 6: क्या होम रीजन डाउन होने पर रीड्स उपलब्ध रहने चाहिए?

केवल तभी जब DR रीजन के पास एक फेंस किया गया आधिकारिक एपॉक, पर्याप्त रूप से वर्तमान पॉलिसी और एन्क्रिप्टेड डेटा, इसके रूट ऑफ़ ट्रस्ट तक पहुंच और स्पष्ट रूप से स्वीकृत RPO हो। किसी भी मनमाने स्टेल रेप्लिकेट से सेवा देने से रीवोक किया गया एक्सेस पुनर्जीवित हो सकता है। बताए गए एक मिनट के RPO पर, परीक्षण की गई फ़ेलओवर प्रक्रिया के माध्यम से वार्म रीजन को प्रमोट करें; RPO शून्य के लिए घटना से पहले सिंक्रोनस क्रॉस-रीजन कमिट की आवश्यकता होती है।

फॉलो-अप 7: सीक्रेट्स को केवल एनवायरनमेंट वेरिएबल्स के रूप में स्टोर क्यों नहीं करते?

एक एनवायरनमेंट वेरिएबल एक डिलीवरी तंत्र है, लाइफसाइकिल प्रबंधन नहीं। इसे प्रोसेस निरीक्षण, क्रैश डंप, डायग्नोस्टिक्स, चाइल्ड प्रोसेस या परिनियोजन (deployment) कॉन्फ़िगरेशन के माध्यम से उजागर किया जा सकता है; इसमें केंद्रीय वर्ज़न्स, टारगेट-साइड रोटेशन, लीज़ और प्रति-रीड एट्रिब्यूशन का भी अभाव होता है। यदि कोई परिनियोजन एजेंट एक एनवायरनमेंट वेरिएबल इंजेक्ट करता है, तो उसके दायरे और जीवनकाल को छोटा रखें और सीक्रेट्स मैनेजर को पॉलिसी और लाइफसाइकिल सत्य के स्रोत के रूप में बनाए रखें।

सार्वजनिक स्रोत

संबंधित प्रश्न

संबंधित इंटरव्यू टूल

सिस्टम डिज़ाइन उत्तर के लिए हल करें का उपयोग करें

पहले आवश्यकताओं को स्पष्ट करें, फिर स्केल, आर्किटेक्चर, कंपोनेंट चयन और ट्रेड-ऑफ की ओर बढ़ें।

टूल देखें