mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-29 07:00:29 -07:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -11,7 +11,7 @@ Aby uzyskać więcej informacji na temat SQL Database, sprawdź:
|
||||
|
||||
### `Microsoft.DBforMySQL/flexibleServers/read` && `Microsoft.DBforMySQL/flexibleServers/write`
|
||||
|
||||
Dzięki temu uprawnieniu możesz tworzyć, aktualizować lub usuwać instancje MySQL Flexible Server na Azure. Obejmuje to provisionowanie nowych serwerów, modyfikowanie istniejących konfiguracji serwerów lub wycofywanie serwerów.
|
||||
Dzięki temu uprawnieniu możesz tworzyć, aktualizować lub usuwać instancje MySQL Flexible Server w Azure. Obejmuje to provisionowanie nowych serwerów, modyfikowanie istniejących konfiguracji serwerów lub wycofywanie serwerów.
|
||||
```bash
|
||||
az mysql flexible-server create \
|
||||
--name <ServerName> \
|
||||
@@ -24,7 +24,7 @@ az mysql flexible-server create \
|
||||
--tier <PricingTier> \
|
||||
--version <MySQLVersion>
|
||||
```
|
||||
Na przykład, te uprawnienia pozwalają na zmianę hasła MySQL, co jest przydatne, oczywiście, w przypadku, gdy uwierzytelnianie MySQL jest włączone.
|
||||
Na przykład, te uprawnienia pozwalają na zmianę hasła MySQL, co jest przydatne w przypadku, gdy uwierzytelnianie MySQL jest włączone.
|
||||
```bash
|
||||
az mysql flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
@@ -35,6 +35,16 @@ Dodatkowo, konieczne jest włączenie dostępu publicznego, jeśli chcesz uzyska
|
||||
```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`
|
||||
|
||||
Z tymi uprawnieniami możesz przywrócić serwer MySQL z kopii zapasowej:
|
||||
```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`
|
||||
|
||||
Dzięki temu uprawnieniu możesz skonfigurować administratorów Azure Active Directory (AD) dla elastycznego serwera MySQL. Można to wykorzystać, ustawiając siebie lub inne konto jako administratora AD, co daje pełną kontrolę administracyjną nad serwerem MySQL. Ważne jest, aby elastyczny serwer miał przypisane zarządzane tożsamości użytkowników do użycia.
|
||||
|
||||
+47
-1
@@ -11,7 +11,7 @@ Aby uzyskać więcej informacji na temat SQL Database, sprawdź:
|
||||
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write`
|
||||
|
||||
Dzięki temu uprawnieniu możesz tworzyć, aktualizować lub usuwać instancje PostgreSQL Flexible Server w Azure. Obejmuje to provisionowanie nowych serwerów, modyfikowanie istniejących konfiguracji serwerów lub wycofywanie serwerów.
|
||||
Dzięki temu uprawnieniu możesz tworzyć, aktualizować lub usuwać instancje PostgreSQL Flexible Server na Azure. Obejmuje to provisionowanie nowych serwerów, modyfikowanie istniejących konfiguracji serwerów lub wycofywanie serwerów.
|
||||
```bash
|
||||
az postgres flexible-server create \
|
||||
--name <ServerName> \
|
||||
@@ -30,10 +30,56 @@ az postgres flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
Ponadto, z uprawnieniami możesz włączyć przypisaną tożsamość i operować z zarządzaną tożsamością przypisaną do serwera. Tutaj możesz znaleźć wszystkie rozszerzenia, które obsługuje Azure PostgreSQL flexible server [https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions](https://learn.microsoft.com/en-us/azure/cosmos-db/postgresql/reference-extensions). Aby móc korzystać z tych rozszerzeń, niektóre parametry serwera (azure.extensions) muszą zostać zmienione. Na przykład tutaj z zarządzaną tożsamością, która ma dostęp do Azure Storage:
|
||||
|
||||
Najpierw zmieniamy parametry i upewniamy się, że przypisana tożsamość jest włączona:
|
||||
```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;
|
||||
|
||||
```
|
||||
Dodatkowo konieczne jest włączenie dostępu publicznego, jeśli chcesz uzyskać dostęp z punktu końcowego, który nie jest prywatny. Aby to włączyć:
|
||||
```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`
|
||||
|
||||
Z tymi uprawnieniami możesz przywrócić serwer z kopii zapasowej za pomocą:
|
||||
```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`
|
||||
|
||||
|
||||
@@ -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,
|
||||
@@ -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
|
||||
Modyfikuj (lub wyłącz) polityki maskowania danych w swoich bazach danych SQL.
|
||||
```bash
|
||||
az rest --method put \
|
||||
--uri "https://management.azure.com/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.Sql/servers/<your-server>/databases/<your-database>/dataMaskingPolicies/Default?api-version=2021-11-01" \
|
||||
--body '{
|
||||
"properties": {
|
||||
"dataMaskingState": "Disable"
|
||||
}
|
||||
}'
|
||||
```
|
||||
### Usuń zabezpieczenia na poziomie wiersza
|
||||
Jeśli zalogujesz się jako administrator, możesz usunąć polityki samego administratora oraz innych użytkowników.
|
||||
```sql
|
||||
DROP SECURITY POLICY [Name_of_policy];
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -6,11 +6,13 @@
|
||||
|
||||
**Azure Cosmos DB** to w pełni **zarządzana baza danych NoSQL, relacyjna i wektorowa**, oferująca czasy odpowiedzi w milisekundach z jedną cyfrą, automatyczną skalowalność i dostępność wspieraną SLA z bezpieczeństwem na poziomie przedsiębiorstwa. Umożliwia szybszy rozwój aplikacji dzięki gotowej dystrybucji danych w wielu regionach, otwartym API, SDK dla popularnych języków oraz funkcjom bazy danych AI, takim jak zintegrowane wsparcie dla wektorów i bezproblemowa integracja z Azure AI.
|
||||
|
||||
Azure Cosmos DB oferuje wiele API baz danych do modelowania danych ze świata rzeczywistego przy użyciu modeli danych dokumentów, relacyjnych, klucz-wartość, grafowych i kolumnowych, a te API to NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin i Table.
|
||||
Azure Cosmos DB oferuje wiele API baz danych do modelowania danych ze świata rzeczywistego przy użyciu modeli danych dokumentowych, relacyjnych, klucz-wartość, grafowych i kolumnowych, a te API to NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin i Table.
|
||||
|
||||
Jednym z kluczowych aspektów CosmosDB jest Azure Cosmos Account. **Azure Cosmos Account** działa jako punkt wejścia do baz danych. Konto określa kluczowe ustawienia, takie jak globalna dystrybucja, poziomy spójności oraz konkretne API, które ma być używane, takie jak NoSQL. Dzięki kontu można skonfigurować globalną replikację, aby zapewnić dostępność danych w wielu regionach dla niskolatencyjnego dostępu. Dodatkowo można wybrać poziom spójności, który równoważy wydajność i dokładność danych, z opcjami od silnej do ostatecznej spójności.
|
||||
|
||||
### NoSQL (sql)
|
||||
Azure Cosmos DB obsługuje **tożsamości przypisane przez użytkownika** oraz **tożsamości zarządzane przypisane przez system**, które są automatycznie tworzone i powiązane z cyklem życia zasobu, co pozwala na bezpieczną, opartą na tokenach autoryzację przy łączeniu z innymi usługami — pod warunkiem, że te usługi mają odpowiednie przypisania ról. Jednak Cosmos DB nie ma wbudowanego mechanizmu do bezpośredniego zapytania zewnętrznych źródeł danych, takich jak Azure Blob Storage. W przeciwieństwie do funkcji zewnętrznych tabel SQL Server, Cosmos DB wymaga, aby dane były wprowadzane do jego kontenerów za pomocą zewnętrznych narzędzi, takich jak Azure Data Factory, Data Migration Tool lub niestandardowe skrypty, zanim będzie można je zapytać za pomocą jego natywnych możliwości zapytań.
|
||||
|
||||
### NoSQL
|
||||
API NoSQL Azure Cosmos DB to API oparte na dokumentach, które używa JSON jako formatu danych. Oferuje składnię zapytań podobną do SQL do zapytań obiektów JSON, co czyni je odpowiednim do pracy z danymi strukturalnymi i półstrukturalnymi. Punkt końcowy usługi to:
|
||||
```bash
|
||||
https://<Account-Name>.documents.azure.com:443/
|
||||
@@ -21,6 +23,12 @@ W ramach konta możesz utworzyć jedną lub więcej baz danych, które służą
|
||||
#### Kontenery
|
||||
Podstawową jednostką przechowywania danych jest kontener, który przechowuje dokumenty JSON i jest automatycznie indeksowany w celu efektywnego zapytania. Kontenery są elastycznie skalowalne i rozproszone w obrębie partycji, które są określane przez zdefiniowany przez użytkownika klucz partycji. Klucz partycji jest kluczowy dla zapewnienia optymalnej wydajności i równomiernego rozkładu danych. Na przykład, kontener może przechowywać dane klientów, z "customerId" jako kluczem partycji.
|
||||
|
||||
#### Kluczowe cechy
|
||||
**Globalna dystrybucja**: Włącz lub wyłącz Geo-Redundancy dla replikacji międzyregionowej i Multi-region Writes dla poprawy dostępności.
|
||||
**Sieć i bezpieczeństwo**: między publicznymi (wszystkie/wybrane sieci) lub prywatnymi punktami końcowymi dla łączności. Bezpieczne połączenia z szyfrowaniem TLS 1.2. Obsługuje CORS (Cross-Origin Resource Sharing) dla kontrolowanego dostępu do zasobów.
|
||||
**Kopia zapasowa i odzyskiwanie**: z polityk kopii zapasowej okresowej, ciągłej (7 dni) lub ciągłej (30 dni) z konfigurowalnymi interwałami i retencją.
|
||||
**Szyfrowanie danych**: Domyślne klucze zarządzane przez usługę lub klucze zarządzane przez klienta (CMK) do szyfrowania (wybór CMK jest nieodwracalny).
|
||||
|
||||
#### Enumeracja
|
||||
|
||||
{{#tabs }}
|
||||
@@ -42,21 +50,21 @@ az cosmosdb identity show --resource-group <ResourceGroupName> --name <AccountNa
|
||||
|
||||
|
||||
# CosmoDB (NoSQL)
|
||||
## List the SQL databases under an Azure Cosmos DB account.
|
||||
## List the NoSQL databases under an Azure Cosmos DB account.
|
||||
az cosmosdb sql database list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
## List the SQL containers under an Azure Cosmos DB SQL database.
|
||||
## List the NoSQL containers under an Azure Cosmos DB NoSQL database.
|
||||
az cosmosdb sql container list --account-name <AccountName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
|
||||
## List all SQL role assignments under an Azure Cosmos DB
|
||||
## List all NoSQL role assignments under an Azure Cosmos DB
|
||||
az cosmosdb sql role assignment list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
## List all SQL role definitions under an Azure Cosmos DB
|
||||
## List all NoSQL role definitions under an Azure Cosmos DB
|
||||
az cosmosdb sql role definition list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
|
||||
## List the SQL stored procedures under an Azure Cosmos DB
|
||||
## List the NoSQL stored procedures under an Azure Cosmos DB
|
||||
az cosmosdb sql stored-procedure list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
## List the SQL triggers under an Azure Cosmos DB SQL container.
|
||||
## List the NoSQL triggers under an Azure Cosmos DB NoSQL container.
|
||||
az cosmosdb sql trigger list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
## List the SQL user defined functions under an Azure Cosmos DB SQL container
|
||||
## List the NoSQL user defined functions under an Azure Cosmos DB NoSQL container
|
||||
az cosmosdb sql user-defined-function list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
|
||||
```
|
||||
@@ -149,7 +157,7 @@ print("All items in the container:")
|
||||
for item in all_items:
|
||||
print(item)
|
||||
```
|
||||
Innym sposobem na nawiązanie połączenia jest użycie **DefaultAzureCredential()**. Wystarczy zalogować się (az login) na konto, które ma odpowiednie uprawnienia i je wykonać. W tym przypadku należy przypisać rolę, nadając niezbędne uprawnienia (zobacz więcej).
|
||||
Innym sposobem na nawiązanie połączenia jest użycie **DefaultAzureCredential()**. Wystarczy zalogować się (az login) za pomocą konta, które ma odpowiednie uprawnienia, i je wykonać. W tym przypadku należy przypisać rolę, nadając niezbędne uprawnienia (zobacz więcej).
|
||||
```python
|
||||
from azure.identity import DefaultAzureCredential
|
||||
from azure.cosmos import CosmosClient
|
||||
@@ -183,7 +191,18 @@ mongodb://<hostname>:<port>/<database>
|
||||
W MongoDB możesz utworzyć jedną lub więcej baz danych w ramach instancji. Każda baza danych służy jako logiczna grupa kolekcji i zapewnia granicę dla organizacji i zarządzania zasobami. Bazy danych pomagają oddzielić i zarządzać danymi logicznie, na przykład dla różnych aplikacji lub projektów.
|
||||
|
||||
#### Kolekcje
|
||||
Podstawową jednostką przechowywania danych w MongoDB jest kolekcja, która przechowuje dokumenty i jest zaprojektowana do efektywnego zapytywania oraz elastycznego projektowania schematów. Kolekcje są elastycznie skalowalne i mogą obsługiwać operacje o wysokiej przepustowości w rozproszonym środowisku na wielu węzłach.
|
||||
Podstawową jednostką przechowywania danych w MongoDB jest kolekcja, która zawiera dokumenty i jest zaprojektowana do efektywnego zapytania oraz elastycznego projektowania schematu. Kolekcje są elastycznie skalowalne i mogą obsługiwać operacje o wysokiej przepustowości w rozproszonym środowisku.
|
||||
|
||||
#### Kluczowe cechy typu jednostki żądania (RU)
|
||||
**Globalna dystrybucja**: Włącz lub wyłącz Geo-Redundancy dla replikacji międzyregionowej i Multi-region Writes dla poprawy dostępności.
|
||||
**Sieć i bezpieczeństwo**: między publicznymi (wszystkie/wybrane sieci) lub prywatnymi punktami końcowymi dla łączności. Bezpieczne połączenia z szyfrowaniem TLS 1.2. Obsługuje CORS (Cross-Origin Resource Sharing) dla kontrolowanego dostępu do zasobów.
|
||||
**Kopia zapasowa i odzyskiwanie**: z polityk kopii zapasowej okresowej, ciągłej (7 dni, darmowa) lub ciągłej (30 dni, płatna) z konfigurowalnymi interwałami i retencją.
|
||||
**Szyfrowanie danych**: Domyślne klucze zarządzane przez usługę lub klucze zarządzane przez klienta (CMK) do szyfrowania (wybór CMK jest nieodwracalny).
|
||||
|
||||
#### Kluczowe cechy typu klastra vCore
|
||||
**Globalna dystrybucja**: Włącz replikę do odczytu w innym regionie Azure dla wysokiej dostępności i wsparcia w przypadku awarii. Skonfiguruj nazwę repliki, region i pamięć na shard.
|
||||
**Sieć i bezpieczeństwo**: Obsługuje dostęp publiczny z przypisanymi publicznymi adresami IP oraz dostęp prywatny. Ogranicz połączenia za pomocą reguł zapory—domyślnie nie są dozwolone żadne publiczne adresy IP.
|
||||
**Szyfrowane połączenia**: Wymusza szyfrowanie TLS dla bezpiecznej transmisji danych.
|
||||
|
||||
#### Enumeracja
|
||||
|
||||
|
||||
@@ -8,10 +8,15 @@ Azure Logic Apps to usługa w chmurze oferowana przez Microsoft Azure, która um
|
||||
|
||||
Logic Apps oferuje wizualny projektant do tworzenia przepływów pracy z **szeroką gamą wbudowanych konektorów**, co ułatwia łączenie się i interakcję z różnymi usługami, takimi jak Office 365, Dynamics CRM, Salesforce i wiele innych. Możesz również tworzyć niestandardowe konektory dostosowane do swoich potrzeb.
|
||||
|
||||
Podczas tworzenia Logic App musisz utworzyć lub połączyć zewnętrzne konto magazynowe, które przechowuje stan przepływu pracy, historię uruchomień i artefakty. To magazynowanie można skonfigurować z ustawieniami diagnostycznymi do monitorowania i można je zabezpieczyć ograniczeniami dostępu do sieci lub zintegrować z wirtualną siecią w celu kontrolowania ruchu przychodzącego i wychodzącego.
|
||||
|
||||
### Zarządzane tożsamości
|
||||
Logic Apps ma **przypisaną tożsamość zarządzaną** związaną z jej cyklem życia. Po włączeniu otrzymuje unikalny identyfikator obiektu (principal ID), który można wykorzystać z Azure RBAC do przyznawania niezbędnych uprawnień do bezpiecznego dostępu do innych usług Azure. To eliminuje potrzebę przechowywania poświadczeń w kodzie, ponieważ tożsamość jest uwierzytelniana przez Microsoft Entra ID. Dodatkowo można również używać **przypisanych przez użytkownika tożsamości zarządzanych**, które mogą być współdzielone między wieloma zasobami. Te tożsamości pozwalają przepływom pracy i Logic Apps na bezpieczną interakcję z systemami zewnętrznymi, zapewniając, że niezbędne kontrole dostępu i uprawnienia są zarządzane centralnie przez ramy bezpieczeństwa Azure.
|
||||
|
||||
### Przykłady
|
||||
|
||||
- **Automatyzacja potoków danych**: Logic Apps mogą automatyzować **procesy transferu i transformacji danych** w połączeniu z Azure Data Factory. Jest to przydatne do tworzenia skalowalnych i niezawodnych potoków danych, które przenoszą i transformują dane między różnymi magazynami danych, takimi jak Azure SQL Database i Azure Blob Storage, wspierając operacje analityczne i inteligencję biznesową.
|
||||
- **Integracja z Azure Functions**: Logic Apps mogą współpracować z Azure Functions w celu opracowania **zaawansowanych aplikacji wyzwalanych zdarzeniami, które skalują się w razie potrzeby** i integrują się płynnie z innymi usługami Azure. Przykładem zastosowania jest użycie Logic App do wyzwolenia Azure Function w odpowiedzi na określone zdarzenia, takie jak zmiany w koncie Azure Storage, co umożliwia dynamiczne przetwarzanie danych.
|
||||
- **Automatyzacja potoków danych**: Logic Apps mogą automatyzować **procesy transferu i transformacji danych** w połączeniu z Azure Data Factory. Jest to przydatne do tworzenia skalowalnych i niezawodnych potoków danych, które przenoszą i transformują dane między różnymi magazynami danych, takimi jak Azure SQL Database i Azure Blob Storage, wspierając operacje analityczne i inteligencji biznesowej.
|
||||
- **Integracja z Azure Functions**: Logic Apps mogą współpracować z Azure Functions w celu opracowania **zaawansowanych aplikacji wyzwalanych zdarzeniami, które skalują się w razie potrzeby** i integrują się płynnie z innymi usługami Azure. Przykładem zastosowania jest użycie Logic App do wyzwolenia Azure Function w odpowiedzi na określone zdarzenia, takie jak zmiany w koncie magazynowym Azure, co umożliwia dynamiczne przetwarzanie danych.
|
||||
|
||||
### Wizualizacja LogicAPP
|
||||
|
||||
@@ -19,11 +24,11 @@ Możliwe jest wyświetlenie LogicApp w formie graficznej:
|
||||
|
||||
<figure><img src="../../../images/image (197).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
lub sprawdzenie kodu w sekcji "**Widok kodu aplikacji logicznej**".
|
||||
lub sprawdzenie kodu w sekcji "**Widok kodu aplikacji Logic**".
|
||||
|
||||
### Ochrona przed SSRF
|
||||
|
||||
Nawet jeśli znajdziesz **Logic App podatny na SSRF**, nie będziesz w stanie uzyskać dostępu do poświadczeń z metadanych, ponieważ Logic Apps na to nie pozwala.
|
||||
Nawet jeśli znajdziesz **Logic App podatną na SSRF**, nie będziesz w stanie uzyskać poświadczeń z metadanych, ponieważ Logic Apps tego nie umożliwia.
|
||||
|
||||
Na przykład coś takiego nie zwróci tokena:
|
||||
```bash
|
||||
@@ -35,11 +40,15 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741
|
||||
Istnieje kilka opcji hostingu:
|
||||
|
||||
* **Konsumpcja**
|
||||
- **Wielu najemców**: zapewnia współdzielone zasoby obliczeniowe, działa w chmurze publicznej i stosuje model cenowy płatności za operację. Jest to idealne dla lekkich i opłacalnych obciążeń.
|
||||
- **Wielu najemców**: zapewnia współdzielone zasoby obliczeniowe, działa w chmurze publicznej i stosuje model cenowy płatności za operację. Jest to idealne rozwiązanie dla lekkich i opłacalnych obciążeń.
|
||||
* **Standard**
|
||||
- **Plan usługi przepływu pracy**: dedykowane zasoby obliczeniowe z integracją VNET dla sieci i opłatami za instancję planu usługi przepływu pracy. Jest odpowiedni dla bardziej wymagających obciążeń, które wymagają większej kontroli.
|
||||
- **Środowisko usługi aplikacji V3**: dedykowane zasoby obliczeniowe z pełną izolacją i skalowalnością. Integruje się również z VNET dla sieci i stosuje model cenowy oparty na instancjach usługi aplikacji w środowisku. Jest to idealne dla aplikacji na dużą skalę, które potrzebują wysokiej izolacji.
|
||||
- **Hybrydowy**: zaprojektowany do lokalnego przetwarzania i wsparcia dla wielu chmur. Umożliwia zarządzane przez klienta zasoby obliczeniowe z dostępem do lokalnej sieci i wykorzystuje Kubernetes Event-Driven Autoscaling (KEDA).
|
||||
- **Plan usługi Workflow**: dedykowane zasoby obliczeniowe z integracją VNET dla sieci i opłatami za instancję planu usługi workflow. Jest odpowiedni dla bardziej wymagających obciążeń, które wymagają większej kontroli.
|
||||
- **Środowisko usługi App V3**: dedykowane zasoby obliczeniowe z pełną izolacją i skalowalnością. Integruje się również z VNET dla sieci i stosuje model cenowy oparty na instancjach usługi App w środowisku. Jest to idealne dla aplikacji na dużą skalę, które potrzebują wysokiej izolacji.
|
||||
- **Hybrydowy**: zaprojektowany do przetwarzania lokalnego i wsparcia dla wielu chmur. Umożliwia zarządzane przez klienta zasoby obliczeniowe z dostępem do lokalnej sieci i wykorzystuje Kubernetes Event-Driven Autoscaling (KEDA).
|
||||
|
||||
### Przepływy pracy
|
||||
|
||||
Przepływy pracy w Azure Logic Apps to podstawowe zautomatyzowane procesy, które orchestrują działania w różnych usługach. Przepływ pracy zaczyna się od wyzwalacza—wydarzenia lub harmonogramu—i następnie wykonuje szereg działań, takich jak wywoływanie API, przetwarzanie danych lub interakcja z innymi usługami Azure. Przepływy pracy można definiować wizualnie za pomocą projektanta lub za pomocą kodu (definicje JSON) i są zarządzane za pomocą poleceń takich jak az logic workflow create, az logic workflow show i az logic workflow update. Obsługują również zarządzanie tożsamością (poprzez podgrupę tożsamości), aby bezpiecznie zarządzać uprawnieniami i integracjami z zewnętrznymi zasobami.
|
||||
|
||||
### Enumeracja
|
||||
|
||||
@@ -142,7 +151,7 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
|
||||
* Schematy: Zarządzaj schematami XML do walidacji i przetwarzania wiadomości w swoim koncie integracyjnym.
|
||||
* Mapy: Konfiguruj transformacje oparte na XSLT, aby konwertować formaty danych w ramach swoich przepływów pracy integracyjnych.
|
||||
* Zbiory: Zarządzaj zbiorami konta integracyjnego, aby uprościć logikę i przetwarzanie danych.
|
||||
* Zestawy: Zarządzaj zestawami konta integracyjnego, aby uprościć logikę i przetwarzanie danych.
|
||||
* Certyfikaty: Obsługuj certyfikaty do szyfrowania i podpisywania wiadomości, zapewniając bezpieczną komunikację.
|
||||
* Partnerzy: Zarządzaj informacjami o partnerach handlowych dla transakcji B2B, umożliwiając płynne integracje.
|
||||
* Umowy: Konfiguruj zasady i ustawienia dotyczące wymiany danych z partnerami handlowymi (np. EDI, AS2).
|
||||
|
||||
@@ -3,23 +3,23 @@
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Azure MySQL
|
||||
Azure Database for MySQL to w pełni zarządzana usługa relacyjnej bazy danych oparta na MySQL Community Edition, zaprojektowana w celu zapewnienia skalowalności, bezpieczeństwa i elastyczności dla różnych potrzeb aplikacji. Posiada dwa różne modele wdrożenia:
|
||||
Azure Database for MySQL to w pełni zarządzana usługa relacyjnej bazy danych oparta na edycji społeczności MySQL, zaprojektowana w celu zapewnienia skalowalności, bezpieczeństwa i elastyczności dla różnych potrzeb aplikacji. Posiada dwa różne modele wdrożenia:
|
||||
|
||||
* **Single Server** (jest na ścieżce wycofania):
|
||||
- Optymalizowany pod kątem opłacalnych i łatwych w zarządzaniu wdrożeń MySQL.
|
||||
- Optymalizowane pod kątem opłacalnych i łatwych w zarządzaniu wdrożeń MySQL.
|
||||
- Funkcje obejmują automatyczne kopie zapasowe, wysoką dostępność i podstawowe monitorowanie.
|
||||
- Idealny dla aplikacji o przewidywalnych obciążeniach.
|
||||
- Idealne dla aplikacji o przewidywalnych obciążeniach.
|
||||
* **Flexible Server**:
|
||||
- Zapewnia większą kontrolę nad zarządzaniem bazą danych i konfiguracją.
|
||||
- Obsługuje wysoką dostępność (w tej samej strefie i redundantną strefowo).
|
||||
- Obsługuje wysoką dostępność (w tej samej strefie i redundantną strefę).
|
||||
- Funkcje obejmują elastyczne skalowanie, zarządzanie poprawkami i optymalizację obciążenia.
|
||||
- Oferuje funkcjonalność zatrzymywania/uruchamiania w celu oszczędności kosztów.
|
||||
|
||||
### Kluczowe funkcje
|
||||
* **Zarządzanie serwerem**: Funkcja **ad-admin** umożliwia zarządzanie administratorami Azure Active Directory (AAD) dla serwerów MySQL, zapewniając kontrolę nad dostępem administracyjnym za pomocą poświadczeń AAD, podczas gdy funkcja **identity** umożliwia przypisywanie i zarządzanie Azure Managed Identities, oferując bezpieczną, wolną od poświadczeń autoryzację do uzyskiwania dostępu do zasobów Azure.
|
||||
* **Zarządzanie cyklem życia**: opcje uruchamiania lub zatrzymywania serwera, usuwania instancji elastycznego serwera, ponownego uruchamiania serwera w celu szybkiego zastosowania zmian konfiguracyjnych oraz oczekiwania, aby upewnić się, że serwer spełnia określone warunki przed kontynuowaniem skryptów automatyzacji.
|
||||
* **Bezpieczeństwo i sieci**: można zarządzać regułami zapory serwera w celu zapewnienia bezpiecznego dostępu do bazy danych oraz odłączać konfiguracje sieci wirtualnej w razie potrzeby.
|
||||
* **Ochrona danych i kopie zapasowe**: obejmuje opcje zarządzania kopiami zapasowymi elastycznego serwera w celu odzyskiwania danych, wykonywania geo-przywracania w celu odzyskania serwera w innej regionie, eksportowania kopii zapasowych serwera do użytku zewnętrznego (w wersji podglądowej) oraz przywracania serwera z kopii zapasowej do określonego punktu w czasie.
|
||||
* **Zarządzanie serwerem**: Funkcja **ad-admin** umożliwia zarządzanie administratorami Azure Entra ID dla serwerów MySQL, zapewniając kontrolę nad dostępem administracyjnym za pomocą poświadczeń Entra ID. Mysql obsługuje User Managed Identities, używane do uwierzytelniania bez potrzeby posiadania poświadczeń, i mogą być używane przez inne usługi.
|
||||
* **Zarządzanie cyklem życia**: opcje uruchamiania lub zatrzymywania serwera, usuwania instancji elastycznego serwera, ponownego uruchamiania serwera w celu szybkiego zastosowania zmian konfiguracyjnych oraz czekania, aby upewnić się, że serwer spełnia określone warunki przed kontynuowaniem skryptów automatyzacji.
|
||||
* **Bezpieczeństwo i sieci**: Zabezpiecz swój serwer, ograniczając połączenia za pomocą reguł zapory, które pozwalają tylko na określone publiczne adresy IP, lub korzystając z prywatnych punktów końcowych, które integrują twój serwer w wirtualnej sieci. Wszystkie połączenia są chronione szyfrowaniem TLS 1.2. Bazy danych, kopie zapasowe i logi są domyślnie szyfrowane w spoczynku przy użyciu kluczy zarządzanych przez usługę lub kluczy niestandardowych.
|
||||
* **Ochrona danych i kopie zapasowe**: obejmuje opcje zarządzania kopiami zapasowymi elastycznego serwera w celu odzyskiwania danych, przeprowadzania geo-odtworzenia w celu odzyskania serwera w innym regionie, eksportowania kopii zapasowych serwera do użytku zewnętrznego (w wersji podglądowej) oraz przywracania serwera z kopii zapasowej do określonego punktu w czasie.
|
||||
|
||||
### Enumeracja
|
||||
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
# Az - Bazy Danych PostgreSQL
|
||||
# Az - Bazy danych PostgreSQL
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Azure PostgreSQL
|
||||
**Azure Database for PostgreSQL** to w pełni zarządzana **usługa bazy danych relacyjnych oparta na PostgreSQL** Community Edition. Została zaprojektowana, aby zapewnić skalowalność, bezpieczeństwo i elastyczność dla różnych potrzeb aplikacji. Podobnie jak Azure MySQL, PostgreSQL oferuje dwa modele wdrożenia:
|
||||
**Azure Database for PostgreSQL** to w pełni zarządzana **usługa bazy danych relacyjnych oparta na PostgreSQL** Community Edition. Została zaprojektowana w celu zapewnienia skalowalności, bezpieczeństwa i elastyczności dla różnych potrzeb aplikacji. Podobnie jak Azure MySQL, PostgreSQL oferuje dwa modele wdrożenia:
|
||||
|
||||
* **Single Server** (na ścieżce wycofania):
|
||||
- Optymalizowane dla prostych, ekonomicznych wdrożeń PostgreSQL.
|
||||
- Optymalizowane dla prostych, opłacalnych wdrożeń PostgreSQL.
|
||||
- Oferuje automatyczne kopie zapasowe, podstawowe monitorowanie i wysoką dostępność.
|
||||
- Idealne dla aplikacji z przewidywalnymi obciążeniami.
|
||||
- Idealne dla aplikacji o przewidywalnych obciążeniach.
|
||||
* **Flexible Server**:
|
||||
- Zapewnia większą kontrolę nad zarządzaniem bazą danych i konfiguracją.
|
||||
- Obsługuje wysoką dostępność, zarówno w tej samej strefie, jak i w różnych strefach.
|
||||
- Oferuje elastyczne skalowanie, automatyczne utrzymanie i funkcjonalność oszczędzania kosztów.
|
||||
- Oferuje elastyczne skalowanie, automatyczne utrzymanie i funkcjonalność oszczędzającą koszty.
|
||||
- Umożliwia uruchamianie i zatrzymywanie serwera w celu optymalizacji kosztów.
|
||||
|
||||
### Kluczowe Cechy
|
||||
### Kluczowe funkcje
|
||||
|
||||
* **Niestandardowe Okna Utrzymania**: Zaplanuj aktualizacje, aby zminimalizować zakłócenia.
|
||||
* **Aktywne Monitorowanie**: Uzyskaj dostęp do szczegółowych metryk i dzienników, aby śledzić i poprawiać wydajność bazy danych.
|
||||
* **Zatrzymaj/Uruchom Serwer**: Użytkownicy mogą zatrzymywać i uruchamiać serwer.
|
||||
* **Automatyczne Kopie Zapasowe**: Wbudowane codzienne kopie zapasowe z okresami przechowywania konfigurowalnymi do 35 dni.
|
||||
* **Niestandardowe okna konserwacji**: Zaplanuj aktualizacje, aby zminimalizować zakłócenia.
|
||||
* **Aktywne monitorowanie**: Uzyskaj dostęp do szczegółowych metryk i dzienników, aby śledzić i poprawiać wydajność bazy danych.
|
||||
* **Zatrzymaj/Uruchom serwer**: Użytkownicy mogą zatrzymywać i uruchamiać serwer.
|
||||
* **Automatyczne kopie zapasowe**: Wbudowane codzienne kopie zapasowe z okresami przechowywania konfigurowalnymi do 35 dni.
|
||||
* **Dostęp oparty na rolach**: Kontroluj uprawnienia użytkowników i dostęp administracyjny za pośrednictwem Azure Active Directory.
|
||||
* **Bezpieczeństwo i Sieci**: można zarządzać regułami zapory serwera dla bezpiecznego dostępu do bazy danych i odłączać konfiguracje sieci wirtualnej w razie potrzeby.
|
||||
* **Bezpieczeństwo i sieci**: można zarządzać regułami zapory serwera w celu zapewnienia bezpiecznego dostępu do bazy danych oraz odłączać konfiguracje sieci wirtualnej w razie potrzeby.
|
||||
* **Zarządzane tożsamości**: pozwalają Twojemu serwerowi na bezpieczną autoryzację z innymi usługami Azure bez przechowywania poświadczeń. Umożliwia to dostęp do innych usług, które będą miały tożsamość zarządzaną przypisaną do systemu i będą dostępne przez inne usługi z innymi tożsamościami, które są tożsamościami przypisanymi przez użytkownika.
|
||||
|
||||
### Enumeracja
|
||||
|
||||
|
||||
@@ -8,144 +8,92 @@ Azure SQL to rodzina zarządzanych, bezpiecznych i inteligentnych produktów, kt
|
||||
|
||||
Azure SQL składa się z czterech głównych ofert:
|
||||
|
||||
1. **Azure SQL Server**: Azure SQL Server to zarządzana usługa bazy danych relacyjnych, która upraszcza wdrażanie i zarządzanie bazami danych SQL Server, z wbudowanymi funkcjami bezpieczeństwa i wydajności.
|
||||
2. **Azure SQL Database**: To **w pełni zarządzana usługa bazy danych**, która pozwala na hostowanie pojedynczych baz danych w chmurze Azure. Oferuje wbudowaną inteligencję, która uczy się Twoich unikalnych wzorców bazy danych i dostarcza spersonalizowane rekomendacje oraz automatyczne dostosowywanie.
|
||||
3. **Azure SQL Managed Instance**: To rozwiązanie dla większych wdrożeń w skali całej instancji SQL Server. Oferuje niemal 100% zgodności z najnowszym silnikiem bazy danych SQL Server w wersji lokalnej (Enterprise Edition), który zapewnia natywną implementację wirtualnej sieci (VNet), odpowiadającą na powszechne obawy dotyczące bezpieczeństwa, oraz model biznesowy korzystny dla klientów SQL Server w wersji lokalnej.
|
||||
4. **Azure SQL Server na maszynach wirtualnych Azure**: To infrastruktura jako usługa (IaaS) i jest najlepsza dla migracji, gdzie chcesz **kontrolować system operacyjny i instancję SQL Server**, jakby to był serwer działający lokalnie.
|
||||
1. **Azure SQL Server**: Serwer jest potrzebny do **wdrażania i zarządzania** bazami danych SQL Server.
|
||||
2. **Azure SQL Database**: To **w pełni zarządzana usługa bazy danych**, która pozwala na hostowanie indywidualnych baz danych w chmurze Azure.
|
||||
3. **Azure SQL Managed Instance**: To rozwiązanie dla większych wdrożeń w skali całej instancji SQL Server.
|
||||
4. **Azure SQL Server na maszynach wirtualnych Azure**: To najlepsze rozwiązanie dla architektur, w których chcesz **kontrolować system operacyjny** i instancję SQL Server.
|
||||
|
||||
### Azure SQL Server
|
||||
### Funkcje zabezpieczeń SQL Server
|
||||
|
||||
Azure SQL Server to system zarządzania bazą danych relacyjnych (RDBMS), który wykorzystuje Transact-SQL do operacji na danych i jest zaprojektowany do obsługi systemów na poziomie przedsiębiorstwa. Oferuje solidne funkcje dotyczące wydajności, bezpieczeństwa, skalowalności i integracji z różnymi aplikacjami Microsoft. Bazy danych Azure SQL opierają się na tym serwerze, ponieważ są zbudowane na tych serwerach i jest to punkt wejścia dla użytkowników do uzyskania dostępu do baz danych.
|
||||
**Dostęp sieciowy:**
|
||||
|
||||
#### Sieć
|
||||
- Publiczny punkt końcowy (można ograniczyć dostęp do określonych sieci).
|
||||
- Prywatne punkty końcowe.
|
||||
- Możliwe jest również ograniczenie połączeń na podstawie nazw domen.
|
||||
- Możliwe jest również zezwolenie usługom Azure na dostęp (np. do używania edytora zapytań w portalu lub zezwolenie maszynie wirtualnej Azure na połączenie).
|
||||
|
||||
**Łączność sieciowa**: Wybierz, czy chcesz włączyć dostęp przez publiczny punkt końcowy, czy prywatny punkt końcowy. Jeśli wybierzesz Brak dostępu, żadne punkty końcowe nie są tworzone, dopóki nie zostaną skonfigurowane ręcznie:
|
||||
- Brak dostępu: Żadne punkty końcowe nie są skonfigurowane, blokując przychodzące połączenia, aż do ręcznego ustawienia.
|
||||
- Publiczny punkt końcowy: Umożliwia bezpośrednie połączenia przez publiczny internet, podlegające zasadom zapory i innym konfiguracjom bezpieczeństwa.
|
||||
- Prywatny punkt końcowy: Ogranicza łączność do prywatnej sieci.
|
||||
**Metody uwierzytelniania:**
|
||||
|
||||
**Polityka połączeń**: Zdefiniuj, jak klienci komunikują się z serwerem bazy danych SQL:
|
||||
- Domyślnie: Używa polityki przekierowania dla wszystkich połączeń klientów z wewnątrz Azure (z wyjątkiem tych korzystających z prywatnych punktów końcowych) oraz polityki proxy dla połączeń z zewnątrz Azure.
|
||||
- Proxy: Kieruje wszystkie połączenia klientów przez bramę bazy danych Azure SQL.
|
||||
- Przekierowanie: Klienci łączą się bezpośrednio z węzłem hostującym bazę danych.
|
||||
- Uwierzytelnianie **tylko Entra**: Musisz wskazać zasady Entra, które będą miały dostęp do usługi.
|
||||
- **Uwierzytelnianie zarówno SQL, jak i Microsoft Entra**: Tradycyjne uwierzytelnianie SQL z nazwą użytkownika i hasłem obok Microsoft Entra.
|
||||
- **Tylko uwierzytelnianie SQL**: Zezwala tylko na dostęp za pośrednictwem użytkowników bazy danych.
|
||||
|
||||
#### Metody uwierzytelniania
|
||||
Azure SQL obsługuje różne metody uwierzytelniania w celu zabezpieczenia dostępu do bazy danych:
|
||||
Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL, należy wskazać użytkownika administracyjnego (nazwa użytkownika + hasło), a jeśli wybrano uwierzytelnianie Entra ID, należy również wskazać przynajmniej jednego użytkownika z dostępem administracyjnym.
|
||||
|
||||
- **Uwierzytelnianie tylko Microsoft Entra**: Używa Microsoft Entra (wcześniej Azure AD) do centralnego zarządzania tożsamością i jednolitych logowań.
|
||||
- **Uwierzytelnianie zarówno SQL, jak i Microsoft Entra**: Pozwala na korzystanie z tradycyjnego uwierzytelniania SQL obok Microsoft Entra.
|
||||
- **Uwierzytelnianie SQL**: Opiera się wyłącznie na nazwach użytkowników i hasłach SQL Server.
|
||||
**Szyfrowanie:**
|
||||
|
||||
#### Funkcje bezpieczeństwa
|
||||
- Nazywa się to „Szyfrowanie danych w trybie transparentnym” i szyfruje bazy danych, kopie zapasowe i logi w spoczynku.
|
||||
- Jak zawsze, domyślnie używany jest zarządzany klucz Azure, ale można również użyć klucza szyfrowania zarządzanego przez klienta (CMEK).
|
||||
**Zarządzane tożsamości:**
|
||||
|
||||
Serwery SQL mają **Zarządzane Tożsamości**. Zarządzane tożsamości pozwalają Twojemu serwerowi na bezpieczne uwierzytelnianie z innymi usługami Azure bez przechowywania poświadczeń. Umożliwia to dostęp do innych usług, które będą miały tożsamość zarządzaną przypisaną do systemu oraz będą dostępne przez inne usługi z innymi tożsamościami, które są tożsamościami przypisanymi przez użytkownika. Niektóre z usług, do których SQL może uzyskać dostęp, to Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB lub Cosmos DB API dla MongoDB, Generic ODBC, Bulk Operations i S3-compatibile object storage.
|
||||
- Możliwe jest przypisanie zarządzanych tożsamości systemowych i użytkowników.
|
||||
- Używane do uzyskiwania dostępu do klucza szyfrowania (jeśli używany jest CMEK) i innych usług z baz danych.
|
||||
- Jeśli przypisano więcej niż jedną UMI, możliwe jest wskazanie domyślnej do użycia.
|
||||
- Możliwe jest skonfigurowanie tożsamości klienta federacyjnego do dostępu między tenantami.
|
||||
|
||||
Inne funkcje bezpieczeństwa, które ma serwer SQL, to:
|
||||
**Microsoft Defender:**
|
||||
|
||||
- **Reguły zapory**: Reguły zapory kontrolują dostęp do Twojego serwera, ograniczając lub zezwalając na ruch. To jest również funkcja samych baz danych.
|
||||
- **Transparentne Szyfrowanie Danych (TDE)**: TDE szyfruje Twoje bazy danych, kopie zapasowe i dzienniki w spoczynku, aby chronić Twoje dane, nawet jeśli pamięć masowa zostanie skompromitowana. Może być realizowane za pomocą klucza zarządzanego przez usługę lub klucza zarządzanego przez klienta.
|
||||
- **Microsoft Defender dla SQL**: Microsoft Defender dla SQL może być włączony, oferując oceny podatności i zaawansowaną ochronę przed zagrożeniami dla serwera.
|
||||
- Przydatny do „łagodzenia potencjalnych luk w bazach danych i wykrywania anomalii”
|
||||
- Porozmawiamy o Defenderze w osobnej lekcji (może być włączony w kilku innych usługach Azure)
|
||||
|
||||
#### Modele wdrożenia
|
||||
**Kopie zapasowe:**
|
||||
- Częstotliwość tworzenia kopii zapasowych jest zarządzana w politykach retencji.
|
||||
|
||||
Azure SQL Database obsługuje elastyczne opcje wdrożenia, aby dostosować się do różnych potrzeb:
|
||||
**Usunięte bazy danych:**
|
||||
- Możliwe jest przywrócenie baz danych, które zostały usunięte z istniejących kopii zapasowych.
|
||||
|
||||
- **Pojedyncza baza danych**:
|
||||
- W pełni izolowana baza danych z własnymi dedykowanymi zasobami.
|
||||
- Doskonała dla mikroserwisów lub aplikacji wymagających jednego źródła danych.
|
||||
- **Elastic Pool**:
|
||||
- Umożliwia wielu bazom danych dzielenie zasobów w ramach puli.
|
||||
- Ekonomiczne dla aplikacji z fluktuującymi wzorcami użytkowania w wielu bazach danych.
|
||||
## Azure SQL Database
|
||||
|
||||
### Azure SQL Database
|
||||
**Azure SQL Database** to **w pełni zarządzana platforma bazy danych jako usługa (PaaS)**, która zapewnia skalowalne i bezpieczne rozwiązania baz danych relacyjnych. Zbudowana jest na najnowszych technologiach SQL Server i eliminuje potrzebę zarządzania infrastrukturą, co czyni ją popularnym wyborem dla aplikacji w chmurze.
|
||||
|
||||
**Azure SQL Database** to **w pełni zarządzana platforma bazy danych jako usługa (PaaS)**, która zapewnia skalowalne i bezpieczne rozwiązania baz danych relacyjnych. Jest zbudowana na najnowszych technologiach SQL Server i eliminuje potrzebę zarządzania infrastrukturą, co czyni ją popularnym wyborem dla aplikacji w chmurze.
|
||||
Aby utworzyć bazę danych SQL, należy wskazać serwer SQL, na którym będzie hostowana.
|
||||
|
||||
#### Kluczowe funkcje
|
||||
### Funkcje zabezpieczeń bazy danych SQL
|
||||
|
||||
- **Zawsze aktualne**: Działa na najnowszej stabilnej wersji SQL Server i automatycznie otrzymuje nowe funkcje i poprawki.
|
||||
- **Możliwości PaaS**: Wbudowana wysoka dostępność, kopie zapasowe i aktualizacje.
|
||||
- **Elastyczność danych**: Obsługuje dane relacyjne i nierelacyjne (np. grafy, JSON, przestrzenne i XML).
|
||||
- **Zawsze aktualna**: Działa na najnowszej stabilnej wersji SQL Server i automatycznie otrzymuje nowe funkcje i poprawki.
|
||||
- **Dziedziczone funkcje zabezpieczeń SQL Server:**
|
||||
- Uwierzytelnianie (SQL i/lub Entra ID)
|
||||
- Przypisane zarządzane tożsamości
|
||||
- Ograniczenia sieciowe
|
||||
- Szyfrowanie
|
||||
- Kopie zapasowe
|
||||
- …
|
||||
- **Nadmiarowość danych:** Opcje to lokalna, strefowa, geograficzna lub geograficznie strefowa nadmiarowość.
|
||||
- **Księga:** Kryptograficznie weryfikuje integralność danych, zapewniając, że wszelkie manipulacje są wykrywane. Przydatne dla finansów, medycyny i każdej organizacji zarządzającej wrażliwymi danymi.
|
||||
|
||||
#### Sieć
|
||||
Baza danych SQL może być częścią **elastycznego zbioru**. Elastyczne zbiory to opłacalne rozwiązanie do zarządzania wieloma bazami danych poprzez dzielenie konfigurowalnych zasobów obliczeniowych (eDTUs) i pamięci masowej między nimi, z ceną opartą wyłącznie na przydzielonych zasobach, a nie na liczbie baz danych.
|
||||
|
||||
**Łączność sieciowa**: Wybierz, czy chcesz włączyć dostęp przez publiczny punkt końcowy, czy prywatny punkt końcowy. Jeśli wybierzesz Brak dostępu, żadne punkty końcowe nie są tworzone, dopóki nie zostaną skonfigurowane ręcznie:
|
||||
- Brak dostępu: Żadne punkty końcowe nie są skonfigurowane, blokując przychodzące połączenia, aż do ręcznego ustawienia.
|
||||
- Publiczny punkt końcowy: Umożliwia bezpośrednie połączenia przez publiczny internet, podlegające zasadom zapory i innym konfiguracjom bezpieczeństwa.
|
||||
- Prywatny punkt końcowy: Ogranicza łączność do prywatnej sieci.
|
||||
#### Azure SQL Bezpieczeństwo na poziomie kolumn (Maskowanie) i bezpieczeństwo na poziomie wierszy
|
||||
|
||||
**Polityka połączeń**: Zdefiniuj, jak klienci komunikują się z serwerem bazy danych SQL:
|
||||
- Domyślnie: Używa polityki przekierowania dla wszystkich połączeń klientów z wewnątrz Azure (z wyjątkiem tych korzystających z prywatnych punktów końcowych) oraz polityki proxy dla połączeń z zewnątrz Azure.
|
||||
- Proxy: Kieruje wszystkie połączenia klientów przez bramę bazy danych Azure SQL.
|
||||
- Przekierowanie: Klienci łączą się bezpośrednio z węzłem hostującym bazę danych.
|
||||
**Dynamiczne** maskowanie danych Azure SQL to funkcja, która pomaga **chronić wrażliwe informacje, ukrywając je** przed nieautoryzowanymi użytkownikami. Zamiast zmieniać rzeczywiste dane, dynamicznie maskuje wyświetlane dane, zapewniając, że wrażliwe szczegóły, takie jak numery kart kredytowych, są ukryte.
|
||||
|
||||
#### Funkcje bezpieczeństwa
|
||||
**Dynamiczne maskowanie danych** dotyczy wszystkich użytkowników z wyjątkiem tych, którzy są odmaskowani (ci użytkownicy muszą być wskazani) oraz administratorów. Posiada opcję konfiguracji, która określa, którzy użytkownicy SQL są zwolnieni z dynamicznego maskowania danych, przy czym **administratorzy są zawsze wyłączeni**.
|
||||
|
||||
- **Microsoft Defender dla SQL**: może być włączony, oferując oceny podatności i zaawansowaną ochronę przed zagrożeniami.
|
||||
- **Księga**: kryptograficznie weryfikuje integralność danych, zapewniając, że wszelkie manipulacje są wykrywane.
|
||||
- **Tożsamość serwera**: wykorzystuje zarządzane tożsamości przypisane przez system i użytkownika, aby umożliwić centralny dostęp.
|
||||
- **Zarządzanie kluczem szyfrowania Transparentnego Szyfrowania Danych**: szyfruje bazy danych, kopie zapasowe i dzienniki w spoczynku bez konieczności wprowadzania jakichkolwiek zmian w aplikacji. Szyfrowanie można włączyć na każdej bazie danych, a jeśli jest skonfigurowane na poziomie bazy danych, te ustawienia mają pierwszeństwo przed konfiguracją na poziomie serwera.
|
||||
- **Zawsze Szyfrowane**: to zestaw zaawansowanych funkcji ochrony danych, które oddzielają własność danych od zarządzania danymi. Zapewnia to, że administratorzy lub operatorzy z wysokimi uprawnieniami nie mogą uzyskać dostępu do wrażliwych danych.
|
||||
|
||||
#### Modele zakupu / Poziomy usług
|
||||
|
||||
- **Oparte na vCore**: Wybierz obliczenia, pamięć i pamięć masową niezależnie. Dla ogólnego użytku, krytycznego biznesu (z wysoką odpornością i wydajnością dla aplikacji OLTP) i skaluje się do 128 TB pamięci masowej.
|
||||
- **Oparte na DTU**: Łączy obliczenia, pamięć i I/O w stałych poziomach. Zrównoważone zasoby dla typowych zadań.
|
||||
- Standard: Zrównoważone zasoby dla typowych zadań.
|
||||
- Premium: Wysoka wydajność dla wymagających obciążeń.
|
||||
|
||||
#### Skalowalna wydajność i pule
|
||||
|
||||
- **Pojedyncze bazy danych**: Każda baza danych jest izolowana i ma swoje własne dedykowane zasoby obliczeniowe, pamięci i pamięci masowej. Zasoby można skalować dynamicznie (w górę lub w dół) bez przestojów (1–128 vCores, 32 GB–4 TB pamięci masowej i do 128 TB).
|
||||
- **Elastic Pools**: Dzielą zasoby między wieloma bazami danych w puli, aby zmaksymalizować efektywność i zaoszczędzić koszty. Zasoby można również skalować dynamicznie dla całej puli.
|
||||
- **Elastyczność poziomów usług**: Rozpocznij od małej bazy danych w poziomie ogólnego użytku. Ulepsz do poziomów krytycznych dla biznesu lub hiperskalowania w miarę wzrostu potrzeb.
|
||||
- **Opcje skalowania**: Dynamiczne skalowanie lub alternatywy automatycznego skalowania.
|
||||
|
||||
#### Wbudowane monitorowanie i optymalizacja
|
||||
|
||||
- **Query Store**: Śledzi problemy z wydajnością, identyfikuje największych konsumentów zasobów i oferuje wykonalne rekomendacje.
|
||||
- **Automatyczne dostosowywanie**: Proaktywnie optymalizuje wydajność za pomocą funkcji takich jak automatyczne indeksowanie i korekcje planu zapytań.
|
||||
- **Integracja telemetrii**: Obsługuje monitorowanie przez Azure Monitor, Event Hubs lub Azure Storage w celu uzyskania dostosowanych informacji.
|
||||
|
||||
#### Odzyskiwanie po awarii i dostępność
|
||||
|
||||
- **Automatyczne kopie zapasowe**: SQL Database automatycznie wykonuje pełne, różnicowe i dzienniki transakcji kopii zapasowych baz danych.
|
||||
- **Przywracanie do punktu w czasie**: Przywracaj bazy danych do dowolnego wcześniejszego stanu w okresie retencji kopii zapasowych.
|
||||
- **Geo-redundancja**
|
||||
- **Grupy failover**: Uproszczenie odzyskiwania po awarii poprzez grupowanie baz danych do automatycznego failoveru w różnych regionach.
|
||||
**Bezpieczeństwo na poziomie wierszy Azure SQL (RLS)** to funkcja, która **kontroluje, które wiersze użytkownik może przeglądać lub modyfikować**, zapewniając, że każdy użytkownik widzi tylko dane istotne dla niego. Tworząc polityki zabezpieczeń z filtrami lub predykatami blokującymi, organizacje mogą egzekwować precyzyjny dostęp na poziomie bazy danych.
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instance** to silnik bazy danych jako usługa (PaaS), który oferuje niemal 100% zgodności z SQL Server i automatycznie obsługuje większość zadań zarządzania (np. aktualizacje, łatanie, kopie zapasowe, monitorowanie). Zapewnia rozwiązanie w chmurze do migracji lokalnych baz danych SQL Server z minimalnymi zmianami.
|
||||
**Azure SQL Managed Instances** są przeznaczone do większych wdrożeń w skali całej instancji SQL Server. Zapewnia niemal 100% zgodności z najnowszym SQL Server w wersji lokalnej (edycja Enterprise), co zapewnia natywną implementację sieci wirtualnej (VNet), która odpowiada na powszechne obawy dotyczące bezpieczeństwa, oraz model biznesowy korzystny dla klientów SQL Server w wersji lokalnej.
|
||||
|
||||
#### Poziomy usług
|
||||
### Azure SQL Maszyny Wirtualne
|
||||
|
||||
- **Ogólny cel**: Opcja kosztowa dla aplikacji o standardowych wymaganiach dotyczących I/O i opóźnień.
|
||||
- **Krytyczny biznes**: Opcja o wysokiej wydajności z niskim opóźnieniem I/O dla krytycznych obciążeń.
|
||||
**Azure SQL Maszyny Wirtualne** pozwalają na **kontrolowanie systemu operacyjnego** i instancji SQL Server, ponieważ maszyna wirtualna będzie uruchamiana w usłudze VM działającej na serwerze SQL.
|
||||
|
||||
#### Zaawansowane funkcje bezpieczeństwa
|
||||
Gdy tworzona jest maszyna wirtualna SQL, możliwe jest **wybranie wszystkich ustawień VM** (jak pokazano w lekcji o VM), które będą hostować serwer SQL.
|
||||
- Oznacza to, że VM będzie uzyskiwać dostęp do niektórych VNet(ów), może mieć **przypisane zarządzane tożsamości**, może mieć zamontowane udziały plików… co czyni **przechodzenie z SQL** do VM bardzo interesującym.
|
||||
- Ponadto możliwe jest skonfigurowanie identyfikatora aplikacji i sekretu, aby **zezwolić SQL na dostęp do konkretnego skarbca kluczy**, który może zawierać wrażliwe informacje.
|
||||
|
||||
* **Ochrona przed zagrożeniami**: Zaawansowana ochrona przed zagrożeniami informuje o podejrzanych działaniach i atakach SQL injection. Audytowanie w celu śledzenia i rejestrowania zdarzeń bazy danych dla zgodności.
|
||||
* **Kontrola dostępu**: Uwierzytelnianie Microsoft Entra do centralnego zarządzania tożsamością. Bezpieczeństwo na poziomie wiersza i dynamiczne maskowanie danych dla szczegółowej kontroli dostępu.
|
||||
* **Kopie zapasowe**: Automatyczne i ręczne kopie zapasowe z możliwością przywracania do punktu w czasie.
|
||||
|
||||
### Azure SQL Virtual Machines
|
||||
|
||||
**Azure SQL Virtual Machines** jest najlepsze dla migracji, gdzie chcesz **kontrolować system operacyjny i instancję SQL Server**, jakby to był serwer działający lokalnie. Może mieć różne rozmiary maszyn oraz szeroki wybór wersji i edycji SQL Server.
|
||||
|
||||
#### Kluczowe funkcje
|
||||
|
||||
**Automatyczne kopie zapasowe**: Harmonogram kopii zapasowych dla baz danych SQL.
|
||||
**Automatyczne łatanie**: Automatyzuje instalację aktualizacji systemu Windows i SQL Server w czasie okna konserwacji.
|
||||
**Integracja z Azure Key Vault**: Automatycznie konfiguruje Key Vault dla maszyn wirtualnych SQL Server.
|
||||
**Integracja z Defender for Cloud**: Wyświetl rekomendacje Defender dla SQL w portalu.
|
||||
**Elastyczność wersji/edycji**: Zmień metadane wersji lub edycji SQL Server bez ponownego wdrażania maszyny wirtualnej.
|
||||
|
||||
#### Funkcje bezpieczeństwa
|
||||
|
||||
**Microsoft Defender dla SQL**: Wgląd w bezpieczeństwo i alerty.
|
||||
**Integracja z Azure Key Vault**: Bezpieczne przechowywanie poświadczeń i kluczy szyfrujących.
|
||||
**Microsoft Entra (Azure AD)**: Uwierzytelnianie i kontrola dostępu.
|
||||
Możliwe jest również skonfigurowanie takich rzeczy jak **automatyczne aktualizacje SQL**, **automatyczne kopie zapasowe**, **uwierzytelnianie Entra ID** i większość funkcji innych usług SQL.
|
||||
|
||||
## Enumeracja
|
||||
|
||||
@@ -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}}
|
||||
|
||||
Dodatkowo, jeśli chcesz wyliczyć Dynamic Data Masking oraz Row Level policies w obrębie bazy danych, możesz zapytać:
|
||||
```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;
|
||||
|
||||
```
|
||||
### Połącz i uruchom zapytania SQL
|
||||
|
||||
Możesz znaleźć ciąg połączenia (zawierający dane uwierzytelniające) w przykładzie [enumerating an Az WebApp](az-app-services.md):
|
||||
|
||||
Reference in New Issue
Block a user