
Cloudsplaining एक AWS IAM सुरक्षा मूल्यांकन उपकरण है जो न्यूनतम विशेषाधिकार के उल्लंघनों की पहचान करता है और जोखिम-प्राथमिकता वाली रिपोर्ट उत्पन्न करता है।
Cloudsplaining एक AWS IAM सुरक्षा मूल्यांकन उपकरण है जो न्यूनतम विशेषाधिकार के उल्लंघनों की पहचान करता है और जोखिम-प्राथमिकता वाली HTML रिपोर्ट तैयार करता है।
पूर्ण दस्तावेज़ीकरण के लिए, कृपया ReadTheDocs पर प्रोजेक्ट पर जाएँ।
Cloudsplaining AWS IAM नीतियों में न्यूनतम विशेषाधिकार के उल्लंघनों की पहचान करता है और एक सुंदर HTML रिपोर्ट तैयार करता है। यह आपके AWS खाते में सभी नीतियों, कई AWS खातों में, या एकल नीति फ़ाइल को स्कैन कर सकता है।
यह उन IAM क्रियाओं की पहचान करने में मदद करता है जो संसाधन बाधाओं का लाभ नहीं उठाती हैं। यह IAM नीतियों को चिह्नित करके सुधार प्रक्रिया को प्राथमिकता देने में भी मदद करता है जो संबंधित AWS खाते के लिए निम्नलिखित जोखिम प्रस्तुत करती हैं बिना किसी प्रतिबंध के:
s3:GetObject, ssm:GetParameter, secretsmanager:GetSecretValue)Cloudsplaining उन IAM भूमिकाओं की भी पहचान करता है जिन्हें AWS कम्प्यूट सेवाओं (जैसे EC2, ECS, EKS, या Lambda) द्वारा मान लिया जा सकता है, क्योंकि वे उपयोगकर्ता-परिभाषित भूमिकाओं की तुलना में अधिक जोखिम प्रस्तुत कर सकती हैं - विशेष रूप से यदि AWS कम्प्यूट सेवा किसी ऐसे इंस्टेंस पर है जो प्रत्यक्ष या अप्रत्यक्ष रूप से इंटरनेट से जुड़ा है। कुछ परिदृश्यों में इन भूमिकाओं को चिह्नित करना पेनिट्रेशन टेस्टर्स (या हमलावरों) के लिए विशेष रूप से उपयोगी है। उदाहरण के लिए, यदि कोई हमलावर ssm:SendCommand निष्पादित करने के विशेषाधिकार प्राप्त करता है और SSM एजेंट स्थापित विशेषाधिकारित EC2 इंस्टेंस हैं, तो वे प्रभावी रूप से उन EC2 इंस्टेंस के विशेषाधिकार प्राप्त कर सकते हैं। AWS Systems Manager Agent के माध्यम से रिमोट कोड निष्पादन पहले से ही एक ज्ञात वृद्धि/शोषण पथ था, लेकिन Cloudsplaining इन मामलों की पहचान करने की प्रक्रिया को आसान बना सकता है। कुछ उदाहरणों के लिए नमूना रिपोर्ट देखें।
आप विभिन्न कारणों से झूठी सकारात्मक परिणामों को फ़िल्टर करने के लिए एक कस्टम बहिष्करण फ़ाइल भी निर्दिष्ट कर सकते हैं। उदाहरण के लिए, उपयोगकर्ता नीतियाँ डिज़ाइन द्वारा अनुमतिपूर्ण होती हैं, जबकि सिस्टम भूमिकाएँ आम तौर पर अधिक प्रतिबंधात्मक होती हैं। आपके पास ऐसे बहिष्करण भी हो सकते हैं जो आपके संगठन की बहु-खाता रणनीति या AWS एप्लिकेशन आर्किटेक्चर के लिए विशिष्ट हों।
Policy Sentry ने हमें बताया कि अंततः एक स्केलेबल तरीके से IAM नीतियों को न्यूनतम विशेषाधिकार के अनुसार लिखना संभव है। Policy Sentry जारी होने से पहले, IAM नीति दस्तावेज़ों को ढूँढना बहुत आसान था जिनमें संसाधन बाधाओं का अभाव था। नीचे दी गई नीति पर विचार करें, जो IAM प्रिंसिपल (एक भूमिका या उपयोगकर्ता) को AWS खाते में किसी भी S3 बकेट पर s3:PutObject चलाने की अनुमति देती है:```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "*"
}
]
}
यह बुरा है। आदर्श रूप में, पहुंच को resource ARNs के अनुसार प्रतिबंधित किया जाना चाहिए, जैसे कि:```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
Policy Sentry इसे करना वास्तव में बहुत आसान बनाता है. एक बार जब Infrastructure as Code डेवलपर्स या AWS प्रशासक इस उपकरण से परिचित हो जाते हैं (जो कि उपयोग करना काफी आसान है), हमने पाया है कि इसका उपयोग बहुत जल्दी शुरू हो जाता है। हालाँकि, यदि आप AWS का उपयोग कर रहे हैं, तो संभवतः IAM नीतियों का एक बहुत बड़ा बैकलॉग है जिसे उन्नत करने की आवश्यकता है। यदि आपके पास सैकड़ों AWS खाते हैं और प्रत्येक में दर्जनों नीतियाँ हैं, तो हम प्रोग्रामेटिक रूप से उन नीतियों की पहचान करके AWS खातों को कैसे सुरक्षित कर सकते हैं जिन्हें ठीक किया जाना चाहिए?
यही कारण है कि हमने Cloudsplaining बनाया।
Cloudsplaining AWS IAM नीतियों में न्यूनतम विशेषाधिकार के उल्लंघनों की पहचान करता है और एक सुंदर HTML रिपोर्ट तैयार करता है। यह आपके AWS खाते में सभी नीतियों, एकाधिक AWS खातों में, या एकल नीति फ़ाइल को स्कैन कर सकता है।
brew tap salesforce/cloudsplaining https://github.com/salesforce/cloudsplaining brew install cloudsplaining
#### Pip3```bash
pip3 install --user cloudsplaining
cloudsplaining को cloudsplaining --help चलाकर निष्पादित कर सकते हैं।Bash पूर्णता सक्षम करने के लिए, इसे अपने .bashrc में डालें:```bash
eval "$(_CLOUDSPLAINING_COMPLETE=bash_source cloudsplaining)"
ZSH पूर्णता सक्षम करने के लिए, अपने .zshrc में यह डालें:```bash
eval "$(_CLOUDSPLAINING_COMPLETE=zsh_source cloudsplaining)"
आप संपूर्ण खाते के बजाय जोखिमों की पहचान करने के लिए एकल नीति फ़ाइल को भी स्कैन कर सकते हैं।```bash cloudsplaining scan-policy-file --input-file examples/policies/explicit-actions.json
आउटपुट में एक फ़ाइंडिंग विवरण और उन IAM क्रियाओं की सूची शामिल होगी जो resource constraints का लाभ नहीं उठाती हैं।
आउटपुट निम्नलिखित जैसा दिखेगा:```console
Issue found: Data Exfiltration
Actions: s3:GetObject
Issue found: Resource Exposure
Actions: ecr:DeleteRepositoryPolicy, ecr:SetRepositoryPolicy, s3:BypassGovernanceRetention, s3:DeleteAccessPointPolicy, s3:DeleteBucketPolicy, s3:ObjectOwnerOverrideToBucketOwner, s3:PutAccessPointPolicy, s3:PutAccountPublicAccessBlock, s3:PutBucketAcl, s3:PutBucketPolicy, s3:PutBucketPublicAccessBlock, s3:PutObjectAcl, s3:PutObjectVersionAcl