mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-27 13:13:06 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -35,6 +35,16 @@ Boonop is dit nodig om die publieke toegang in te skakel as jy vanaf 'n nie-priv
|
||||
```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`
|
||||
|
||||
Met hierdie toestemmings kan jy 'n MySQL-bediener van 'n rugsteun herstel:
|
||||
```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`
|
||||
|
||||
Met hierdie toestemming kan jy Azure Active Directory (AD) administrateurs vir 'n MySQL Flexible Server konfigureer. Dit kan uitgebuit word deur jouself of 'n ander rekening as die AD-administrator in te stel, wat volle administratiewe beheer oor die MySQL-bediener toeken. Dit is belangrik dat die flexible-server 'n gebruiker toegewyde bestuurde identiteite het om te gebruik.
|
||||
|
||||
@@ -31,9 +31,55 @@ az postgres flexible-server update \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
Boonop is dit nodig om die publieke toegang in te skakel as jy vanaf 'n nie-private eindpunt wil toegang verkry, om dit in te skakel:
|
||||
Verder, met die toestemmings kan jy die toegewyde identiteit aktiveer, en werk met die bestuurde identiteit wat aan die bediener geheg is. Hier kan jy al die uitbreidings vind wat Azure PostgreSQL fleksible bediener ondersteun [https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions](https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions). Om hierdie uitbreidings te kan gebruik, moet sommige bedienerparameters (azure.extensions) verander word. Byvoorbeeld hier met 'n bestuurde identiteit wat toegang tot Azure Storage kan verkry:
|
||||
|
||||
Eerstens verander ons die parameters en maak seker die toegewyde identiteit is geaktiveer:
|
||||
```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;
|
||||
|
||||
```
|
||||
Boonop is dit nodig om die publieke toegang in te skakel as jy vanaf 'n nie-private eindpunt wil toegang hê, om dit in te skakel:
|
||||
```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`
|
||||
|
||||
Met hierdie toestemmings kan jy 'n bediener van 'n rugsteun herstel met:
|
||||
```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`
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Vir meer inligting oor SQL Databasis, kyk:
|
||||
|
||||
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
|
||||
|
||||
Met hierdie toestemmings kan 'n gebruiker privilige-eskalasie uitvoer deur Azure SQL bedieners op te dateer of te skep en kritieke konfigurasies te wysig, insluitend administratiewe akrediteer. Hierdie toestemming stel die gebruiker in staat om bediener eienskappe op te dateer, insluitend die SQL bediener admin wagwoord, wat ongeoorloofde toegang of beheer oor die bediener moontlik maak. Hulle kan ook nuwe bedieners skep, wat potensieel skadu-infrastruktuur vir kwaadwillige doeleindes kan inbring. Dit word veral krities in omgewings waar "Microsoft Entra Authentication Only" gedeaktiveer is, aangesien hulle SQL-gebaseerde verifikasie kan benut om onbeperkte toegang te verkry.
|
||||
Met hierdie toestemmings kan 'n gebruiker privilige-escalasie uitvoer deur Azure SQL bedieners op te dateer of te skep en kritieke konfigurasies, insluitend administratiewe akrediteer, te wysig. Hierdie toestemming laat die gebruiker toe om bediener eienskappe op te dateer, insluitend die SQL bediener admin wagwoord, wat ongeoorloofde toegang of beheer oor die bediener moontlik maak. Hulle kan ook nuwe bedieners skep, wat potensieel skadu-infrastruktuur vir kwaadwillige doeleindes kan inbring. Dit word veral krities in omgewings waar "Microsoft Entra Authentication Only" gedeaktiveer is, aangesien hulle SQL-gebaseerde autentisering kan benut om onbeperkte toegang te verkry.
|
||||
```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
|
||||
```
|
||||
Verder, met die regte kan jy die toegewyde identiteit aktiveer, en werk met die bestuurde identiteit wat aan die bediener geheg is. Byvoorbeeld hier met 'n bestuurde identiteit wat toegang tot Azure Storage kan verkry:
|
||||
Verder, met die toestemmings kan jy die toegewyde identiteit aktiveer, en werk met die bestuurde identiteit wat aan die bediener geheg is. Byvoorbeeld hier met 'n bestuurde identiteit wat toegang tot Azure Storage kan verkry:
|
||||
```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,
|
||||
@@ -99,7 +104,7 @@ LET WEL: Dit is nodig om die publieke toegang geaktiveer te hê.
|
||||
|
||||
### `Microsoft.Sql/servers/administrators/write` && `Microsoft.Sql/servers/administrators/read`
|
||||
|
||||
Met hierdie toestemmings kan jy privesc in 'n Azure SQL Server omgewing deur toegang te verkry tot SQL databasisse en kritieke inligting te onttrek. Deur die onderstaande opdrag te gebruik, kan 'n aanvaller of gemagtigde gebruiker hulself of 'n ander rekening as die Azure AD administrateur stel. As "Microsoft Entra Authentication Only" geaktiveer is, kan jy toegang tot die bediener en sy instansies verkry. Hier is die opdrag om die Azure AD administrateur vir 'n SQL bediener in te stel:
|
||||
Met hierdie toestemmings kan jy privesc in 'n Azure SQL Server omgewing deur toegang te verkry tot SQL databasisse en kritieke inligting te onttrek. Met die onderstaande opdrag kan 'n aanvaller of gemagtigde gebruiker hulself of 'n ander rekening as die Azure AD administrateur stel. As "Microsoft Entra Authentication Only" geaktiveer is, kan jy toegang tot die bediener en sy instansies verkry. Hier is die opdrag om die Azure AD administrateur vir 'n SQL bediener in te stel:
|
||||
```bash
|
||||
az sql server ad-admin create \
|
||||
--server <server_name> \
|
||||
@@ -109,7 +114,7 @@ az sql server ad-admin create \
|
||||
```
|
||||
### `Microsoft.Sql/servers/azureADOnlyAuthentications/write` && `Microsoft.Sql/servers/azureADOnlyAuthentications/read`
|
||||
|
||||
Met hierdie toestemmings kan jy "Microsoft Entra Authentication Only" op 'n Azure SQL Server konfigureer en afdwing, wat privilige-escalasie in sekere scenario's kan vergemaklik. 'n Aanvaller of 'n gemagtigde gebruiker met hierdie toestemmings kan Azure AD-slegs autentisering aktiveer of deaktiveer.
|
||||
Met hierdie toestemmings kan jy "Microsoft Entra Authentication Only" op 'n Azure SQL Server konfigureer en afdwing, wat privilige-escalasie in sekere scenario's kan fasiliteer. 'n Aanvaller of 'n gemagtigde gebruiker met hierdie toestemmings kan Azure AD-slegs autentisering aktiveer of deaktiveer.
|
||||
```bash
|
||||
#Enable
|
||||
az sql server azure-ad-only-auth enable \
|
||||
@@ -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
|
||||
Wysig (of deaktiveer) die datamaskeringbeleide op jou SQL-databasisse.
|
||||
```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"
|
||||
}
|
||||
}'
|
||||
```
|
||||
### Verwyder Ryvlak Sekuriteit
|
||||
As jy as admin aanmeld, kan jy die beleide van die admin self en ander gebruikers verwyder.
|
||||
```sql
|
||||
DROP SECURITY POLICY [Name_of_policy];
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -6,22 +6,30 @@
|
||||
|
||||
**Azure Cosmos DB** is 'n volledig **bestuurde NoSQL, relationele, en vektordatabasis** wat enkel-digit millisekonde reaksietye, outomatiese skaalbaarheid, en SLA-ondersteunde beskikbaarheid met ondernemingsgraad sekuriteit bied. Dit stel vinniger app-ontwikkeling in staat deur kant-en-klaar multi-streek data verspreiding, oopbron API's, SDK's vir gewilde tale, en KI-databasis funksies soos geïntegreerde vektorondersteuning en naatlose Azure KI-integrasie.
|
||||
|
||||
Azure Cosmos DB bied verskeie databasis API's om werklike data te modelleer met behulp van dokumente, relationele, sleutel-waarde, grafiek, en kolom-familie datamodelles, wat hierdie API's NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin en Tabel is.
|
||||
Azure Cosmos DB bied verskeie databasis API's om werklike data te modelleer met behulp van dokumente, relationeel, sleutel-waarde, grafiek, en kolom-familie datamodelles, wat hierdie API's NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin en Tabel is.
|
||||
|
||||
Een sleutel aspek van CosmosDB is Azure Cosmos Account. **Azure Cosmos Account** dien as die toegangspunt tot die databasisse. Die rekening bepaal sleutelinstellings soos globale verspreiding, konsekwentievlakke, en die spesifieke API wat gebruik moet word, soos NoSQL. Deur die rekening kan jy globale replikaasies instel om te verseker dat data beskikbaar is oor verskeie streke vir lae-latensie toegang. Boonop kan jy 'n konsekwentievlak kies wat 'n balans tussen prestasie en datanauwkeurigheid handhaaf, met opsies wat wissel van Sterk tot Geleidelike konsekwentheid.
|
||||
Een sleutel aspek van CosmosDB is Azure Cosmos Account. **Azure Cosmos Account** dien as die toegangspunt tot die databasisse. Die rekening bepaal sleutelinstellings soos globale verspreiding, konsekwentievlakke, en die spesifieke API wat gebruik moet word, soos NoSQL. Deur die rekening kan jy globale replikaasies konfigureer om te verseker dat data beskikbaar is oor verskeie streke vir lae-latensie toegang. Boonop kan jy 'n konsekwentievlak kies wat 'n balans tussen prestasie en datanauwkeurigheid handhaaf, met opsies wat wissel van Sterk tot Finale konsekwentheid.
|
||||
|
||||
### NoSQL (sql)
|
||||
Die Azure Cosmos DB NoSQL API is 'n dokument-gebaseerde API wat JSON as sy dataformaat gebruik. Dit bied 'n SQL-agtige vraagsintaksis vir die ondervraging van JSON-objekte, wat dit geskik maak vir die werk met gestruktureerde en semi-gestruktureerde data. Die eindpunt van die diens is:
|
||||
Azure Cosmos DB ondersteun **gebruikers-toegewyde identiteite** en **sisteem-toegewyde bestuurde identiteite** wat outomaties geskep word en aan die hulpbron se lewensiklus gekoppel is, wat veilige, token-gebaseerde verifikasie moontlik maak wanneer daar met ander dienste gekonnekteer word—mits daardie dienste die toepaslike roltoewysings het. egter, Cosmos DB het nie 'n ingeboude meganisme om direk eksterne databronne soos Azure Blob Storage te ondervra nie. Anders as SQL Server se eksterne tabel funksies, vereis Cosmos DB dat data in sy houers ingeneem word met behulp van eksterne gereedskap soos Azure Data Factory, die Data Migrasie Gereedskap, of pasgemaakte skripte voordat dit met sy inheemse ondervragingsvermoëns ondervra kan word.
|
||||
|
||||
### NoSQL
|
||||
Die Azure Cosmos DB NoSQL API is 'n dokument-gebaseerde API wat JSON as sy dataformaat gebruik. Dit bied 'n SQL-agtige ondervragingsintaksis vir die ondervraging van JSON-objekte, wat dit geskik maak vir die werk met gestruktureerde en semi-gestruktureerde data. Die eindpunt van die diens is:
|
||||
```bash
|
||||
https://<Account-Name>.documents.azure.com:443/
|
||||
```
|
||||
#### Databases
|
||||
Binne 'n rekening kan jy een of meer databasisse skep, wat dien as logiese groepe van houers. 'n Databasis dien as 'n grense vir hulpbronbestuur en gebruikersregte. Databasisse kan of die voorsiene deurset oor hul houers deel of toegewyde deurset aan individuele houers toewys.
|
||||
#### Databasies
|
||||
Binne 'n rekening kan jy een of meer databasies skep, wat dien as logiese groepe van houers. 'n Databasis dien as 'n grense vir hulpbronbestuur en gebruikersregte. Databasies kan of die voorsiene deurset oor hul houers deel of toegewyde deurset aan individuele houers toewys.
|
||||
|
||||
#### Containers
|
||||
Die kern eenheid van data-opberging is die houer, wat JSON-dokumente bevat en outomaties geindexeer word vir doeltreffende navraag. Houers is elasties skaalbaar en versprei oor partisie, wat bepaal word deur 'n deur gebruiker gedefinieerde partisie sleutel. Die partisie sleutel is krities vir die verseker van optimale prestasie en eweredige data verspreiding. Byvoorbeeld, 'n houer kan kliëntdata stoor, met "customerId" as die partisie sleutel.
|
||||
#### Houers
|
||||
Die kern eenheid van data-opberging is die houer, wat JSON-dokumente bevat en outomaties geindekseer word vir doeltreffende navraag. Houers is elasties skaalbaar en versprei oor partisie, wat bepaal word deur 'n deur gebruiker gedefinieerde partisie-sleutel. Die partisie-sleutel is krities vir die verseker van optimale prestasie en eweredige data verspreiding. Byvoorbeeld, 'n houer kan kliëntdata stoor, met "customerId" as die partisie-sleutel.
|
||||
|
||||
#### Enumeration
|
||||
#### Sleutelkenmerke
|
||||
**Globale Verspreiding**: Aktiveer of deaktiveer Geo-Retundansie vir kruisstreek replika en Multi-streek Skrywe vir verbeterde beskikbaarheid.
|
||||
**Netwerk & Sekuriteit**: tussen openbare (alle/selekteer netwerke) of private eindpunte vir konnektiwiteit. Veilige verbindings met TLS 1.2-enkripsie. Ondersteun CORS (Cross-Origin Resource Sharing) vir beheerde toegang tot hulpbronne.
|
||||
**Rugsteun & Herstel**: van Periodieke, Kontinu (7 dae), of Kontinu (30 dae) rugsteunbeleide met konfigureerbare tydsintervalle en behoud.
|
||||
**Data Enkripsie**: Standaard diens-beheerde sleutels of kliënt-beheerde sleutels (CMK) vir enkripsie (CMK-keuse is onomkeerbaar).
|
||||
|
||||
#### Enumerasie
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -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>
|
||||
|
||||
```
|
||||
@@ -110,7 +118,7 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -A
|
||||
|
||||
#### Verbinding
|
||||
|
||||
Om die azure-cosmosDB (pip install azure-cosmos) biblioteek te verbind, is dit nodig. Boonop is die eindpunt en die sleutel kritieke komponente om die verbinding te maak.
|
||||
Om die azure-cosmosDB (pip install azure-cosmos) biblioteek te verbind, is dit nodig. Boonop is die eindpunt en die sleutel belangrike komponente om die verbinding te maak.
|
||||
```python
|
||||
from azure.cosmos import CosmosClient, PartitionKey
|
||||
|
||||
@@ -149,7 +157,7 @@ print("All items in the container:")
|
||||
for item in all_items:
|
||||
print(item)
|
||||
```
|
||||
'n Ander manier om 'n verbinding te vestig, is om die **DefaultAzureCredential()** te gebruik. Jy moet net aanmeld (az login) met die rekening wat die toestemmings het en dit uitvoer. Vir hierdie geval moet 'n roltoewysing gedoen word, wat die nodige toestemmings gee (sien vir meer)
|
||||
'n Ander manier om 'n verbinding te vestig, is om die **DefaultAzureCredential()** te gebruik. Jy moet net aanmeld (az login) met die rekening wat die toestemmings het en dit uitvoer. Vir hierdie geval moet 'n roltoewysing gedoen word, wat die nodige toestemmings gee (sien vir meer).
|
||||
```python
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from azure.cosmos import CosmosClient
|
||||
@@ -175,17 +183,28 @@ container.create_item(item)
|
||||
print("Document inserted.")
|
||||
```
|
||||
### MongoDB
|
||||
Die MongoDB NoSQL API is 'n dokument-gebaseerde API wat JSON-agtige BSON (Binary JSON) as sy dataformaat gebruik. Dit bied 'n navraagtaal met aggregasie vermoëns, wat dit geskik maak vir die werk met gestruktureerde, semi-gestruktureerde en ongestruktureerde data. Die eindpunt van die diens volg tipies hierdie formaat:
|
||||
Die MongoDB NoSQL API is 'n dokument-gebaseerde API wat JSON-agtige BSON (Binary JSON) as sy dataformaat gebruik. Dit bied 'n navraagtaal met aggregasie vermoëns, wat dit geskik maak vir die werk met gestruktureerde, semi-gestruktureerde, en ongestruktureerde data. Die eindpunt van die diens volg tipies hierdie formaat:
|
||||
```bash
|
||||
mongodb://<hostname>:<port>/<database>
|
||||
```
|
||||
#### Databases
|
||||
In MongoDB kan jy een of meer databasisse binne 'n instansie skep. Elke databasis dien as 'n logiese groep van versamelings en bied 'n grense vir hulpbronorganisasie en -bestuur. Databasisse help om data logies te skei en te bestuur, soos vir verskillende toepassings of projekte.
|
||||
#### Databasas
|
||||
In MongoDB kan jy een of meer databasas binne 'n instansie skep. Elke databasis dien as 'n logiese groep van versamelings en bied 'n grense vir hulpbronorganisasie en -bestuur. Databasas help om data logies te skei en te bestuur, soos vir verskillende toepassings of projekte.
|
||||
|
||||
#### Collections
|
||||
Die kern eenheid van data-opberging in MongoDB is die versameling, wat dokumente hou en ontwerp is vir doeltreffende navraag en buigsame skema-ontwerp. Versamelings is elasties skaalbaar en kan hoë-deurset operasies oor verskeie nodes in 'n verspreide opstelling ondersteun.
|
||||
#### Versamelings
|
||||
Die kern eenheid van data-opberging in MongoDB is die versameling, wat dokumente hou en ontwerp is vir doeltreffende navraag en buigsame skema-ontwerp. Versamelings is elasties skaalbaar en kan hoë-deurvoer operasies oor verskeie nodes in 'n verspreide opstelling ondersteun.
|
||||
|
||||
#### Enumeration
|
||||
#### Sleutelkenmerke van Versoekeenheid (RU) tipe
|
||||
**Globale Verspreiding**: Aktiveer of deaktiveer Geo-Retensie vir kruisstreek replika en Multi-streek Skrywe vir verbeterde beskikbaarheid.
|
||||
**Netwerk & Sekuriteit**: tussen openbare (alle/selekteer netwerke) of private eindpunte vir konnektiwiteit. Veilige verbindings met TLS 1.2 versleuteling. Ondersteun CORS (Cross-Origin Resource Sharing) vir beheerde toegang tot hulpbronne.
|
||||
**Rugsteun & Herstel**: van Periodieke, Kontinuïteit (7 dae, gratis), of Kontinuïteit (30 dae, betaalde) rugsteunbeleide met konfigureerbare tussenposes en behoud.
|
||||
**Data Versleuteling**: Standaard diens-beheerde sleutels of kliënt-beheerde sleutels (CMK) vir versleuteling (CMK-keuse is onomkeerbaar).
|
||||
|
||||
#### Sleutelkenmerke van vCore kluster tipe
|
||||
**Globale Verspreiding**: Aktiveer 'n lees replika in 'n ander Azure streek vir hoë beskikbaarheid en failover ondersteuning. Konfigureer die replika naam, streek, en stoor per shard.
|
||||
**Netwerk & Sekuriteit**: Ondersteun openbare toegang met toegewyde openbare IP's en private toegang. Beperk verbindings met firewall reëls—per standaard, geen openbare IP's is toegelaat.
|
||||
**Versleutelde Verbindinge**: Handhaaf TLS versleuteling vir veilige datatransmissie.
|
||||
|
||||
#### Enumerasie
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
|
||||
@@ -4,14 +4,19 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Azure Logic Apps is 'n wolk-gebaseerde diens wat deur Microsoft Azure verskaf word wat ontwikkelaars in staat stel om **werkvloei te skep en te bestuur wat verskeie dienste**, databronne en toepassings integreer. Hierdie werkvloei is ontwerp om **besigheidsprosesse te outomatiseer**, take te orkestreer en data-integrasies oor verskillende platforms uit te voer.
|
||||
Azure Logic Apps is 'n wolk-gebaseerde diens wat deur Microsoft Azure verskaf word wat ontwikkelaars in staat stel om **werkvloei te skep en te bestuur wat verskeie dienste**, databronne en toepassings integreer. Hierdie werkvloei is ontwerp om **besigheidsprosesse te outomatiseer**, take te orkestreer, en data-integrasies oor verskillende platforms uit te voer.
|
||||
|
||||
Logic Apps bied 'n visuele ontwerper om werkvloei te skep met 'n **wye verskeidenheid voorafgeboude koppelvlakke**, wat dit maklik maak om te verbind met en te kommunikeer met verskeie dienste, soos Office 365, Dynamics CRM, Salesforce, en vele ander. Jy kan ook pasgemaakte koppelvlakke skep vir jou spesifieke behoeftes.
|
||||
Logic Apps bied 'n visuele ontwerper om werkvloei te skep met 'n **wye verskeidenheid voorafgeboude koppelvlakke**, wat dit maklik maak om met verskeie dienste, soos Office 365, Dynamics CRM, Salesforce, en vele ander te verbind en te kommunikeer. Jy kan ook pasgemaakte koppelvlakke vir jou spesifieke behoeftes skep.
|
||||
|
||||
Wanneer jy 'n Logic App skep, moet jy óf 'n eksterne stoorrekening skep of koppel wat die werkvloei-toestand, uitvoergeskiedenis, en artefakte stoor. Hierdie stoor kan geconfigureer word met diagnostiese instellings vir monitering en kan beveilig word met netwerktoegangbeperkings of in 'n virtuele netwerk geïntegreer word om inkomende en uitgaande verkeer te beheer.
|
||||
|
||||
### Gemanagte Identiteite
|
||||
Logic Apps het 'n **sisteem-toegewyde gemanagte identiteit** wat aan sy lewensiklus gekoppel is. Wanneer geaktiveer, ontvang dit 'n unieke Objekt (hoof) ID wat gebruik kan word met Azure RBAC om die nodige toestemmings te verleen om ander Azure-dienste veilig te benader. Dit elimineer die behoefte om akrediteerbare inligting in kode te stoor omdat die identiteit geverifieer word deur Microsoft Entra ID. Boonop kan jy ook **gebruikers-toegewyde gemanagte identiteite** gebruik, wat oor verskeie hulpbronne gedeel kan word. Hierdie identiteite stel werkvloei en Logic Apps in staat om veilig met eksterne stelsels te kommunikeer, wat verseker dat die nodige toegangbeheer en toestemmings sentraal deur Azure se sekuriteitsraamwerk bestuur word.
|
||||
|
||||
### Voorbeelde
|
||||
|
||||
- **Outomatisering van Data Pype**: Logic Apps kan **data-oordrag en transformasieprosesse** outomatiseer in kombinasie met Azure Data Factory. Dit is nuttig om skaalbare en betroubare datapipes te skep wat data tussen verskeie datastores beweeg en transformeer, soos Azure SQL Database en Azure Blob Storage, wat help met analise en besigheidsintelligensie-operasies.
|
||||
- **Integrasie met Azure Functions**: Logic Apps kan saam met Azure Functions werk om **gesofistikeerde, gebeurtenisgedrewe toepassings te ontwikkel wat soos nodig skaal** en naatloos met ander Azure-dienste integreer. 'n Voorbeeld gebruiksgeval is om 'n Logic App te gebruik om 'n Azure Function te aktiveer in reaksie op sekere gebeurtenisse, soos veranderinge in 'n Azure Storage-rekening, wat dinamiese dataverwerking moontlik maak.
|
||||
- **Outomatisering van Data-pype**: Logic Apps kan **data-oordrag en transformasieprosesse** outomatiseer in kombinasie met Azure Data Factory. Dit is nuttig om skaalbare en betroubare datapipes te skep wat data tussen verskeie datastores, soos Azure SQL Database en Azure Blob Storage, beweeg en transformeer, wat help met analise en besigheidsintelligensie-operasies.
|
||||
- **Integrasie met Azure Functions**: Logic Apps kan saam met Azure Functions werk om **gesofistikeerde, gebeurtenisgedrewe toepassings te ontwikkel wat soos nodig skaal** en naatloos met ander Azure-dienste integreer. 'n Voorbeeld gebruiksgeval is om 'n Logic App te gebruik om 'n Azure Function te aktiveer in reaksie op sekere gebeurtenisse, soos veranderinge in 'n Azure Stoorrekening, wat dinamiese dataverwerking moontlik maak.
|
||||
|
||||
### Visualiseer 'n LogicAPP
|
||||
|
||||
@@ -19,11 +24,11 @@ Dit is moontlik om 'n LogicApp met grafika te sien:
|
||||
|
||||
<figure><img src="../../../images/image (197).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
of om die kode in die "**Logic app kode weergawe**" afdeling te kontroleer.
|
||||
of om die kode in die "**Logic app kodeweergave**" afdeling te kontroleer.
|
||||
|
||||
### SSRF Beskerming
|
||||
|
||||
Selfs as jy die **Logic App kwesbaar vir SSRF** vind, sal jy nie in staat wees om die akrediteerbare inligting van die metadata te bekom nie, aangesien Logic Apps dit nie toelaat nie.
|
||||
Selfs al vind jy die **Logic App kwesbaar vir SSRF**, sal jy nie in staat wees om die akrediteerbare inligting van die metadata te bekom nie, aangesien Logic Apps dit nie toelaat nie.
|
||||
|
||||
Byvoorbeeld, iets soos dit sal nie die token teruggee:
|
||||
```bash
|
||||
@@ -32,14 +37,18 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741
|
||||
```
|
||||
### Hosting options
|
||||
|
||||
Daar is verskeie gasheeropsies:
|
||||
Daar is verskeie hosting opsies:
|
||||
|
||||
* **Consumption**
|
||||
- **Multi-tenant**: bied gedeelde rekenaarbronne, werk in die openbare wolk, en volg 'n betaal-per-operasie prysmodel. Dit is ideaal vir liggewig en kostedoeltreffende werklas.
|
||||
* **Standard**
|
||||
- **Workflow Service Plan**: toegewyde rekenaarbronne met VNET-integrasie vir netwerk en hef per workflow service plan instansie. Dit is geskik vir meer veeleisende werklas wat groter beheer vereis.
|
||||
- **Workflow Service Plan**: toegewyde rekenaarbronne met VNET integrasie vir netwerk en hef per workflow service plan instansie. Dit is geskik vir meer veeleisende werklas wat groter beheer vereis.
|
||||
- **App Service Environment V3** toegewyde rekenaarbronne met volle isolasie en skaalbaarheid. Dit integreer ook met VNET vir netwerk en gebruik 'n prysmodel gebaseer op App Service instansies binne die omgewing. Dit is ideaal vir ondernemingskaal toepassings wat hoë isolasie benodig.
|
||||
- **Hybrid** ontwerp vir plaaslike verwerking en multi-cloud ondersteuning. Dit laat kliënt-bestuurde rekenaarbronne met plaaslike netwerktoegang toe en gebruik Kubernetes Event-Driven Autoscaling (KEDA).
|
||||
- **Hybrid** ontwerp vir plaaslike verwerking en multi-wolk ondersteuning. Dit laat kliënt-bestuurde rekenaarbronne met plaaslike netwerktoegang toe en gebruik Kubernetes Event-Driven Autoscaling (KEDA).
|
||||
|
||||
### Workflows
|
||||
|
||||
Workflows in Azure Logic Apps is die kern geoutomatiseerde prosesse wat aksies oor verskeie dienste orkestreer. 'n Workflow begin met 'n trigger—'n gebeurtenis of skedule—en voer dan 'n reeks aksies uit, soos om API's aan te roep, data te verwerk, of met ander Azure dienste te kommunikeer. Workflows kan visueel gedefinieer word met behulp van 'n ontwerper of via kode (JSON definisies) en word bestuur deur opdragte soos az logic workflow create, az logic workflow show, en az logic workflow update. Hulle ondersteun ook identiteitsbestuur (deur die identiteits subgroep) om toestemmings en integrasies met eksterne bronne veilig te bestuur.
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -137,13 +146,15 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
|
||||
### Integrasie Rekeninge
|
||||
**Integrasie Rekeninge** is 'n kenmerk van Azure Logic Apps. Integrasie Rekeninge word gebruik om ondernemingsvlak integrasies te fasiliteer deur gevorderde B2B vermoëns, soos EDI, AS2, en XML skema bestuur, moontlik te maak. Integrasie Rekeninge is 'n houer in Azure wat die volgende artefakte stoor wat vir Logic Apps gebruik word:
|
||||
|
||||
* Skemas: Bestuur XML skemas vir die validering en verwerking van boodskappe in jou integrasie rekening.
|
||||
* Kaarte: Konfigureer XSLT-gebaseerde transformasies om data formate binne jou integrasie werksvloei te omskep.
|
||||
* Versamelings: Bestuur integrasie rekening versamelings om logika en data verwerking te stroomlyn.
|
||||
* Sertifikate: Hanteer sertifikate vir die enkripsie en ondertekening van boodskappe, wat veilige kommunikasie verseker.
|
||||
* Sertifikate: Hanteer sertifikate vir die enkriptering en ondertekening van boodskappe, wat veilige kommunikasie verseker.
|
||||
* Vennootskappe: Bestuur handelsvennoot inligting vir B2B transaksies, wat naatlose integrasies moontlik maak.
|
||||
* Ooreenkomste: Konfigureer reëls en instellings vir die uitruil van data met handelsvennote (bv. EDI, AS2).
|
||||
* Batch Konfigurasies: Bestuur batch verwerking konfigurasies om boodskappe doeltreffend te groepeer en te verwerk.
|
||||
|
||||
@@ -16,10 +16,10 @@ Azure Database for MySQL is 'n volledig bestuurde relationele databasisdiens geb
|
||||
- Bied stop/start funksionaliteit vir kostebesparings.
|
||||
|
||||
### Key Features
|
||||
* **Server Management**: Die **ad-admin** kenmerk laat die bestuur van Azure Active Directory (AAD) administrateurs vir MySQL bedieners toe, wat beheer oor administratiewe toegang via AAD akrediteerbare bied, terwyl die **identity** kenmerk die toewysing en bestuur van Azure Managed Identities moontlik maak, wat veilige, akrediteerbare-vrye verifikasie bied vir toegang tot Azure hulpbronne.
|
||||
* **Server Management**: Die **ad-admin** kenmerk laat die bestuur van Azure Entra ID administrateurs vir MySQL bedieners toe, wat beheer oor administratiewe toegang via Entra ID akrediteerbare bied. Mysql ondersteun Gebruiker Beheerde Identiteite, wat gebruik word om te autentiseer sonder die behoefte aan akrediteerbare, en kan deur ander dienste gebruik word.
|
||||
* **Lifecycle Management**: opsies om 'n bediener te begin of te stop, 'n fleksibele bedienerinstansie te verwyder, 'n bediener te herbegin om vinnig konfigurasiewijzigings toe te pas, en te wag om te verseker dat 'n bediener aan spesifieke voorwaardes voldoen voordat outomatiseringskripte voortgaan.
|
||||
* **Security and Networking**: kan bediener firewall reëls bestuur vir veilige databasis toegang en virtuele netwerk konfigurasies soos nodig ontkoppel.
|
||||
* **Data Protection and Backup**: sluit opsies in om fleksibele bediener rugsteun te bestuur vir dataherstel, geo-herstel uit te voer om 'n bediener in 'n ander streek te herstel, bediener rugsteun vir eksterne gebruik (in Voorbeeld) te eksporteer, en 'n bediener van rugsteun na 'n spesifieke tydstip te herstel.
|
||||
* **Security and Networking**: Beveilig jou bediener deur verbindings te beperk deur firewall-reëls wat slegs spesifieke publieke IP adresse toelaat, of deur private eindpunte te gebruik wat jou bediener in 'n virtuele netwerk integreer. Alle verbindings is beskerm met TLS 1.2 versleuteling. Databasisse, rugsteun en logs is standaard versleuteld in rus met behulp van diensbestuurde sleutels of pasgemaakte sleutels.
|
||||
* **Data Protection and Backup**: sluit opsies in om fleksibele bediener rugsteun te bestuur vir dataherstel, geo-herstel uit te voer om 'n bediener in 'n ander streek te herstel, bediener rugsteun vir eksterne gebruik (in Voorbeeld) te voer, en 'n bediener van rugsteun na 'n spesifieke tydstip te herstel.
|
||||
|
||||
### Enumeration
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
* **Outomatiese Rugsteun**: Ingeboude daaglikse rugsteun met retensietydperke wat tot 35 dae konfigureerbaar is.
|
||||
* **Rolgebaseerde Toegang**: Beheer gebruikersregte en administratiewe toegang deur Azure Active Directory.
|
||||
* **Sekuriteit en Netwerk**: kan bediener-vuurmuurreëls bestuur vir veilige databasis toegang en virtuele netwerk konfigurasies soos nodig ontkoppel.
|
||||
* **Bestuurde Identiteite**: laat jou bediener toe om veilig met ander Azure-dienste te autentiseer sonder om akrediteerbesonderhede te stoor. Dit laat toegang tot ander dienste wat 'n stelselaanbestede bestuurde identiteit sou wees en deur ander dienste met ander identiteite wat 'n gebruiker aangewese bestuurde identiteit is, benader kan word.
|
||||
|
||||
### Enumerasie
|
||||
|
||||
@@ -130,7 +131,7 @@ psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser
|
||||
|
||||
## ToDo
|
||||
|
||||
* Soek 'n manier om met ad-admin toegang te verkry om te verifieer dat dit 'n privesc-metode is
|
||||
* Kyk 'n manier om toegang te verkry met ad-admin om te verifieer dat dit 'n privesc-metode is
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,148 +4,96 @@
|
||||
|
||||
## Azure SQL
|
||||
|
||||
Azure SQL is 'n familie van bestuurde, veilige en intelligente produkte wat die **SQL Server-databasisengine in die Azure-cloud** gebruik. Dit beteken jy hoef nie bekommerd te wees oor die fisiese administrasie van jou bedieners nie, en jy kan fokus op die bestuur van jou data.
|
||||
Azure SQL is 'n familie van bestuurde, veilige en intelligente produkte wat die **SQL Server-databasisengine in die Azure-wolk** gebruik. Dit beteken jy hoef nie bekommerd te wees oor die fisiese administrasie van jou bedieners nie, en jy kan fokus op die bestuur van jou data.
|
||||
|
||||
Azure SQL bestaan uit vier hoofaanbiedinge:
|
||||
|
||||
1. **Azure SQL Server**: Azure SQL Server is 'n bestuurde relationele databasisdiens wat die ontplooiing en bestuur van SQL Server-databasisse vereenvoudig, met ingeboude sekuriteit en prestasiekenmerke.
|
||||
2. **Azure SQL Database**: Dit is 'n **volledig bestuurde databasisdiens**, wat jou toelaat om individuele databasisse in die Azure-cloud te huisves. Dit bied ingeboude intelligensie wat jou unieke databasispatrone leer en aangepaste aanbevelings en outomatiese afstemming bied.
|
||||
3. **Azure SQL Managed Instance**: Dit is vir groter skaal, hele SQL Server-instantie-geskepte ontplooiings. Dit bied byna 100% kompatibiliteit met die nuutste SQL Server op-premises (Enterprise Edition) Databasisengine, wat 'n inheemse virtuele netwerk (VNet) implementering bied wat algemene sekuriteitskwessies aanspreek, en 'n besigheidsmodel wat gunstig is vir op-premises SQL Server-klante.
|
||||
4. **Azure SQL Server op Azure VMs**: Dit is Infrastruktur as 'n Diens (IaaS) en is die beste vir migrasies waar jy **beheer oor die bedryfstelsel en SQL Server-instantie** wil hê, soos dit 'n bediener was wat op-premises loop.
|
||||
1. **Azure SQL Server**: 'n Bediener is nodig vir die **ontplooiing en bestuur** van SQL Server-databasisse.
|
||||
2. **Azure SQL Database**: Dit is 'n **volledig bestuurde databasisdiens**, wat jou toelaat om individuele databasisse in die Azure-wolk te huisves.
|
||||
3. **Azure SQL Managed Instance**: Dit is vir groter skaal, hele SQL Server-instantie-geskepte ontplooiings.
|
||||
4. **Azure SQL Server op Azure VMs**: Dit is die beste vir argitekture waar jy **beheer oor die bedryfstelsel** en SQL Server-instantie wil hê.
|
||||
|
||||
### Azure SQL Server
|
||||
### SQL Server Sekuriteitskenmerke
|
||||
|
||||
Azure SQL Server is 'n relationele databasisbestuurstelsel (RDBMS) wat Transact-SQL vir data-operasies gebruik en is gebou om ondernemingsvlak stelsels te hanteer. Dit bied robuuste kenmerke vir prestasie, sekuriteit, skaalbaarheid, en integrasie met verskeie Microsoft-toepassings. Azure SQL-databasisse is afhanklik van hierdie bediener, aangesien dit op hierdie bedieners gebou is en dit is die toegangspunt vir gebruikers om toegang tot die databasisse te verkry.
|
||||
**Netwerktoegang:**
|
||||
|
||||
#### Netwerk
|
||||
- Publieke eindpunt (kan toegang tot spesifieke netwerke beperk).
|
||||
- Privaat eindpunte.
|
||||
- Dit is ook moontlik om verbindings op grond van domeinnames te beperk.
|
||||
- Dit is ook moontlik om Azure-dienste toe te laat om toegang te verkry (soos om die Query-redigeerder in die portaal te gebruik of om 'n Azure VM toe te laat om te verbind).
|
||||
|
||||
**Netwerkverbinding**: Kies of jy toegang via 'n openbare eindpunt of private eindpunt wil inskakel. As jy Geen toegang kies, word geen eindpunte geskep totdat dit handmatig gekonfigureer is:
|
||||
- Geen toegang: Geen eindpunte is gekonfigureer nie, wat inkomende verbindings blokkeer totdat dit handmatig opgestel is.
|
||||
- Publieke eindpunt: Laat direkte verbindings oor die openbare internet toe, onderhewig aan firewallreëls en ander sekuriteitskonfigurasies.
|
||||
- Private eindpunt: Beperk verbinding tot 'n private netwerk.
|
||||
**Verifikasiemetodes:**
|
||||
|
||||
**Verbindingsbeleid**: Definieer hoe kliënte met die SQL-databasisbediener kommunikeer:
|
||||
- Standaard: Gebruik 'n Oorplasing-beleid vir alle kliëntverbindinge van binne Azure (behalwe dié wat Private Eindpunte gebruik) en 'n Proxy-beleid vir verbindings van buite Azure.
|
||||
- Proxy: Lei alle kliëntverbindinge deur die Azure SQL Database-gateway.
|
||||
- Oorplasing: Kliënte verbind direk met die node wat die databasis huisves.
|
||||
- Microsoft **Entra-slegs** verifikasie: Jy moet die Entra-principals aandui wat toegang tot die diens sal hê.
|
||||
- **Sowel SQL as Microsoft Entra** verifikasie: Tradisionele SQL-verifikasie met gebruikersnaam en wagwoord saam met Microsoft Entra.
|
||||
- **Slegs SQL** verifikasie: Laat slegs toegang toe via databasisgebruikers.
|
||||
|
||||
#### Verifikasiemetodes
|
||||
Azure SQL ondersteun verskeie verifikasiemetodes om databasis toegang te beveilig:
|
||||
Let daarop dat as enige SQL-verifikasie toegelaat word, 'n admin-gebruiker (gebruikersnaam + wagwoord) aangedui moet word, en as Entra ID-verifikasie gekies word, moet dit ook nodig wees om ten minste een principal met admin-toegang aan te dui.
|
||||
|
||||
- **Microsoft Entra-slegs verifikasie**: Gebruik Microsoft Entra (voorheen Azure AD) vir gesentraliseerde identiteitsbestuur en enkele aanmelding.
|
||||
- **Sowel SQL as Microsoft Entra verifikasie**: Laat jou toe om tradisionele SQL-verifikasie saam met Microsoft Entra te gebruik.
|
||||
- **SQL-verifikasie**: Vertrou slegs op SQL Server gebruikersname en wagwoorde.
|
||||
**Enkripsie:**
|
||||
|
||||
#### Sekuriteitskenmerke
|
||||
- Dit word "Deursigtige data-enkripsie" genoem en dit enkripteer databasisse, rugsteun en logs in rus.
|
||||
- Soos altyd, 'n Azure bestuurde sleutel word standaard gebruik, maar 'n kliënt bestuurde enkripsiesleutel (CMEK) kan ook gebruik word.
|
||||
**Bestuurde Identiteite:**
|
||||
|
||||
SQL-bedieners het **Bestuurde Identiteite**. Bestuurde identiteite laat jou bediener toe om veilig met ander Azure-dienste te verifieer sonder om akrediteer te stoor. Dit laat toegang tot ander dienste toe wat 'n Stelsels toegewyde bestuurde identiteit sou wees en deur ander dienste met ander identiteite wat 'n Gebruiker toegewyde identiteit is, verkry kan word. Sommige van die dienste wat SQL kan toegang, is Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB of Cosmos DB API vir MongoDB, Generiese ODBC, Bulk Operasies en S3-compatibele objekberging.
|
||||
- Dit is moontlik om stelsels en gebruikers bestuurde MIs toe te ken.
|
||||
- Gebruik om toegang tot die enkripsiesleutel te verkry (as 'n CMEK gebruik word) en ander dienste van die databasisse.
|
||||
- As meer as een UMI toegeken word, is dit moontlik om die standaard een aan te dui wat gebruik moet word.
|
||||
- Dit is moontlik om 'n gefedereerde kliëntidentiteit vir kruis-huurder toegang te konfigureer.
|
||||
|
||||
Ander sekuriteitskenmerke wat SQL-server het, is:
|
||||
**Microsoft Defender:**
|
||||
|
||||
- **Firewallreëls**: Firewallreëls beheer toegang tot jou bediener deur verkeer te beperk of toe te laat. Dit is ook 'n kenmerk van die databasisse self.
|
||||
- **Deursigtige Data-enkripsie (TDE)**: TDE enkripteer jou databasisse, rugsteun, en logs in rus om jou data te beskerm selfs as die berging gecompromitteer is. Dit kan gedoen word met 'n diens-bestuurde sleutel of 'n kliënt-bestuurde sleutel.
|
||||
- **Microsoft Defender vir SQL**: Microsoft Defender vir SQL kan geaktiveer word wat kwesbaarheidsassessering en gevorderde bedreigingsbeskerming vir 'n bediener bied.
|
||||
- Nuttig vir "die versagting van potensiële databasis kwesbaarhede, en die opsporing van anomale aktiwiteite"
|
||||
- Ons sal oor Defender in sy eie les praat (dit kan in verskeie ander Azure-dienste geaktiveer word)
|
||||
|
||||
#### Ontplooiingsmodelle
|
||||
**Rugsteun:**
|
||||
- Rugsteunfrekwensie word in die retensiebeleide bestuur.
|
||||
|
||||
Azure SQL Database ondersteun buigsame ontplooiingsopsies om aan verskeie behoeftes te voldoen:
|
||||
**Verwyderde databasisse:**
|
||||
- Dit is moontlik om DB's wat uit bestaande rugsteun verwyder is, te herstel.
|
||||
|
||||
- **Enkel Databasis**:
|
||||
- 'n Volledig geïsoleerde databasis met sy eie toegewyde hulpbronne.
|
||||
- Groot vir mikrodiens of toepassings wat 'n enkele databron benodig.
|
||||
- **Elastiese Poel**:
|
||||
- Laat verskeie databasisse toe om hulpbronne binne 'n poel te deel.
|
||||
- Kostedoeltreffend vir toepassings met wisselende gebruikspatrone oor verskeie databasisse.
|
||||
## Azure SQL Database
|
||||
|
||||
### Azure SQL Database
|
||||
**Azure SQL Database** is 'n **volledig bestuurde databasisplatform as 'n diens (PaaS)** wat skaalbare en veilige relationele databasisoplossings bied. Dit is gebou op die nuutste SQL Server-tegnologieë en elimineer die behoefte aan infrastruktuur bestuur, wat dit 'n gewilde keuse maak vir wolk-gebaseerde toepassings.
|
||||
|
||||
**Azure SQL Database** is 'n **volledig bestuurde databasisplatform as 'n diens (PaaS)** wat skaalbare en veilige relationele databasisoplossings bied. Dit is gebou op die nuutste SQL Server-tegnologieë en elimineer die behoefte aan infrastruktuurbestuur, wat dit 'n gewilde keuse vir wolk-gebaseerde toepassings maak.
|
||||
Om 'n SQL-databasis te skep, is dit nodig om die SQL-server aan te dui waar dit gehuisves sal word.
|
||||
|
||||
#### Sleutelkenmerke
|
||||
### SQL Database Sekuriteitskenmerke
|
||||
|
||||
- **Altijd Opdatering**: Loop op die nuutste stabiele weergawe van SQL Server en ontvang nuwe kenmerke en regstellings outomaties.
|
||||
- **PaaS Vermoëns**: Ingeboude hoë beskikbaarheid, rugsteun, en opdaterings.
|
||||
- **Data Buigsaamheid**: Ondersteun relationele en nie-relationele data (bv. grafieke, JSON, ruimtelike, en XML).
|
||||
- **Altijd Opdaterend**: Loop op die nuutste stabiele weergawe van SQL Server en ontvang nuwe kenmerke en patches outomaties.
|
||||
- **Geërfde SQL Server sekuriteitskenmerke:**
|
||||
- Verifikasie (SQL en/of Entra ID)
|
||||
- Toegekende Bestuurde Identiteite
|
||||
- Netwerkbeperkings
|
||||
- Enkripsie
|
||||
- Rugsteun
|
||||
- …
|
||||
- **Data redundansie:** Opsies is plaaslik, sone, Geo of Geo-Zone redundante.
|
||||
- **Ledger:** Dit verifieer die integriteit van data cryptografies, wat verseker dat enige vervalsing opgespoor word. Nuttig vir finansiële, mediese en enige organisasie wat sensitiewe data bestuur.
|
||||
|
||||
#### Netwerk
|
||||
'n SQL-databasis kan deel wees van 'n **elastiese Pool**. Elastiese poele is 'n kostedoeltreffende oplossing vir die bestuur van verskeie databasisse deur konfigureerbare rekenaar (eDTUs) en stoorhulpbronne onder hulle te deel, met prysstelling wat slegs op die toegepaste hulpbronne gebaseer is eerder as op die aantal databasisse.
|
||||
|
||||
**Netwerkverbinding**: Kies of jy toegang via 'n openbare eindpunt of private eindpunt wil inskakel. As jy Geen toegang kies, word geen eindpunte geskep totdat dit handmatig gekonfigureer is:
|
||||
- Geen toegang: Geen eindpunte is gekonfigureer nie, wat inkomende verbindings blokkeer totdat dit handmatig opgestel is.
|
||||
- Publieke eindpunt: Laat direkte verbindings oor die openbare internet toe, onderhewig aan firewallreëls en ander sekuriteitskonfigurasies.
|
||||
- Private eindpunt: Beperk verbinding tot 'n private netwerk.
|
||||
#### Azure SQL Kolomvlak Sekuriteit (Maskering) & Ryvlak Sekuriteit
|
||||
|
||||
**Verbindingsbeleid**: Definieer hoe kliënte met die SQL-databasisbediener kommunikeer:
|
||||
- Standaard: Gebruik 'n Oorplasing-beleid vir alle kliëntverbindinge van binne Azure (behalwe dié wat Private Eindpunte gebruik) en 'n Proxy-beleid vir verbindings van buite Azure.
|
||||
- Proxy: Lei alle kliëntverbindinge deur die Azure SQL Database-gateway.
|
||||
- Oorplasing: Kliënte verbind direk met die node wat die databasis huisves.
|
||||
**Azure SQL se dinamiese** datamaskering is 'n kenmerk wat help om **sensitiewe inligting te beskerm deur dit** van ongemagtigde gebruikers te verberg. In plaas daarvan om die werklike data te verander, maskering dit dinamies die vertoonde data, wat verseker dat sensitiewe besonderhede soos kredietkaartnommers verborge is.
|
||||
|
||||
#### Sekuriteitskenmerke
|
||||
Die **Dinamiese Data Maskering** geld vir alle gebruikers behalwe diegene wat nie gemasker is nie (hierdie gebruikers moet aangedui word) en administrateurs. Dit het die konfigurasieopsie wat spesifiseer watter SQL-gebruikers vrygestel is van dinamiese datamaskering, met **administrateurs altyd uitgesluit**.
|
||||
|
||||
- **Microsoft Defender vir SQL**: kan geaktiveer word wat kwesbaarheidsassessering en gevorderde bedreigingsbeskerming bied.
|
||||
- **Ledger**: kriptografies verifieer die integriteit van data, wat verseker dat enige vervalsing opgespoor word.
|
||||
- **Bediener Identiteit**: gebruik stelsels-toegewyde en gebruiker-toegewyde bestuurde identiteite om gesentraliseerde toegang moontlik te maak.
|
||||
- **Deursigtige Data-enkripsie Sleutelbestuur**: enkripteer databasisse, rugsteun, en logs in rus sonder om enige veranderinge aan die toepassing te vereis. Enkripsie kan op elke databasis geaktiveer word, en as dit op databasisvlak gekonfigureer is, oorskry hierdie instellings die bediener-niveau konfigurasie.
|
||||
- **Altijd Geënkripteer**: is 'n suite van gevorderde databeskeringskenmerke wat data-eienaarskap van databasemanagement skei. Dit verseker dat administrateurs of operateurs met hoë voorregte nie toegang tot sensitiewe data kan verkry nie.
|
||||
|
||||
#### Aankoopmodelle / Diens Tiers
|
||||
|
||||
- **vCore-gebaseer**: Kies rekenaar, geheue, en berging onafhanklik. Vir Algemene Doel, Besigheids Krities (met hoë veerkragtigheid en prestasie vir OLTP-toepassings), en skaal tot 128 TB berging.
|
||||
- **DTU-gebaseer**: Bundel rekenaar, geheue, en I/O in vaste tipes. Gebalanseerde hulpbronne vir algemene take.
|
||||
- Standaard: Gebalanseerde hulpbronne vir algemene take.
|
||||
- Premium: Hoë prestasie vir veeleisende werklas.
|
||||
|
||||
#### Skaalbare prestasie en poele
|
||||
|
||||
- **Enkel Databasisse**: Elke databasis is geïsoleer en het sy eie toegewyde rekenaar, geheue, en berging hulpbronne. Hulpbronne kan dinamies geskaal word (op of af) sonder stilstand (1–128 vCores, 32 GB–4 TB berging, en tot 128 TB).
|
||||
- **Elastiese Poele**: Deel hulpbronne oor verskeie databasisse in 'n poel om doeltreffendheid te maksimeer en koste te bespaar. Hulpbronne kan ook dinamies geskaal word vir die hele poel.
|
||||
- **Diens Tiers Buigsaamheid**: Begin klein met 'n enkele databasis in die Algemene Doel-tiers. Opgradeer na Besigheids Krities of Hyperscale tiers soos behoeftes groei.
|
||||
- **Skaalopsies**: Dinamiese Skaal of Outoskaal Alternatiewe.
|
||||
|
||||
#### Ingeboude Monitering & Optimalisering
|
||||
|
||||
- **Query Store**: Volg prestasieprobleme, identifiseer top hulpbronverbruikers, en bied uitvoerbare aanbevelings.
|
||||
- **Outomatiese Afstemming**: Proaktief optimaliseer prestasie met kenmerke soos outomatiese indeksering en queryplan regstellings.
|
||||
- **Telemetrie Integrasie**: Ondersteun monitering deur Azure Monitor, Event Hubs, of Azure Storage vir op maat gemaakte insigte.
|
||||
|
||||
#### Ramp Herstel & Beschikbaarheid
|
||||
|
||||
- **Outomatiese rugsteun**: SQL Database voer outomaties volledige, differensiële, en transaksielog rugsteun van databasisse uit.
|
||||
- **Punt-in-Tyd Herstel**: Herstel databasisse na enige vorige toestand binne die rugsteunbehoud tydperk.
|
||||
- **Geo-Roerende**
|
||||
- **Failover Groepe**: Vereenvoudig ramp herstel deur databasisse te groepeer vir outomatiese failover oor streke.
|
||||
**Azure SQL Ryvlak Sekuriteit (RLS)** is 'n kenmerk wat **beheer watter rye 'n gebruiker kan sien of wysig**, wat verseker dat elke gebruiker slegs die data sien wat relevant is vir hulle. Deur sekuriteitsbeleide met filter of blokpredikate te skep, kan organisasies fyngegranuleerde toegang op databasisvlak afdwing.
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instance** is 'n Platform as 'n Diens (PaaS) databasisengine wat byna 100% kompatibiliteit met SQL Server bied en die meeste bestuurs take (bv. opgradering, regstelling, rugsteun, monitering) outomaties hanteer. Dit bied 'n wolkoplossing vir die migrasie van op-premises SQL Server databasisse met minimale veranderinge.
|
||||
|
||||
#### Diens Tiers
|
||||
|
||||
- **Algemene Doel**: Kostedoeltreffende opsie vir toepassings met standaard I/O en latensie vereistes.
|
||||
- **Besigheids Krities**: Hoë-prestasie opsie met lae I/O latensie vir kritieke werklas.
|
||||
|
||||
#### Gevorderde Sekuriteitskenmerke
|
||||
|
||||
* **Bedreigingsbeskerming**: Gevorderde Bedreigingsbeskerming waarsku vir verdagte aktiwiteite en SQL-inspuitaanvalle. Oudits om databasisgebeurtenisse te volg en te log vir nakoming.
|
||||
* **Toegangbeheer**: Microsoft Entra-verifikasie vir gesentraliseerde identiteitsbestuur. Ry-Vlak Sekuriteit en Dinamiese Data Maskering vir fyn toegangbeheer.
|
||||
* **Rugsteun**: Outomatiese en handmatige rugsteun met punt-in-tyd herstel vermoë.
|
||||
**Azure SQL Managed Instances** is vir groter skaal, hele SQL Server-instantie-geskepte ontplooiings. Dit bied byna 100% kompatibiliteit met die nuutste SQL Server op-premises (Enterprise Edition) Databasisengine, wat 'n inheemse virtuele netwerk (VNet) implementering bied wat algemene sekuriteitskwessies aanspreek, en 'n besigheidsmodel wat gunstig is vir op-premises SQL Server-klante.
|
||||
|
||||
### Azure SQL Virtuele Masjiene
|
||||
|
||||
**Azure SQL Virtuele Masjiene** is die beste vir migrasies waar jy **beheer oor die bedryfstelsel en SQL Server-instantie** wil hê, soos dit 'n bediener was wat op-premises loop. Dit kan verskillende masjien groottes hê, en 'n wye seleksie van SQL Server weergawes en edisies.
|
||||
**Azure SQL Virtuele Masjiene** laat jou toe om **die bedryfstelsel** en die SQL Server-instantie te **beheer**, aangesien 'n VM in die VM-diens wat die SQL-server draai, geskep sal word.
|
||||
|
||||
#### Sleutelkenmerke
|
||||
Wanneer 'n SQL Virtuele Masjien geskep word, is dit moontlik om **alle instellings van die VM te kies** (soos in die VM-les gewys) wat die SQL-server sal huisves.
|
||||
- Dit beteken dat die VM toegang tot sommige VNet(s) sal hê, mag **Bestuurde Identiteite aan dit geheg wees**, kan lêerdeelings gemonteer hê… wat 'n **pivoting van die SQL** na die VM super interessant maak.
|
||||
- Boonop is dit moontlik om 'n app-id en geheim te konfigureer om **die SQL toegang tot 'n spesifieke sleutelkluis** toe te laat, wat sensitiewe inligting kan bevat.
|
||||
|
||||
**Outomatiese Rugsteun**: Skedule rugsteun vir SQL databasisse.
|
||||
**Outomatiese Regstelling**: Automatiseer die installasie van Windows en SQL Server opdaterings tydens 'n onderhoudsvenster.
|
||||
**Azure Key Vault Integrasie**: Konfigureer outomaties Key Vault vir SQL Server VMs.
|
||||
**Defender vir Cloud Integrasie**: Beskou Defender vir SQL aanbevelings in die portaal.
|
||||
**Weergawe/Edisie Buigsaamheid**: Verander SQL Server weergawe of edisie metadata sonder om die VM te herontplooi.
|
||||
|
||||
#### Sekuriteitskenmerke
|
||||
|
||||
**Microsoft Defender vir SQL**: Sekuriteitsinsigte en waarskuwings.
|
||||
**Azure Key Vault Integrasie**: Veilige berging van akrediteer en enkripsiesleutels.
|
||||
**Microsoft Entra (Azure AD)**: Verifikasie en toegangbeheer.
|
||||
Dit is ook moontlik om dinge soos **outomatiese SQL-opdaterings**, **outomatiese rugsteun**, **Entra ID-verifikasie** en die meeste van die kenmerke van die ander SQL-dienste te konfigureer.
|
||||
|
||||
## Enumerasie
|
||||
|
||||
@@ -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,6 +232,31 @@ Get-AzSqlVM
|
||||
{{#endtab}}
|
||||
{{#endtabs}}
|
||||
|
||||
Boonop, as jy die Dynamiese Gegevensmaskering en Ryvlakbeleide binne die databasis wil opnoem, kan jy die volgende navraag doen:
|
||||
```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
|
||||
|
||||
--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;
|
||||
|
||||
```
|
||||
### Verbind en voer SQL-navrae uit
|
||||
|
||||
Jy kan 'n verbindsstring (wat akrediteerbesonderhede bevat) vind van voorbeeld [opnoem van 'n Az WebApp](az-app-services.md):
|
||||
|
||||
Reference in New Issue
Block a user