Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md']

This commit is contained in:
Translator
2025-02-26 01:02:12 +00:00
parent 7bcfcf1932
commit 8d1782fdd7
@@ -9,9 +9,9 @@ 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**: 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.
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.
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.
4. **Azure SQL Server na maszynach wirtualnych Azure**: To najlepsze rozwiązanie dla architektur, w których chcesz **mieć kontrolę nad systemem operacyjnym** i instancją SQL Server.
### Funkcje zabezpieczeń SQL Server
@@ -28,7 +28,7 @@ Azure SQL składa się z czterech głównych ofert:
- **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.
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.
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 zasadę z dostępem administracyjnym.
**Szyfrowanie:**
@@ -36,15 +36,41 @@ Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL,
- 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:**
- Możliwe jest przypisanie systemowych i użytkownikowych zarządzanych tożsamości.
- 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.
- Aby zobaczyć przykłady usług Azure, które można uzyskać z bazy danych, sprawdź [tę stronę dokumentacji](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-external-data-source-transact-sql).
- 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.
Niektóre polecenia do uzyskiwania informacji wewnątrz magazynu blob z bazy danych SQL:
```sql
-- Create a credential for the managed identity
CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential]
WITH IDENTITY = 'Managed Identity';
GO
-- Create an external data source pointing to the blob storage to access
CREATE EXTERNAL DATA SOURCE ManagedIdentity
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://testsqlidentity.blob.core.windows.net/sqlcontainer',
CREDENTIAL = ManagedIdentityCredential
);
GO
-- Read a file from ths storage and return it
SELECT *
FROM OPENROWSET(
BULK 'message.txt',
DATA_SOURCE = 'ManagedIdentity',
SINGLE_CLOB
) AS DataFile;
GO
```
**Microsoft Defender:**
- 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)
- Przydatny do „łagodzenia potencjalnych luk w bazach danych oraz wykrywania anomalii”
- Porozmawiamy o Defenderze w osobnej lekcji (można go włączyć w kilku innych usługach Azure)
**Kopie zapasowe:**
- Częstotliwość tworzenia kopii zapasowych jest zarządzana w politykach retencji.
@@ -54,48 +80,48 @@ Należy pamiętać, że jeśli dozwolone jest jakiekolwiek uwierzytelnianie SQL,
## 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 relacyjnych baz danych. 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 baz danych jako usługa (PaaS)**, która oferuje skalowalne i bezpieczne rozwiązania relacyjnych baz danych. 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.
### Funkcje zabezpieczeń bazy danych SQL
- **Zawsze aktualna**: Działa na najnowszej stabilnej wersji SQL Server i automatycznie otrzymuje nowe funkcje i poprawki.
- **Zawsze aktualna**: Działa na najnowszej stabilnej wersji SQL Server i automatycznie otrzymuje nowe funkcje oraz poprawki.
- **Dziedziczone funkcje zabezpieczeń SQL Server:**
- Uwierzytelnianie (SQL i/lub Entra ID)
- Przypisane zarządzane tożsamości
- Przypisane tożsamości zarządzane
- Ograniczenia sieciowe
- Szyfrowanie
- Kopie zapasowe
-
- **Redundancja danych:** Opcje to lokalna, strefowa, geograficzna lub geograficzno-strefowa.
- **Redundancja danych:** Opcje to lokalna, strefowa, Geo lub Geo-Zone redundant.
- **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.
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.
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, z ceną opartą wyłącznie na przydzielonych zasobach, a nie na liczbie baz danych.
#### Azure SQL Column Level Security (Maskowanie) & Row Level Security
#### Azure SQL Column Level Security (Masking) & Row Level Security
**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.
**Dynamiczne** maskowanie danych w **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ą zasłonięte.
**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**.
**Azure SQL Row Level Security (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 Row Level Security (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 predykatami filtrującymi lub blokującymi, organizacje mogą egzekwować precyzyjny dostęp na poziomie bazy danych.
### Azure SQL Managed Instance
**Azure SQL Managed Instances** są przeznaczone dla 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.
**Azure SQL Managed Instances** są przeznaczone do 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.
### Azure SQL Virtual Machines
**Azure SQL Virtual Machines** pozwala na **kontrolowanie systemu operacyjnego** i instancji SQL Server, ponieważ maszyna wirtualna będzie uruchamiana w usłudze VM działającej na serwerze SQL.
**Azure SQL Virtual Machines** pozwala na **kontrolowanie systemu operacyjnego** i instancji SQL Server, ponieważ VM będzie uruchamiana w usłudze VM działającej na serwerze SQL.
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.
- Oznacza to, że VM będzie miała dostęp do niektórych VNet(ów), może mieć **przypisane tożsamości zarządzane**, 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 **umożliwić SQL dostęp do konkretnego skarbca kluczy**, który może zawierać wrażliwe informacje.
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.
Możliwe jest również skonfigurowanie takich rzeczy jak **automatyczne aktualizacje SQL**, **automatyczne kopie zapasowe**, **uwierzytelnianie Entra ID** oraz większość funkcji innych usług SQL.
## Enumeration
## Enumeracja
{{#tabs}}
{{#tab name="az cli"}}
@@ -304,7 +330,7 @@ sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passwork
### Utrzymywanie
{{#ref}}
../az-persistence/az-sql-persistance.md
../az-persistence/az-sql-persistence.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}