
आपके AWS खाते का Prowler का उपयोग करके एक समय-बिंदु मूल्यांकन बनाने में मदद करने के लिए एक AWS उपकरण।
## स्व-सेवा सुरक्षा मूल्यांकन समाधान (v2.0)<!-- omit from toc -->
साइबर सुरक्षा कई CIOs, CISOs और उनके ग्राहकों के लिए एक बहुत ही महत्वपूर्ण विषय और चिंता का बिंदु बनी हुई है। इन महत्वपूर्ण चिंताओं को पूरा करने के लिए, AWS ने एक प्राथमिक सेवा समूह विकसित किया है जिसका उपयोग ग्राहकों को अपने खातों की सुरक्षा में सहायता के लिए करना चाहिए। [Amazon GuardDuty](https://aws.amazon.com/guardduty/), [AWS Security Hub](https://aws.amazon.com/security-hub/), [AWS Config](https://aws.amazon.com/config/), और [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected/?wa-lens-whitepapers.sort-by=item.additionalFields.sortDate&wa-lens-whitepapers.sort-order=desc&wa-guidance-whitepapers.sort-by=item.additionalFields.sortDate&wa-guidance-whitepapers.sort-order=desc) समीक्षाएँ ग्राहकों को अपने AWS खातों पर एक मजबूत सुरक्षा स्थिति बनाए रखने में मदद करती हैं। जैसे-जैसे अधिक संगठन क्लाउड पर तैनाती करते हैं, विशेष रूप से यदि वे इसे तेज़ी से कर रहे हैं, और उन्होंने अभी तक अनुशंसित AWS सेवाओं को लागू नहीं किया है, तो क्लाउड वातावरण का त्वरित सुरक्षा मूल्यांकन करने की आवश्यकता हो सकती है।
हमने अपने ग्राहकों को एक सुरक्षा मूल्यांकन रिपोर्ट प्रदान करने के लिए एक सस्ता, तैनात करने में आसान, सुरक्षित और तेज़ समाधान विकसित किया है। ये रिपोर्ट ओपन सोर्स प्रोजेक्ट [Prowler](https://github.com/prowler-cloud/prowler) का उपयोग करके उत्पन्न की जाती हैं। Prowler AWS सर्वोत्तम प्रथाओं के आधार पर समय-बिंदु सुरक्षा मूल्यांकन करता है और ग्राहक के तैनात वातावरण में किसी भी संभावित जोखिम क्षेत्रों की शीघ्रता से पहचान करने में मदद कर सकता है। यदि आप इन मूल्यांकनों को निरंतर आधार पर करने में रुचि रखते हैं, तो AWS Security Hub के [Foundational Security Best Practices standard](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp.html) को सक्षम करने की सिफारिश करता है। यदि आप अपने Prowler मूल्यांकन परिणामों को Security Hub के साथ एकीकृत करने में रुचि रखते हैं, तो आप [Prowler Documentation](https://docs.prowler.cloud/en/latest/tutorials/aws/securityhub/) में दिए गए निर्देशों का पालन कर सकते हैं।
>नोट: Prowler एक AWS स्वामित्व वाला समाधान नहीं है। ग्राहकों को इस समाधान को चलाने से पहले स्वतंत्र रूप से Prowler की समीक्षा करनी चाहिए। Prowler से जुड़ी किसी भी निर्भरता को अद्यतित रखा जाना चाहिए। यह समाधान pip पैकेज इंस्टॉलर से Prowler का एक पिन किया गया संस्करण (वर्तमान में 5.41.0) इंस्टॉल करता है, ताकि Prowler के आउटपुट प्रारूप में परिवर्तन बिना चेतावनी के स्कैन को तोड़ न सके। किसी नए रिलीज़ पर जाने के लिए, `2-sat2-codebuild-prowler.yaml` में `pip3 install prowler==` लाइन को संपादित करें।
📕 अधिक गहन चरण-दर-चरण निर्देशों के लिए, [SHIP Workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/3bd6e4da-265a-4c79-ab47-639b7ef23c9d/en-US/20-satv2) में मॉड्यूल 2 पर जाएँ।
## विषय-सूची<!-- omit from toc -->
- [अवलोकन](#overview)
- [पैरामीटर](#parameters)
- [तैनाती](#deployment)
- [एकल खाता स्कैन](#single-account-scan)
- [AWS CloudShell](#aws-cloudshell)
- [समाधान तैनात करें](#deploy-the-solution)
- [AWS Console](#aws-console)
- [समाधान तैनात करें](#deploy-the-solution-1)
- [बहु-खाता स्कैन](#multi-account-scan)
- [AWS CloudShell](#aws-cloudshell-1)
- [चरण 1: पूर्वापेक्षा भूमिका तैनात करें](#step-1-deploy-prerequisite-role)
- [चरण 2: SATv2 समाधान तैनात करें](#step-2-deploy-the-satv2-solution)
- [AWS Console](#aws-console-1)
- [चरण 1: पूर्वापेक्षा भूमिका तैनात करें](#step-1-deploy-prerequisite-role-1)
- [चरण 2: AWS Organizations के लिए प्रतिनिधि प्रशासक सक्षम करें](#step-2-enable-delegated-administrator-for-aws-organizations)
- [चरण 3: SATv2 समाधान तैनात करें](#step-3-deploy-the-satv2-solution)
- [परिणामों की समीक्षा करें](#review-the-results)
- [SATv2 डैशबोर्ड (अनुशंसित)](#satv2-dashboard-recommended)
- [Prowler डैशबोर्ड](#prowler-dashboard)
- [स्कैन प्रकार](#scan-types)
- [बेसिक स्कैन](#basic-scan)
- [इंटरमीडिएट स्कैन](#intermediate-scan)
- [पूर्ण स्कैन](#full-scan)
- [सीक्रेट्स जाँच](#secrets-checks)
- [सूचनाएँ](#notifications)
- [रिपोर्टिंग सारांश](#reporting-summary)
- [Athena तालिका कैसे बनाई जाती है](#how-the-athena-table-is-built)
- [स्कैन इतिहास और डुप्लिकेट](#scan-history-and-duplicates)
- [अक्सर पूछे जाने वाले प्रश्न (FAQ)](#frequently-asked-questions-faq)
- [सफ़ाई](#clean-up)
- [सुरक्षा](#security)
- [लाइसेंस](#license)
## अवलोकन
यह समाधान [AWS CloudFormation](https://aws.amazon.com/cloudformation/) के साथ तैनात किया गया है। तैनात होने पर, एक [AWS CodeBuild](https://aws.amazon.com/codebuild/) प्रोजेक्ट और Prowler द्वारा उत्पन्न रिपोर्टों को संग्रहीत करने के लिए एक [Amazon S3](https://aws.amazon.com/s3/) बकेट बनाया जाता है। फिर AWS CodeBuild प्रोजेक्ट को शुरू करने के लिए एक [AWS Lambda](https://aws.amazon.com/lambda/) फ़ंक्शन का उपयोग किया जाता है।
पैरामीटर (उपयोगकर्ता इनपुट) डिफ़ॉल्ट एकल खाते में एक बेसिक स्कैन चलाएँगे। हालाँकि, आप अधिक व्यापक स्कैन चलाने या कई खातों को स्कैन करने के लिए विभिन्न पैरामीटर चुन सकते हैं। तैनाती प्रक्रिया को पूरा होने में 5 मिनट से कम समय लगता है। समाधान के AWS CloudFormation टेम्पलेट्स इस Github रिपॉजिटरी में समीक्षा के लिए प्रदान किए गए हैं।
एक बार टेम्पलेट तैनात हो जाने के बाद, CodeBuild प्रोजेक्ट चलेगा। डिफ़ॉल्ट मूल्यांकन को पूरा होने में लगभग 5 मिनट लगते हैं। सुरक्षा मूल्यांकन को पूरा करने का समय संसाधनों की संख्या और चयनित स्कैन विकल्पों के आधार पर भिन्न होगा। मूल्यांकन के अंत में रिपोर्ट बनाए गए S3 बकेट में वितरित की जाती हैं।

## पैरामीटर
SATv2 को CloudFormation पैरामीटर अपडेट करके अनुकूलित किया जा सकता है। यह अनुभाग उपलब्ध विकल्पों का सारांश प्रदान करता है और अधिक जानकारी वाले अनुभाग का लिंक देता है।
| पैरामीटर | विवरण | अधिक जानकारी |
| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| ProwlerScanType | निर्दिष्ट करें कि किस प्रकार का स्कैन करना है। भिन्न ProwlerOptions निर्दिष्ट किए बिना full चुनने पर पूर्ण स्कैन होगा। किसी विशिष्ट जाँच को करने के लिए, Full चुनें और ProwlerOptions में -c <check> जोड़ें। | [स्कैन प्रकार](#scan-types) |
| ExcludeSecretsChecks | डिफ़ॉल्ट रूप से true, जो उन Prowler जाँचों को छोड़ देता है जो हार्डकोडेड सीक्रेट्स के लिए संसाधन सामग्री खोजते हैं। उन्हें चलाने के लिए false पर सेट करें। | [सीक्रेट्स जाँच](#secrets-checks) |
| MultiAccountScan | यदि आप अपने संगठन के सभी खातों को स्कैन करना चाहते हैं तो इसे true पर सेट करें। भूमिका प्रदान करने के लिए आपको पूर्वापेक्षा टेम्पलेट तैनात करना होगा, या उपयुक्त अनुमतियों के साथ एक भिन्न ProwlerRole निर्दिष्ट करना होगा। | [बहु-खाता स्कैन](#multi-account-scan) |
| Reporting | यदि आप Prowler रिपोर्टों को एकल csv में सारांशित करना चाहते हैं तो इसे true पर सेट करें। यह कई खातों को स्कैन करते समय सहायक होता है। | [रिपोर्टिंग सारांश](#reporting-summary) |
| EmailAddress | यदि आप मूल्यांकन पूरा होने पर ईमेल प्राप्त करना चाहते हैं तो एक पता निर्दिष्ट करें। | [सूचनाएँ](#notifications) |
| **उन्नत पैरामीटर** |
| ConcurrentAccountScans | बहु-खाता स्कैन के लिए, एक साथ स्कैन किए जाने वाले खातों की संख्या निर्दिष्ट करें। यह कई खातों वाले बड़े संगठनों के लिए उपयोगी है। तीन से अधिक चुनने पर CodeBuild इंस्टेंस का आकार बदल जाता है और अतिरिक्त लागतें आ सकती हैं। |
| CodeBuildTimeout | CodeBuild जॉब के लिए टाइमआउट सेट करें। डिफ़ॉल्ट 300 मिनट (5 घंटे) है। |
| MultiAccountListOverride | स्कैन किए जाने वाले खातों की एक स्पेस-सीमांकित सूची निर्दिष्ट करें। इसे खाली छोड़ने पर आपके संगठन के सभी खातों को स्कैन किया जाएगा। सुनिश्चित करें कि यदि आप विशिष्ट खातों को स्कैन करना चाहते हैं तो आपने ऊपर `MultiAccountScan` पैरामीटर को true पर सेट किया है। यदि आप प्रतिनिधि ListAccount पहुँच प्रदान नहीं कर सकते हैं, तो आप MultiAccountListOverride पैरामीटर प्रदान कर सकते हैं। | [बहु-खाता स्कैन](#multi-account-scan) |
| ProwlerOptions | Prowler के लिए पैरामीटर निर्दिष्ट करें। --role और ARN स्वचालित रूप से आपके द्वारा निर्दिष्ट पैरामीटरों के अंत में जोड़ दिए जाएँगे। इसका उपयोग एकल जाँच निर्दिष्ट करने के लिए भी किया जा सकता है। | [पूर्ण स्कैन](#full-scan) |
| ProwlerRole | वह भूमिका जिसे स्कैन करने के लिए Prowler को ग्रहण करना चाहिए। यदि आप भिन्न अनुमतियों के साथ अपनी स्वयं की भूमिका निर्दिष्ट करना चाहते हैं तो इसे बदलें। |
## तैनाती
आप इस प्रोजेक्ट का उपयोग AWS Organization में कई खातों में, या एकल खाते में Prowler चलाने के लिए कर सकते हैं। हम AWS CloudShell या AWS कंसोल का उपयोग करने के निर्देश प्रदान करते हैं। आरंभ करने के लिए एक विकल्प चुनें।
| तैनाती प्रकार | AWS CloudShell | AWS कंसोल |
| --------------- | ------------------------- | ---------------------- |
| एकल खाता | [लिंक](#aws-cloudshell) | [लिंक](#aws-console) |
| बहु-खाता | [लिंक](#aws-cloudshell-1) | [लिंक](#aws-console-1) |
## एकल खाता स्कैन
एकल खाते के विरुद्ध स्व-सेवा सुरक्षा मूल्यांकन समाधान (SATv2) चलाने के लिए, नीचे दिए गए निर्देशों का पालन करें। आप AWS CLI या AWS कंसोल का उपयोग करना चुन सकते हैं।
### AWS CloudShell
<details>
<summary>चरण दिखाएँ</summary>
#### समाधान तैनात करें
1. अपने AWS खाते में लॉगिन करें।
2. नेविगेशन बार में, [AWS CloudShell](https://console.aws.amazon.com/cloudshell/home) चुनें।
3. CloudFormation टेम्पलेट डाउनलोड करने के लिए, निम्नलिखित कमांड दर्ज करें।
```bash
wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/2-sat2-codebuild-prowler.yaml
```
4. टेम्पलेट को स्टेज करने के लिए एक S3 बकेट बनाने के लिए, निम्नलिखित कमांड दर्ज करें। टेम्पलेट 51,200 बाइट्स से बड़ा है, इसलिए CloudFormation को इसे इनलाइन पास करने के बजाय S3 पर अपलोड करने की आवश्यकता होती है।
```bash
TEMPLATE_BUCKET=sat2-cfn-templates-$(aws sts get-caller-identity --query Account --output text)-$AWS_REGION
aws s3 mb s3://$TEMPLATE_BUCKET --region $AWS_REGION
```
5. CloudFormation टेम्पलेट तैनात करने के लिए, निम्नलिखित कमांड दर्ज करें। `--s3-bucket` विकल्प स्टैक बनाने से पहले टेम्पलेट को बकेट पर अपलोड करता है।
```bash
aws cloudformation deploy --template-file 2-sat2-codebuild-prowler.yaml \
--stack-name sat2 \
--capabilities CAPABILITY_NAMED_IAM \
--s3-bucket $TEMPLATE_BUCKET
```
6. स्टैक बन जाने के बाद, आप स्टेजिंग बकेट को हटा सकते हैं। इसका उपयोग केवल CloudFormation को टेम्पलेट सौंपने के लिए किया जाता है।
```bash
aws s3 rb s3://$TEMPLATE_BUCKET --force
```
</details>
### AWS कंसोल
<details>
<summary>चरण दिखाएँ</summary>
#### समाधान तैनात करें
1. [2-sat2-codebuild-prowler.yaml](https://github.com/awslabs/aws-security-assessment-solution/blob/main/2-sat2-codebuild-prowler.yaml) CloudFormation टेम्पलेट डाउनलोड करें।
2. [AWS CloudFormation कंसोल](https://console.aws.amazon.com/cloudformation) पर जाएँ।
3. नेविगेशन पैन में, **Stacks** चुनें।
4. **Create stack** चुनें।
5. Specify template के अंतर्गत, **Upload a template file** चुनें।
6. चरण 1 में डाउनलोड किया गया **2-sat2-codebuild-prowler.yaml** चुनें।
7. **Next** चुनें।
8. Stack name के लिए, **sat2** दर्ज करें।
9. **Next** चुनें।
10. Configure stack options पृष्ठ पर, **Next** चुनें।
11. Review SAS पृष्ठ पर, **I acknowledge that AWS CloudFormation might create IAM resources.** बॉक्स चुनें और **Submit** चुनें।
</details>
## बहु-खाता स्कैन
स्व-सेवा सुरक्षा मूल्यांकन समाधान (SAT) बहु-खाता स्कैन का भी समर्थन करता है। आपको प्रत्येक खाते में एक पूर्वापेक्षा भूमिका तैनात करनी होगी जिस पर आप स्कैन करना चाहते हैं। कई खातों के लिए SATv2 चलाने के लिए, नीचे दिए गए निर्देशों का पालन करें। आप AWS CLI या AWS कंसोल का उपयोग करना चुन सकते हैं।
ये निर्देश मानते हैं कि आपके पास स्टैक सेट संचालन के लिए पूर्वापेक्षाएँ पहले से हैं। अधिक जानकारी के लिए, [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html) पर जाएँ।
>नोट: StackSets प्रबंधन खाते पर लागू नहीं होते हैं। प्रबंधन खाते का मूल्यांकन करने के लिए, 1-sat2-member-role को CloudFormation Stack के रूप में तैनात करें।
### AWS CloudShell
<details>
<summary>चरण दिखाएँ</summary>
#### चरण 1: पूर्वापेक्षा भूमिका तैनात करें
1. अपने AWS Management खाते में लॉगिन करें।
2. नेविगेशन बार में, [AWS CloudShell](https://console.aws.amazon.com/cloudshell/home) चुनें।
3. पहचानें कि आप Prowler स्कैन किस खाते से चलाएँगे। ग्राहक आमतौर पर एक सुरक्षा टूलिंग खाता, या ऑडिट खाता उपयोग करते हैं। **ProwlerAccountID** पैरामीटर के लिए खाता ID नोट करें।
4. CloudFormation टेम्पलेट डाउनलोड करने के लिए, निम्नलिखित कमांड दर्ज करें।
```bash
wget https://raw.githubusercontent.com/awslabs/aws-security-assessment-solution/main/1-sat2-member-roles.yaml
```
5. CloudFormation StackSets के माध्यम से CloudFormation टेम्पलेट तैनात करें। निम्नलिखित पैरामीटर अपडेट करें:
- **\<aws-account-id\>** को उस खाता ID से बदलें जिससे आप Prowler चलाएँगे।
- **\<region\>** को उस Region से बदलें जिसमें आप टेम्पलेट तैनात करना चाहते हैं।
```bash
aws cloudformation create-stack-set --template-body file://1-sat2-member-roles.yaml \
--stack-set-name sat2-member-roles \
--permission-model SERVICE_MANAGED \
--auto-deployment Enabled=true,RetainStacksOnAccountRemoval=false \
--capabilities CAPABILITY_NAMED_IAM \
--parameters ParameterKey=ProwlerAccountID,ParameterValue=<aws-account-id> \
--region <region>
```
6. अपने संगठन के प्रत्येक खाते के लिए स्टैक इंस्टेंस बनाने के लिए निम्नलिखित कमांड का उपयोग करें। आप एक विशिष्ट OU, या रूट OU को लक्षित कर सकते हैं। निम्नलिखित पैरामीटर अपडेट करें:
- **\<root-ou\>** को [organization root ID](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_root) से बदलें।
- **\<region\>** को उस Region से बदलें जिसमें आप टेम्पलेट तैनात करना चाहते हैं।
```bash
aws cloudformation create-stack-instances --stack-set-name sat2-member-roles \
--deployment-targets OrganizationalUnitIds='["<root-ou>"]' \
--regions '["<region>"]' \
--operation-preferences FailureTolerancePercentage=100,MaxConcurrentPercentage=100 \
--region <region>
```
7. निर्धारित करें कि आपके पास प्रतिनिधि एडमिन है या आपके Prowler खाते के लिए पहले से मौजूद संसाधन नीति है। केवल एक विकल्प की आवश्यकता है और संसाधन नीति को प्रोत्साहित किया जाता है क्योंकि यह अधिक सूक्ष्म है।
>नोट: संसाधन नीतियाँ GovCloud में उपलब्ध नहीं हैं, इसलिए आपको प्रतिनिधि एडमिन का उपयोग करना होगा।
7a. आपके Prowler खाते में पहले से ही एक प्रतिनिधिमंडल हो सकता है। जाँचने के लिए आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
```bash
aws organizations list-delegated-administrators
```
7b. आपके Prowler खाते में पहले से ही एक संसाधन नीति हो सकती है। जाँचने के लिए आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
```bash
aws organizations describe-resource-policy
```
8. यदि आपके पास प्रतिनिधि एडमिन या संसाधन नीति नहीं है तो आप उपयुक्त पहुँच जोड़ने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं।
>नोट: यदि आप प्रतिनिधि ListAccount पहुँच प्रदान नहीं कर सकते हैं, तो आप `2-sat2-codebuild-prowler template` में MultiAccountListOverride पैरामीटर प्रदान कर सकते हैं।
>नोट: यदि आप GovCloud का उपयोग कर रहे हैं, तो प्रतिनिधि एडमिन बनाने के लिए चरण 8a का उपयोग करें। यदि आप एक वाणिज्यिक क्षेत्र का उपयोग कर रहे हैं, तो ListAccounts को न्यूनतम विशेषाधिकार पहुँच प्रदान करने के लिए चरण 8b का उपयोग करें।
8a. यदि आपके पास पहले से एक एडमिन नहीं है तो उसे प्रतिनिधि बनाने के लिए निम्नलिखित कमांड का उपयोग करें। **\<aws-account-id\>** को उस खाता ID से बदलें जिससे आप Prowler चलाएँगे।
```bash
aws organizations register-delegated-administrator <aws-account-id>
```
8b. संसाधन नीति जोड़ने के लिए निम्नलिखित कमांड का उपयोग करें।
- **\<aws-account-id\>** को उस खाता ID से बदलें जिससे आप Prowler चलाएँगे।
```bash
aws organizations put-resource-policy --content \
'{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<aws-account-id>:root"
},
"Action": [
"organizations:ListAccounts",
"organizations:DescribeAccount",
"organizations:ListTagsForResource",
"organizations:ListParents",
"organizations:DescribeOrganizationalUnit"
],
"Resource": "*"
}
]
}'
```
>नोट: `ListParents` और `DescribeOrganizationalUnit` वे हैं जो निष्कर्षों में `account_ou_uid` और `account_ou_name` कॉलम भरते हैं। उन्हें छोड़ दें और बाकी स्कैन अभी भी काम करता है, लेकिन वे दो कॉलम खाली वापस आते हैं।
#### चरण 2: SATv2 समाधान तैनात करें
---
[Read more](https://github.com/awslabs/aws-security-assessment-solution)