5

डायनेमो डीबी: क्या हम एन्क्रिप्शन और क्रॉस-क्षेत्र प्रतिकृति का एक साथ उपयोग कर सकते हैं?डायनेमो डीबी: क्या हम एक साथ एन्क्रिप्शन और क्रॉस-क्षेत्र प्रतिकृति का उपयोग कर सकते हैं?

हम अपने नए एप्लिकेशन के लिए डायनेमो डीबी का मूल्यांकन कर रहे हैं। हमारी आवश्यकताएँ हैं: आपदा वसूली के लिए बाकी

  • पार क्षेत्र प्रतिकृति पर

    • डेटा एन्क्रिप्शन। किसी क्षेत्र में हमारे ऐप को केवल उस क्षेत्र में सेवाओं पर भरोसा करना चाहिए

    एडब्ल्यूएस द्वारा प्रदान की गई जावा पुस्तकालयों का उपयोग करने के साथ हमारी आवश्यकताओं को अलग से पूरा किया जा सकता है। समाधान हैं:

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

    प्रश्न हैं:

    • यह सच है कि डिक्रिप्शन या पार क्षेत्र दोहराया रिकॉर्ड करता है, तो एन्क्रिप्शन कुंजी किलोमीटर में है असंभव है है?
    • क्या एन्क्रिप्टेड डायनेमो डीबी रिकॉर्ड्स को दोहराने के लिए कोई अनुशंसित दृष्टिकोण है? क्या किसी ने इसे पहले किया है?
    • क्या कोई विकल्प है जो हमें देखना चाहिए?
  • +0

    मैं इस प्रश्न को ऑफ-विषय के रूप में बंद करने के लिए मतदान कर रहा हूं। मुझे यकीन नहीं है लेकिन शायद [dba] (http://dba.stackexchange.com/) इस पर पूछने के लिए एक बेहतर साइट है। –

    +0

    उस समय सीमा के आधार पर जिसमें आपको डेटाबेस को पुनर्स्थापित करने की आवश्यकता है, आप S3 का बैक अप लेने और उसे दोहराने का प्रयास कर सकते हैं। http://stackoverflow.com/questions/23510704/using-amazon-data-pipeline-to-backup-dynamodb-data-to-s3 – BillMan

    उत्तर

    5

    आप सही हैं। जैसा कि है, सेटअप काम नहीं करेगा क्योंकि KMS कुंजी को क्षेत्रों में साझा नहीं किया जा सकता है।

    मान लें कि आप क्षेत्र R1 से R2 तक डेटा की प्रतिलिपि बना रहे हैं, जिसमें क्रमशः KMS कुंजी K1 और K2 है। मैं निम्नलिखित विकल्प का सुझाव कर सकते हैं:

    1. एक सा पुस्तकालय संशोधित करें, ताकि यह K2 का उपयोग कर के 1 और फिर से encrypts का उपयोग कर आर 1 से आंकड़ों को विगोपित प्रतिकृति के दौरान। आपको DynamoDBStreamsRecordTransformer कक्षा में रुचि होगी।
    2. आर 1 और आर 2 दोनों में अपनी खुद की मुख्य सामग्री आयात करें। प्रासंगिक दस्तावेज here देखें।
      • चेतावनी: आपके उपयोग के मामले के आधार पर परिचालन रूप से दर्दनाक हो सकता है।

    अद्यतन: भी अपने विचारों को जोड़ा जा रहा है इतना है कि यह किसी को भी भविष्य में इस सवाल पर ठोकर मदद कर सकते हैं:

    1. अपनी खुद प्लेन टेक्स्ट-डेटा बनाएं -की (संभवतः केएमएस के GenerateRandom एपीआई का उपयोग करके), इसे K1 और K2 (Encrypt एपीआई का उपयोग करके) का उपयोग करके एन्क्रिप्ट करें, और दोनों क्षेत्रों में अपने डेटा के साथ परिणामी साइफर-ग्रंथ दोनों को स्टोर करें।
      • चेतावनी: हर अद्यतन के लिए पार क्षेत्र कॉल। विकल्प # 1 में, अद्यतन असीमित हैं।
    +0

    धन्यवाद! DynamoDBStreamsRecordTransformer के बारे में दिलचस्प विचार। मैं इसे और अधिक जानकारी में देख लूंगा। सहमत हैं कि अपनी मुख्य सामग्री से निपटना परिचालन मुश्किल है। एन्क्रिप्शन लाइब्रेरी हैकिंग की एक और संभावना है कि यह डेटा एन्क्रिप्शन कुंजी की दो प्रतियों को संग्रहीत करता है - एक प्रति K1 के साथ एन्क्रिप्ट की जाती है और दूसरा K2 के साथ एन्क्रिप्ट किया जाता है। फिर R1 में कोड डेटा एन्क्रिप्शन कुंजी की पहली प्रति को डिक्रिप्ट करने के लिए K1 का उपयोग करता है, और R2 में कोड डेटा एन्क्रिप्शन कुंजी की दूसरी प्रति को डिक्रिप्ट करने के लिए K2 का उपयोग करता है। दोनों क्षेत्रों में कोड डेटा को डिक्रिप्ट कर सकता है। – ez121sl

    +0

    जो केवल तभी काम कर सकता है जब आप * केएमएस को सादे टेक्स्ट-डेटा-कुंजी प्रदान कर सकें और यह एक एन्क्रिप्टेड-डेटा-कुंजी देता है। क्या यह समर्थित है? मुझे लगता है कि यहाँ की तरह कुछ नहीं दिख रहा है: http://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html –

    +0

    ओह, हाँ, वह भी –

    संबंधित मुद्दे