पीसीआई - भुगतान कार्ड उद्योग जैसे कई सुरक्षा नियमों या मानकों के लिए ऑडिटिंग एक आवश्यकता है, और यहां तक कि आपके डेटाबेस में क्या हो रहा है, यह जानने के लिए अपने डेटा को यथासंभव सुरक्षित रखने का एक अच्छा तरीका है।
एक PostgreSQL डेटाबेस में, मानक लॉगिंग सुविधा द्वारा log_statement =all के साथ मूल विवरण लॉगिंग प्रदान की जा सकती है। यह निगरानी और अन्य बुनियादी उपयोगों के लिए स्वीकार्य है लेकिन ऑडिटिंग के लिए आम तौर पर आवश्यक विवरण का स्तर प्रदान नहीं करता है।
इस ब्लॉग में, हम देखेंगे कि pgAudit एक्सटेंशन क्या है और ClusterControl का उपयोग करके इसे अपने PostgreSQL डेटाबेस में कैसे स्थापित और उपयोग किया जाए।
pgAudit क्या है?
पोस्टग्रेएसक्यूएल ऑडिट एक्सटेंशन (पीजीऑडिट) मानक पोस्टग्रेएसक्यूएल लॉगिंग सुविधा के माध्यम से विस्तृत सत्र और ऑब्जेक्ट ऑडिट लॉगिंग प्रदान करता है।
डेटाबेस के विरुद्ध किए गए सभी कार्यों की सूची होना पर्याप्त नहीं है। लेखापरीक्षक के लिए रुचिकर विशेष विवरण प्राप्त करना भी संभव होना चाहिए। मानक लॉगिंग सुविधा दिखाती है कि उपयोगकर्ता ने क्या अनुरोध किया था, जबकि पीजीऑडिट इस बात पर ध्यान केंद्रित करता है कि डेटाबेस के अनुरोध को पूरा करने के दौरान क्या हुआ था।
ClusterControl के साथ pgAudit को सक्षम करना
इस उदाहरण के लिए, हम मान लेंगे कि आपके पास ClusterControl स्थापित है, और यह आपके PostgreSQL डेटाबेस का प्रबंधन कर रहा है। अन्यथा, आप इस ब्लॉग पोस्ट को ClusterControl का उपयोग करके इसे आसान तरीके से चलाने और चलाने के लिए अनुसरण कर सकते हैं।
ClusterControl UI
ClusterControl 1.8.2 संस्करण से, जिसे हाल ही में लंच किया गया है, आप आसानी से ClusterControl UI से pgAudit प्लगइन को सक्षम कर सकते हैं। इसे सक्षम करने के लिए, ClusterControl पर जाएँ -> अपना PostgreSQL क्लस्टर चुनें -> सुरक्षा टैब -> ऑडिट लॉग -> सक्षम करें।
आपको उन ईवेंट को निर्दिष्ट करना होगा जिनका आप अपने PostgreSQL में ऑडिट करना चाहते हैं समूह। PgAudit को सभी नोड्स पर सक्षम किया जाएगा और इसे स्थापित करने के लिए डेटाबेस सेवा को पुनरारंभ करने की आवश्यकता होगी।
इवेंट ये हो सकते हैं:
-
भूमिका:भूमिकाओं और विशेषाधिकारों से संबंधित कथन:GRANT, REVOKE, CREATE/ALTER/DROP ROLE.पी>
-
DDL:सभी DDL जो ROLE वर्ग में शामिल नहीं हैं।
-
MISC:विविध कमांड, उदा. त्यागें, प्राप्त करें, चेकपॉइंट, वैक्यूम, सेट करें।
-
पढ़ें:जब स्रोत कोई संबंध या क्वेरी हो तो चुनें और कॉपी करें।
-
लिखें:जब गंतव्य एक संबंध हो तो INSERT, UPDATE, DELETE, TRUNCATE, और COPY लिखें।
-
FUNCTION:फंक्शन कॉल और DO ब्लॉक।
-
ALL:उपरोक्त सभी को शामिल करें।
आप ClusterControl गतिविधि अनुभाग में अपने pgAudit संस्थापन की निगरानी कर सकते हैं।
जब यह समाप्त हो जाए, तो आप उसी ClusterControl UI में अपना pgAudit लॉग देख सकते हैं। इसके लिए, ClusterControl पर जाएँ -> अपना PostgreSQL क्लस्टर चुनें -> लॉग्स टैब -> सिस्टम लॉग्स।
यहां, आपको अपने PostgreSQL डेटाबेस के ऑडिट के लिए सभी आवश्यक जानकारी मिलेगी।
ClusterControl CLI
ClusterControl UI से pgAudit को सक्षम करने के बजाय, दूसरा विकल्प कार्य करने के लिए ClusterControl CLI का उपयोग करना है। इसके लिए आप अपने ClusterControl सर्वर से निम्न कमांड चला सकते हैं:
$ s9s cluster --setup-audit-logging --cluster-id=ID
जहां आईडी PostgreSQL क्लस्टर आईडी है।
चलते समय, आप ClusterControl कार्य की जाँच करके स्थिति की निगरानी कर सकते हैं। सबसे पहले, आपको जॉब आईडी की आवश्यकता होगी, जिसे आप जॉब लिस्ट से प्राप्त कर सकते हैं:
$ s9s job --list
1600 48 RUNNING test_dba admins 18:49:36 90% Setup Audit Logging
अब, कार्य विवरण देखें:
$ s9s job --log --job-id=1600
Using SSH credentials from cluster.
Cluster ID is 48.
The username is 'root'.]
10.10.10.139:5432: Configuring audit logging.
10.10.10.139:5432: Installing 'pgaudit15_13'.
10.10.10.139: Installing pgaudit15_13.
10.10.10.139:5432: Setting pgaudit.log to ROLE,DDL,MISC.
Writing file '10.10.10.139:/var/lib/pgsql/13/data/postgresql.conf'.
10.10.10.139:5432: Restarting PostgreSQL node.
10.10.10.139: waiting for server to shut down.... done
server stopped
waiting for server to start....2021-03-24 18:49:43.468 UTC [16098] LOG: pgaudit extension initialized
2021-03-24 18:49:43.505 UTC [16098] LOG: redirecting log output to logging collector process
2021-03-24 18:49:43.505 UTC [16098] HINT: Future log output will appear in directory "log".
done
server started
10.10.10.139:5432: Waiting for node to be accessible.
10.10.10.139:5432: pgaudit 1.5.0 is enabled.
इस क्रिया के लिए एक डेटाबेस सेवा पुनरारंभ की आवश्यकता होगी जिसे ClusterControl द्वारा उसी कार्य में निष्पादित किया जाएगा। इसे पुनः आरंभ करने के बाद, pgAudit एक्सटेंशन सक्षम है और उपयोग के लिए तैयार है:
postgres=# SELECT * FROM pg_available_extensions WHERE name LIKE '%audit%';
name | default_version | installed_version | comment
---------+-----------------+-------------------+---------------------------------
pgaudit | 1.5 | 1.5 | provides auditing functionality
(1 row)
निष्कर्ष
कई सुरक्षा नियमों के लिए ऑडिटिंग आवश्यक है। इसका उपयोग यह जानने के लिए किया जाता है कि आपके डेटाबेस का क्या हुआ, कब हुआ और इसके लिए कौन जिम्मेदार है।
इस ब्लॉग में, हमने pgAudit PostgreSQL एक्सटेंशन के बारे में बात की थी, जो आपके PostgreSQL डेटाबेस के ऑडिट का एक अच्छा तरीका है। हमने आपको यह भी दिखाया कि UI से ClusterControl के साथ और ClusterControl CLI का उपयोग करके इसे जल्दी से कैसे कार्यान्वित किया जाए।
ध्यान रखें कि, कॉन्फ़िगरेशन के आधार पर, pgAudit बड़ी मात्रा में डेटा उत्पन्न कर सकता है। इसलिए, आपको यह निर्धारित करने में सावधानी बरतनी चाहिए कि आपको क्या ऑडिट करने की आवश्यकता है और कितने समय के लिए।