Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डेटाबेस सुरक्षा - बैकअप एन्क्रिप्शन इन-ट्रांजिट और एट-रेस्ट

आपका डेटा सुरक्षित करना सबसे महत्वपूर्ण कार्यों में से एक है जिसे हमें प्राथमिकता देनी चाहिए। जीडीपीआर, एचआईपीएए, पीसीआई डीएसएस, या पीएचआई जैसे सुरक्षा अनुपालन की आवश्यकता वाले नियमों के उद्भव के लिए आवश्यक है कि आपका डेटा सुरक्षित रूप से संग्रहीत किया जाए या तार पर प्रसारित किया जाए।

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

एन्क्रिप्शन इन-ट्रांजिट

क्लस्टरकंट्रोल के माध्यम से बैकअप का प्रबंधन करते समय, mysqldump या Percona Xtrabackup/Mariabackup का उपयोग करके डिफ़ॉल्ट रूप से वायर पर प्रसारित होने पर एन्क्रिप्शन के बिना प्रबंधित किया जाता है। हालाँकि, डेटा ट्रांसमिशन के एन्क्रिप्शन के लिए TLS/SSL का उपयोग MySQL/MariaDB/Percona सर्वर द्वारा समर्थित है, इसलिए Percona Xtrabackup करता है जो कमांड को लागू करते समय SSL विकल्प प्रदान करता है।

जब आप क्लस्टर परिनियोजित करते हैं तो ClusterControl एसएसएल को डिफ़ॉल्ट रूप से सक्षम करता है लेकिन बैकअप निर्माण के दौरान तुरंत स्विच करने और आपके डेटा को वायर पर एन्क्रिप्ट करने का नियंत्रण नहीं होता है। अपना क्लस्टर बनाते समय या MySQL में मैन्युअल रूप से TLS/SSL सेटअप करने के पुराने तरीके का उपयोग करते हुए आप क्लस्टरकंट्रोल का उपयोग करके मैन्युअल दृष्टिकोण के लिए हमारे पिछले ब्लॉग देख सकते हैं।

ClusterControl में, जब आप एक क्लस्टर परिनियोजित करते हैं, तो आप सुरक्षा टैब या इस आइकन की जाँच कर सकते हैं

क्लिक करना बटन आपको उस प्रमाणपत्र को बदलने की अनुमति देगा जो वर्तमान में आपके नए प्रावधान के परिनियोजन के दौरान ClusterControl द्वारा उपयोग या परिनियोजित किया जा रहा है समूह। आप इस ब्लॉग को देख सकते हैं "अपडेट किया गया:क्लस्टरकंट्रोल डीबीए बनें - एसएसएल कुंजी प्रबंधन और ट्रांजिट में MySQL डेटा का एन्क्रिप्शन" जिसके लिए हमने दिखाया कि हम चाबियों को कैसे संभालते हैं। मूल रूप से, आप ClusterControl के बाईं ओर के नेविगेशन के माध्यम से जा सकते हैं और "कुंजी प्रबंधन" पर क्लिक कर सकते हैं।

नीचे कुंजी प्रबंधन का एक उदाहरण दिया गया है जिसमें आप अपनी मौजूदा कुंजियां बना और आयात कर सकते हैं।

अपने डेटा को एन्क्रिप्ट करने के लिए अपने तार्किक बैकअप के रूप में mysqldump का उपयोग करके बैकअप बनाते समय, सुनिश्चित करें कि आपके पास अपने SSL विकल्प तदनुसार सेट हैं।

आगे क्या है?

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

या आप प्रदर्शन टैब के अंतर्गत भी देख सकते हैं और नीचे देखे गए डीबी चर पर क्लिक कर सकते हैं:

ध्यान दें कि प्रदर्शन -> डीबी चर के तहत पॉप्युलेट करने में कुछ समय लग सकता है। इसलिए यदि आप मैन्युअल रूप से जांचना चाहते हैं, तो आप नीचे की तरह ही mysql कमांड प्रॉम्प्ट का उपयोग कर सकते हैं:

अपने ssl_cipher को परिभाषित करने से अधिक सुरक्षा सख्त हो सकती है। यदि आप 'Ssl_cipher_list'\G की तरह SHOW GLOBAL STATUS चलाते हैं या यहां चेक करते हैं, तो सिफर सूट की एक सूची है। एक सिफर सूट प्रमाणीकरण, एन्क्रिप्शन और संदेश प्रमाणीकरण कोड (मैक) एल्गोरिदम का एक संयोजन है। इनका उपयोग टीएलएस/एसएसएल कनेक्शन के साथ-साथ डेटा के सुरक्षित हस्तांतरण के लिए सुरक्षा सेटिंग्स की बातचीत के दौरान किया जाता है।

चूंकि ClusterControl स्थानीय रूप से उस होस्ट में mysqldump चलाएगा, आपकी MySQL कॉन्फ़िगरेशन फ़ाइल (/etc/my.cnf, /etc/mysql/my.cnf, /usr/etc/my.cnf, ~ में निम्नलिखित पैरामीटर (नीचे देखें) को जोड़कर चलाएगा। /.my.cnf) SQL डंप के लिए किसी भी क्रिया को एन्क्रिप्ट करेगा। नीचे देखें:

[mysqldump]
socket=/var/lib/mysql/mysql.sock
max_allowed_packet = 512M
host=127.0.0.1
ssl-cert=/var/lib/mysql/client-cert.pem
ssl-key=/var/lib/mysql/client-key.pem

आप tcpdump का उपयोग करके निगरानी करने का प्रयास कर सकते हैं और आप TLS का उपयोग करके एक अनएन्क्रिप्टेड बनाम एन्क्रिप्टेड परत की तुलना में नीचे देख सकते हैं।

TLS/SSL के साथ:

टीएलएस/एसएसएल के बिना:

ClusterControl के तहत Percona XtraBackup या Mariabackup का उपयोग करते समय, इस समय कोई TLS/SSL समर्थन नहीं होता है जब बैकअप नेटवर्क पर प्रसारित होता है। यह समाज का उपयोग करता है जो मूल रूप से संचार के साधन के रूप में एक बंदरगाह को दूसरे नोड में खोलता है।

उदा.

[21:24:46]: 192.168.10.20: Launching ( ulimit -n 256000 && LC_ALL=C /usr/bin/mariabackup --defaults-file=/etc/my.cnf --backup --galera-info --parallel 1 --stream=xbstream --no-timestamp | gzip -6 - | socat - TCP4:192.168.10.200:9999 ) 2>&1.
[21:24:46]: 192.168.10.20: The xtrabackup version is 2.4.12 / 2004012.
[21:24:46]: 192.168.10.20:3306: Checking xtrabackup version.
[21:24:46]: 192.168.10.20: Streaming backup to 192.168.10.200
[21:24:46]: 192.168.10.200: Netcat started, error log is in '192.168.10.200:/tmp/netcat.log'.
[21:24:43]: 192.168.10.200: Starting socat -u tcp-listen:9999,reuseaddr stdout > /home/vagrant/backups/BACKUP-71/backup-full-2018-11-12_132443.xbstream.gz 2>/tmp/netcat.log.

यदि आपको परिवहन के दौरान सुरक्षित परत की आवश्यकता है, तो आप इसे मैन्युअल रूप से --ssl* कमांड के आह्वान के दौरान विकल्पों का उपयोग करके कर सकते हैं। अधिक जानकारी के लिए Percona XtraBackup मैनुअल के लिए यहां चेकआउट करें। हम अब भी एक पंजीकृत प्रमाणपत्र प्राधिकारी से आपका प्रमाणपत्र/कुंजी प्राप्त करने की अनुशंसा करते हैं।

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

एन्क्रिप्शन एट-रेस्ट

ClusterControl में, अपना बैकअप बनाते समय, आपके पास अपने डेटा को एन्क्रिप्ट करने का विकल्प होता है। नीचे देखें:

एन्क्रिप्ट किए जाने पर, ClusterControl "एडवांस एन्क्रिप्शन स्टैंडर्ड" AES-256-CBC का उपयोग करेगा। नीचे नमूना लॉग देखें:

[22:12:49]: 192.168.10.30: Launching ( ulimit -n 256000 && LC_ALL=C /usr/bin/mariabackup --defaults-file=/etc/my.cnf --backup --galera-info --parallel 1 --stream=xbstream --no-timestamp | gzip -6 - | openssl enc -aes-256-cbc -pass file:/var/tmp/cmon-002471-32758-24c456ca6b087837.tmp | socat - TCP4:192.168.10.200:9999 ) 2>&1.

यदि आप अपना बैकअप क्लाउड में संग्रहीत कर रहे हैं, उदाहरण के लिए AWS S3 के साथ, S3 सर्वर-साइड एन्क्रिप्शन (SSE) के तीन अलग-अलग तरीके प्रदान करता है। ये SSE-S3, SSE-C, या SSE-KMS हैं। अमेज़ॅन के पास पेशकश करने के लिए महान एसएसई सुविधाएं हैं जो डेटा के एन्क्रिप्शन को आराम से संभालती हैं। आप यहां से शुरू कर सकते हैं जो इस बात से निपटता है कि S3 AWS KMS का उपयोग कैसे करता है। यदि आप अपने बैकअप को वॉल्यूम या ब्लॉक-आधारित स्टोरेज में ले जा रहे हैं, तो AWS में EBS एन्क्रिप्शन के साथ-साथ AWS KMS का उपयोग किया जाता है। इस बारे में अधिक जानकारी के लिए आप यहां देख सकते हैं।

Microsoft Azure में आराम से डेटा को संभालने के साथ-साथ शानदार सुविधाएँ भी हैं। "आराम पर डेटा के लिए Azure संग्रहण सेवा एन्क्रिप्शन" पर पृष्ठ देखें। Azure अपने Azure Key Vault में AWS KMS की तरह ही कुंजियों को संभालता है। आराम से डेटा के लिए Google एन्क्रिप्शन के लिए, आप यहां देख सकते हैं।

समय-समय पर डेटा बैकअप संग्रहीत करते समय, आप क्रिप्ट या डीएमक्रिप्ट के संयोजन के साथ LUKS (लिनक्स यूनिफाइड की सेटअप) का उपयोग कर सकते हैं। मैं इस ब्लॉग पर इसके बारे में चर्चा नहीं करूंगा लेकिन यह देखने के लिए एक अच्छा स्रोत है:MySQL एन्क्रिप्शन रेस्ट - पार्ट 1 (LUKS)। डिस्क एन्क्रिप्शन के बारे में अधिक जानकारी के लिए, यह आर्कलिनक्स पेज "डिस्क एन्क्रिप्शन" शुरू करने का एक अच्छा स्रोत है।

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

निष्कर्ष

रेस्ट और इन-ट्रांजिट में बैकअप डेटा को एन्क्रिप्ट करना PHI, HIPAA, PCI DSS या GDPR के अनुपालन के लिए महत्वपूर्ण घटक हैं, यह सुनिश्चित करने के लिए कि वायर पर प्रसारित या डिस्क पर सहेजे गए संवेदनशील डेटा किसी भी उपयोगकर्ता या एप्लिकेशन द्वारा वैध कुंजी के बिना पढ़ने योग्य नहीं हैं। PCI DSS और HIPAA जैसे कुछ अनुपालन विनियमों के लिए आवश्यक है कि शेष डेटा को पूरे डेटा जीवनचक्र में एन्क्रिप्ट किया जाए।

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL बिनलॉग सर्वर की खोज - रिपल

  2. PHP और MySQL:mysqli_num_rows () पैरामीटर 1 को mysqli_result, बूलियन दिए जाने की अपेक्षा करता है

  3. बड़ी sql फ़ाइल आयात करते समय MySQL सर्वर चला गया है

  4. क्या टेबल फ़ील्ड में हाइफ़न हो सकता है?

  5. MYSQL तालिका में नया कॉलम कैसे जोड़ें?