Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation

This commit is contained in:
Translator
2025-02-20 00:40:21 +00:00
parent bee3a49308
commit 73c49b50f4
9 changed files with 269 additions and 167 deletions

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> \
@@ -35,9 +35,19 @@ az mysql flexible-server update \
```bash
az mysql flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
```
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.DBforMySQL/flexibleServers/backups/read`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
इन अनुमतियों के साथ आप एक बैकअप से MySQL सर्वर को पुनर्स्थापित कर सकते हैं:
```bash
az mysql flexible-server restore \
--resource-group <resource_group_name> \
--name <restore_server_name> \
--source-server <server_name> \
--yes
```
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read`
इस अनुमति के साथ, आप MySQL Flexible Server के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग स्वयं या किसी अन्य खाते को AD प्रशासक के रूप में सेट करके किया जा सकता है, ज MySQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्रदान करता है। यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
इस अनुमति के साथ, आप MySQL फ्लेक्सिबल सर्वर के लिए Azure Active Directory (AD) प्रशासकों को कॉन्फ़िगर कर सकते हैं। इसका दुरुपयोग करके किसी को या किसी अन्य खाते को AD प्रशासक के रूप में सेट किया जा सकता है, जिससे MySQL सर्वर पर पूर्ण प्रशासनिक नियंत्रण प्राप्त होता है। यह महत्वपूर्ण है कि फ्लेक्सिबल-सर्वर में उपयोगकर्ता असाइन किए गए प्रबंधित पहचानें हों।
```bash
az mysql flexible-server ad-admin create \
--resource-group <ResourceGroupName> \

View File

@@ -24,22 +24,68 @@ az postgres flexible-server create \
--tier <PricingTier> \
--version <PostgreSQLVersion>
```
उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी ह जब PostgreSQL प्रमाणीकरण सक्षम हो।
उदाहरण के लिए, ये अनुमतियाँ PostgreSQL पासवर्ड बदलने की अनुमति देती हैं, जो कि निश्चित रूप से तब उपयोगी होती हैं जब PostgreSQL प्रमाणीकरण सक्षम हो।
```bash
az postgres flexible-server update \
--resource-group <resource_group_name> \
--name <server_name> \
--admin-password <password_to_update>
```
इसके अलावा, अनुमतियों के साथ आप असाइन आइडेंटिटी को सक्षम कर सकते हैं, जो सर्वर से जुड़े प्रबंधित पहचान के साथ ऑपरेट करता है। यहाँ आप सभी एक्सटेंशन पा सकते हैं जो Azure PostgreSQL फ्लेक्सिबल सर्वर का समर्थन करते हैं [https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions](https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions)। इन एक्सटेंशनों का उपयोग करने के लिए कुछ सर्वर पैरामीटर (azure.extensions) को बदलने की आवश्यकता है। उदाहरण के लिए, यहाँ एक प्रबंधित पहचान के साथ जो Azure Storage तक पहुँच सकता है:
पहले हम पैरामीटर बदलते हैं और सुनिश्चित करते हैं कि असाइन की गई पहचान सक्षम है:
```bash
az postgres flexible-server parameter set \
--resource-group <YourResourceGroupName> \
--server-name <YourServerName> \
--name azure.extensions \
--value "AZURE_STORAGE"
az postgres flexible-server identity update \
--resource-group <YourResourceGroupName> \
--server-name <YourServerName> \
--system-assigned Enabled
```
```sql
CREATE EXTENSION IF NOT EXISTS azure_storage;
CREATE EXTERNAL DATA SOURCE ManagedIdentity
SELECT azure_storage.account_add('<storage-account>', '<storage-key>');
SELECT *
FROM azure_storage.blob_get(
'<storage-account>',
'<container>',
'message.txt',
decoder := 'text'
) AS t(content text)
LIMIT 1;
```
इसके अलावा, यदि आप किसी गैर-निजी एंडपॉइंट से एक्सेस करना चाहते हैं तो सार्वजनिक एक्सेस सक्षम होना आवश्यक है, इसे सक्षम करने के लिए:
```bash
az postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
```
### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.DBforPostgreSQL/flexibleServers/backups/read`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
इन अनुमतियों के साथ आप एक बैकअप से सर्वर को पुनर्स्थापित कर सकते हैं:
```bash
az postgres flexible-server restore \
--resource-group <RESOURCE_GROUP> \
--name <NEW_SERVER_NAME> \
--source-server <SOURCE_SERVER_NAME> \
--restore-time "<ISO8601_TIMESTAMP>" \
--yes
```
### `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
az postgres flexible-server ad-admin create \
--resource-group <ResourceGroupName> \

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 \
@@ -35,7 +35,7 @@ az sql server update \
--resource-group <resource-group> \
--enable-public-network true
```
इसके अलावा, अनुमतियों के साथ आप असाइन पहचान सक्षम कर सकते हैं, जो सर्वर से जुड़े प्रबंधित पहचान के साथ कार्य कर सकता है। उदाहरण के लिए, यहाँ एक प्रबंधित पहचान के साथ जो Azure Storage तक पहुँच सकत है:
इसके अलावा, अनुमतियों के साथ आप असाइन पहचान सक्षम कर सकते हैं, जो सर्वर से जुड़े प्रबंधित पहचान के साथ कार्य करता है। उदाहरण के लिए, यहाँ एक प्रबंधित पहचान है जो Azure Storage तक पहुँच सकत है:
```bash
az sql server update \
--name <server-name> \
@@ -44,6 +44,11 @@ az sql server update \
```
```sql
CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential]
WITH IDENTITY = 'Managed Identity';
GO
CREATE EXTERNAL DATA SOURCE ManagedIdentity
WITH (
TYPE = BLOB_STORAGE,
@@ -62,7 +67,7 @@ GO
```
### `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 \
@@ -99,7 +104,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> \
@@ -121,4 +126,20 @@ az sql server azure-ad-only-auth disable \
--server <server_name> \
--resource-group <resource_group_name>
```
### Microsoft.Sql/servers/databases/dataMaskingPolicies/write
अपने SQL डेटाबेस पर डेटा मास्किंग नीतियों को संशोधित (या अक्षम) करें।
```bash
az rest --method put \
--uri "https://management.azure.com/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.Sql/servers/<your-server>/databases/<your-database>/dataMaskingPolicies/Default?api-version=2021-11-01" \
--body '{
"properties": {
"dataMaskingState": "Disable"
}
}'
```
### Remove Row Level Security
यदि आप व्यवस्थापक के रूप में लॉगिन करते हैं, तो आप स्वयं और अन्य उपयोगकर्ताओं की नीतियों को हटा सकते हैं।
```sql
DROP SECURITY POLICY [Name_of_policy];
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -6,21 +6,29 @@
**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। खाते के माध्यम से, आप वैश्विक पुनरुत्पादन को कॉन्फ़िगर कर सकते हैं ताकि डेटा कई क्षेत्रों में कम-लेटेंसी पहुंच के लिए उपलब्ध हो। इसके अतिरिक्त, आप प्रदर्शन और डेटा सटीकता के बीच संतुलन बनाने के लिए एक स्थिरता स्तर चुन सकते है, जिसमें Strong से लेकर Eventual consistency तक के विकल्प होते हैं।
CosmosDB का एक प्रमुख पहलू Azure Cosmos Account है। **Azure Cosmos Account** डेटाबेस के लिए प्रवेश बिंदु के रूप में कार्य करता है। खाता वैश्विक वितरण, स्थिरता स्तर, और उपयोग किए जाने वाले विशिष्ट API जैसे प्रमुख सेटिंग्स को निर्धारित करता है, जैसे NoSQL। खाते के माध्यम से, आप वैश्विक पुनरुत्पादन को कॉन्फ़िगर कर सकते हैं ताकि डेटा कई क्षेत्रों में कम-लेटेंसी पहुंच के लिए उपलब्ध हो। इसके अतिरिक्त, आप एक स्थिरता स्तर चुन सकते हैं जो प्रदर्शन और डेटा सटीकता के बीच संतुलन बनाता है, जिसमें Strong से लेकर Eventual consistency तक के विकल्प होते हैं।
### NoSQL (sql)
Azure Cosmos DB **उपयोगकर्ता-निर्धारित पहचान** और **सिस्टम-निर्धारित प्रबंधित पहचान** का समर्थन करता है जो स्वचालित रूप से बनाए जाते हैं और संसाधन के जीवनचक्र से जुड़े होते हैं, जिससे अन्य सेवाओं से कनेक्ट करते समय सुरक्षित, टोकन-आधारित प्रमाणीकरण की अनुमति मिलती है—जब तक कि उन सेवाओं के पास उपयुक्त भूमिका असाइनमेंट न हो। हालाँकि, Cosmos DB में Azure Blob Storage जैसी बाहरी डेटा स्रोतों को सीधे क्वेरी करने के लिए कोई अंतर्निहित तंत्र नहीं है। SQL Server की बाहरी तालिका सुविधाओं के विपरीत, Cosmos DB को इसके कंटेनरों में डेटा को Azure Data Factory, Data Migration Tool, या कस्टम स्क्रिप्ट जैसे बाहरी उपकरणों का उपयोग करके इन्गेस्ट करने की आवश्यकता होती है, इससे पहले कि इसे इसके मूल क्वेरी क्षमताओं के साथ क्वेरी किया जा सके।
### NoSQL
Azure Cosmos DB NoSQL API एक दस्तावेज़-आधारित API है जो JSON को अपने डेटा प्रारूप के रूप में उपयोग करता है। यह JSON वस्तुओं को क्वेरी करने के लिए SQL-जैसी क्वेरी सिंटैक्स प्रदान करता है, जिससे यह संरचित और अर्ध-संरचित डेटा के साथ काम करने के लिए उपयुक्त बनाता है। सेवा का एंडपॉइंट है:
```bash
https://<Account-Name>.documents.azure.com:443/
```
#### Databases
एक खाते के भीतर, आप एक या एक से अधिक डेटाबेस बना सकते हैं, जो कंटेनरों के तार्किक समूह के रूप में कार्य करते हैं। एक डेटाबेस संसाधन प्रबंधन और उपयोगकर्ता अनुमतियों के लिए एक सीमा के रूप में कार्य करता है। डेटाबेस या तो अपने कंटेनरों के बीच प्रावधानित थ्रूपुट साझा कर सकते हैं या व्यक्तिगत कंटेनरों को समर्पित थ्रूपुट आवंटित कर सकते हैं।
एक खाते के भीतर, आप एक या अधिक डेटाबेस बना सकते हैं, जो कंटेनरों के तार्किक समूह के रूप में कार्य करते हैं। एक डेटाबेस संसाधन प्रबंधन और उपयोगकर्ता अनुमतियों के लिए एक सीमा के रूप में कार्य करता है। डेटाबेस या तो अपने कंटेनरों के बीच प्रावधानित थ्रूपुट साझा कर सकते हैं या व्यक्तिगत कंटेनरों को समर्पित थ्रूपुट आवंटित कर सकते हैं।
#### Containers
डेटा भंडारण की मुख्य इकाई कंटेनर है, जो JSON दस्तावेज़ों को रखता है और कुशल क्वेरी के लिए स्वचालित रूप से अनुक्रमित होता है। कंटेनर लचीले ढंग से स्केलेबल होते हैं और विभाजनों में वितरित होते हैं, जो उपयोगकर्ता-परिभाषित विभाजन कुंजी द्वारा निर्धारित होते हैं। विभाजन कुंजी अनुकूल प्रदर्शन और समान डेटा वितरण सुनिश्चित करने के लिए महत्वपूर्ण है। उदाहरण के लिए, एक कंटेनर ग्राहक डेटा को स्टोर कर सकता है, जिसमें "customerId" विभाजन कुंजी के रूप में हो सकता है।
#### Key Features
**Global Distribution**: क्रॉस-क्षेत्र प्रतिकृति के लिए Geo-Redundancy सक्षम या अक्षम करें और बेहतर उपलब्धता के लिए Multi-region Writes।
**Networking & Security**: कनेक्टिविटी के लिए सार्वजनिक (सभी/चुनिंदा नेटवर्क) या निजी एंडपॉइंट के बीच। TLS 1.2 एन्क्रिप्शन के साथ सुरक्षित कनेक्शन। संसाधनों तक नियंत्रित पहुंच के लिए CORS (Cross-Origin Resource Sharing) का समर्थन करता है।
**Backup & Recovery**: समय-समय पर, निरंतर (7 दिन), या निरंतर (30 दिन) बैकअप नीतियों से कॉन्फ़िगर करने योग्य अंतराल और संरक्षण के साथ।
**Data Encryption**: एन्क्रिप्शन के लिए डिफ़ॉल्ट सेवा-प्रबंधित कुंजी या ग्राहक-प्रबंधित कुंजी (CMK) (CMK चयन अपरिवर्तनीय है)।
#### Enumeration
{{#tabs }}
@@ -42,21 +50,21 @@ az cosmosdb identity show --resource-group <ResourceGroupName> --name <AccountNa
# CosmoDB (NoSQL)
## List the SQL databases under an Azure Cosmos DB account.
## List the NoSQL databases under an Azure Cosmos DB account.
az cosmosdb sql database list --resource-group <ResourceGroupName> --account-name <AccountName>
## List the SQL containers under an Azure Cosmos DB SQL database.
## List the NoSQL containers under an Azure Cosmos DB NoSQL database.
az cosmosdb sql container list --account-name <AccountName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
## List all SQL role assignments under an Azure Cosmos DB
## List all NoSQL role assignments under an Azure Cosmos DB
az cosmosdb sql role assignment list --resource-group <ResourceGroupName> --account-name <AccountName>
## List all SQL role definitions under an Azure Cosmos DB
## List all NoSQL role definitions under an Azure Cosmos DB
az cosmosdb sql role definition list --resource-group <ResourceGroupName> --account-name <AccountName>
## List the SQL stored procedures under an Azure Cosmos DB
## List the NoSQL stored procedures under an Azure Cosmos DB
az cosmosdb sql stored-procedure list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
## List the SQL triggers under an Azure Cosmos DB SQL container.
## List the NoSQL triggers under an Azure Cosmos DB NoSQL container.
az cosmosdb sql trigger list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
## List the SQL user defined functions under an Azure Cosmos DB SQL container
## List the NoSQL user defined functions under an Azure Cosmos DB NoSQL container
az cosmosdb sql user-defined-function list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
```
@@ -149,7 +157,7 @@ print("All items in the container:")
for item in all_items:
print(item)
```
एक और तरीका कनेक्शन स्थापित करने का है **DefaultAzureCredential()** का उपयोग करना। बस उस खाते से लॉगिन (az login) करना है जिसके पास अनुमतियाँ हैं और इसे निष्पादित करना है। इस मामले में एक भूमिका असाइनमेंट किया जाना चाहिए, आवश्यक अनुमतियाँ देने के लिए (अधिक जानकारी के लिए देखें)
एक और तरीका कनेक्शन स्थापित करने का है **DefaultAzureCredential()** का उपयोग करना। बस उस खाते से लॉगिन करना है (az login) जिसके पास अनुमतियाँ हैं और इसे निष्पादित करना है। इस मामले में एक भूमिका असाइनमेंट किया जाना चाहिए, आवश्यक अनुमतियाँ देने के लिए (देखें for mor)
```python
from azure.identity import DefaultAzureCredential
from azure.cosmos import CosmosClient
@@ -175,16 +183,27 @@ 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>
```
#### Databases
MongoDB में, आप एक या एक से अधिक डेटाबेस एक इंस्टेंस के भीतर बना सकते हैं। प्रत्येक डेटाबेस संग्रहों का एक तार्किक समूह के रूप में कार्य करता है और संसाधन संगठन और प्रबंधन के लिए एक सीमा प्रदान करता है। डेटाबेस डेटा को तार्किक रूप से अलग करने और प्रबंधित करने में मदद करते हैं, जैसे कि विभिन्न अनुप्रयोगों या परियोजनाओं के लिए।
MongoDB में, आप एक या एक से अधिक डेटाबेस एक उदाहरण के भीतर बना सकते हैं। प्रत्येक डेटाबेस संग्रहों का एक तार्किक समूह के रूप में कार्य करता है और संसाधन संगठन और प्रबंधन के लिए एक सीमा प्रदान करता है। डेटाबेस डेटा को तार्किक रूप से अलग करने और प्रबंधित करने में मदद करते हैं, जैसे कि विभिन्न अनुप्रयोगों या परियोजनाओं के लिए।
#### Collections
MongoDB में डेटा संग्रहण की मुख्य इकाई संग्रह है, जो दस्तावेज़ों को रखती है और कुशल क्वेरीिंग और लचीले स्कीमा डिज़ाइन के लिए डिज़ाइन की गई है। संग्रह लचीले ढंग से स्केलेबल होते हैं और वितरित सेटअप में कई नोड्स के बीच उच्च-थ्रूपुट संचालन का समर्थन कर सकते हैं।
#### Key Features of Request unit (RU) type
**Global Distribution**: क्रॉस-क्षेत्र प्रतिकृति के लिए Geo-Redundancy को सक्षम या अक्षम करें और बेहतर उपलब्धता के लिए Multi-region Writes।
**Networking & Security**: कनेक्टिविटी के लिए सार्वजनिक (सभी/चुनिंदा नेटवर्क) या निजी एंडपॉइंट्स के बीच। TLS 1.2 एन्क्रिप्शन के साथ सुरक्षित कनेक्शन। संसाधनों तक नियंत्रित पहुंच के लिए CORS (Cross-Origin Resource Sharing) का समर्थन करता है।
**Backup & Recovery**: अंतराल और संरक्षण के साथ कॉन्फ़िगर करने योग्य नीतियों के साथ पीरियडिक, निरंतर (7 दिन, मुफ्त), या निरंतर (30 दिन, भुगतान) बैकअप से।
**Data Encryption**: एन्क्रिप्शन के लिए डिफ़ॉल्ट सेवा-प्रबंधित कुंजी या ग्राहक-प्रबंधित कुंजी (CMK) (CMK चयन अपरिवर्तनीय है)।
#### Key Features of vCore cluster type
**Global Distribution**: उच्च उपलब्धता और फेलओवर समर्थन के लिए दूसरे Azure क्षेत्र में एक पढ़ने की प्रति सक्षम करें। प्रति शार्ड प्रति नाम, क्षेत्र और भंडारण को कॉन्फ़िगर करें।
**Networking & Security**: असाइन किए गए सार्वजनिक आईपी के साथ सार्वजनिक पहुंच का समर्थन करता है और निजी पहुंच। फ़ायरवॉल नियमों का उपयोग करके कनेक्शनों को प्रतिबंधित करें—डिफ़ॉल्ट रूप से, कोई सार्वजनिक आईपी की अनुमति नहीं है।
**Encrypted Connections**: सुरक्षित डेटा ट्रांसमिशन के लिए TLS एन्क्रिप्शन को लागू करता है।
#### Enumeration
{{#tabs }}

View File

@@ -6,12 +6,17 @@
Azure Logic Apps एक क्लाउड-आधारित सेवा है जो Microsoft Azure द्वारा प्रदान की जाती है जो डेवलपर्स को **विभिन्न सेवाओं**, डेटा स्रोतों और अनुप्रयोगों को एकीकृत करने वाले वर्कफ़्लो बनाने और चलाने में सक्षम बनाती है। ये वर्कफ़्लो **व्यापार प्रक्रियाओं को स्वचालित** करने, कार्यों का समन्वय करने और विभिन्न प्लेटफार्मों के बीच डेटा एकीकरण करने के लिए डिज़ाइन किए गए हैं।
Logic Apps एक दृश्य डिज़ाइनर प्रदान करता है जिससे **पूर्व-निर्मित कनेक्टर्स की विस्तृत श्रृंखला** के साथ वर्कफ़्लो बनाना आसान हो जाता है, जिससे Office 365, Dynamics CRM, Salesforce, और कई अन्य सेवाओं के साथ कनेक्ट और इंटरैक्ट करना संभव होता है। आप अपनी विशिष्ट आवश्यकताओं के लिए कस्टम कनेक्टर्स भी बना सकते हैं।
Logic Apps एक दृश्य डिज़ाइनर प्रदान करता है ज **पूर्व-निर्मित कनेक्टर्स की विस्तृत श्रृंखला** के साथ वर्कफ़्लो बनाने की अनुमति देता है, जिससे Office 365, Dynamics CRM, Salesforce और कई अन्य सेवाओं के साथ कनेक्ट करना और बातचीत करना आसान हो जाता है। आप अपनी विशिष्ट आवश्यकताओं के लिए कस्टम कनेक्टर्स भी बना सकते हैं।
जब आप एक Logic App बनाते हैं, तो आपको या तो एक बाहरी स्टोरेज खाता बनाना होगा या लिंक करना होगा जो वर्कफ़्लो स्थिति, रन इतिहास और कलाकृतियों को संग्रहीत करता है। इस स्टोरेज को निगरानी के लिए डायग्नोस्टिक सेटिंग्स के साथ कॉन्फ़िगर किया जा सकता है और इसे नेटवर्क एक्सेस प्रतिबंधों के साथ सुरक्षित किया जा सकता है या इनबाउंड और आउटबाउंड ट्रैफ़िक को नियंत्रित करने के लिए एक वर्चुअल नेटवर्क में एकीकृत किया जा सकता है।
### Managed Identities
Logic Apps के पास **सिस्टम-निर्धारित प्रबंधित पहचान** होती है जो इसके जीवनचक्र से जुड़ी होती है। जब सक्षम किया जाता है, तो इसे एक अद्वितीय ऑब्जेक्ट (प्रिंसिपल) आईडी मिलती है जिसका उपयोग Azure RBAC के साथ अन्य Azure सेवाओं तक सुरक्षित रूप से पहुँच प्रदान करने के लिए किया जा सकता है। यह कोड में क्रेडेंशियल्स को स्टोर करने की आवश्यकता को समाप्त करता है क्योंकि पहचान Microsoft Entra ID के माध्यम से प्रमाणित होती है। इसके अतिरिक्त, आप **उपयोगकर्ता-निर्धारित प्रबंधित पहचान** का भी उपयोग कर सकते हैं, जिन्हें कई संसाधनों के बीच साझा किया जा सकता है। ये पहचान वर्कफ़्लो और Logic Apps को बाहरी सिस्टम के साथ सुरक्षित रूप से बातचीत करने की अनुमति देती हैं, यह सुनिश्चित करते हुए कि आवश्यक पहुँच नियंत्रण और अनुमतियाँ Azure के सुरक्षा ढांचे के माध्यम से केंद्रीय रूप से प्रबंधित की जाती हैं।
### Examples
- **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 खाते में परिवर्तन, जो गतिशील डेटा प्रोसेसिंग की अनुमति देता है।
- **डेटा पाइपलाइनों का स्वचालन**: Logic Apps **डेटा स्थानांतरण और रूपांतरण प्रक्रियाओं** को Azure Data Factory के साथ मिलकर स्वचालित कर सकता है। यह विभिन्न डेटा स्टोर्स, जैसे Azure SQL Database और Azure Blob Storage के बीच डेटा को स्थानांतरित और रूपांतरित करने के लिए स्केलेबल और विश्वसनीय डेटा पाइपलाइनों को बनाने के लिए उपयोगी है, जो विश्लेषण और व्यवसायिक बुद्धिमत्ता संचालन में मदद करता है।
- **Azure Functions के साथ एकीकरण**: Logic Apps Azure Functions के साथ मिलकर **जटिल, इवेंट-चालित अनुप्रयोगों को विकसित करने** के लिए काम कर सकता है जो आवश्यकतानुसार स्केल करते हैं और अन्य Azure सेवाओं के साथ सहजता से एकीकृत होते हैं। एक उदाहरण उपयोग मामला यह है कि एक Logic App का उपयोग कुछ घटनाओं के जवाब में Azure Function को ट्रिगर करने के लिए किया जाता है, जैसे Azure Storage खाते में परिवर्तन, जो गतिशील डेटा प्रसंस्करण की अनुमति देता है।
### Visualize a LogicAPP
@@ -23,7 +28,7 @@ Logic Apps एक दृश्य डिज़ाइनर प्रदान
### SSRF Protection
भले ही आप **Logic App को SSRF के लिए संवेदनशील** पाएँ, आप मेटाडेटा से क्रेडेंशियल्स तक पहुँच नहीं पाएगे क्योंकि Logic Apps इसकी अनुमति नहीं देता।
यहां तक कि अगर आप **Logic App को SSRF के लिए संवेदनशील** पाते हैं, तो आप मेटाडेटा से क्रेडेंशियल्स तक पहुँच नहीं पाएगे क्योंकि Logic Apps ऐसा करने की अनुमति नहीं देता है
उदाहरण के लिए, ऐसा कुछ टोकन नहीं लौटाएगा:
```bash
@@ -35,11 +40,15 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741
There are several hosting options:
* **Consumption**
- **Multi-tenant**: साझा कंप्यूट संसाधनों को प्रदान करता है, सार्वजनिक क्लाउड में संचालित होता है, और प्रति संचालन मूल्य निर्धारण मॉडल का पालन करता है। यह हल्के और लागत-कुशल कार्यभार के लिए आदर्श है।
- **Multi-tenant**: साझा कंप्यूट संसाधनों को प्रदान करता है, सार्वजनिक क्लाउड में कार्य करता है, और प्रति ऑपरेशन मूल्य निर्धारण मॉडल का पालन करता है। यह हल्के और लागत-कुशल कार्यभार के लिए आदर्श है।
* **Standard**
- **Workflow Service Plan**: नेटवर्किंग के लिए VNET एकीकरण के साथ समर्पित कंप्यूट संसाधन और प्रति वर्कफ़्लो सेवा योजना उदाहरण के लिए चार्ज करता है। यह अधिक मांग वाले कार्यभार के लिए उपयुक्त है जो अधिक नियंत्रण की आवश्यकता होती है।
- **App Service Environment V3** समर्पित कंप्यूट संसाधन पूर्ण पृथक्करण और स्केलेबिलिटी के साथ। यह नेटवर्किंग के लिए VNET के साथ भी एकीकृत होता है और वातावरण के भीतर App Service उदाहरणों के आधार पर मूल्य निर्धारण मॉडल का उपयोग करता है। यह उच्च पृथक्करण की आवश्यकता वाले उद्यम-स्तरीय अनुप्रयोगों के लिए आदर्श है।
- **Hybrid** स्थानीय प्रसंस्करण और मल्टी-क्लाउड समर्थन के लिए डिज़ाइन किया गया है। यह स्थानीय नेटवर्क पहुंच के साथ ग्राहक-प्रबंधित कंप्यूट संसाधनों की अनुमति देता है और Kubernetes Event-Driven Autoscaling (KEDA) का उपयोग करता है।
- **App Service Environment V3** समर्पित कंप्यूट संसाधन पूर्ण अलगाव और स्केलेबिलिटी के साथ। यह नेटवर्किंग के लिए VNET के साथ भी एकीकृत होता है और वातावरण के भीतर App Service उदाहरणों के आधार पर मूल्य निर्धारण मॉडल का उपयोग करता है। यह उच्च अलगाव की आवश्यकता वाले उद्यम-स्तरीय अनुप्रयोगों के लिए आदर्श है।
- **Hybrid** स्थानीय प्रसंस्करण और मल्टी-क्लाउड समर्थन के लिए डिज़ाइन किया गया है। यह स्थानीय नेटवर्क एक्सेस के साथ ग्राहक-प्रबंधित कंप्यूट संसाधनों की अनुमति देता है और Kubernetes Event-Driven Autoscaling (KEDA) का उपयोग करता है।
### Workflows
Workflows in Azure Logic Apps are the core automated processes that orchestrate actions across various services. A workflow starts with a trigger—an event or schedule—and then executes a series of actions, such as calling APIs, processing data, or interacting with other Azure services. Workflows can be defined visually using a designer or via code (JSON definitions) and are managed through commands like az logic workflow create, az logic workflow show, and az logic workflow update. They also support identity management (via the identity subgroup) to securely manage permissions and integrations with external resources.
### Enumeration
@@ -138,7 +147,7 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
{{#endtabs }}
### Integration Accounts
**Integration Accounts**, Azure Logic Apps की एक विशेषता हैं। Integration Accounts का उपयोग उन्नत B2B क्षमताओं को सक्षम करके उद्यम-स्तरीय एकीकरण को सुविधाजनक बनाने के लिए किया जाता है, जैसे EDI, AS2, और XML स्कीमा प्रबंधन। Integration Accounts Azure में एक कंटेनर हैं जो Logic Apps के लिए उपयोग किए जाने वाले निम्नलिखित कलाकृतियों को संग्रहीत करते हैं:
**Integration Accounts**, Azure Logic Apps की एक विशेषता हैं। Integration Accounts का उपयोग उन्नत B2B क्षमताओं को सक्षम करके उद्यम-स्तरीय एकीकरण को सुविधाजनक बनाने के लिए किया जाता है, जैसे कि EDI, AS2, और XML स्कीमा प्रबंधन। Integration Accounts Azure में एक कंटेनर हैं जो Logic Apps के लिए उपयोग किए जाने वाले निम्नलिखित कलाकृतियों को संग्रहीत करते हैं:
* Schemas: अपने एकीकरण खाते में संदेशों को मान्य और संसाधित करने के लिए XML स्कीमा प्रबंधित करें।
* Maps: अपने एकीकरण कार्यप्रवाह के भीतर डेटा प्रारूपों को परिवर्तित करने के लिए XSLT-आधारित रूपांतरण कॉन्फ़िगर करें।

View File

@@ -11,15 +11,15 @@ Azure Database for MySQL एक पूरी तरह से प्रबंध
- पूर्वानुमानित कार्यभार वाले एप्लिकेशनों के लिए आदर्श।
* **Flexible Server**:
- डेटाबेस प्रबंधन और कॉन्फ़िगरेशन पर अधिक नियंत्रण प्रदान करता है।
- उच्च उपलब्धता का समर्थन करता है (समान-क्षेत्र और क्षेत्र-प्रतिरोधी)।
- उच्च उपलब्धता का समर्थन करता है (समान-क्षेत्र और क्षेत्र-निष्क्रिय)।
- सुविधाओं में लचीला स्केलिंग, पैच प्रबंधन, और कार्यभार अनुकूलन शामिल हैं।
- लागत बचत के लिए स्टॉप/स्टार्ट कार्यक्षमता प्रदान करता है।
### Key Features
* **Server Management**: **ad-admin** सुविधा Azure Active Directory (AAD) प्रशासकों को MySQL सर्वरों के लिए प्रबंधित करने की अनुमति देती है, AAD क्रेडेंशियल्स के माध्यम से प्रशासनिक पहुंच पर नियंत्रण प्रदान करती है, जबकि **identity** सुविधा Azure Managed Identities के असाइनमेंट और प्रबंधन की अनुमति देती है, जो Azure संसाधनों तक पहुँचने के लिए सुरक्षित, क्रेडेंशियल-फ्री प्रमाणीकरण प्रदान करती है।
* **Lifecycle Management**: एक सर्वर को शुरू या बंद करने, एक लचीले सर्वर उदाहरण को हटाने, कॉन्फ़िगरेशन परिवर्तनों को जल्दी लागू करने के लिए एक सर्वर को पुनरारंभ करने, और स्वचालन स्क्रिप्ट के साथ आगे बढ़ने से पहले यह सुनिश्चित करने के लिए इंतजार करने के विकल्प।
* **Security and Networking**: सुरक्षित डेटाबेस एक्सेस के लिए सर्वर फ़ायरवॉल नियमों क प्रबंध कर सकता है और आवश्यकतानुसार वर्चुअल नेटवर्क कॉन्फ़िगरेशन को अलग कर सकता है।
* **Data Protection and Backup**: डेटा पुनर्प्राप्ति के लिए लचीले सर्वर बैकअप का प्रबंध करने, एक अलग क्षेत्र में सर्वर को पुनर्प्राप्त करने के लिए भू-बहाली करन, बाहरी उपयोग के लिए सर्वर बैकअप का निर्यात करन (पूर्वावलोकन में), और एक विशिष्ट समय पर बैकअप से सर्वर को पुनर्स्थापित करने के विकल्प शामिल हैं।
* **Server Management**: **ad-admin** सुविधा Azure Entra ID प्रशासकों को MySQL सर्वरों के लिए प्रबंधित करने की अनुमति देती है, जो Entra ID क्रेडेंशियल्स के माध्यम से प्रशासनिक पहुंच पर नियंत्रण प्रदान करती है। Mysql उपयोगकर्ता प्रबंधित पहचान का समर्थन करता है, जिसका उपयोग क्रेडेंशियल्स की आवश्यकता के बिना प्रमाणीकरण के लिए किया जाता है, और इसे अन्य सेवाओं द्वारा उपयोग किया जा सकता है।
* **Lifecycle Management**: एक सर्वर को शुरू या बंद करने, एक लचीले सर्वर उदाहरण को हटाने, कॉन्फ़िगरेशन परिवर्तनों को जल्दी लागू करने के लिए एक सर्वर को पुनरारंभ करने, और स्वचालन स्क्रिप्ट के साथ आगे बढ़ने से पहले यह सुनिश्चित करने के लिए इंतजार करने के विकल्प शामिल हैं कि एक सर्वर विशिष्ट शर्तों को पूरा करता है
* **Security and Networking**: अपने सर्वर को फ़ायरवॉल नियमों के माध्यम से कनेक्शनों को प्रतिबंधित करके सुरक्षित करें जो केवल विशिष्ट सार्वजनिक IP पते की अनुमति देते हैं, या निजी एंडपॉइंट का उपयोग करके जो आपके सर्वर को एक वर्चुअल नेटवर्क में एकीकृत करते हैं। सभी कनेक्शन TLS 1.2 एन्क्रिप्शन के साथ सुरक्षित हैं। डेटाबेस, बैकअप, और लॉग डिफ़ॉल्ट रूप से सेवा-प्रबंधित कुंजियों या कस्टम कुंजियों का उपयोग करके विश्राम में एन्क्रिप्टेड होते है
* **Data Protection and Backup**: डेटा पुनर्प्राप्ति के लिए लचीले सर्वर बैकअप प्रबंधित करने के विकल्प, एक अलग क्षेत्र में एक सर्वर को पुनर्प्राप्त करने के लिए भू-बहाली करन, बाहरी उपयोग के लिए सर्वर बैकअप का निर्यात करन (पूर्वावलोकन में), और एक विशिष्ट समय पर बैकअप से सर्वर को पुनर्स्थापित करन शामिल हैं।
### Enumeration

View File

@@ -5,24 +5,25 @@
## Azure PostgreSQL
**Azure Database for PostgreSQL** एक पूरी तरह से प्रबंधित **रिलेशनल डेटाबेस सेवा है जो PostgreSQL** कम्युनिटी संस्करण पर आधारित है। इसे विभिन्न एप्लिकेशन आवश्यकताओं के लिए स्केलेबिलिटी, सुरक्षा और लचीलापन प्रदान करने के लिए डिज़ाइन किया गया है। Azure MySQL की तरह, PostgreSQL दो डिप्लॉयमेंट मॉडल प्रदान करता है:
* **Single Server** (सेवानिवृत्ति पथ पर):
* **सिंगल सर्वर** (सेवानिवृत्ति पथ पर):
- सरल, लागत-कुशल PostgreSQL डिप्लॉयमेंट के लिए अनुकूलित।
- स्वचालित बैकअप, बुनियादी निगरानी, और उच्च उपलब्धता की विशेषताएँ।
- पूर्वानुमानित कार्यभार वाले एप्लिकेशनों के लिए आदर्श।
* **Flexible Server**:
* **फ्लेक्सिबल सर्वर**:
- डेटाबेस प्रबंधन और कॉन्फ़िगरेशन पर अधिक नियंत्रण प्रदान करता है।
- एक ही क्षेत्र में और क्षेत्रों के बीच उच्च उपलब्धता का समर्थन करता है।
- लचीला स्केलिंग, स्वचालित रखरखाव, और लागत-बचत कार्यक्षमता की विशेषताएँ।
- लागत को अनुकूलित करने के लिए सर्वर को शुरू और बंद करने की अनुमति देता है।
### Key Features
### मुख्य विशेषताएँ
* **Custom Maintenance Windows**: व्यवधान को कम करने के लिए अपडेट शेड्यूल करें।
* **Active Monitoring**: डेटाबेस प्रदर्शन को ट्रैक और सुधारने के लिए विस्तृत मैट्रिक्स और लॉग्स तक पहुँचें।
* **Stop/Start Server**: उपयोगकर्ता सर्वर को रोक और शुरू कर सकते हैं।
* **Automatic Backups**: 35 दिनों तक कॉन्फ़िगर करने योग्य रिटेंशन अवधि के साथ अंतर्निहित दैनिक बैकअप।
* **Role-Based Access**: Azure Active Directory के माध्यम से उपयोगकर्ता अनुमतियों और प्रशासनिक पहुँच को नियंत्रित करें।
* **Security and Networking**: सुरक्षित डेटाबेस पहुँच के लिए सर्वर फ़ायरवॉल नियमों का प्रबंधन कर सकते हैं और आवश्यकतानुसार वर्चुअल नेटवर्क कॉन्फ़िगरेशन को अलग कर सकते हैं।
* **कस्टम रखरखाव विंडोज़**: व्यवधान को कम करने के लिए अपडेट शेड्यूल करें।
* **सक्रिय निगरानी**: डेटाबेस प्रदर्शन को ट्रैक और सुधारने के लिए विस्तृत मैट्रिक्स और लॉग्स तक पहुँचें।
* **स्टॉप/स्टार्ट सर्वर**: उपयोगकर्ता सर्वर को रोक और शुरू कर सकते हैं।
* **स्वचालित बैकअप**: 35 दिनों तक कॉन्फ़िगर करने योग्य रिटेंशन अवधि के साथ अंतर्निहित दैनिक बैकअप।
* **भूमिका-आधारित पहुँच**: Azure Active Directory के माध्यम से उपयोगकर्ता अनुमतियों और प्रशासनिक पहुँच को नियंत्रित करें।
* **सुरक्षा और नेटवर्किंग**: सुरक्षित डेटाबेस पहुँच के लिए सर्वर फ़ायरवॉल नियमों का प्रबंधन कर सकते हैं और आवश्यकतानुसार वर्चुअल नेटवर्क कॉन्फ़िगरेशन को अलग कर सकते हैं।
* **प्रबंधित पहचान**: आपके सर्वर को अन्य Azure सेवाओं के साथ सुरक्षित रूप से प्रमाणित करने की अनुमति देता है बिना क्रेडेंशियल्स को संग्रहीत किए। यह अन्य सेवाओं तक पहुँचने की अनुमति देता है जो सिस्टम असाइन किए गए प्रबंधित पहचान होंगे और अन्य पहचान के साथ अन्य सेवाओं द्वारा पहुँचा जा सकेगा जो उपयोगकर्ता असाइन किए गए प्रबंधित पहचान हैं।
### Enumeration
@@ -110,27 +111,27 @@ az postgres flexible-server execute \
```bash
psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser <database-name>
```
## संदर्भ
## References
- [https://learn.microsoft.com/en-us/azure/postgresql/](https://learn.microsoft.com/en-us/azure/postgresql/)
- [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/service-overview)
- [https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/overview)
## विशेषाधिकार वृद्धि
## Privilege Escalation
{{#ref}}
../az-privilege-escalation/az-postgresql-privesc.md
{{#endref}}
## पोस्ट एक्सप्लोइटेशन
## Post Exploitation
{{#ref}}
../az-post-exploitation/az-postgresql-post-exploitation.md
{{#endref}}
## करने के लिए
## ToDo
* यह सत्यापित करने के लिए ad-admin के साथ पहुचने का एक तरीका देखें कि यह एक privesc विधि है
* ad-admin के साथ पहुचने का एक तरीका देखें ताकि यह सत्यापित किया जा सके कि यह एक privesc विधि है
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -4,150 +4,98 @@
## Azure SQL
Azure SQL एक प्रबंधित, सुरक्षित और बुद्धिमान उत्पादों का परिवार है जो **Azure क्लाउड में SQL Server डेटाबेस इंजन का उपयोग करता है**। इसका मतलब है कि आपको अपने सर्वरों के भौतिक प्रशासन की चिंता करने की आवश्यकता नहीं है, और आप अपने डेटा के प्रबंधन पर ध्यान केंद्रित कर सकते हैं।
Azure SQL एक प्रबंधित, सुरक्षित और बुद्धिमान उत्पादों का परिवार है जो **Azure क्लाउड में SQL Server डेटाबेस इंजन** का उपयोग करता है। इसका मतलब है कि आपको अपने सर्वरों के भौतिक प्रशासन की चिंता करने की आवश्यकता नहीं है, और आप अपने डेटा के प्रबंधन पर ध्यान केंद्रित कर सकते हैं।
Azure SQL में चार मुख्य पेशकशें शामिल हैं:
1. **Azure SQL Server**: Azure SQL Server एक प्रबंधित संबंधपरक डेटाबेस सेवा है जो SQL Server डेटाबेस के तैनाती और प्रबंधन को सरल बनाती है, जिसमें अंतर्निहित सुरक्षा और प्रदर्शन सुविधाएँ है
2. **Azure SQL Database**: यह एक **पूर्ण-प्रबंधित डेटाबेस सेवा** है, जो आपको Azure क्लाउड में व्यक्तिगत डेटाबेस होस्ट करने की अनुमति देती है। यह अंतर्निहित बुद्धिमत्ता प्रदान करती है जो आपके अद्वितीय डेटाबेस पैटर्न को सीखती है और अनुकूलित सिफारिशें और स्वचालित ट्यूनिंग प्रदान करती है।
3. **Azure SQL Managed Instance**: यह बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए है। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए अनुकूल व्यावसायिक मॉडल।
4. **Azure SQL Server on Azure VMs**: यह इन्फ्रास्ट्रक्चर एज़ अ सर्विस (IaaS) है और उन माइग्रेशनों के लिए सबसे अच्छा है जहा आप **ऑपरेटिंग सिस्टम और SQL Server इंस्टेंस पर नियंत्रण** चाहते हैं, जैसे कि यह एक ऑन-प्रिमाइसेस सर्वर पर चल रहा हो
1. **Azure SQL Server**: SQL Server डेटाबेस के **तैनाती और प्रबंधन** के लिए एक सर्वर की आवश्यकता होती है।
2. **Azure SQL Database**: यह एक **पूर्ण-प्रबंधित डेटाबेस सेवा** है, जो आपको Azure क्लाउड में व्यक्तिगत डेटाबेस होस्ट करने की अनुमति देती है।
3. **Azure SQL Managed Instance**: यह बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए है।
4. **Azure SQL Server on Azure VMs**: यह उन आर्किटेक्चर के लिए सबसे अच्छा है जहा आप **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस पर **नियंत्रण** चाहते हैं।
### Azure SQL Server
### SQL Server सुरक्षा विशेषताएँ
Azure SQL Server एक संबंधपरक डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो डेटा संचालन के लिए Transact-SQL का उपयोग करती है और इसे उद्यम-स्तरीय प्रणालियों को संभालने के लिए बनाया गया है। यह प्रदर्शन, सुरक्षा, स्केलेबिलिटी, और विभिन्न Microsoft अनुप्रयोगों के साथ एकीकरण के लिए मजबूत सुविधाएँ प्रदान करता है। Azure SQL डेटाबेस इस सर्वर पर निर्भर करते हैं, क्योंकि ये इस सर्वर पर बनाए गए हैं और यह उपयोगकर्ता के लिए डेटाबेस तक पहुँचने का प्रवेश बिंदु है।
**नेटवर्क एक्सेस:**
#### Network
- सार्वजनिक एंडपॉइंट (विशिष्ट नेटवर्कों तक पहुंच को सीमित कर सकता है)।
- निजी एंडपॉइंट।
- डोमेन नामों के आधार पर कनेक्शनों को प्रतिबंधित करना भी संभव है।
- Azure सेवाओं को इसे एक्सेस करने की अनुमति देना भी संभव है (जैसे पोर्टल में क्वेरी संपादक का उपयोग करने के लिए या Azure VM को कनेक्ट करने की अनुमति देना)।
**Network Connectivity**: सार्वजनिक अंत बिंदु या निजी अंत बिंदु के माध्यम से पहुँच सक्षम करने का चयन करें। यदि आप कोई पहुँच नहीं चुनते हैं, तो कोई अंत बिंदु तब तक नहीं बनाए जाते जब तक कि इसे मैन्युअल रूप से कॉन्फ़िगर नहीं किया जाता:
- No access: कोई अंत बिंदु कॉन्फ़िगर नहीं किए जाते, मैन्युअल रूप से सेट होने तक आने वाले कनेक्शनों को अवरुद्ध करते हैं।
- Public endpoint: सार्वजनिक इंटरनेट के माध्यम से सीधे कनेक्शनों की अनुमति देता है, फ़ायरवॉल नियमों और अन्य सुरक्षा कॉन्फ़िगरेशन के अधीन।
- Private endpoint: एक निजी नेटवर्क के लिए कनेक्टिविटी को प्रतिबंधित करता है।
**प्रमाणीकरण विधियाँ:**
**Connection Policy**: परिभाषित करें कि ग्राहक SQL डेटाबेस सर्वर के साथ कैसेवाद करते हैं:
- Default: Azure के अंदर सभी ग्राहक कनेक्शनों के लिए एक Redirect नीति का उपयोग करता है (प्राइवेट एंडपॉइंट का उपयोग करने वालों को छोड़कर) और Azure के बाहर से कनेक्शनों के लिए एक Proxy नीति
- Proxy: सभी ग्राहक कनेक्शनों को Azure SQL Database गेटवे के माध्यम से रूट करता है
- Redirect: ग्राहक सीधे डेटाबेस को होस्ट करने वाले नोड से कनेक्ट करते हैं।
- Microsoft **Entra-only** प्रमाणीकरण: आपको उन Entra प्रिंसिपल को इंगित करने की आवश्यकता है जिनके पासवा तक पहुंच होगी।
- **SQL और Microsoft Entra** दोनों प्रमाणीकरण: उपयोगकरता नाम और पासवर्ड के साथ पारंपरिक SQL प्रमाणीकरण Microsoft Entra के साथ
- **केवल SQL** प्रमाणीकरण: केवल डेटाबेस उपयोगकर्ताओं के माध्यम से पहुंच की अनुमति दें
#### Authentication Methods
Azure SQL विभिन्न प्रमाणीकरण विधियों का समर्थन करता है ताकि डेटाबेस पहुँच को सुरक्षित किया जा सके:
ध्यान दें कि यदि कोई SQL प्रमाणीकरण अनुमति दी जाती है, तो एक व्यवस्थापक उपयोगकर्ता (उपयोगकर्ता नाम + पासवर्ड) को इंगित करने की आवश्यकता होती है और यदि Entra ID प्रमाणीकरण चुना जाता है, तो कम से कम एक प्रिंसिपल को व्यवस्थापक पहुंच के साथ इंगित करना भी आवश्यक है।
- **Microsoft Entra-only authentication**: केंद्रीकृत पहचान प्रबंधन और सिंगल साइन-ऑन के लिए Microsoft Entra (पूर्व में Azure AD) का उपयोग करता है।
- **Both SQL and Microsoft Entra authentication**: आपको Microsoft Entra के साथ पारंपरिक SQL प्रमाणीकरण का उपयोग करने की अनुमति देता है।
- **SQL authentication**: केवल SQL Server उपयोगकर्ता नाम और पासवर्ड पर निर्भर करता है।
**एन्क्रिप्शन:**
#### Security features
- इसे "पारदर्शी डेटा एन्क्रिप्शन" कहा जाता है और यह डेटाबेस, बैकअप और लॉग को स्थिरता पर एन्क्रिप्ट करता है।
- हमेशा की तरह, डिफ़ॉल्ट रूप से Azure प्रबंधित कुंजी का उपयोग किया जाता है लेकिन ग्राहक प्रबंधित एन्क्रिप्शन कुंजी (CMEK) का भी उपयोग किया जा सकता है।
**प्रबंधित पहचान:**
SQL सर्वरों में **Managed Identities** होती हैं। प्रबंधित पहचानें आपके सर्वर को अन्य Azure सेवाओं के साथ सुरक्षित रूप से प्रमाणीकरण करने की अनुमति देती हैं बिना क्रेडेंशियल्स को संग्रहीत किए। यह अन्य सेवाओं तक पहुँचने की अनुमति देती है जो सिस्टम असाइन की गई प्रबंधित पहचान होगी और अन्य पहचान के साथ अन्य सेवाओं द्वारा पहुँची जा सकती है जो उपयोगकर्ता असाइन की गई प्रबंधित पहचान है। SQL द्वारा पहुँचने वाली कुछ सेवाएँ हैं Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB या Cosmos DB API for MongoDB, Generic ODBC, Bulk Operations और S3-संगत वस्तु भंडारण
- सिस्टम और उपयोगकर्ता प्रबंधित MIs को असाइन करना संभव है
- एन्क्रिप्शन कुंजी (यदि CMEK का उपयोग किया जाता है) और डेटाबेस से अन्य सेवाओं तक पहुंच के लिए उपयोग किया जाता है।
- यदि एक से अधिक UMI असाइन किए जाते हैं, तो उपयोग करने के लिए डिफ़ॉल्ट एक को इंगित करना संभव है।
- क्रॉस-टेनेंट एक्सेस के लिए एक संघीय क्लाइंट पहचान को कॉन्फ़िगर करना संभव है।
SQL सर्वर की अन्य सुरक्षा सुविधाएँ हैं:
**Microsoft Defender:**
- **Firewall Rules**: फ़ायरवॉल नियम आपके सर्वर तक पहुँच को नियंत्रित करहैं, ट्रैफ़िक को प्रतिबंधित या अनुमति देकर। यह डेटाबेस की एक विशेषता भी है।
- **Transparent Data Encryption (TDE)**: TDE आपके डेटाबेस, बैकअप और लॉग को विश्राम में एन्क्रिप्ट करता है ताकि आपके डेटा की सुरक्षा की जा सके, भले ही भंडारण से समझौता किया गया हो। इसे सेवा-प्रबंधित कुंजी या ग्राहक-प्रबंधित कुंजी के साथ किया जा सकता है
- **Microsoft Defender for SQL**: Microsoft Defender for SQL को सक्षम किया जा सकता है जो सर्वर के लिए भेद्यता आकलन और उन्नत खतरे की सुरक्षा प्रदान करता है।
- "संभावित डेटाबेस कमजोरियों को कम करऔर असामान्य गतिविधियों का पता लगाने" के लिए उपयोगी
- हम Defender के बारे में अपनी खुद की पाठ में बात करेंगे (इसे कई अन्य Azure सेवाओं में सक्षम किया जा सकता है)
#### Deployment Models
**बैकअप:**
- बैकअप आवृत्ति को रिटेंशन नीतियों में प्रबंधित किया जाता है।
Azure SQL Database विभिन्न आवश्यकताओं के लिए लचीले तैनाती विकल्पों का समर्थन करता है:
**हटाए गए डेटाबेस:**
- यह संभव है कि हटाए गए DBs को मौजूदा बैकअप से पुनर्स्थापित किया जाए।
- **Single Database**:
- एक पूरी तरह से अलग डेटाबेस जिसमें अपने स्वयं के समर्पित संसाधन होते हैं।
- माइक्रोसर्विसेज या अनुप्रयोगों के लिए महान जो एकल डेटा स्रोत की आवश्यकता होती है।
- **Elastic Pool**:
- एक पूल के भीतर संसाधनों को साझा करने की अनुमति देता है।
- कई डेटाबेस के बीच उतार-चढ़ाव वाले उपयोग पैटर्न के लिए लागत-कुशल।
## Azure SQL Database
### Azure SQL Database
**Azure SQL Database** एक **पूर्ण प्रबंधित डेटाबेस प्लेटफ़ॉर्म के रूप में सेवा (PaaS)** है जो स्केलेबल और सुरक्षित संबंधपरक डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server प्रौद्योगिकियों पर आधारित है और अवसंरचना प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है।
**Azure SQL Database** एक **पूर्ण प्रबंधित डेटाबेस प्लेटफ़ॉर्म एज़ अ सर्विस (PaaS)** है जो स्केलेबल और सुरक्षित संबंधपरक डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server तकनीकों पर आधारित है और इन्फ्रास्ट्रक्चर प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है
SQL डेटाबेस बनाने के लिए यह आवश्यक है कि SQL सर्वर को इंगित किया जाए जहां इसे होस्ट किया जाएगा
#### Key Features
### SQL डेटाबेस सुरक्षा विशेषताएँ
- **Always Up-to-Date**: नवीनतम स्थिर संस्करण पर चलता है SQL Server और स्वचालित रूप से नए फीचर्स और पैच प्राप्त करता है।
- **PaaS Capabilities**: अंतर्निहित उच्च उपलब्धता, बैकअप, और अपडेट।
- **Data Flexibility**: संबंधपरक और गैर-संबंधपरक डेटा (जैसे, ग्राफ, JSON, स्थानिक, और XML) का समर्थन करता है।
- **हमेशा अद्यतित**: SQL Server के नवीनतम स्थिर संस्करण पर चलता है और स्वचालित रूप से नई सुविधाएँ और पैच प्राप्त करता है।
- **विरासत में मिली SQL Server सुरक्षा विशेषताएँ:**
- प्रमाणीकरण (SQL और/या Entra ID)
- असाइन की गई प्रबंधित पहचान
- नेटवर्क प्रतिबंध
- एन्क्रिप्शन
- बैकअप
-
- **डेटा पुनरावृत्ति:** विकल्प स्थानीय, क्षेत्र, भू-स्थान या भू-क्षेत्र पुनरावृत्त हैं।
- **लेजर:** यह डेटा की अखंडता को क्रिप्टोग्राफिक रूप से सत्यापित करता है, यह सुनिश्चित करता है कि किसी भी छेड़छाड़ का पता लगाया जाए। वित्तीय, चिकित्सा और किसी भी संगठन के लिए उपयोगी जो संवेदनशील डेटा का प्रबंधन करता है।
#### Network
एक SQL डेटाबेस एक **इलास्टिक पूल** का हिस्सा हो सकता है। इलास्टिक पूल कई डेटाबेसों के प्रबंधन के लिए एक लागत-कुशल समाधान है, जो उनके बीच कॉन्फ़िगर करने योग्य कंप्यूट (eDTUs) और स्टोरेज संसाधनों को साझा करता है, जिसमें मूल्य निर्धारण केवल आवंटित संसाधनों के आधार पर होता है न कि डेटाबेसों की संख्या के आधार पर।
**Network Connectivity**: सार्वजनिक अंत बिंदु या निजी अंत बिंदु के माध्यम से पहुँच सक्षम करने का चयन करें। यदि आप कोई पहुँच नहीं चुनते हैं, तो कोई अंत बिंदु तब तक नहीं बनाए जाते जब तक कि इसे मैन्युअल रूप से कॉन्फ़िगर नहीं किया जाता:
- No access: कोई अंत बिंदु कॉन्फ़िगर नहीं किए जाते, मैन्युअल रूप से सेट होने तक आने वाले कनेक्शनों को अवरुद्ध करते हैं।
- Public endpoint: सार्वजनिक इंटरनेट के माध्यम से सीधे कनेक्शनों की अनुमति देता है, फ़ायरवॉल नियमों और अन्य सुरक्षा कॉन्फ़िगरेशन के अधीन।
- Private endpoint: एक निजी नेटवर्क के लिए कनेक्टिविटी को प्रतिबंधित करता है।
#### Azure SQL कॉलम स्तर सुरक्षा (मास्किंग) और पंक्ति स्तर सुरक्षा
**Connection Policy**: परिभाषित करें कि ग्राहक SQL डेटाबेस सर्वर के साथ कैसे संवाद करते हैं:
- Default: Azure के अंदर सभी ग्राहक कनेक्शनों के लिए एक Redirect नीति का उपयोग करता है (प्राइवेट एंडपॉइंट का उपयोग करने वालों को छोड़कर) और Azure के बाहर से कनेक्शनों के लिए एक Proxy नीति।
- Proxy: सभी ग्राहक कनेक्शनों को Azure SQL Database गेटवे के माध्यम से रूट करता है।
- Redirect: ग्राहक सीधे डेटाबेस को होस्ट करने वाले नोड से कनेक्ट करते हैं।
**Azure SQL का गतिशील** डेटा मास्किंग एक विशेषता है जो **अनधिकृत उपयोगकर्ताओं से संवेदनशील जानकारी की रक्षा करने में मदद करती है**। वास्तविक डेटा को बदलने के बजाय, यह प्रदर्शित डेटा को गतिशील रूप से मास्क करता है, यह सुनिश्चित करता है कि संवेदनशील विवरण जैसे क्रेडिट कार्ड नंबर अस्पष्ट हैं
#### Security Features
**गतिशील डेटा मास्किंग** उन सभी उपयोगकर्ताओं पर प्रभाव डालती है सिवाय उन लोगों के जो अनमास्क किए गए हैं (इन उपयोगकर्ताओं को इंगित करने की आवश्यकता होती है) और व्यवस्थापकों। इसमें वह कॉन्फ़िगरेशन विकल्प है जो यह निर्दिष्ट करता है कि कौन से SQL उपयोगकर्ता गतिशील डेटा मास्किंग से छूट प्राप्त करते हैं, **व्यवस्थापकों को हमेशा बाहर रखा जाता है**
- **Microsoft Defender for SQL**: सक्षम किया जा सकता है जो भेद्यता आकलन और उन्नत खतरे की सुरक्षा प्रदान करता है।
- **Ledger**: डेटा की अखंडता को क्रिप्टोग्राफिक रूप से सत्यापित करता है, यह सुनिश्चित करता है कि किसी भी छेड़छाड़ का पता लगाया जाए।
- **Server Identity**: केंद्रीकृत पहुँच सक्षम करने के लिए सिस्टम-निर्धारित और उपयोगकर्ता-निर्धारित प्रबंधित पहचान का उपयोग करता है।
- **Transparent Data Encryption Key Management**: बिना किसी परिवर्तन की आवश्यकता के डेटाबेस, बैकअप, और लॉग को विश्राम में एन्क्रिप्ट करता है। एन्क्रिप्शन को प्रत्येक डेटाबेस पर सक्षम किया जा सकता है, और यदि डेटाबेस स्तर पर कॉन्फ़िगर किया गया है, तो ये सेटिंग्स सर्वर-स्तरीय कॉन्फ़िगरेशन को ओवरराइड करती हैं।
- **Always Encrypted**: उन्नत डेटा सुरक्षा सुविधाओं का एक सूट है जो डेटा स्वामित्व को डेटा प्रबंधन से अलग करता है। यह सुनिश्चित करता है कि उच्च विशेषाधिकार वाले प्रशासक या ऑपरेटर संवेदनशील डेटा तक पहुँच नहीं सकते।
#### Purchasing Models / Service Tiers
- **vCore-based**: स्वतंत्र रूप से कंप्यूट, मेमोरी, और स्टोरेज चुनें। सामान्य उद्देश्य, व्यवसायिक महत्वपूर्ण (OLTP ऐप्स के लिए उच्च लचीलापन और प्रदर्शन) के लिए, और 128 TB स्टोरेज तक स्केल करता है।
- **DTU-based**: निश्चित स्तरों में कंप्यूट, मेमोरी, और I/O को बंडल करता है। सामान्य कार्यों के लिए संतुलित संसाधन।
- Standard: सामान्य कार्यों के लिए संतुलित संसाधन।
- Premium: मांग वाले कार्यभार के लिए उच्च प्रदर्शन।
#### Scalable performance and pools
- **Single Databases**: प्रत्येक डेटाबेस अलग है और इसके अपने समर्पित कंप्यूट, मेमोरी, और स्टोरेज संसाधन होते हैं। संसाधनों को गतिशील रूप से (ऊपर या नीचे) बिना डाउनटाइम के स्केल किया जा सकता है (1128 vCores, 32 GB4 TB स्टोरेज, और 128 TB तक)।
- **Elastic Pools**: अधिकतम दक्षता और लागत बचाने के लिए एक पूल में कई डेटाबेस के बीच संसाधनों को साझा करें। पूरे पूल के लिए संसाधनों को भी गतिशील रूप से स्केल किया जा सकता है।
- **Service Tier Flexibility**: सामान्य उद्देश्य स्तर में एकल डेटाबेस के साथ छोटे स्तर से शुरू करें। आवश्यकताओं के बढ़ने पर व्यवसायिक महत्वपूर्ण या हाइपरस्केल स्तरों में अपग्रेड करें।
- **Scaling Options**: गतिशील स्केलिंग या ऑटोस्केलिंग विकल्प।
#### Built-In Monitoring & Optimization
- **Query Store**: प्रदर्शन मुद्दों को ट्रैक करता है, शीर्ष संसाधन उपभोक्ताओं की पहचान करता है, और कार्यान्वयन योग्य सिफारिशें प्रदान करता है।
- **Automatic Tuning**: स्वचालित इंडेक्सिंग और क्वेरी योजना सुधार जैसी सुविधाओं के साथ प्रदर्शन को सक्रिय रूप से अनुकूलित करता है।
- **Telemetry Integration**: अनुकूलित अंतर्दृष्टि के लिए Azure Monitor, Event Hubs, या Azure Storage के माध्यम से निगरानी का समर्थन करता है।
#### Disaster Recovery & Availability
- **Automatic backups**: SQL Database स्वचालित रूप से डेटाबेस के पूर्ण, विभेदक, और लेनदेन लॉग बैकअप करता है।
- **Point-in-Time Restore**: बैकअप संरक्षण अवधि के भीतर किसी भी पिछले राज्य में डेटाबेस को पुनर्प्राप्त करें।
- **Geo-Redundancy**
- **Failover Groups**: क्षेत्रों के बीच स्वचालित फेलओवर के लिए डेटाबेस को समूहित करके आपदा वसूली को सरल बनाता है।
**Azure SQL पंक्ति स्तर सुरक्षा (RLS)** एक विशेषता है जो **नियंत्रित करती है कि कौन सी पंक्तियाँ एक उपयोगकर्ता देख या संशोधित कर सकता है**, यह सुनिश्चित करते हुए कि प्रत्येक उपयोगकर्ता केवल उनके लिए प्रासंगिक डेटा देखता है। फ़िल्टर या ब्लॉक प्रीडिकेट के साथ सुरक्षा नीतियाँ बनाकर, संगठन डेटाबेस स्तर पर बारीक पहुंच लागू कर सकते है
### Azure SQL Managed Instance
**Azure SQL Managed Instance** एक प्लेटफ़ॉर्म एज़ अ सर्विस (PaaS) डेटाबेस इंजन है जो SQL Server के साथ लगभग 100% संगतता प्रदान करता है और अधिकांश प्रबंधन कार्यों (जैसे, अपग्रेडिंग, पैचिंग, बैकअप, निगरानी) को स्वचालित रूप से संभालता है। यह न्यूनतम परिवर्तनों के साथ ऑन-प्रिमाइसेस SQL Server डेटाबेस को माइग्रेट करने के लिए एक क्लाउड समाधान प्रदान करता है।
**Azure SQL Managed Instances** बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए हैं। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए एक व्यावसायिक मॉडल अनुकूल है।
#### Service Tiers
### Azure SQL वर्चुअल मशीनें
- **General Purpose**: मानक I/O और विलंबता आवश्यकताओं वाले अनुप्रयोगों के लिए लागत-कुशल विकल्प
- **Business Critical**: महत्वपूर्ण कार्यभार के लिए कम I/O विलंबता के साथ उच्च-प्रदर्शन विकल्प।
**Azure SQL वर्चुअल मशीनें** आपको **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस पर **नियंत्रण** करने की अनुमति देती हैं, क्योंकि एक VM SQL सर्वर चलाने वाली VM सेवा में उत्पन्न होगी
#### Advanced Security Features
जब एक SQL वर्चुअल मशीन बनाई जाती है, तो यह संभव है कि **VM की सभी सेटिंग्स का चयन किया जाए** (जैसा कि VM पाठ में दिखाया गया है) जो SQL सर्वर को होस्ट करेगा।
- इसका मतलब है कि VM कुछ VNet(s) तक पहुंच प्राप्त करेगा, इसमें **प्रबंधित पहचानें संलग्न** हो सकती हैं, फ़ाइल शेयर माउंट किए जा सकते हैं... जिससे SQL से VM में **पिवोटिंग** करना बहुत दिलचस्प हो जाता है।
- इसके अलावा, यह एक ऐप आईडी और सीक्रेट को कॉन्फ़िगर करना संभव है ताकि **SQL को एक विशिष्ट की वॉल्ट** तक पहुंचने की अनुमति दी जा सके, जिसमें संवेदनशील जानकारी हो सकती है।
* **Threat Protection**: संदिग्ध गतिविधियों और SQL इंजेक्शन हमलों के लिए उन्नत खतरे की सुरक्षा अलर्ट। अनुपालन के लिए डेटाबेस घटनाओं को ट्रैक और लॉग करने के लिए ऑडिटिंग
* **Access Control**: केंद्रीकृत पहचान प्रबंधन के लिए Microsoft Entra प्रमाणीकरण। ग्रैन्युलर एक्सेस नियंत्रण के लिए रो-लेवल सुरक्षा और डायनामिक डेटा मास्किंग।
* **Backups**: बिंदु-इन-टाइम पुनर्स्थापना क्षमता के साथ स्वचालित और मैन्युअल बैकअप।
यह भी संभव है कि **स्वचालित SQL अपडेट**, **स्वचालित बैकअप**, **Entra ID प्रमाणीकरण** और अन्य SQL सेवाओं की अधिकांश सुविधाओं को कॉन्फ़िगर किया जाए
### Azure SQL Virtual Machines
**Azure SQL Virtual Machines** उन माइग्रेशनों के लिए सबसे अच्छा है जहाँ आप **ऑपरेटिंग सिस्टम और SQL Server इंस्टेंस पर नियंत्रण** चाहते हैं, जैसे कि यह एक ऑन-प्रिमाइसेस सर्वर पर चल रहा हो। इसमें विभिन्न मशीन आकार हो सकते हैं, और SQL Server के संस्करणों और संस्करणों का एक विस्तृत चयन हो सकता है।
#### Key Features
**Automated Backup**: SQL डेटाबेस के लिए बैकअप शेड्यूल करें।
**Automatic Patching**: रखरखाव विंडो के दौरान Windows और SQL Server अपडेट के इंस्टॉलेशन को स्वचालित करता है।
**Azure Key Vault Integration**: SQL Server VMs के लिए Key Vault को स्वचालित रूप से कॉन्फ़िगर करता है।
**Defender for Cloud Integration**: पोर्टल में Defender for SQL सिफारिशों को देखें।
**Version/Edition Flexibility**: VM को फिर से तैनात किए बिना SQL Server संस्करण या संस्करण मेटाडेटा बदलें।
#### Security Features
**Microsoft Defender for SQL**: सुरक्षा अंतर्दृष्टि और अलर्ट।
**Azure Key Vault Integration**: क्रेडेंशियल्स और एन्क्रिप्शन कुंजियों का सुरक्षित भंडारण।
**Microsoft Entra (Azure AD)**: प्रमाणीकरण और पहुँच नियंत्रण।
## Enumeration
## एन्यूमरेशन
{{#tabs}}
{{#tab name="az cli"}}
@@ -216,6 +164,30 @@ az sql midb show --resource-group <res-grp> --name <name>
# Lis all sql VM
az sql vm list
az sql vm show --resource-group <res-grp> --name <name>
# List schema by the database
az rest --method get \
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/schemas?api-version=2021-11-01"
# Get tables of a database with the schema
az rest --method get \
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/schemas/<schemaName>/tables?api-version=2021-11-01"
# Get columns of a database
az rest --method get \
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/columns?api-version=2021-11-01"
# Get columns of a table
az rest --method get \
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/schemas/<schemaName>/tables/<tableName>/columns?api-version=2021-11-01"
# Get DataMaskingPolicies of a database
az rest --method get \
--uri "https://management.azure.com/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.Sql/servers/getstorageserver/databases/masktest/dataMaskingPolicies/Default?api-version=2021-11-01"
az rest --method get \
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/dataMaskingPolicies/Default/rules?api-version=2021-11-01"
```
{{#endtab}}
@@ -260,9 +232,34 @@ Get-AzSqlVM
{{#endtab}}
{{#endtabs}}
### कनेक्ट करें और SQL क्वेरी चलाएँ
इसके अतिरिक्त, यदि आप डेटाबेस के भीतर डायनामिक डेटा मास्किंग और रो लेवल नीतियों की गणना करना चाहते हैं, तो आप क्वेरी कर सकते हैं:
```sql
--Enumerates the masked columns
SELECT
OBJECT_NAME(mc.object_id) AS TableName,
c.name AS ColumnName,
mc.masking_function AS MaskingFunction
FROM sys.masked_columns AS mc
JOIN sys.columns AS c
ON mc.object_id = c.object_id
AND mc.column_id = c.column_id
आप एक कनेक्शन स्ट्रिंग (जिसमें क्रेडेंशियल्स शामिल हैं) उदाहरण [एक Az WebApp की गणना करना](az-app-services.md) से पा सकते हैं:
--Enumerates Row level policies
SELECT
sp.name AS PolicyName,
sp.is_enabled,
sp.create_date,
sp.modify_date,
OBJECT_NAME(sp.object_id) AS TableName,
sp2.predicate_definition AS PredicateDefinition
FROM sys.security_policies AS sp
JOIN sys.security_predicates AS sp2
ON sp.object_id = sp2.object_id;
```
### Connect and run SQL queries
आप एक कनेक्शन स्ट्रिंग (जिसमें क्रेडेंशियल्स होते हैं) उदाहरण [enumerating an Az WebApp](az-app-services.md) से पा सकते हैं:
```bash
function invoke-sql{
param($query)
@@ -281,24 +278,24 @@ $Connection.Close()
invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
```
आप sqlcmd का उपयोग करके डेटाबेस तक भी पहुँच सकते हैं। यह जानना महत्वपूर्ण है कि क्या सर्वर सार्वजनिक कनेक्शनों की अनुमति देता है `az sql server show --name <server-name> --resource-group <resource-group>` और यह भी कि क्या फ़ायरवॉल नियम हमारे IP को पहुँचने की अनुमति देता है:
आप sqlcmd का उपयोग करके डेटाबेस तक भी पहुँच सकते हैं। यह जानना महत्वपूर्ण है कि क्या सर्वर सार्वजनिक कनेक्शन की अनुमति देता है `az sql server show --name <server-name> --resource-group <resource-group>` और यह भी कि क्या फ़ायरवॉल नियम हमारे IP को पहुँचने की अनुमति देता है:
```bash
sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passworkd> -d <database>
```
## References
## संदर्भ
- [https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql)
- [https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql)
- [https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql)
- [https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql)
## Privilege Escalation
## विशेषाधिकार वृद्धि
{{#ref}}
../az-privilege-escalation/az-sql-privesc.md
{{#endref}}
## Post Exploitation
## पोस्ट एक्सप्लोइटेशन
{{#ref}}
../az-post-exploitation/az-sql-post-exploitation.md