अमेज़न आरडीएस एसएसएल / टीएलएस प्रमाणपत्र अपडेट करें - इलास्टिक बीनस्टॉक


14

AWS ने हाल ही में इसकी घोषणा की:

31 अक्टूबर 2019 तक अपने अमेज़ॅन आरडीएस एसएसएल / टीएलएस प्रमाणपत्रों को अपडेट करें

मेरे पास एक क्लासिक इलास्टिक बीनस्टॉक लोड बैलेंसर के साथ एक रेल एप्लिकेशन होस्ट है, जो आरडीएस का उपयोग करके पोस्टग्रेज डीबी से जुड़ता है।

अमेज़न के अनुसार आवश्यक कदम हैं:

  1. किसी कनेक्शन को डीबी इंस्टेंस पर एन्क्रिप्ट करने के लिए एसएसएल / टीएलएस का उपयोग करके नया एसएसएल / टीएलएस प्रमाणपत्र डाउनलोड करें।
  2. नए एसएसएल / टीएलएस प्रमाणपत्र का उपयोग करने के लिए अपने डेटाबेस एप्लिकेशन को अपडेट करें।
  3. CA को rds-ca-2015 से rds-ca-2019 में बदलने के लिए DB उदाहरण को संशोधित करें।

( https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html )

चूंकि मेरे पास मेरे लोड बैलेंसर इस तरह से स्थापित हैं (मेरे EC2 इंस्टेंस को HTTP पोर्ट 80 (एसएसएल नहीं) के माध्यम से जोड़कर, इसका मतलब यह है कि मुझे चरण 1 और 2 का पालन करने की आवश्यकता नहीं है? और केवल चरण 3 का पालन करें?

LoadBalancerListeners

या क्या मुझे अपडेटेड सर्टिफिकेट डाउनलोड करने हैं और उन्हें अपने लोड बैलेंसर या ईसी इंस्टेंस में मैन्युअल रूप से इंस्टॉल / ऐड करना है? यकीन नहीं है कि कैसे करना है।


1
अंत में आपको क्या करना था? im अंतिम समाधान क्या था स्पष्ट नहीं है।
वेबर

3
@weber, मुझे निर्धारित करने के लिए मुख्य बात यह थी कि अगर एक बंधे हुए आरडीएस कनेक्शन के साथ एक लोचदार बीनस्टॉक लोड बैलेंसर के पीछे EC2 उदाहरण स्वचालित रूप से उन्नत 2019 प्रमाण पत्र पर भरोसा करेंगे या नहीं। मुझे यकीन नहीं था कि मुझे मैन्युअल रूप से SSH'ing के माध्यम से उन पर भरोसा करने की आवश्यकता होगी, या उदाहरण के लिए .ebextensions। अंत में इसका परीक्षण करने के बाद, मैं पुष्टि कर सकता हूं कि उन्होंने नए आरडीएस कनेक्शन पर स्वचालित रूप से भरोसा किया था । यदि ईबी के वातावरण से आरडीएस डीबी का उदाहरण दिया गया था जैसा कि यहां वर्णित है https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.RDS.html, तो मैं परिणाम के बारे में निश्चित नहीं हूं।
stwr667

जवाबों:


8

चरण 1 और 2 केवल तभी आवश्यक है जब MySQL के साथ आपका एप्लिकेशन कनेक्शन TLS एन्क्रिप्ट किया गया हो

एलबी टीएलएस को न बदलें यह सेटिंग आपके आवेदन को तोड़ सकती है, एलबी टीएलएस कुछ और है, जहां आरडीएस टीएलएस कुछ और है।

यदि आपका आवेदन सिर्फ सादे कनेक्शन का निर्माण करता है तो आप सीधे चरण 3 प्रदर्शन करने के लिए सुरक्षित हैं।

CA को rds-ca-2015 से rds-ca-2019 में बदलने के लिए DB उदाहरण को संशोधित करें।

DB, DB के लिए सामान्य रूप से अभ्यास निजी सबनेट में होना चाहिए और यह सार्वजनिक से सुलभ नहीं होना चाहिए, टीएलएस तब सहायक होता है जब आपका डेटाबेस और बैकएंड कनेक्शन इंटरनेट पर होता है, न कि वीपीसी के भीतर।

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


साभार @Adiii क्या आपको यकीन है? यहाँ docs.aws.amazon.com/AmazonRDS/latest/UserGuide/… यह वर्णन करता है कि कैसे देखें कि आपका DB कनेक्शन SSL का उपयोग कर रहा है या नहीं। जब मैं eb sshअपने सर्वर के लिए, वहाँ से DB के माध्यम से कनेक्ट psql, और फिर चलाने के लिए select ssl_is_used(), यह सच है! मेरा RDS उदाहरण मेरे EB वातावरण से जुड़ा हुआ है जैसा कि यहाँ वर्णित है docs.aws.amazon.com/elasticbeanstalk/latest/dg/… । चूंकि EB, RDS से स्वतः जुड़ा हुआ है, इसलिए मैं ऊपर के आधार पर चिंतित हूं कि CA बदलने से उत्पन्न कनेक्शन टूट जाएगा।
stwr667

मैं सामान्य रूप से बात कर रहा हूं, यह उस एप्लिकेशन पर निर्भर करता है कि यह कैसे कनेक्शन बनाता है लेकिन कोड इसे लिंक करके सुझाता है। var mysql = require('mysql'); var connection = mysql.createConnection({ host : process.env.RDS_HOSTNAME, user : process.env.RDS_USERNAME, password : process.env.RDS_PASSWORD, port : process.env.RDS_PORT }); connection.connect(function(err) { if (err) { console.error('Database connection failed: ' + err.stack); return; } console.log('Connected to database.'); }); connection.end();
Adiii

2
साभार @Adii Fyi मैं Postgres का उपयोग करता हूं, MySQL का नहीं। अच्छी खबर यह है कि मैंने एक स्नैपशॉट लिया है और अभी-अभी चरण 3 की कोशिश की है। सब कुछ अभी भी उम्मीद के मुताबिक काम करता है। यहां तक ​​कि जब एप्लिकेशन सर्वर से डीबी से फिर से कनेक्ट होता है, तो यह अभी भी रिपोर्ट करता है कि यह एसएसएल का उपयोग कर रहा है इसलिए मुझे लगता है कि इलास्टिकबीनस्टॉक आरडीएस उदाहरण को ईबी वातावरण से बंधे होने पर स्वचालित रूप से प्रमाण पत्र की ट्रस्टिंग को संभालता है। एक बार फिर धन्यवाद।
stwr667

तो कनेक्शन कैसे बनाएं? क्या कनेक्शन स्ट्रिंग में SSL निर्दिष्ट है?
अदि १i

इसलिए कनेक्शन की जानकारी में परिभाषित किया गया है मैं एक रेल एप्लिकेशन है, database.ymlजो की तरह ENV चर के लिए बाहर कॉल RDS_DB_NAME, RDS_USERNAMEआदि यह (यहां तक कि यह हो सकता है, हालांकि) एसएसएल वहाँ की आवश्यकता के लिए निर्दिष्ट नहीं है। हालांकि मुझे लगता है कि ईबी पर डिफ़ॉल्ट सेटिंग की तरह कुछ होना चाहिए allow, preferया require, एक वातावरण चर या कुछ और के द्वारा विन्यस्त। cf: postgresql.org/docs/current/… । यह निश्चित रूप से अन्य 3 में से एक नहीं है क्योंकि disableएसएसएल को बंद कर देगा, और अन्य verifyविकल्प विफल हो गए जब मैंने उन्हें सीएलआई पर परीक्षण किया।
stwr667

2

प्रश्न का बहुत आसान उत्तर है:

यदि आप आरडीएस द्वारा उपयोग किए गए सीए सर्टिफिकेट को अपग्रेड करते हैं तो आपको अपने बीनस्टॉक वातावरण में कुछ भी स्थापित करने की आवश्यकता नहीं है। https://stackoverflow.com/a/59742149/7051819

बस बिंदु 3 का पालन करें और 1 और 2 को अनदेखा करें।

(हां मैंने लिखा है कि खुद जवाब दें)।


3
मुझे लगता है कि जंप का जवाब नीचे-मतदान है क्योंकि अधिकांश उत्पादन वातावरण लोचदार बीनस्टॉक के भीतर आरडीएस का उपयोग नहीं करते हैं। लोचदार बीनस्टॉक के भीतर से आरडीएस का उपयोग करना संभवतः खतरनाक है क्योंकि यदि आप अपने लोचदार बीनस्टॉक उदाहरण को समाप्त करते हैं, तो आपके डेटाबेस को भी समाप्त कर दिया जाता है, जो डेटा अवधारण उद्देश्यों के लिए अच्छा नहीं है। इसलिए सामान्य तौर पर लोग लोचदार बीनस्टॉक वातावरण के बारे में पूछ रहे हैं जहां आरडीएस का उदाहरण अलग है।
jakeatwork
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.