
AWS पहचान और अभिगम प्रबंधन विज़ुअलाइज़र और विसंगति खोजक
यह रिपॉजिटरी सक्रिय विकास के अंतर्गत नहीं है। हालांकि, मैं PR स्वीकार करने के लिए तैयार हूँ। Aaia अब भी काम करता है क्योंकि इसके द्वारा डेटा संग्रह के लिए उपयोग किए जाने वाले AWS API में कोई महत्वपूर्ण बदलाव नहीं हुआ है।
(A)n(a)lysis of (I)dentity and (A)ccess
नोट: नाम तय होने के बाद विस्तार बनाया गया :P
Aaia (उच्चारण यहाँ दिखाए अनुसार) Neo4j की मदद से AWS IAM और Organizations को ग्राफ प्रारूप में विज़ुअलाइज़ करने में मदद करता है। इससे आउटलायर्स की पहचान आसानी से हो जाती है। चूंकि यह neo4j पर आधारित है, इसलिए कोई भी cypher क्वेरी का उपयोग करके ग्राफ से विसंगतियों का पता लगा सकता है।
Aaia neo4j डेटाबेस से प्रोग्रामेटिक रूप से डेटा प्राप्त करने और इसे कस्टम तरीके से संसाधित करने के लिए मॉड्यूल का भी समर्थन करता है। यह अधिकतर उपयोगी है यदि कोई जटिल तुलना या तर्क लागू किया जाना है जो अन्यथा cypher क्वेरी के माध्यम से आसान नहीं होगा।
Aaia मूल रूप से AWS IAM में विशेषाधिकार वृद्धि संभावनाओं को गिनने और खामियां खोजने का एक उपकरण होने का इरादा था। यह @JohnLaTwC के उद्धरण से प्रेरित था:
"रक्षक सूचियों में सोचते हैं। हमलावर ग्राफ में सोचते हैं। जब तक यह सच है, हमलावर जीतते हैं।"
Aaia का तमिल में अर्थ दादी है। सामान्यतः, Aaia परिवार के बारे में सब कुछ जानती है। वह आसानी से बता सकती है कि कौन किससे संबंधित है; और कैसे; और एक पल में आपको संबंध बता सकती है। वह एक जीवित ग्राफ डेटाबेस है। :P
चूंकि "Aaia" (यह उपकरण) भी लगभग ऐसा ही करता है, इसलिए यह नाम रखा गया।
i. Docker Runtime स्थापित करें
स्थापना के बारे में आधिकारिक दस्तावेज़ यहाँ देखें।
ii. निम्नलिखित docker कमांड चलाएँ
docker run -p 7687:7687 -p 7474:7474 -v `pwd`/neo4j/data:/data -v `pwd`/neo4j/logs:/logs -e NEO4J_AUTH=neo4j/test neo4j:3.5.17
नोट : उपरोक्त कमांड neo4j डेटा को आपकी डिस्क में संग्रहीत करता है। हालाँकि, अपनी आवश्यकताओं के अनुसार संशोधित करने और अपनी पसंद के अनुसार auth बदलने के लिए स्वतंत्र महसूस करें। यहाँ दिए गए क्रेडेंशियल्स को Aaia.conf फ़ाइल में भी कॉन्फ़िगर किया जाना चाहिए।
निर्देश यहाँ
Aaia.conf फ़ाइल में उपयोगकर्ता नाम, पासवर्ड और bolt कनेक्शन URI सेट करें। Aaia.conf फ़ाइल में पहले से ही एक उदाहरण प्रारूप दिया गया है।
नोट: Aaia का परीक्षण neo4j v 3.5.17 के साथ किया गया है। यह पुराने संस्करणों के साथ काम कर सकता है। Neo4j ने v 4.0 के बाद कुछ नए बदलाव पेश किए हैं जो Aaia के वर्तमान कोडबेस के साथ संगत नहीं पाए गए हैं।
apt-get install awscli jq
yum install awscli jq
ये पैकेज Aaia_aws_collector.sh स्क्रिप्ट के लिए आवश्यक हैं। सुनिश्चित करें कि ये पैकेज उस आधार सिस्टम में मौजूद हैं जहाँ से कलेक्टर स्क्रिप्ट चलाई जा रही है।
git clone https://github.com/rams3sh/Aaia
cd Aaia/
python3 -m venv env
source env/bin/activate
नोट: Aaia pyjq लाइब्रेरी पर निर्भर करता है जो वर्तमान में विंडोज पर स्थिर नहीं है। इसलिए Aaia विंडोज OS के लिए समर्थित नहीं है।
python -m pip install -r requirements.txt
कलेक्टर स्क्रिप्ट को AWS से प्रासंगिक डेटा एकत्र करने के लिए Aaia को निम्नलिखित AWS अनुमतियों की आवश्यकता होगी
iam:GenerateCredentialReport
iam:GetCredentialReport
iam:GetAccountAuthorizationDetails
iam:ListUsers
iam:GetUser
iam:ListGroups
iam:ListRoles
iam:GetRole
iam:GetPolicy
iam:GetAccountPasswordPolicy
iam:GetAccountSummary
iam:ListAccountAliases
organizations:ListAccountsForParent
organizations:ListOrganizationalUnitsForParent
organizations:DescribeOrganization
organizations:ListRoots
organizations:ListAccounts
organizations:ListTagsForResource
organizations:ListPolicies
organizations:ListTargetsForPolicy
organizations:DescribePolicy
organizations:ListAWSServiceAccessForOrganization
"Organizations" से संबंधित अनुमतियों को छोड़ा जा सकता है। हालाँकि, उपरोक्त सभी "IAM" संबंधित अनुमतियाँ आवश्यक हैं।
सुनिश्चित करें कि अनुमतियाँ उस उपयोगकर्ता/भूमिका/किसी भी AWS प्रिंसिपल के लिए उपलब्ध हैं जिसका उपयोग कलेक्टर स्क्रिप्ट के लिए डेटा संग्रह हेतु किया जाएगा।
सुनिश्चित करें कि आपके पास aws क्रेडेंशियल कॉन्फ़िगर हैं। सहायता के लिए यह देखें।
एक बार क्रेडेंशियल सेट हो जाने पर।
चलाएँ:-
./Aaia_aws_collector.sh <profile_name>
सुनिश्चित करें कि डेटा संग्रह के लिए उपयोग किए जा रहे aws प्रोफ़ाइल का आउटपुट प्रारूप json पर सेट है क्योंकि Aaia एकत्रित डेटा को json प्रारूप में होने की अपेक्षा करता है।
यदि किसी अन्य इंस्टेंस से डेटा एकत्र करने की आवश्यकता हो; "Aaia_aws_collector.sh" फ़ाइल को रिमोट इंस्टेंस पर कॉपी करें, चलाएँ और उत्पन्न "offline_data" फ़ोल्डर को उस इंस्टेंस में Aaia पथ पर कॉपी करें जहाँ Aaia सेटअप है और आगे के चरणों के साथ जारी रखें। यह परामर्श या क्लाइंट ऑडिट के मामलों में सहायक होगा।
python Aaia.py -n <profile_name> -a load_data
-n "all" मान का समर्थन करता है जिसका अर्थ है offline_data फ़ोल्डर में एकत्रित और उपस्थित सभी डेटा लोड करें।
कृपया सुनिश्चित करें कि क्रेडेंशियल फ़ाइल में आपके पास "all" के रूप में प्रोफ़ाइल नहीं है क्योंकि यह तर्क के साथ विरोध कर सकता है। :P
अब हम Aaia का उपयोग करने के लिए तैयार हैं।
अभी तक, एक नमूना मॉड्यूल एक स्केलेटन उदाहरण के रूप में दिया गया है। कोई इसे कस्टम मॉड्यूल बनाने के लिए संदर्भ के रूप में मान सकता है।
python Aaia.py -n all -m iam_sample_audit
Aaia विभिन्न अद्भुत ओपन सोर्स प्रोजेक्ट्स से प्रभावित और प्रेरित है। बहुत-बहुत धन्यवाद:-
एक नकली AWS खाते के IAM का नमूना विज़ुअल
AWS IAM में उपयोगकर्ता के सभी संबंध खोजने के लिए cypher क्वेरी के परिणाम का नमूना विज़ुअल