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

This commit is contained in:
Translator
2025-02-20 00:39:54 +00:00
parent ee19564843
commit 14b5d95c31
9 changed files with 251 additions and 150 deletions

File diff suppressed because one or more lines are too long

View File

@@ -31,10 +31,20 @@ az mysql flexible-server update \
--name <server_name> \
--admin-password <password_to_update>
```
Pored toga, neophodno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili:
Dodatno, potrebno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili:
```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`
Sa ovim dozvolama možete obnoviti MySQL server iz rezervne kopije:
```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`
Sa ovom dozvolom, možete konfigurisati Azure Active Directory (AD) administratore za MySQL Flexible Server. Ovo se može iskoristiti postavljanjem sebe ili drugog naloga kao AD administratora, čime se dodeljuje potpuna administrativna kontrola nad MySQL serverom. Važno je da fleksibilni server ima dodeljene korisničke upravljane identitete za korišćenje.

View File

@@ -11,7 +11,7 @@ Za više informacija o SQL bazi podataka, proverite:
### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write`
Sa ovom dozvolom, možete kreirati, ažurirati ili brisati PostgreSQL Flexible Server instance na Azure-u. To uključuje obezbeđivanje novih servera, modifikovanje konfiguracija postojećih servera ili ukidanje servera.
Sa ovom dozvolom, možete kreirati, ažurirati ili brisati PostgreSQL Flexible Server instance na Azure-u. Ovo uključuje obezbeđivanje novih servera, modifikovanje postojećih konfiguracija servera ili ukidanje servera.
```bash
az postgres flexible-server create \
--name <ServerName> \
@@ -31,15 +31,61 @@ az postgres flexible-server update \
--name <server_name> \
--admin-password <password_to_update>
```
Pored toga, neophodno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili:
Pored toga, sa dozvolama možete omogućiti dodeljenu identitet, i raditi sa upravljanim identitetom koji je povezan sa serverom. Ovde možete pronaći sve ekstenzije koje Azure PostgreSQL fleksibilni server podržava [https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions](https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions). Da biste mogli da koristite ove ekstenzije, neki parametri servera (azure.extensions) treba da budu promenjeni. Na primer, ovde sa upravljanim identitetom koji može da pristupi Azure Storage:
Prvo menjamo parametre i osiguravamo da je dodeljeni identitet omogućen:
```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;
```
Dodatno, potrebno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili:
```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`
Sa ovim dozvolama možete obnoviti server iz rezervne kopije sa:
```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`
Sa ovom dozvolom, možete konfigurisati Azure Active Directory (AD) administratore za PostgreSQL Flexible Server. Ovo se može iskoristiti postavljanjem sebe ili drugog naloga kao AD administratora, čime se dodeljuje potpuna administrativna kontrola nad PostgreSQL serverom. Ažuriranje postojećeg principala još nije podržano, tako da ako je jedan kreiran, morate ga prvo obrisati.
Važno je da fleksibilni server ima korisnički dodeljene upravljane identitete za korišćenje.
Važno je da fleksibilni server ima dodeljene korisničke upravljane identitete za korišćenje.
```bash
az postgres flexible-server ad-admin create \
--resource-group <ResourceGroupName> \

View File

@@ -12,7 +12,7 @@ Za više informacija o SQL bazi podataka, pogledajte:
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
Sa ovim dozvolama, korisnik može izvršiti eskalaciju privilegija ažuriranjem ili kreiranjem Azure SQL servera i modifikovanjem kritičnih konfiguracija, uključujući administrativne akreditive. Ova dozvola omogućava korisniku da ažurira svojstva servera, uključujući SQL server admin lozinku, omogućavajući neovlašćen pristup ili kontrolu nad serverom. Takođe mogu kreirati nove servere, potencijalno uvodeći senčanu infrastrukturu u zle svrhe. Ovo postaje posebno kritično u okruženjima gde je "Microsoft Entra Authentication Only" onemogućen, jer mogu iskoristiti SQL-baziranu autentifikaciju za sticanje neograničenog pristupa.
Sa ovim dozvolama, korisnik može izvršiti eskalaciju privilegija ažuriranjem ili kreiranjem Azure SQL servera i modifikovanjem kritičnih konfiguracija, uključujući administrativne akreditive. Ova dozvola omogućava korisniku da ažurira svojstva servera, uključujući SQL server admin lozinku, omogućavajući neovlašćen pristup ili kontrolu nad serverom. Takođe mogu kreirati nove servere, potencijalno uvodeći senčanu infrastrukturu u zle svrhe. Ovo postaje posebno kritično u okruženjima gde je "Microsoft Entra Authentication Only" onemogućeno, jer mogu iskoristiti SQL-baziranu autentifikaciju za sticanje neograničenog pristupa.
```bash
# Change the server password
az sql server update \
@@ -28,7 +28,7 @@ az sql server create \
--admin-user <admin_username> \
--admin-password <admin_passwor d>
```
Dodatno, neophodno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili:
Pored toga, neophodno je omogućiti javni pristup ako želite da pristupite sa neprivatnog krajnjeg tačke, da biste to omogućili:
```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`
Napadač može manipulisati pravilima vatrozida na Azure SQL serverima kako bi omogućio neovlašćen pristup. Ovo se može iskoristiti za otvaranje servera za specifične IP adrese ili čitave IP opsege, uključujući javne IP adrese, omogućavajući pristup zlonamernim akterima. Ova post-eksploataciona aktivnost može se koristiti za zaobilaženje postojećih mrežnih bezbednosnih kontrola, uspostavljanje postojanosti ili olakšavanje lateralnog kretanja unutar okruženja izlaganjem osetljivih resursa.
Napadač može manipulisati pravilima vatrozida na Azure SQL serverima kako bi omogućio neovlašćen pristup. Ovo se može iskoristiti za otvaranje servera za specifične IP adrese ili čitave IP opsege, uključujući javne IP adrese, omogućavajući pristup zlonamernim akterima. Ova aktivnost nakon eksploatacije može se koristiti za zaobilaženje postojećih mrežnih bezbednosnih kontrola, uspostavljanje postojanosti ili olakšavanje lateralnog kretanja unutar okruženja izlaganjem osetljivih resursa.
```bash
# Create Firewall Rule
az sql server firewall-rule create \
@@ -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
Izmenite (ili onemogućite) politike maskiranja podataka na vašim SQL bazama podataka.
```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"
}
}'
```
### Ukloni sigurnost na nivou reda
Ako se prijavite kao administrator, možete ukloniti politike samog administratora i drugih korisnika.
```sql
DROP SECURITY POLICY [Name_of_policy];
```
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -10,8 +10,10 @@ Azure Cosmos DB pruža više API-ja za baze podataka kako bi modelovao podatke i
Jedan ključni aspekt CosmosDB-a je Azure Cosmos Account. **Azure Cosmos Account** deluje kao ulazna tačka za baze podataka. Račun određuje ključne postavke kao što su globalna distribucija, nivoi konzistentnosti i specifični API koji će se koristiti, kao što je NoSQL. Kroz račun možete konfigurisati globalnu replikaciju kako biste osigurali da su podaci dostupni u više regiona za pristup sa niskom latencijom. Pored toga, možete odabrati nivo konzistentnosti koji balansira između performansi i tačnosti podataka, sa opcijama koje se kreću od jake do eventualne konzistentnosti.
### NoSQL (sql)
Azure Cosmos DB NoSQL API je API zasnovan na dokumentima koji koristi JSON kao svoj format podataka. Pruža SQL-sličnu sintaksu upita za upit JSON objekata, što ga čini pogodnim za rad sa strukturiranim i polu-strukturiranim podacima. Krajnja tačka usluge je:
Azure Cosmos DB podržava **identitete dodeljene korisnicima** i **sistemom dodeljene upravljane identitete** koji se automatski kreiraju i vezuju za životni ciklus resursa, omogućavajući sigurnu, autentifikaciju zasnovanu na tokenima prilikom povezivanja sa drugim uslugama—pod uslovom da te usluge imaju odgovarajuće dodeljene uloge. Međutim, Cosmos DB nema ugrađeni mehanizam za direktno upitivanje spoljašnjih izvora podataka kao što je Azure Blob Storage. Za razliku od funkcija spoljašnjih tabela SQL Server-a, Cosmos DB zahteva da se podaci unesu u njene kontejnere koristeći spoljne alate kao što su Azure Data Factory, Alat za migraciju podataka ili prilagođeni skripti pre nego što se mogu upititi njenim izvorim mogućnostima upita.
### NoSQL
Azure Cosmos DB NoSQL API je API zasnovan na dokumentima koji koristi JSON kao svoj format podataka. Pruža SQL-sličnu sintaksu upita za upitovanje JSON objekata, što ga čini pogodnim za rad sa strukturiranim i polu-strukturiranim podacima. Krajnja tačka usluge je:
```bash
https://<Account-Name>.documents.azure.com:443/
```
@@ -19,7 +21,13 @@ https://<Account-Name>.documents.azure.com:443/
Unutar naloga, možete kreirati jednu ili više baza podataka, koje služe kao logičke grupe kontejnera. Baza podataka deluje kao granica za upravljanje resursima i korisničkim dozvolama. Baze podataka mogu deliti obezbeđeni protok između svojih kontejnera ili dodeliti posvećeni protok pojedinačnim kontejnerima.
#### Kontejneri
Osnovna jedinica za skladištenje podataka je kontejner, koji sadrži JSON dokumente i automatski se indeksira za efikasno pretraživanje. Kontejneri su elastično skalabilni i distribuirani su preko particija, koje određuje korisnički definisani ključ particije. Ključ particije je ključan za obezbeđivanje optimalne performanse i ravnomernu distribuciju podataka. Na primer, kontejner može čuvati podatke o kupcima, sa "customerId" kao ključem particije.
Osnovna jedinica za skladištenje podataka je kontejner, koji sadrži JSON dokumente i automatski se indeksira za efikasno pretraživanje. Kontejneri su elastično skalabilni i distribuirani preko particija, koje određuje korisnički definisan ključ particije. Ključ particije je ključan za osiguranje optimalne performanse i ravnomernu distribuciju podataka. Na primer, kontejner može čuvati podatke o kupcima, sa "customerId" kao ključem particije.
#### Ključne karakteristike
**Globalna distribucija**: Omogućite ili onemogućite Geo-redundanciju za replikaciju između regiona i višeregionalne upise za poboljšanu dostupnost.
**Mreža i bezbednost**: između javnih (svi/izabrane mreže) ili privatnih krajnjih tačaka za povezivanje. Sigurne veze sa TLS 1.2 enkripcijom. Podržava CORS (Deljenje resursa između različitih izvora) za kontrolisani pristup resursima.
**Backup i oporavak**: iz Periodičnih, Kontinuiranih (7 dana) ili Kontinuiranih (30 dana) politika rezervnih kopija sa konfigurisanim intervalima i zadržavanjem.
**Enkripcija podataka**: Podrazumevani ključevi koje upravlja servis ili ključevi koje upravlja korisnik (CMK) za enkripciju (izbor CMK je nepovratan).
#### Enumeracija
@@ -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>
```
@@ -183,7 +191,18 @@ mongodb://<hostname>:<port>/<database>
U MongoDB-u, možete kreirati jednu ili više baza podataka unutar instance. Svaka baza podataka služi kao logička grupa kolekcija i pruža granicu za organizaciju i upravljanje resursima. Baze podataka pomažu u logičkom razdvajanju i upravljanju podacima, kao što su za različite aplikacije ili projekte.
#### Kolekcije
Osnovna jedinica skladištenja podataka u MongoDB-u je kolekcija, koja sadrži dokumente i dizajnirana je za efikasno pretraživanje i fleksibilan dizajn šeme. Kolekcije su elastično skalabilne i mogu podržavati operacije sa visokim protokom preko više čvorova u distribuiranom okruženju.
Osnovna jedinica skladištenja podataka u MongoDB-u je kolekcija, koja sadrži dokumente i dizajnirana je za efikasno pretraživanje i fleksibilan dizajn šeme. Kolekcije su elastično skalabilne i mogu podržati operacije sa visokim protokom preko više čvorova u distribuiranom okruženju.
#### Ključne karakteristike tipa Request unit (RU)
**Globalna distribucija**: Omogućite ili onemogućite Geo-redundanciju za replikaciju između regiona i Multi-region Writes za poboljšanu dostupnost.
**Mreža i bezbednost**: između javnih (svi/izabrani mreže) ili privatnih krajnjih tačaka za povezivanje. Sigurne veze sa TLS 1.2 enkripcijom. Podržava CORS (Cross-Origin Resource Sharing) za kontrolisani pristup resursima.
**Backup i oporavak**: iz Periodičnih, Kontinuiranih (7 dana, besplatno), ili Kontinuiranih (30 dana, plaćeno) politika rezervnih kopija sa konfigurisanim intervalima i zadržavanjem.
**Enkripcija podataka**: Podrazumevani ključevi koje upravlja servis ili ključevi koje upravlja korisnik (CMK) za enkripciju (izbor CMK-a je nepovratan).
#### Ključne karakteristike tipa vCore klaster
**Globalna distribucija**: Omogućite čitanje replike u drugom Azure regionu za visoku dostupnost i podršku za prebacivanje. Konfigurišite ime replike, region i skladište po deljenju.
**Mreža i bezbednost**: Podržava javni pristup sa dodeljenim javnim IP adresama i privatni pristup. Ograničite veze koristeći pravila vatrozida—podrazumevano, javne IP adrese nisu dozvoljene.
**Enkriptovane veze**: Sprovodi TLS enkripciju za sigurnu transmisiju podataka.
#### Enumeracija
@@ -254,7 +273,7 @@ Get-AzCosmosDBMongoDBRoleDefinition -AccountName <account-name> -ResourceGroupNa
#### Veza
Ovde možete pronaći lozinku pomoću ključeva ili metodom opisanim u sekciji privesc.
Ovde možete pronaći lozinku pomoću ključeva ili metodom opisanoj u sekciji privesc.
```python
from pymongo import MongoClient

View File

@@ -8,10 +8,15 @@ Azure Logic Apps je usluga zasnovana na oblaku koju pruža Microsoft Azure koja
Logic Apps pruža vizuelni dizajner za kreiranje radnih tokova sa **širokim spektrom unapred napravljenih konektora**, što olakšava povezivanje i interakciju sa raznim uslugama, kao što su Office 365, Dynamics CRM, Salesforce i mnoge druge. Takođe možete kreirati prilagođene konektore za vaše specifične potrebe.
Kada kreirate Logic App, morate ili kreirati ili povezati eksterni nalog za skladištenje koji čuva stanje radnog toka, istoriju izvršavanja i artefakte. Ovo skladište može biti konfigurisano sa dijagnostičkim podešavanjima za praćenje i može biti zaštićeno mrežnim pristupnim ograničenjima ili integrisano u virtuelnu mrežu kako bi se kontrolisao ulazni i izlazni saobraćaj.
### Upravljane Identitete
Logic Apps ima **sistemom dodeljenu upravljanu identitet** vezanu za svoj životni ciklus. Kada je omogućena, dobija jedinstveni ID objekta (principal) koji se može koristiti sa Azure RBAC za dodeljivanje potrebnih dozvola za siguran pristup drugim Azure uslugama. Ovo eliminiše potrebu za čuvanjem kredencijala u kodu jer se identitet autentifikuje putem Microsoft Entra ID. Pored toga, možete koristiti i **korisnički dodeljene upravljane identitete**, koji se mogu deliti između više resursa. Ove identitete omogućavaju radnim tokovima i Logic Apps da sigurno komuniciraju sa spoljnim sistemima, osiguravajući da su potrebne kontrole pristupa i dozvole upravljane centralno kroz Azure-ov sigurnosni okvir.
### Primeri
- **Automatizacija Podatkovnih Tokova**: Logic Apps može automatizovati **procese prenosa i transformacije podataka** u kombinaciji sa Azure Data Factory. Ovo je korisno za kreiranje skalabilnih i pouzdanih podatkovnih tokova koji prenose i transformišu podatke između različitih skladišta podataka, kao što su Azure SQL Database i Azure Blob Storage, pomažući u analitici i poslovnoj inteligenciji.
- **Integracija sa Azure Functions**: Logic Apps može raditi zajedno sa Azure Functions za razvoj **složenih, događajem vođenih aplikacija koje se skaliraju po potrebi** i besprekorno se integrišu sa drugim Azure uslugama. Primer upotrebe je korišćenje Logic App-a za pokretanje Azure Function u odgovoru na određene događaje, kao što su promene u Azure Storage nalogu, omogućavajući dinamičko procesiranje podataka.
- **Automatizacija Podatkovnih Cevi**: Logic Apps mogu automatizovati **procese prenosa i transformacije podataka** u kombinaciji sa Azure Data Factory. Ovo je korisno za kreiranje skalabilnih i pouzdanih podatkovnih cevi koje premeštaju i transformišu podatke između različitih skladišta podataka, kao što su Azure SQL Database i Azure Blob Storage, pomažući u analitici i poslovnoj inteligenciji.
- **Integracija sa Azure Funkcijama**: Logic Apps mogu raditi zajedno sa Azure Funkcijama za razvoj **složenih, događajem vođenih aplikacija koje se skaliraju po potrebi** i besprekorno se integrišu sa drugim Azure uslugama. Primer upotrebe je korišćenje Logic App-a za pokretanje Azure Funkcije kao odgovor na određene događaje, kao što su promene u Azure nalogu za skladištenje, omogućavajući dinamičku obradu podataka.
### Vizualizacija LogicAPP-a
@@ -23,7 +28,7 @@ ili proveriti kod u sekciji "**Prikaz koda Logic app-a**".
### SSRF Zaštita
Čak i ako pronađete da je **Logic App ranjiv na SSRF**, nećete moći da pristupite kredencijalima iz metapodataka jer Logic Apps to ne dozvoljava.
Čak i ako pronađete **Logic App ranjiv na SSRF**, nećete moći da pristupite kredencijalima iz metapodataka jer Logic Apps to ne dozvoljava.
Na primer, nešto poput ovoga neće vratiti token:
```bash
@@ -35,12 +40,16 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741
Postoji nekoliko opcija hostovanja:
* **Potrošnja**
- **Višekorisnički**: pruža deljene računske resurse, funkcioniše u javnom oblaku i prati model naplate po operaciji. Ovo je idealno za lagane i ekonomične radne opterećenja.
- **Višekorisnički**: pruža deljene računske resurse, funkcioniše u javnom oblaku i prati model cena po operaciji. Ovo je idealno za lagane i ekonomične radne opterećenja.
* **Standard**
- **Plan usluge radnog toka**: posvećeni računski resursi sa VNET integracijom za umrežavanje i naplaćuje se po instanci plana usluge radnog toka. Pogodno je za zahtevnija radna opterećenja koja zahtevaju veću kontrolu.
- **Okruženje usluge aplikacija V3** posvećeni računski resursi sa potpunom izolacijom i skalabilnošću. Takođe se integriše sa VNET za umrežavanje i koristi model naplate zasnovan na instancama usluge aplikacija unutar okruženja. Ovo je idealno za aplikacije na nivou preduzeća koje zahtevaju visoku izolaciju.
- **Okruženje usluge aplikacija V3** posvećeni računski resursi sa potpunom izolacijom i skalabilnošću. Takođe se integriše sa VNET za umrežavanje i koristi model cena zasnovan na instancama usluge aplikacija unutar okruženja. Ovo je idealno za aplikacije na nivou preduzeća koje zahtevaju visoku izolaciju.
- **Hibridno** dizajnirano za lokalnu obradu i podršku za više oblaka. Omogućava resurse za obradu koje upravlja korisnik sa lokalnim pristupom mreži i koristi Kubernetes Event-Driven Autoscaling (KEDA).
### Radni tokovi
Radni tokovi u Azure Logic Apps su osnovni automatizovani procesi koji orkestriraju akcije širom različitih usluga. Radni tok počinje okidačem—događajem ili rasporedom—i zatim izvršava niz akcija, kao što su pozivanje API-ja, obrada podataka ili interakcija sa drugim Azure uslugama. Radni tokovi se mogu definisati vizuelno koristeći dizajner ili putem koda (JSON definicije) i upravljaju se putem komandi kao što su az logic workflow create, az logic workflow show i az logic workflow update. Takođe podržavaju upravljanje identitetom (putem podgrupe identiteta) za sigurno upravljanje dozvolama i integracijama sa spoljnim resursima.
### Enumeracija
{{#tabs }}
@@ -137,14 +146,12 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
{{#endtab }}
{{#endtabs }}
### Integracija Računa
**Integracija Računa** su funkcija Azure Logic Apps. Integracija Računa se koristi za olakšavanje integracija na nivou preduzeća omogućavanjem naprednih B2B mogućnosti, kao što su EDI, AS2 i upravljanje XML shemama. Integracija Računa su kontejner u Azure-u koji čuva sledeće artefakte korišćene za Logic Apps:
### Integracioni Nalozi
**Integracioni Nalozi** su funkcija Azure Logic Apps. Integracioni Nalozi se koriste za olakšavanje integracija na nivou preduzeća omogućavanjem naprednih B2B mogućnosti, kao što su EDI, AS2 i upravljanje XML shemama. Integracioni Nalozi su kontejner u Azure-u koji čuva sledeće artefakte korišćene za Logic Apps:
* Schemas: Upravljajte XML shemama za validaciju i obradu poruka u vašem integracionom nalogu.
* Schemas: Upravljajte XML shemama za validaciju i obradu poruka u vašem integracionom računu.
* Maps: Konfigurišite XSLT transformacije za konvertovanje formata podataka unutar vaših integracionih radnih tokova.
* Assemblies: Upravljajte skupovima integracionog naloga kako biste pojednostavili logiku i obradu podataka.
* Assemblies: Upravljajte skupovima integracionog računa kako biste pojednostavili logiku i obradu podataka.
* Certificates: Rukujte sertifikatima za enkripciju i potpisivanje poruka, obezbeđujući sigurnu komunikaciju.
* Partners: Upravljajte informacijama o trgovinskim partnerima za B2B transakcije, omogućavajući besprekornu integraciju.
* Agreements: Konfigurišite pravila i postavke za razmenu podataka sa trgovinskim partnerima (npr., EDI, AS2).

View File

@@ -16,10 +16,10 @@ Azure Database for MySQL je potpuno upravljana relacijska baza podataka zasnovan
- Nudi funkcionalnost za zaustavljanje/pokretanje radi uštede troškova.
### Ključne Karakteristike
* **Upravljanje Serverom**: **ad-admin** funkcija omogućava upravljanje Azure Active Directory (AAD) administratorima za MySQL servere, pružajući kontrolu nad administrativnim pristupom putem AAD akreditiva, dok **identity** funkcija omogućava dodeljivanje i upravljanje Azure Managed Identities, nudeći sigurnu, autentifikaciju bez akreditiva za pristup Azure resursima.
* **Upravljanje Životnim Ciklusom**: opcije za pokretanje ili zaustavljanje servera, brisanje instance fleksibilnog servera, ponovo pokretanje servera kako bi se brzo primenile promene konfiguracije, i čekanje da se osigura da server ispunjava određene uslove pre nego što se nastavi sa automatizovanim skriptama.
* **Sigurnost i Mrežno Povezivanje**: može upravljati pravilima vatrozida servera za siguran pristup bazi podataka i odvojiti konfiguracije virtuelne mreže po potrebi.
* **Zaštita Podataka i Rezervne Kopije**: uključuje opcije za upravljanje rezervnim kopijama fleksibilnog servera za oporavak podataka, izvođenje geo-obnavljanja za oporavak servera u drugoj regiji, izvoz rezervnih kopija servera za spoljašnju upotrebu (u Preview), i obnavljanje servera iz rezervne kopije na određenu tačku u vremenu.
* **Upravljanje Serverom**: **ad-admin** funkcija omogućava upravljanje Azure Entra ID administratorima za MySQL servere, pružajući kontrolu nad administrativnim pristupom putem Entra ID akreditiva. Mysql podržava User Managed Identities, koje se koriste za autentifikaciju bez potrebe za akreditivima, i mogu se koristiti od strane drugih usluga.
* **Upravljanje Životnim Ciklusom**: opcije za pokretanje ili zaustavljanje servera, brisanje instance fleksibilnog servera, ponovo pokretanje servera kako bi se brzo primenile promene u konfiguraciji, i čekanje da se osigura da server ispunjava određene uslove pre nego što se nastavi sa automatizovanim skriptama.
* **Sigurnost i Mrežno Povezivanje**: Osigurajte svoj server ograničavanjem veza putem pravila vatrozida koja dozvoljavaju samo određene javne IP adrese, ili korišćenjem privatnih krajnjih tačaka koje integrišu vaš server u virtuelnu mrežu. Sve veze su zaštićene TLS 1.2 enkripcijom. Baze podataka, rezervne kopije i logovi su podrazumevano enkriptovani u mirovanju koristeći ključeve koje upravlja usluga ili prilagođene ključeve.
* **Zaštita Podataka i Rezervne Kopije**: uključuje opcije za upravljanje rezervnim kopijama fleksibilnog servera za oporavak podataka, izvođenje geo-obnavljanja za oporavak servera u drugoj regiji, izvoz rezervnih kopija servera za spoljašnju upotrebu (u Previu), i obnavljanje servera iz rezervne kopije na određenu tačku u vremenu.
### Enumeracija
@@ -114,7 +114,7 @@ Ili sa MySQL nativnim ekstenzijskim pluginom
```bash
mysql -h <server-name>.mysql.database.azure.com -P 3306 -u <username> -p
```
Takođe možete izvršavati upite sa github-om, ali su potrebni i korisničko ime i lozinka. Morate postaviti sql datoteku sa upitom koji treba izvršiti i zatim:
Takođe možete izvršavati upite sa github-om, ali su potrebni i korisničko ime i lozinka. Morate postaviti sql datoteku sa upitom koji treba izvršiti, a zatim:
```bash
# Setup
az mysql flexible-server deploy setup \
@@ -139,7 +139,7 @@ az mysql flexible-server deploy run \
../az-privilege-escalation/az-mysql-privesc.md
{{#endref}}
## Post Eksploatacija
## Post eksploatacija
{{#ref}}
../az-post-exploitation/az-mysql-post-exploitation.md

View File

@@ -3,12 +3,12 @@
{{#include ../../../banners/hacktricks-training.md}}
## Azure PostgreSQL
**Azure Database for PostgreSQL** je potpuno upravljana **usluga relacionih baza podataka zasnovana na PostgreSQL** Community Edition. Dizajnirana je da pruži skalabilnost, sigurnost i fleksibilnost za različite potrebe aplikacija. Slično kao Azure MySQL, PostgreSQL nudi dva modela implementacije:
**Azure Database for PostgreSQL** je potpuno upravljana **relacijska baza podataka zasnovana na PostgreSQL** Community Edition. Dizajnirana je da pruži skalabilnost, sigurnost i fleksibilnost za različite potrebe aplikacija. Slično Azure MySQL, PostgreSQL nudi dva modela implementacije:
* **Single Server** (na putu povlačenja):
- Optimizovan za jednostavne, isplative PostgreSQL implementacije.
- Optimizovana za jednostavne, isplative PostgreSQL implementacije.
- Sadrži automatske rezervne kopije, osnovno praćenje i visoku dostupnost.
- Idealno za aplikacije sa predvidivim opterećenjima.
- Idealna za aplikacije sa predvidivim opterećenjima.
* **Flexible Server**:
- Pruža veću kontrolu nad upravljanjem i konfiguracijom baze podataka.
- Podržava visoku dostupnost, kako u istoj zoni, tako i između zona.
@@ -17,12 +17,13 @@
### Ključne Karakteristike
* **Prilagođena Održavanja**: Planirajte ažuriranja kako biste minimizovali prekide.
* **Prilagođena Održavanja**: Planirajte ažuriranja kako biste minimizirali prekide.
* **Aktivno Praćenje**: Pristupite detaljnim metrikama i zapisima za praćenje i poboljšanje performansi baze podataka.
* **Stop/Start Server**: Korisnici mogu zaustaviti i pokrenuti server.
* **Automatske Rezervne Kopije**: Ugrađene dnevne rezervne kopije sa periodima čuvanja koji se mogu konfigurisati do 35 dana.
* **Pristup na Bazi Uloga**: Kontrolišite dozvole korisnika i administrativni pristup putem Azure Active Directory.
* **Pristup na Bazi Rolama**: Kontrolišite dozvole korisnika i administratorski pristup putem Azure Active Directory.
* **Sigurnost i Mrežno Povezivanje**: može upravljati pravilima vatrozida servera za siguran pristup bazi podataka i odvojiti konfiguracije virtuelne mreže po potrebi.
* **Upravljane Identitete**: omogućavaju vašem serveru da sigurno autentifikuje sa drugim Azure uslugama bez čuvanja kredencijala. Omogućava pristup drugim uslugama koje bi bile sistemski dodeljene upravljane identitete i kojima bi se pristupalo od strane drugih usluga sa drugim identitetima koji su korisnički dodeljeni upravljani identiteti.
### Enumeracija

View File

@@ -8,146 +8,95 @@ Azure SQL je porodica upravljanih, sigurnih i inteligentnih proizvoda koji koris
Azure SQL se sastoji od četiri glavne ponude:
1. **Azure SQL Server**: Azure SQL Server je upravljana relacijska baza podataka koja pojednostavljuje implementaciju i upravljanje SQL Server bazama podataka, sa ugrađenim bezbednosnim i performansnim funkcijama.
2. **Azure SQL Database**: Ovo je **potpuno upravljana usluga baze podataka**, koja vam omogućava da hostujete pojedinačne baze podataka u Azure cloud-u. Nudi ugrađenu inteligenciju koja uči vaše jedinstvene obrasce baze podataka i pruža prilagođene preporuke i automatsko podešavanje.
3. **Azure SQL Managed Instance**: Ovo je za veće, celokupne implementacije SQL Server instance. Pruža skoro 100% kompatibilnost sa najnovijom SQL Server on-premises (Enterprise Edition) bazom podataka, koja pruža nativnu implementaciju virtuelne mreže (VNet) koja rešava uobičajene bezbednosne probleme, i poslovni model povoljan za on-premises SQL Server korisnike.
4. **Azure SQL Server na Azure VMs**: Ovo je infrastruktura kao usluga (IaaS) i najbolje je za migracije gde želite **kontrolu nad operativnim sistemom i SQL Server instancom**, kao da je to server koji radi on-premises.
1. **Azure SQL Server**: Server je potreban za **implementaciju i upravljanje** SQL Server bazama podataka.
2. **Azure SQL Database**: Ovo je **potpuno upravljana usluga baze podataka**, koja vam omogućava da hostujete pojedinačne baze podataka u Azure cloud-u.
3. **Azure SQL Managed Instance**: Ovo je za veće, celokupne SQL Server instance.
4. **Azure SQL Server na Azure VMs**: Ovo je najbolje za arhitekture gde želite **kontrolu nad operativnim sistemom** i SQL Server instancom.
### Azure SQL Server
### SQL Server Bezbednosne Karakteristike
Azure SQL Server je sistem za upravljanje relacijskim bazama podataka (RDBMS) koji koristi Transact-SQL za operacije sa podacima i dizajniran je da upravlja sistemima na nivou preduzeća. Nudi robusne funkcije za performanse, bezbednost, skalabilnost i integraciju sa raznim Microsoft aplikacijama. Azure SQL baze podataka se oslanjaju na ovaj server, jer su izgrađene na ovim serverima i to je ulazna tačka za korisnike da pristupe bazama podataka.
**Mrežni pristup:**
#### Mreža
- Javni krajnji tačka (može ograničiti pristup na specifične mreže).
- Privatne krajnje tačke.
- Takođe je moguće ograničiti veze na osnovu imena domena.
- Takođe je moguće dozvoliti Azure uslugama da mu pristupaju (kao što je korišćenje Query editora u portalu ili dozvoliti Azure VM-u da se poveže).
**Mrežna povezanost**: Izaberite da li da omogućite pristup putem javnog ili privatnog krajnjeg tačke. Ako izaberete Nema pristupa, nijedna krajnja tačka se ne kreira dok se ne konfiguriše ručno:
- Nema pristupa: Nijedna krajnja tačka nije konfigurisana, blokirajući dolazne veze dok se ne postavi ručno.
- Javni krajnji tačka: Omogućava direktne veze preko javnog interneta, podložne pravilima vatrozida i drugim bezbednosnim konfiguracijama.
- Privatni krajnji tačka: Ograničava povezanost na privatnu mrežu.
**Metode autentifikacije:**
**Politika povezivanja**: Definišite kako klijenti komuniciraju sa SQL serverom baze podataka:
- Podrazumevano: Koristi politiku preusmeravanja za sve klijentske veze iznutra Azure-a (osim onih koje koriste privatne krajnje tačke) i politiku proxy za veze izvan Azure-a.
- Proxy: Usmerava sve klijentske veze kroz Azure SQL Database gateway.
- Preusmeravanje: Klijenti se direktno povezuju na čvor koji hostuje bazu podataka.
- Microsoft **Entra-only** autentifikacija: Potrebno je da navedete Entra principe koji će imati pristup usluzi.
- **Obe SQL i Microsoft Entra** autentifikacije: Tradicionalna SQL autentifikacija sa korisničkim imenom i lozinkom uz Microsoft Entra.
- **Samo SQL** autentifikacija: Dozvoljava pristup samo putem korisnika baze podataka.
#### Metode autentifikacije
Azure SQL podržava razne metode autentifikacije za zaštitu pristupa bazi podataka:
Napomena da ako je bilo koja SQL autentifikacija dozvoljena, potrebno je navesti admin korisnika (korisničko ime + lozinka) i ako je izabrana Entra ID autentifikacija, takođe je potrebno navesti barem jednog principa sa admin pristupom.
- **Microsoft Entra samo autentifikacija**: Koristi Microsoft Entra (ranije Azure AD) za centralizovano upravljanje identitetom i jedinstveno prijavljivanje.
- **Obe SQL i Microsoft Entra autentifikacije**: Omogućava vam da koristite tradicionalnu SQL autentifikaciju zajedno sa Microsoft Entra.
- **SQL autentifikacija**: Oslanja se isključivo na SQL Server korisnička imena i lozinke.
**Enkripcija:**
#### Bezbednosne funkcije
- Zove se “Transparent data encryption” i enkriptuje baze podataka, rezervne kopije i logove u mirovanju.
- Kao i uvek, podrazumevano se koristi Azure upravljani ključ, ali se može koristiti i ključ za enkripciju koji upravlja kupac (CMEK).
SQL serveri imaju **Upravljane identitete**. Upravljani identiteti omogućavaju vašem serveru da sigurno autentifikuje sa drugim Azure uslugama bez čuvanja kredencijala. Omogućava pristup drugim uslugama koje bi bile sistemski dodeljene upravljane identitete i kojima bi pristupale druge usluge sa drugim identitetima, što je korisnički dodeljeni upravljani identitet. Neke od usluga kojima SQL može pristupiti su Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB ili Cosmos DB API za MongoDB, Generic ODBC, Bulk Operations i S3-kompatibilno skladište objekata.
**Upravljane Identitete:**
Druge bezbednosne funkcije koje SQL server ima su:
- Moguće je dodeliti sistemske i korisnički upravljane MIs.
- Koristi se za pristup ključu za enkripciju (ako se koristi CMEK) i drugim uslugama iz baza podataka.
- Ako je dodeljeno više od jednog UMI, moguće je navesti podrazumevanu koju koristiti.
- Moguće je konfigurisati federisanu identitet klijenta za pristup između zakupaca.
- **Pravila vatrozida**: Pravila vatrozida kontrolišu pristup vašem serveru ograničavanjem ili omogućavanjem saobraćaja. Ovo je funkcija i samih baza podataka.
- **Transparentna enkripcija podataka (TDE)**: TDE enkriptuje vaše baze podataka, rezervne kopije i logove u mirovanju kako bi zaštitila vaše podatke čak i ako je skladište kompromitovano. Može se uraditi sa ključem koji upravlja uslugom ili ključem koji upravlja korisnik.
- **Microsoft Defender za SQL**: Microsoft Defender za SQL može biti omogućen nudeći procene ranjivosti i naprednu zaštitu od pretnji za server.
**Microsoft Defender:**
#### Modeli implementacije
- Korisno za “ublažavanje potencijalnih ranjivosti baze podataka i otkrivanje anomalnih aktivnosti”.
- O tome ćemo govoriti u svojoj lekciji (može se omogućiti u nekoliko drugih Azure usluga).
Azure SQL Database podržava fleksibilne opcije implementacije kako bi zadovoljila različite potrebe:
**Rezervne kopije:**
- Učestalost rezervnih kopija se upravlja u politikama zadržavanja.
- **Jedna baza podataka**:
- Potpuno izolovana baza podataka sa sopstvenim posvećenim resursima.
- Odlično za mikroservise ili aplikacije koje zahtevaju jedan izvor podataka.
- **Elastični bazen**:
- Omogućava više baza podataka da dele resurse unutar bazena.
- Ekonomično za aplikacije sa fluktuirajućim obrascima korišćenja među više baza podataka.
**Obrisane baze podataka:**
- Moguće je obnoviti DB-ove koji su obrisani iz postojećih rezervnih kopija.
### Azure SQL Database
## Azure SQL Database
**Azure SQL Database** je **potpuno upravljana platforma baze podataka kao usluga (PaaS)** koja pruža skalabilna i sigurna rešenja za relacione baze podataka. Izgrađena je na najnovijim SQL Server tehnologijama i eliminiše potrebu za upravljanjem infrastrukturom, što je čini popularnim izborom za aplikacije zasnovane na cloudu.
**Azure SQL Database** je **potpuno upravljana platforma baze podataka kao usluga (PaaS)** koja pruža skalabilna i sigurna rešenja za relacione baze podataka. Izgrađena je na najnovijim SQL Server tehnologijama i eliminiše potrebu za upravljanjem infrastrukturom, što je čini popularnim izborom za aplikacije zasnovane na cloud-u.
#### Ključne funkcije
Da biste kreirali SQL bazu podataka, potrebno je navesti SQL server na kojem će biti hostovana.
### SQL Database Bezbednosne Karakteristike
- **Uvek ažurirano**: Radi na najnovijoj stabilnoj verziji SQL Server-a i automatski prima nove funkcije i zakrpe.
- **PaaS mogućnosti**: Ugrađena visoka dostupnost, rezervne kopije i ažuriranja.
- **Fleksibilnost podataka**: Podržava relacione i nerezidencijalne podatke (npr. grafove, JSON, prostorne i XML).
- **Nasleđene SQL Server bezbednosne karakteristike:**
- Autentifikacija (SQL i/ili Entra ID)
- Dodeljene upravljane identitete
- Mrežna ograničenja
- Enkripcija
- Rezervne kopije
-
- **Redundancija podataka:** Opcije su lokalne, zonalne, Geo ili Geo-Zona redundantne.
- **Knjiga:** Kriptografski verifikuje integritet podataka, osiguravajući da se svako manipulisanje otkrije. Korisno za finansijske, medicinske i bilo koju organizaciju koja upravlja osetljivim podacima.
#### Mreža
SQL baza podataka može biti deo **elastic Pool**. Elastic pool-ovi su isplativo rešenje za upravljanje više baza podataka deljenjem konfigurisivih računarskih (eDTUs) i skladišnih resursa među njima, sa cenama zasnovanim isključivo na dodeljenim resursima, a ne na broju baza podataka.
**Mrežna povezanost**: Izaberite da li da omogućite pristup putem javnog ili privatnog krajnjeg tačke. Ako izaberete Nema pristupa, nijedna krajnja tačka se ne kreira dok se ne konfiguriše ručno:
- Nema pristupa: Nijedna krajnja tačka nije konfigurisana, blokirajući dolazne veze dok se ne postavi ručno.
- Javni krajnji tačka: Omogućava direktne veze preko javnog interneta, podložne pravilima vatrozida i drugim bezbednosnim konfiguracijama.
- Privatni krajnji tačka: Ograničava povezanost na privatnu mrežu.
#### Azure SQL Bezbednost na Nivou Kolone (Maskiranje) & Bezbednost na Nivou Reda
**Politika povezivanja**: Definišite kako klijenti komuniciraju sa SQL serverom baze podataka:
- Podrazumevano: Koristi politiku preusmeravanja za sve klijentske veze iznutra Azure-a (osim onih koje koriste privatne krajnje tačke) i politiku proxy za veze izvan Azure-a.
- Proxy: Usmerava sve klijentske veze kroz Azure SQL Database gateway.
- Preusmeravanje: Klijenti se direktno povezuju na čvor koji hostuje bazu podataka.
**Dinamičko** maskiranje podataka Azure SQL je funkcija koja pomaže **zaštiti osetljivih informacija skrivajući ih** od neovlašćenih korisnika. Umesto da menja stvarne podatke, dinamički maskira prikazane podatke, osiguravajući da su osetljivi detalji poput brojeva kreditnih kartica zamagljeni.
#### Bezbednosne funkcije
**Dinamičko maskiranje podataka** utiče na sve korisnike osim onih koji su nemaskirani (ti korisnici moraju biti navedeni) i administratore. Ima opciju konfiguracije koja specificira koji SQL korisnici su izuzeti od dinamičkog maskiranja podataka, pri čemu su **administratori uvek isključeni**.
- **Microsoft Defender za SQL**: može biti omogućen nudeći procene ranjivosti i naprednu zaštitu od pretnji.
- **Ledger**: kriptografski verifikuje integritet podataka, osiguravajući da se svako neovlašćeno menjanje otkrije.
- **Identitet servera**: koristi sistemski dodeljene i korisnički dodeljene upravljane identitete za omogućavanje centralizovanog pristupa.
- **Upravljanje ključevima za transparentnu enkripciju podataka**: enkriptuje baze podataka, rezervne kopije i logove u mirovanju bez potrebe za promenama u aplikaciji. Enkripcija se može omogućiti na svakoj bazi podataka, a ako se konfiguriše na nivou baze podataka, ova podešavanja nadmašuju konfiguraciju na nivou servera.
- **Uvek enkriptovano**: je skup naprednih funkcija zaštite podataka koje odvajaju vlasništvo nad podacima od upravljanja podacima. Ovo osigurava da administratori ili operateri sa visokim privilegijama ne mogu pristupiti osetljivim podacima.
#### Modeli kupovine / Servisni nivoi
- **vCore-bazirano**: Izaberite računarske, memorijske i skladišne resurse nezavisno. Za opštu svrhu, poslovno kritične (sa visokom otpornosti i performansama za OLTP aplikacije), i skalira do 128 TB skladišta.
- **DTU-bazirano**: Kombinuje računarske, memorijske i I/O resurse u fiksne nivoe. Izbalansirani resursi za uobičajene zadatke.
- Standard: Izbalansirani resursi za uobičajene zadatke.
- Premium: Visoke performanse za zahtevne radne opterećenja.
#### Skalabilne performanse i bazeni
- **Jedinstvene baze podataka**: Svaka baza podataka je izolovana i ima svoje posvećene računarske, memorijske i skladišne resurse. Resursi se mogu dinamički skalirati (gore ili dole) bez prekida rada (1128 vCores, 32 GB4 TB skladišta, i do 128 TB).
- **Elastični bazeni**: Deli resurse među više baza podataka u bazenu kako bi se maksimizovala efikasnost i uštedeli troškovi. Resursi se takođe mogu dinamički skalirati za ceo bazen.
- **Fleksibilnost servisnog nivoa**: Počnite sa malim sa jednom bazom podataka u opštem nivou. Nadogradite na poslovno kritične ili hiperskalne nivoe kako potrebe rastu.
- **Opcije skaliranja**: Dinamičko skaliranje ili alternativne automatske skalacije.
#### Ugrađeno praćenje i optimizacija
- **Query Store**: Prati probleme sa performansama, identifikuje glavne potrošače resursa i nudi akcione preporuke.
- **Automatsko podešavanje**: Proaktivno optimizuje performanse sa funkcijama kao što su automatsko indeksiranje i ispravke plana upita.
- **Integracija telemetrije**: Podržava praćenje putem Azure Monitor-a, Event Hubs-a ili Azure Storage-a za prilagođene uvide.
#### Oporavak od katastrofa i dostupnost
- **Automatske rezervne kopije**: SQL Database automatski vrši pune, diferencijalne i transakcione log rezervne kopije baza podataka.
- **Obnova u tački vremena**: Oporavite baze podataka na bilo koje prethodno stanje unutar perioda zadržavanja rezervnih kopija.
- **Geo-redundantnost**
- **Grupe za prebacivanje**: P pojednostavljuje oporavak od katastrofa grupišući baze podataka za automatsko prebacivanje između regiona.
**Azure SQL Bezbednost na Nivou Reda (RLS)** je funkcija koja **kontroliše koje redove korisnik može da vidi ili menja**, osiguravajući da svaki korisnik vidi samo podatke relevantne za njega. Kreiranjem bezbednosnih politika sa filterima ili blok predikatom, organizacije mogu primeniti fino podešenu kontrolu pristupa na nivou baze podataka.
### Azure SQL Managed Instance
**Azure SQL Managed Instance** je platforma kao usluga (PaaS) koja nudi skoro 100% kompatibilnost sa SQL Server-om i automatski upravlja većinom zadataka upravljanja (npr. nadogradnja, zakrpe, rezervne kopije, praćenje). Pruža cloud rešenje za migraciju on-premises SQL Server baza podataka uz minimalne promene.
**Azure SQL Managed Instances** su za veće, celokupne SQL Server instance. Pruža skoro 100% kompatibilnost sa najnovijim SQL Server on-premises (Enterprise Edition) Database Engine, koji pruža nativnu implementaciju virtuelne mreže (VNet) koja rešava uobičajene bezbednosne brige, i poslovni model povoljan za on-premises SQL Server kupce.
#### Servisni nivoi
### Azure SQL Virtuelne Mašine
- **Opšta svrha**: Ekonomična opcija za aplikacije sa standardnim I/O i latencijskim zahtevima.
- **Poslovno kritično**: Opcija visoke performanse sa niskom I/O latencijom za kritična radna opterećenja.
**Azure SQL Virtuelne Mašine** omogućavaju **kontrolu operativnog sistema** i SQL Server instance, jer će VM biti pokrenut u VM servisu koji pokreće SQL server.
#### Napredne bezbednosne funkcije
Kada se kreira SQL Virtuelna Mašina, moguće je **izabrati sve postavke VM-a** (kao što je prikazano u lekciji o VM-ima) koji će hostovati SQL server.
- To znači da će VM pristupati nekim VNet-ovima, može imati **priključene upravljane identitete**, može imati montirane deljene foldere… što čini **pivotiranje sa SQL** na VM veoma zanimljivim.
- Štaviše, moguće je konfigurisati ID aplikacije i tajnu da **omogući SQL-u pristup određenom ključnom trezoru**, koji može sadržati osetljive informacije.
* **Zaštita od pretnji**: Napredna zaštita od pretnji upozorava na sumnjive aktivnosti i SQL injekcijske napade. Revizija za praćenje i beleženje događaja baze podataka radi usklađenosti.
* **Kontrola pristupa**: Microsoft Entra autentifikacija za centralizovano upravljanje identitetom. Bezbednost na nivou redova i dinamičko maskiranje podataka za granularnu kontrolu pristupa.
* **Rezervne kopije**: Automatske i ručne rezervne kopije sa mogućnošću obnavljanja u tački vremena.
Takođe je moguće konfigurisati stvari poput **automatskih SQL ažuriranja**, **automatskih rezervnih kopija**, **Entra ID autentifikacije** i većine funkcija drugih SQL usluga.
### Azure SQL Virtual Machines
**Azure SQL Virtual Machines** je najbolje za migracije gde želite **kontrolu nad operativnim sistemom i SQL Server instancom**, kao da je to server koji radi on-premises. Može imati različite veličine mašina i širok izbor verzija i izdanja SQL Server-a.
#### Ključne funkcije
**Automatska rezervna kopija**: Planirajte rezervne kopije za SQL baze podataka.
**Automatsko zakrpljenje**: Automatizuje instalaciju Windows i SQL Server ažuriranja tokom održavanja.
**Integracija sa Azure Key Vault**: Automatski konfiguriše Key Vault za SQL Server VMs.
**Integracija sa Defender for Cloud**: Prikazuje preporuke Defender for SQL u portalu.
**Fleksibilnost verzije/izdanja**: Promenite metapodatke verzije ili izdanja SQL Server-a bez ponovne implementacije VM-a.
#### Bezbednosne funkcije
**Microsoft Defender za SQL**: Uvidi u bezbednost i upozorenja.
**Integracija sa Azure Key Vault**: Sigurno skladištenje kredencijala i ključeva za enkripciju.
**Microsoft Entra (Azure AD)**: Autentifikacija i kontrola pristupa.
## Enumeracija
## Enumeration
{{#tabs}}
{{#tab name="az cli"}}
@@ -216,6 +165,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 +233,31 @@ Get-AzSqlVM
{{#endtab}}
{{#endtabs}}
Pored toga, ako želite da enumerišete Dynamic Data Masking i Row Level politike unutar baze podataka, možete izvršiti upit:
```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;
```
### Povežite se i izvršite SQL upite
Možete pronaći string za povezivanje (koji sadrži akreditive) iz primera [enumerating an Az WebApp](az-app-services.md):