mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -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
@@ -35,6 +35,16 @@ az mysql flexible-server update \
|
||||
```bash
|
||||
az mysql flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
|
||||
```
|
||||
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.DBforMySQL/flexibleServers/backups/read`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
Με αυτές τις άδειες μπορείτε να αποκαταστήσετε έναν MySQL διακομιστή από ένα αντίγραφο ασφαλείας:
|
||||
```bash
|
||||
az mysql flexible-server restore \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <restore_server_name> \
|
||||
--source-server <server_name> \
|
||||
--yes
|
||||
```
|
||||
### `Microsoft.DBforMySQL/flexibleServers/read`, `Microsoft.DBforMySQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforMySQL/flexibleServers/administrators/write` && `Microsoft.DBforMySQL/flexibleServers/administrators/read`
|
||||
|
||||
Με αυτή την άδεια, μπορείτε να ρυθμίσετε τους διαχειριστές Azure Active Directory (AD) για έναν MySQL Flexible Server. Αυτό μπορεί να εκμεταλλευτεί με την τοποθέτηση του εαυτού σας ή ενός άλλου λογαριασμού ως τον διαχειριστή AD, παρέχοντας πλήρη διαχειριστικό έλεγχο πάνω στον MySQL server. Είναι σημαντικό ο flexible-server να έχει ανατεθεί διαχειριζόμενες ταυτότητες χρήστη για να χρησιμοποιηθεί.
|
||||
|
||||
+48
-2
@@ -11,7 +11,7 @@
|
||||
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read` && `Microsoft.DBforPostgreSQL/flexibleServers/write`
|
||||
|
||||
Με αυτή την άδεια, μπορείτε να δημιουργήσετε, να ενημερώσετε ή να διαγράψετε τις παρουσίες PostgreSQL Flexible Server στο Azure. Αυτό περιλαμβάνει την προμήθεια νέων διακομιστών, την τροποποίηση των υπάρχουσων ρυθμίσεων διακομιστών ή την αποσυναρμολόγηση διακομιστών.
|
||||
Με αυτή την άδεια, μπορείτε να δημιουργήσετε, να ενημερώσετε ή να διαγράψετε τις παρουσίες PostgreSQL Flexible Server στο Azure. Αυτό περιλαμβάνει την προμήθεια νέων διακομιστών, την τροποποίηση των υπαρχουσών ρυθμίσεων διακομιστή ή την αποσυναρμολόγηση διακομιστών.
|
||||
```bash
|
||||
az postgres flexible-server create \
|
||||
--name <ServerName> \
|
||||
@@ -30,14 +30,60 @@ az postgres flexible-server update \
|
||||
--resource-group <resource_group_name> \
|
||||
--name <server_name> \
|
||||
--admin-password <password_to_update>
|
||||
```
|
||||
Επιπλέον, με τα δικαιώματα μπορείτε να ενεργοποιήσετε την ανατεθείσα ταυτότητα, να λειτουργήσετε με την διαχειριζόμενη ταυτότητα που είναι συνδεδεμένη με τον διακομιστή. Εδώ μπορείτε να βρείτε όλες τις επεκτάσεις που υποστηρίζει ο 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). Για να μπορέσετε να χρησιμοποιήσετε αυτές τις επεκτάσεις, ορισμένες παράμετροι του διακομιστή (azure.extensions) πρέπει να αλλάξουν. Για παράδειγμα, εδώ με μια διαχειριζόμενη ταυτότητα που μπορεί να έχει πρόσβαση στο Azure Storage:
|
||||
|
||||
Πρώτα αλλάζουμε τις παραμέτρους και βεβαιωνόμαστε ότι η ανατεθείσα ταυτότητα είναι ενεργοποιημένη:
|
||||
```bash
|
||||
az postgres flexible-server parameter set \
|
||||
--resource-group <YourResourceGroupName> \
|
||||
--server-name <YourServerName> \
|
||||
--name azure.extensions \
|
||||
--value "AZURE_STORAGE"
|
||||
|
||||
az postgres flexible-server identity update \
|
||||
--resource-group <YourResourceGroupName> \
|
||||
--server-name <YourServerName> \
|
||||
--system-assigned Enabled
|
||||
```
|
||||
|
||||
```sql
|
||||
|
||||
CREATE EXTENSION IF NOT EXISTS azure_storage;
|
||||
|
||||
CREATE EXTERNAL DATA SOURCE ManagedIdentity
|
||||
|
||||
SELECT azure_storage.account_add('<storage-account>', '<storage-key>');
|
||||
|
||||
SELECT *
|
||||
FROM azure_storage.blob_get(
|
||||
'<storage-account>',
|
||||
'<container>',
|
||||
'message.txt',
|
||||
decoder := 'text'
|
||||
) AS t(content text)
|
||||
LIMIT 1;
|
||||
|
||||
```
|
||||
Επιπλέον, είναι απαραίτητο να έχετε ενεργοποιημένη την δημόσια πρόσβαση αν θέλετε να έχετε πρόσβαση από ένα μη ιδιωτικό σημείο, για να το ενεργοποιήσετε:
|
||||
```bash
|
||||
az postgres flexible-server update --resource-group <resource_group_name> --server-name <server_name> --public-access Enabled
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.DBforPostgreSQL/flexibleServers/backups/read`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`
|
||||
|
||||
Με αυτές τις άδειες μπορείτε να αποκαταστήσετε έναν διακομιστή από ένα αντίγραφο ασφαλείας με:
|
||||
```bash
|
||||
az postgres flexible-server restore \
|
||||
--resource-group <RESOURCE_GROUP> \
|
||||
--name <NEW_SERVER_NAME> \
|
||||
--source-server <SOURCE_SERVER_NAME> \
|
||||
--restore-time "<ISO8601_TIMESTAMP>" \
|
||||
--yes
|
||||
|
||||
```
|
||||
### `Microsoft.DBforPostgreSQL/flexibleServers/read`, `Microsoft.DBforPostgreSQL/flexibleServers/write`, `Microsoft.ManagedIdentity/userAssignedIdentities/assign/action`, `Microsoft.DBforPostgreSQL/flexibleServers/administrators/write` && `Microsoft.DBforPostgreSQL/flexibleServers/administrators/read`
|
||||
|
||||
Με αυτή την άδεια, μπορείτε να ρυθμίσετε τους διαχειριστές Azure Active Directory (AD) για έναν PostgreSQL Flexible Server. Αυτό μπορεί να εκμεταλλευτεί με την τοποθέτηση του εαυτού σας ή ενός άλλου λογαριασμού ως τον διαχειριστή AD, παρέχοντας πλήρη διαχειριστικό έλεγχο πάνω στον PostgreSQL server. Η ενημέρωση υπάρχοντος κύριου δεν υποστηρίζεται ακόμα, οπότε αν υπάρχει ένας δημιουργημένος, πρέπει πρώτα να τον διαγράψετε.
|
||||
Με αυτή την άδεια, μπορείτε να διαμορφώσετε τους διαχειριστές Azure Active Directory (AD) για έναν PostgreSQL Flexible Server. Αυτό μπορεί να εκμεταλλευτεί με την τοποθέτηση του εαυτού σας ή ενός άλλου λογαριασμού ως τον διαχειριστή AD, παρέχοντας πλήρη διαχειριστικό έλεγχο πάνω στον PostgreSQL server. Η ενημέρωση υπάρχοντος κύριου δεν υποστηρίζεται ακόμα, οπότε αν υπάρχει ένας δημιουργημένος, πρέπει πρώτα να τον διαγράψετε.
|
||||
|
||||
Είναι σημαντικό ο flexible-server να έχει ανατεθεί διαχειριζόμενες ταυτότητες χρήστη για χρήση.
|
||||
```bash
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
|
||||
|
||||
Με αυτές τις άδειες, ένας χρήστης μπορεί να εκτελέσει κλιμάκωση προνομίων ενημερώνοντας ή δημιουργώντας Azure SQL servers και τροποποιώντας κρίσιμες ρυθμίσεις, συμπεριλαμβανομένων των διαπιστευτηρίων διαχειριστή. Αυτή η άδεια επιτρέπει στον χρήστη να ενημερώνει τις ιδιότητες του διακομιστή, συμπεριλαμβανομένου του κωδικού πρόσβασης του διαχειριστή SQL, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση ή έλεγχο του διακομιστή. Μπορούν επίσης να δημιουργήσουν νέους διακομιστές, ενδεχομένως εισάγοντας σκιά υποδομής για κακόβουλους σκοπούς. Αυτό γίνεται ιδιαίτερα κρίσιμο σε περιβάλλοντα όπου η "Microsoft Entra Authentication Only" είναι απενεργοποιημένη, καθώς μπορούν να εκμεταλλευτούν την SQL-based authentication για να αποκτήσουν απεριόριστη πρόσβαση.
|
||||
Με αυτές τις άδειες, ένας χρήστης μπορεί να εκτελέσει κλιμάκωση προνομίων ενημερώνοντας ή δημιουργώντας Azure SQL servers και τροποποιώντας κρίσιμες ρυθμίσεις, συμπεριλαμβανομένων των διαπιστευτηρίων διαχειριστή. Αυτή η άδεια επιτρέπει στον χρήστη να ενημερώνει τις ιδιότητες του διακομιστή, συμπεριλαμβανομένου του κωδικού πρόσβασης του διαχειριστή SQL, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση ή έλεγχο του διακομιστή. Μπορούν επίσης να δημιουργήσουν νέους διακομιστές, ενδεχομένως εισάγοντας υποδομή σκιάς για κακόβουλους σκοπούς. Αυτό γίνεται ιδιαίτερα κρίσιμο σε περιβάλλοντα όπου η "Microsoft Entra Authentication Only" είναι απενεργοποιημένη, καθώς μπορούν να εκμεταλλευτούν την SQL-based authentication για να αποκτήσουν απεριόριστη πρόσβαση.
|
||||
```bash
|
||||
# Change the server password
|
||||
az sql server update \
|
||||
@@ -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
|
||||
Τροποποιήστε (ή απενεργοποιήστε) τις πολιτικές μάσκας δεδομένων στις βάσεις δεδομένων 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"
|
||||
}
|
||||
}'
|
||||
```
|
||||
### Αφαίρεση Ασφάλειας Επίπεδου Γραμμής
|
||||
Αν συνδεθείτε ως διαχειριστής, μπορείτε να αφαιρέσετε τις πολιτικές του διαχειριστή και άλλων χρηστών.
|
||||
```sql
|
||||
DROP SECURITY POLICY [Name_of_policy];
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -6,22 +6,30 @@
|
||||
|
||||
**Azure Cosmos DB** είναι μια πλήρως **διαχειριζόμενη NoSQL, σχεσιακή και διανυσματική βάση δεδομένων** που προσφέρει χρόνους απόκρισης σε χιλιοστά του δευτερολέπτου, αυτόματη κλιμάκωση και διαθεσιμότητα υποστηριζόμενη από SLA με ασφάλεια επιπέδου επιχείρησης. Διευκολύνει την ταχύτερη ανάπτυξη εφαρμογών μέσω έτοιμης διανομής δεδομένων πολλαπλών περιοχών, ανοιχτών APIs, SDKs για δημοφιλείς γλώσσες και δυνατότητες βάσης δεδομένων AI όπως η ενσωματωμένη υποστήριξη διανυσμάτων και η απρόσκοπτη ενσωμάτωσή της με Azure AI.
|
||||
|
||||
Η Azure Cosmos DB παρέχει πολλαπλά APIs βάσης δεδομένων για την μοντελοποίηση πραγματικών δεδομένων χρησιμοποιώντας μοντέλα δεδομένων εγγράφων, σχεσιακά, κλειδί-τιμή, γράφους και οικογένειες στηλών, με αυτά τα APIs να είναι NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin και Table.
|
||||
Η Azure Cosmos DB παρέχει πολλαπλά APIs βάσεων δεδομένων για την μοντελοποίηση πραγματικών δεδομένων χρησιμοποιώντας μοντέλα δεδομένων εγγράφων, σχεσιακά, κλειδί-τιμή, γράφους και οικογένειες στηλών, με αυτά τα APIs να είναι NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin και Table.
|
||||
|
||||
Ένας βασικός τομέας του CosmosDB είναι ο Azure Cosmos Account. **Azure Cosmos Account**, λειτουργεί ως σημείο εισόδου στις βάσεις δεδομένων. Ο λογαριασμός καθορίζει βασικές ρυθμίσεις όπως η παγκόσμια διανομή, τα επίπεδα συνέπειας και το συγκεκριμένο API που θα χρησιμοποιηθεί, όπως το NoSQL. Μέσω του λογαριασμού, μπορείτε να ρυθμίσετε την παγκόσμια αναπαραγωγή για να διασφαλίσετε ότι τα δεδομένα είναι διαθέσιμα σε πολλές περιοχές για γρήγορη πρόσβαση. Επιπλέον, μπορείτε να επιλέξετε ένα επίπεδο συνέπειας που ισορροπεί μεταξύ απόδοσης και ακρίβειας δεδομένων, με επιλογές που κυμαίνονται από Strong έως Eventual consistency.
|
||||
|
||||
### NoSQL (sql)
|
||||
Το API NoSQL της Azure Cosmos DB είναι ένα API βασισμένο σε έγγραφα που χρησιμοποιεί το JSON ως μορφή δεδομένων του. Παρέχει μια σύνταξη ερωτήσεων παρόμοια με τη SQL για την εκτέλεση ερωτήσεων σε αντικείμενα JSON, καθιστώντας το κατάλληλο για εργασία με δομημένα και ημι-δομημένα δεδομένα. Το endpoint της υπηρεσίας είναι:
|
||||
Η Azure Cosmos DB υποστηρίζει **ταυτότητες που ανατίθενται από τον χρήστη** και **ταυτότητες που διαχειρίζονται από το σύστημα** που δημιουργούνται αυτόματα και συνδέονται με τον κύκλο ζωής του πόρου, επιτρέποντας ασφαλή, βασισμένη σε διακριτικά αυθεντικοποίηση κατά τη σύνδεση με άλλες υπηρεσίες—υπό την προϋπόθεση ότι αυτές οι υπηρεσίες έχουν τις κατάλληλες αναθέσεις ρόλων. Ωστόσο, το Cosmos DB δεν διαθέτει μηχανισμό ενσωματωμένο για άμεση ερώτηση εξωτερικών πηγών δεδομένων όπως το Azure Blob Storage. Σε αντίθεση με τις δυνατότητες εξωτερικών πινάκων του SQL Server, το Cosmos DB απαιτεί τα δεδομένα να εισάγονται στα κοντέινερ του χρησιμοποιώντας εξωτερικά εργαλεία όπως το Azure Data Factory, το Data Migration Tool ή προσαρμοσμένα σενάρια πριν μπορέσουν να ερωτηθούν με τις εγγενείς δυνατότητες ερωτήσεων του.
|
||||
|
||||
### NoSQL
|
||||
Το Azure Cosmos DB NoSQL API είναι ένα API βασισμένο σε έγγραφα που χρησιμοποιεί το JSON ως μορφή δεδομένων του. Παρέχει μια σύνταξη ερωτήσεων παρόμοια με τη SQL για την ερώτηση αντικειμένων JSON, καθιστώντας το κατάλληλο για εργασία με δομημένα και ημι-δομημένα δεδομένα. Το endpoint της υπηρεσίας είναι:
|
||||
```bash
|
||||
https://<Account-Name>.documents.azure.com:443/
|
||||
```
|
||||
#### Βάσεις Δεδομένων
|
||||
Μέσα σε έναν λογαριασμό, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων, οι οποίες λειτουργούν ως λογικές ομάδες κοντέινερ. Μια βάση δεδομένων λειτουργεί ως όριο για τη διαχείριση πόρων και τα δικαιώματα χρηστών. Οι βάσεις δεδομένων μπορούν είτε να μοιράζονται την παρεχόμενη απόδοση σε όλα τα κοντέινερ τους είτε να εκχωρούν αποκλειστική απόδοση σε μεμονωμένα κοντέινερ.
|
||||
Μέσα σε έναν λογαριασμό, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων, οι οποίες λειτουργούν ως λογικές ομάδες κοντέινερ. Μια βάση δεδομένων λειτουργεί ως όριο για τη διαχείριση πόρων και τα δικαιώματα χρηστών. Οι βάσεις δεδομένων μπορούν είτε να μοιράζονται την παραχωρημένη ροή εργασίας μεταξύ των κοντέινερ τους είτε να εκχωρούν αποκλειστική ροή εργασίας σε μεμονωμένα κοντέινερ.
|
||||
|
||||
#### Κοντέινερ
|
||||
Η βασική μονάδα αποθήκευσης δεδομένων είναι το κοντέινερ, το οποίο περιέχει έγγραφα JSON και είναι αυτόματα ευρετηριασμένο για αποδοτική αναζήτηση. Τα κοντέινερ είναι ελαστικά κλιμακούμενα και κατανεμημένα σε κατανομές, οι οποίες καθορίζονται από ένα κλειδί κατανομής που ορίζει ο χρήστης. Το κλειδί κατανομής είναι κρίσιμο για την εξασφάλιση βέλτιστης απόδοσης και ομοιόμορφης κατανομής δεδομένων. Για παράδειγμα, ένα κοντέινερ μπορεί να αποθηκεύει δεδομένα πελατών, με το "customerId" ως το κλειδί κατανομής.
|
||||
Η βασική μονάδα αποθήκευσης δεδομένων είναι το κοντέινερ, το οποίο περιέχει έγγραφα JSON και είναι αυτόματα ευρετηριασμένο για αποδοτική αναζήτηση. Τα κοντέινερ είναι ελαστικά κλιμακούμενα και κατανεμημένα σε κατατμήσεις, οι οποίες καθορίζονται από ένα κλειδί κατατμήσεων που ορίζει ο χρήστης. Το κλειδί κατατμήσεων είναι κρίσιμο για την εξασφάλιση βέλτιστης απόδοσης και ομοιόμορφης κατανομής δεδομένων. Για παράδειγμα, ένα κοντέινερ μπορεί να αποθηκεύει δεδομένα πελατών, με το "customerId" ως το κλειδί κατατμήσεων.
|
||||
|
||||
#### Αρίθμηση
|
||||
#### Κύρια Χαρακτηριστικά
|
||||
**Παγκόσμια Κατανομή**: Ενεργοποιήστε ή απενεργοποιήστε τη Γεω-Ανθεκτικότητα για διασυνοριακή αναπαραγωγή και Πολυ-περιοχικές Εγγραφές για βελτιωμένη διαθεσιμότητα.
|
||||
**Δικτύωση & Ασφάλεια**: μεταξύ δημόσιων (όλων/επιλεγμένων δικτύων) ή ιδιωτικών σημείων για συνδεσιμότητα. Ασφαλείς συνδέσεις με κρυπτογράφηση TLS 1.2. Υποστηρίζει CORS (Cross-Origin Resource Sharing) για ελεγχόμενη πρόσβαση στους πόρους.
|
||||
**Αντίγραφα & Ανάκτηση**: από περιοδικές, συνεχείς (7 ημέρες) ή συνεχείς (30 ημέρες) πολιτικές αντιγράφων με ρυθμιζόμενα διαστήματα και διατήρηση.
|
||||
**Κρυπτογράφηση Δεδομένων**: Προεπιλεγμένα κλειδιά διαχείρισης υπηρεσίας ή κλειδιά διαχείρισης πελατών (CMK) για κρυπτογράφηση (η επιλογή CMK είναι μη αναστρέψιμη).
|
||||
|
||||
#### Απαρίθμηση
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -42,21 +50,21 @@ az cosmosdb identity show --resource-group <ResourceGroupName> --name <AccountNa
|
||||
|
||||
|
||||
# CosmoDB (NoSQL)
|
||||
## List the SQL databases under an Azure Cosmos DB account.
|
||||
## List the NoSQL databases under an Azure Cosmos DB account.
|
||||
az cosmosdb sql database list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
## List the SQL containers under an Azure Cosmos DB SQL database.
|
||||
## List the NoSQL containers under an Azure Cosmos DB NoSQL database.
|
||||
az cosmosdb sql container list --account-name <AccountName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
|
||||
## List all SQL role assignments under an Azure Cosmos DB
|
||||
## List all NoSQL role assignments under an Azure Cosmos DB
|
||||
az cosmosdb sql role assignment list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
## List all SQL role definitions under an Azure Cosmos DB
|
||||
## List all NoSQL role definitions under an Azure Cosmos DB
|
||||
az cosmosdb sql role definition list --resource-group <ResourceGroupName> --account-name <AccountName>
|
||||
|
||||
## List the SQL stored procedures under an Azure Cosmos DB
|
||||
## List the NoSQL stored procedures under an Azure Cosmos DB
|
||||
az cosmosdb sql stored-procedure list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
## List the SQL triggers under an Azure Cosmos DB SQL container.
|
||||
## List the NoSQL triggers under an Azure Cosmos DB NoSQL container.
|
||||
az cosmosdb sql trigger list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
## List the SQL user defined functions under an Azure Cosmos DB SQL container
|
||||
## List the NoSQL user defined functions under an Azure Cosmos DB NoSQL container
|
||||
az cosmosdb sql user-defined-function list --account-name <AccountName> --container-name <ContainerName> --database-name <DatabaseName> --resource-group <ResourceGroupName>
|
||||
|
||||
```
|
||||
@@ -110,7 +118,7 @@ Get-AzCosmosDBSqlUserDefinedFunction -ResourceGroupName "<ResourceGroupName>" -A
|
||||
|
||||
#### Σύνδεση
|
||||
|
||||
Για να συνδεθείτε, χρειάζεται η βιβλιοθήκη azure-cosmosDB (pip install azure-cosmos). Επιπλέον, το endpoint και το key είναι κρίσιμα στοιχεία για να γίνει η σύνδεση.
|
||||
Για να συνδεθείτε, απαιτείται η βιβλιοθήκη azure-cosmosDB (pip install azure-cosmos). Επιπλέον, το endpoint και το key είναι κρίσιμα στοιχεία για να γίνει η σύνδεση.
|
||||
```python
|
||||
from azure.cosmos import CosmosClient, PartitionKey
|
||||
|
||||
@@ -175,17 +183,28 @@ container.create_item(item)
|
||||
print("Document inserted.")
|
||||
```
|
||||
### MongoDB
|
||||
Η API MongoDB NoSQL είναι μια API βασισμένη σε έγγραφα που χρησιμοποιεί το BSON (Binary JSON) σε μορφή δεδομένων. Παρέχει μια γλώσσα ερωτήσεων με δυνατότητες συγκέντρωσης, καθιστώντας την κατάλληλη για εργασία με δομημένα, ημι-δομημένα και αδόμητα δεδομένα. Το endpoint της υπηρεσίας συνήθως ακολουθεί αυτή τη μορφή:
|
||||
Η API NoSQL του MongoDB είναι μια API βασισμένη σε έγγραφα που χρησιμοποιεί το BSON (Binary JSON) σε μορφή δεδομένων. Παρέχει μια γλώσσα ερωτήσεων με δυνατότητες συγκέντρωσης, καθιστώντας την κατάλληλη για εργασία με δομημένα, ημι-δομημένα και αδόμητα δεδομένα. Το endpoint της υπηρεσίας συνήθως ακολουθεί αυτή τη μορφή:
|
||||
```bash
|
||||
mongodb://<hostname>:<port>/<database>
|
||||
```
|
||||
#### Βάσεις Δεδομένων
|
||||
Στο MongoDB, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων μέσα σε μια παρουσία. Κάθε βάση δεδομένων λειτουργεί ως λογική ομαδοποίηση συλλογών και παρέχει ένα όριο για την οργάνωση και διαχείριση πόρων. Οι βάσεις δεδομένων βοηθούν στη λογική διαχωρισμό και διαχείριση των δεδομένων, όπως για διαφορετικές εφαρμογές ή έργα.
|
||||
Στο MongoDB, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων εντός μιας παρουσίας. Κάθε βάση δεδομένων λειτουργεί ως λογική ομαδοποίηση συλλογών και παρέχει ένα όριο για την οργάνωση και διαχείριση πόρων. Οι βάσεις δεδομένων βοηθούν στη λογική διαχωριστική και διαχείριση δεδομένων, όπως για διαφορετικές εφαρμογές ή έργα.
|
||||
|
||||
#### Συλλογές
|
||||
Η βασική μονάδα αποθήκευσης δεδομένων στο MongoDB είναι η συλλογή, η οποία περιέχει έγγραφα και έχει σχεδιαστεί για αποδοτική αναζήτηση και ευέλικτο σχεδιασμό σχήματος. Οι συλλογές είναι ελαστικά κλιμακούμενες και μπορούν να υποστηρίξουν λειτουργίες υψηλής απόδοσης σε πολλαπλούς κόμβους σε μια κατανεμημένη ρύθμιση.
|
||||
|
||||
#### Αρίθμηση
|
||||
#### Κύρια Χαρακτηριστικά του τύπου Request unit (RU)
|
||||
**Παγκόσμια Κατανομή**: Ενεργοποιήστε ή απενεργοποιήστε τη Γεω-Αντίγραφο για διασυνοριακή αναπαραγωγή και Πολυ-περιοχικές Εγγραφές για βελτιωμένη διαθεσιμότητα.
|
||||
**Δικτύωση & Ασφάλεια**: μεταξύ δημόσιων (όλων/επιλεγμένων δικτύων) ή ιδιωτικών σημείων για συνδεσιμότητα. Ασφαλείς συνδέσεις με κρυπτογράφηση TLS 1.2. Υποστηρίζει CORS (Cross-Origin Resource Sharing) για ελεγχόμενη πρόσβαση σε πόρους.
|
||||
**Αντίγραφα & Ανάκτηση**: από Περιοδικές, Συνεχείς (7 ημέρες, δωρεάν) ή Συνεχείς (30 ημέρες, πληρωμένες) πολιτικές αντιγράφων με ρυθμιζόμενα διαστήματα και διατήρηση.
|
||||
**Κρυπτογράφηση Δεδομένων**: Προεπιλεγμένα κλειδιά διαχείρισης υπηρεσίας ή κλειδιά διαχείρισης πελάτη (CMK) για κρυπτογράφηση (η επιλογή CMK είναι μη αναστρέψιμη).
|
||||
|
||||
#### Κύρια Χαρακτηριστικά του τύπου vCore cluster
|
||||
**Παγκόσμια Κατανομή**: Ενεργοποιήστε μια αναγνωστική αναπαραγωγή σε άλλη περιοχή Azure για υψηλή διαθεσιμότητα και υποστήριξη αποτυχίας. Ρυθμίστε το όνομα της αναπαραγωγής, την περιοχή και την αποθήκευση ανά θραύσμα.
|
||||
**Δικτύωση & Ασφάλεια**: Υποστηρίζει δημόσια πρόσβαση με ανατεθειμένες δημόσιες IP και ιδιωτική πρόσβαση. Περιορίστε τις συνδέσεις χρησιμοποιώντας κανόνες τείχους προστασίας—κατά προεπιλογή, δεν επιτρέπονται δημόσιες IP.
|
||||
**Κρυπτογραφημένες Συνδέσεις**: Επιβάλλει κρυπτογράφηση TLS για ασφαλή μετάδοση δεδομένων.
|
||||
|
||||
#### Αριθμητική
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -294,7 +313,7 @@ print(f"Inserted document with ID: {result.inserted_id}")
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/introduction](https://learn.microsoft.com/en-us/azure/cosmos-db/introduction)
|
||||
- [https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli](https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/security/how-to-grant-data-plane-role-based-access?tabs=built-in-definition%2Ccsharp&pivots=azure-interface-cli)
|
||||
|
||||
## Ανάβαση Δικαιωμάτων
|
||||
## Ανύψωση Δικαιωμάτων
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-cosmosDB-privesc.md
|
||||
@@ -309,7 +328,7 @@ print(f"Inserted document with ID: {result.inserted_id}")
|
||||
## ToDo
|
||||
|
||||
* Η υπόλοιπη βάση δεδομένων εδώ, πίνακες, cassandra, gremlin...
|
||||
* Ρίξτε μια ματιά στην εκμετάλλευση "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" και τους ορισμούς ρόλων γιατί εδώ μπορεί να υπάρχει ανάβαση δικαιωμάτων
|
||||
* Ρίξτε μια ματιά στην εκμετάλλευση "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" και τους ορισμούς ρόλων γιατί εδώ μπορεί να υπάρχει ανύψωση δικαιωμάτων
|
||||
* Ρίξτε μια ματιά στις αποκαταστάσεις
|
||||
|
||||
|
||||
|
||||
@@ -4,18 +4,23 @@
|
||||
|
||||
## Basic Information
|
||||
|
||||
Azure Logic Apps είναι μια υπηρεσία cloud που παρέχεται από το Microsoft Azure και επιτρέπει στους προγραμματιστές να **δημιουργούν και να εκτελούν ροές εργασίας που ενσωματώνουν διάφορες υπηρεσίες**, πηγές δεδομένων και εφαρμογές. Αυτές οι ροές εργασίας έχουν σχεδιαστεί για να **αυτοματοποιούν επιχειρηματικές διαδικασίες**, να οργανώνουν εργασίες και να εκτελούν ενσωματώσεις δεδομένων σε διάφορες πλατφόρμες.
|
||||
Το Azure Logic Apps είναι μια υπηρεσία cloud που παρέχεται από το Microsoft Azure και επιτρέπει στους προγραμματιστές να **δημιουργούν και να εκτελούν ροές εργασίας που ενσωματώνουν διάφορες υπηρεσίες**, πηγές δεδομένων και εφαρμογές. Αυτές οι ροές εργασίας έχουν σχεδιαστεί για να **αυτοματοποιούν επιχειρηματικές διαδικασίες**, να οργανώνουν εργασίες και να εκτελούν ενσωματώσεις δεδομένων σε διάφορες πλατφόρμες.
|
||||
|
||||
Logic Apps παρέχει έναν οπτικό σχεδιαστή για τη δημιουργία ροών εργασίας με μια **ευρεία γκάμα προ-κατασκευασμένων συνδέσμων**, που διευκολύνει τη σύνδεση και την αλληλεπίδραση με διάφορες υπηρεσίες, όπως το Office 365, το Dynamics CRM, το Salesforce και πολλές άλλες. Μπορείτε επίσης να δημιουργήσετε προσαρμοσμένους συνδέσμους για τις συγκεκριμένες ανάγκες σας.
|
||||
Το Logic Apps παρέχει έναν οπτικό σχεδιαστή για τη δημιουργία ροών εργασίας με μια **ευρεία γκάμα προ-κατασκευασμένων συνδέσμων**, που διευκολύνει τη σύνδεση και την αλληλεπίδραση με διάφορες υπηρεσίες, όπως το Office 365, το Dynamics CRM, το Salesforce και πολλές άλλες. Μπορείτε επίσης να δημιουργήσετε προσαρμοσμένους συνδέσμους για τις συγκεκριμένες ανάγκες σας.
|
||||
|
||||
Κατά τη δημιουργία ενός Logic App, πρέπει είτε να δημιουργήσετε είτε να συνδέσετε έναν εξωτερικό λογαριασμό αποθήκευσης που αποθηκεύει την κατάσταση της ροής εργασίας, το ιστορικό εκτέλεσης και τα αρχεία. Αυτή η αποθήκευση μπορεί να ρυθμιστεί με διαγνωστικές ρυθμίσεις για παρακολούθηση και μπορεί να ασφαλιστεί με περιορισμούς πρόσβασης δικτύου ή να ενσωματωθεί σε ένα εικονικό δίκτυο για τον έλεγχο της εισερχόμενης και εξερχόμενης κίνησης.
|
||||
|
||||
### Managed Identities
|
||||
Το Logic Apps έχει **ταυτότητα διαχείρισης που ανατίθεται από το σύστημα** συνδεδεμένη με τον κύκλο ζωής του. Όταν ενεργοποιηθεί, λαμβάνει μια μοναδική ταυτότητα αντικειμένου (principal ID) που μπορεί να χρησιμοποιηθεί με το Azure RBAC για να παραχωρήσει τις απαραίτητες άδειες πρόσβασης σε άλλες υπηρεσίες Azure με ασφάλεια. Αυτό εξαλείφει την ανάγκη αποθήκευσης διαπιστευτηρίων στον κώδικα, καθώς η ταυτότητα πιστοποιείται μέσω του Microsoft Entra ID. Επιπλέον, μπορείτε επίσης να χρησιμοποιήσετε **ταυτότητες διαχείρισης που ανατίθενται από τον χρήστη**, οι οποίες μπορούν να μοιραστούν μεταξύ πολλών πόρων. Αυτές οι ταυτότητες επιτρέπουν στις ροές εργασίας και στα Logic Apps να αλληλεπιδρούν με ασφάλεια με εξωτερικά συστήματα, διασφαλίζοντας ότι οι απαραίτητοι έλεγχοι πρόσβασης και οι άδειες διαχειρίζονται κεντρικά μέσω του πλαισίου ασφαλείας του Azure.
|
||||
|
||||
### Examples
|
||||
|
||||
- **Automating Data Pipelines**: Logic Apps μπορεί να αυτοματοποιήσει **διαδικασίες μεταφοράς και μετασχηματισμού δεδομένων** σε συνδυασμό με το Azure Data Factory. Αυτό είναι χρήσιμο για τη δημιουργία κλιμακούμενων και αξιόπιστων ροών δεδομένων που μεταφέρουν και μετασχηματίζουν δεδομένα μεταξύ διαφόρων αποθηκευτικών χώρων δεδομένων, όπως το Azure SQL Database και το Azure Blob Storage, βοηθώντας σε αναλύσεις και επιχειρηματική ευφυΐα.
|
||||
- **Integrating with Azure Functions**: Logic Apps μπορεί να λειτουργήσει παράλληλα με το Azure Functions για την ανάπτυξη **πολύπλοκων, εκδηλωτικών εφαρμογών που κλιμακώνονται κατά ανάγκη** και ενσωματώνονται απρόσκοπτα με άλλες υπηρεσίες Azure. Ένα παράδειγμα χρήσης είναι η χρήση μιας Logic App για την ενεργοποίηση μιας Azure Function ως απάντηση σε ορισμένα γεγονότα, όπως οι αλλαγές σε έναν λογαριασμό Azure Storage, επιτρέποντας τη δυναμική επεξεργασία δεδομένων.
|
||||
- **Αυτοματοποίηση Δεδομένων**: Τα Logic Apps μπορούν να αυτοματοποιήσουν **διαδικασίες μεταφοράς και μετασχηματισμού δεδομένων** σε συνδυασμό με το Azure Data Factory. Αυτό είναι χρήσιμο για τη δημιουργία κλιμακούμενων και αξιόπιστων ροών δεδομένων που μεταφέρουν και μετασχηματίζουν δεδομένα μεταξύ διαφόρων αποθηκευτικών χώρων δεδομένων, όπως το Azure SQL Database και το Azure Blob Storage, βοηθώντας σε αναλύσεις και επιχειρηματικές πληροφορίες.
|
||||
- **Ενσωμάτωση με Azure Functions**: Τα Logic Apps μπορούν να λειτουργούν παράλληλα με το Azure Functions για την ανάπτυξη **σύνθετων, εκδηλωτικών εφαρμογών που κλιμακώνονται όπως απαιτείται** και ενσωματώνονται απρόσκοπτα με άλλες υπηρεσίες Azure. Ένα παράδειγμα χρήσης είναι η χρήση ενός Logic App για την ενεργοποίηση μιας Azure Function σε απάντηση σε ορισμένα γεγονότα, όπως αλλαγές σε έναν λογαριασμό Azure Storage, επιτρέποντας τη δυναμική επεξεργασία δεδομένων.
|
||||
|
||||
### Visualize a LogicAPP
|
||||
|
||||
Είναι δυνατή η προβολή μιας LogicApp με γραφικά:
|
||||
Είναι δυνατόν να δείτε ένα LogicApp με γραφικά:
|
||||
|
||||
<figure><img src="../../../images/image (197).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -23,7 +28,7 @@ Logic Apps παρέχει έναν οπτικό σχεδιαστή για τη
|
||||
|
||||
### SSRF Protection
|
||||
|
||||
Ακόμα και αν βρείτε την **Logic App ευάλωτη σε SSRF**, δεν θα μπορείτε να αποκτήσετε πρόσβαση στα διαπιστευτήρια από τα μεταδεδομένα καθώς οι Logic Apps δεν το επιτρέπουν.
|
||||
Ακόμα και αν βρείτε το **Logic App ευάλωτο σε SSRF**, δεν θα μπορείτε να αποκτήσετε πρόσβαση στα διαπιστευτήρια από τα μεταδεδομένα, καθώς τα Logic Apps δεν το επιτρέπουν.
|
||||
|
||||
Για παράδειγμα, κάτι τέτοιο δεν θα επιστρέψει το token:
|
||||
```bash
|
||||
@@ -35,13 +40,17 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741
|
||||
Υπάρχουν αρκετές επιλογές φιλοξενίας:
|
||||
|
||||
* **Κατανάλωση**
|
||||
- **Πολυ-ενοικιαζόμενο**: παρέχει κοινόχρηστους υπολογιστικούς πόρους, λειτουργεί στο δημόσιο σύννεφο και ακολουθεί ένα μοντέλο τιμολόγησης ανά λειτουργία. Αυτό είναι ιδανικό για ελαφριά και οικονομικά φορτία εργασίας.
|
||||
* **Κανονικό**
|
||||
- **Πολυ-ενοικιαστής**: παρέχει κοινόχρηστους υπολογιστικούς πόρους, λειτουργεί στο δημόσιο σύννεφο και ακολουθεί ένα μοντέλο τιμολόγησης ανά λειτουργία. Αυτό είναι ιδανικό για ελαφριά και οικονομικά φορτία εργασίας.
|
||||
* **Πρότυπο**
|
||||
- **Σχέδιο Υπηρεσίας Ροής Εργασίας**: αφιερωμένοι υπολογιστικοί πόροι με ενσωμάτωση VNET για δικτύωση και χρεώσεις ανά περίπτωση σχεδίου υπηρεσίας ροής εργασίας. Είναι κατάλληλο για πιο απαιτητικά φορτία εργασίας που απαιτούν μεγαλύτερο έλεγχο.
|
||||
- **Περιβάλλον Υπηρεσίας Εφαρμογών V3** αφιερωμένοι υπολογιστικοί πόροι με πλήρη απομόνωση και κλιμάκωση. Επίσης, ενσωματώνεται με VNET για δικτύωση και χρησιμοποιεί ένα μοντέλο τιμολόγησης βασισμένο σε περιπτώσεις Υπηρεσίας Εφαρμογών εντός του περιβάλλοντος. Αυτό είναι ιδανικό για εφαρμογές επιπέδου επιχείρησης που χρειάζονται υψηλή απομόνωση.
|
||||
- **Υβριδικό** σχεδιασμένο για τοπική επεξεργασία και υποστήριξη πολλών σύννεφων. Επιτρέπει τη διαχείριση υπολογιστικών πόρων από τον πελάτη με τοπική πρόσβαση στο δίκτυο και χρησιμοποιεί το Kubernetes Event-Driven Autoscaling (KEDA).
|
||||
|
||||
### Αριθμητική
|
||||
### Ροές Εργασίας
|
||||
|
||||
Οι ροές εργασίας στο Azure Logic Apps είναι οι βασικές αυτοματοποιημένες διαδικασίες που συντονίζουν ενέργειες σε διάφορες υπηρεσίες. Μια ροή εργασίας ξεκινά με έναν ενεργοποιητή—ένα γεγονός ή πρόγραμμα—και στη συνέχεια εκτελεί μια σειρά ενεργειών, όπως η κλήση APIs, η επεξεργασία δεδομένων ή η αλληλεπίδραση με άλλες υπηρεσίες Azure. Οι ροές εργασίας μπορούν να οριστούν οπτικά χρησιμοποιώντας έναν σχεδιαστή ή μέσω κώδικα (ορισμοί JSON) και διαχειρίζονται μέσω εντολών όπως az logic workflow create, az logic workflow show και az logic workflow update. Υποστηρίζουν επίσης τη διαχείριση ταυτοτήτων (μέσω της υποομάδας ταυτοτήτων) για ασφαλή διαχείριση δικαιωμάτων και ενσωματώσεων με εξωτερικούς πόρους.
|
||||
|
||||
### Αρίθμηση
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="az cli" }}
|
||||
@@ -137,19 +146,17 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
|
||||
### Λογαριασμοί Ενοποίησης
|
||||
**Λογαριασμοί Ενοποίησης**, είναι μια δυνατότητα των Azure Logic Apps. Οι Λογαριασμοί Ενοποίησης χρησιμοποιούνται για να διευκολύνουν τις ενοποιήσεις σε επίπεδο επιχείρησης, επιτρέποντας προηγμένες δυνατότητες B2B, όπως EDI, AS2 και διαχείριση XML schema. Οι Λογαριασμοί Ενοποίησης είναι ένα δοχείο στο Azure που αποθηκεύει τα παρακάτω αντικείμενα που χρησιμοποιούνται για τα Logic Apps:
|
||||
**Λογαριασμοί Ενοποίησης**, είναι μια δυνατότητα των Azure Logic Apps. Οι Λογαριασμοί Ενοποίησης χρησιμοποιούνται για να διευκολύνουν τις ενοποιήσεις σε επίπεδο επιχείρησης, επιτρέποντας προηγμένες δυνατότητες B2B, όπως EDI, AS2 και διαχείριση XML schema. Οι Λογαριασμοί Ενοποίησης είναι ένα δοχείο στο Azure που αποθηκεύει τα εξής αντικείμενα που χρησιμοποιούνται για τα Logic Apps:
|
||||
|
||||
* Σχήματα: Διαχείριση XML σχημάτων για την επικύρωση και επεξεργασία μηνυμάτων στον λογαριασμό ενοποίησής σας.
|
||||
* Χάρτες: Διαμόρφωση μετασχηματισμών βασισμένων σε XSLT για τη μετατροπή μορφών δεδομένων μέσα στις ροές εργασίας ενοποίησης.
|
||||
* Σχήματα: Διαχείριση XML schemas για την επικύρωση και επεξεργασία μηνυμάτων στον λογαριασμό ενοποίησης σας.
|
||||
* Χάρτες: Ρύθμιση μετασχηματισμών βασισμένων σε XSLT για τη μετατροπή μορφών δεδομένων μέσα στις ροές εργασίας ενοποίησης σας.
|
||||
* Συγκροτήματα: Διαχείριση συγκροτημάτων λογαριασμού ενοποίησης για την απλοποίηση της λογικής και της επεξεργασίας δεδομένων.
|
||||
* Πιστοποιητικά: Διαχείριση πιστοποιητικών για την κρυπτογράφηση και την υπογραφή μηνυμάτων, εξασφαλίζοντας ασφαλή επικοινωνία.
|
||||
* Εταίροι: Διαχείριση πληροφοριών εμπορικών εταίρων για B2B συναλλαγές, επιτρέποντας απρόσκοπτες ενοποιήσεις.
|
||||
* Συμφωνίες: Διαμόρφωση κανόνων και ρυθμίσεων για την ανταλλαγή δεδομένων με εμπορικούς εταίρους (π.χ., EDI, AS2).
|
||||
* Συμφωνίες: Ρύθμιση κανόνων και ρυθμίσεων για την ανταλλαγή δεδομένων με εμπορικούς εταίρους (π.χ., EDI, AS2).
|
||||
* Ρυθμίσεις Παρτίδας: Διαχείριση ρυθμίσεων επεξεργασίας παρτίδων για την ομαδοποίηση και επεξεργασία μηνυμάτων αποτελεσματικά.
|
||||
* RosettaNet PIP: Διαμόρφωση διαδικασιών διεπαφής εταίρων RosettaNet (PIPs) για τον εκσυγχρονισμό της B2B επικοινωνίας.
|
||||
* RosettaNet PIP: Ρύθμιση διαδικασιών διεπαφής εταίρων RosettaNet (PIPs) για τον εκσυγχρονισμό της B2B επικοινωνίας.
|
||||
|
||||
#### Αρίθμηση
|
||||
|
||||
@@ -251,9 +258,9 @@ Get-AzIntegrationAccountSchema -ResourceGroupName <resource-group-name> -Integra
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
## Ανάβαση Δικαιωμάτων
|
||||
## Ανάβαση Προνομίων
|
||||
|
||||
Ίδιο με την ανάβαση δικαιωμάτων των λογικών εφαρμογών:
|
||||
Ίδιο με την ανάβαση προνομίων των λογικών εφαρμογών:
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-logic-apps-privesc.md
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
- Προσφέρει λειτουργία διακοπής/εκκίνησης για εξοικονόμηση κόστους.
|
||||
|
||||
### Key Features
|
||||
* **Server Management**: Η δυνατότητα **ad-admin** επιτρέπει τη διαχείριση των διαχειριστών Azure Active Directory (AAD) για τους διακομιστές MySQL, παρέχοντας έλεγχο στην πρόσβαση των διαχειριστών μέσω διαπιστευτηρίων AAD, ενώ η δυνατότητα **identity** επιτρέπει την ανάθεση και διαχείριση των Azure Managed Identities, προσφέροντας ασφαλή, χωρίς διαπιστευτήρια, αυθεντικοποίηση για την πρόσβαση σε πόρους Azure.
|
||||
* **Lifecycle Management**: επιλογές για εκκίνηση ή διακοπή ενός διακομιστή, διαγραφή μιας ευέλικτης παρουσίας διακομιστή, επανεκκίνηση ενός διακομιστή για γρήγορη εφαρμογή αλλαγών διαμόρφωσης και αναμονή για να διασφαλιστεί ότι ένας διακομιστής πληροί συγκεκριμένες προϋποθέσεις πριν προχωρήσει με τα αυτοματοποιημένα σενάρια.
|
||||
* **Security and Networking**: μπορεί να διαχειριστεί κανόνες τείχους προστασίας διακομιστή για ασφαλή πρόσβαση στη βάση δεδομένων και να αποσυνδέσει τις ρυθμίσεις εικονικού δικτύου όπως απαιτείται.
|
||||
* **Data Protection and Backup**: περιλαμβάνει επιλογές για τη διαχείριση των αντιγράφων ασφαλείας ευέλικτου διακομιστή για ανάκτηση δεδομένων, εκτέλεση γεω-αποκατάστασης για την ανάκτηση ενός διακομιστή σε διαφορετική περιοχή, εξαγωγή αντιγράφων ασφαλείας διακομιστή για εξωτερική χρήση (σε Preview) και αποκατάσταση ενός διακομιστή από αντίγραφο ασφαλείας σε συγκεκριμένη χρονική στιγμή.
|
||||
* **Server Management**: Η δυνατότητα **ad-admin** επιτρέπει τη διαχείριση των διαχειριστών Azure Entra ID για τους διακομιστές MySQL, παρέχοντας έλεγχο στην διοικητική πρόσβαση μέσω διαπιστευτηρίων Entra ID. Η Mysql υποστηρίζει User Managed Identities, που χρησιμοποιούνται για αυθεντικοποίηση χωρίς την ανάγκη διαπιστευτηρίων, και μπορούν να χρησιμοποιηθούν από άλλες υπηρεσίες.
|
||||
* **Lifecycle Management**: επιλογές για εκκίνηση ή διακοπή ενός διακομιστή, διαγραφή μιας ευέλικτης παρουσίας διακομιστή, επανεκκίνηση ενός διακομιστή για γρήγορη εφαρμογή αλλαγών διαμόρφωσης, και αναμονή για να διασφαλιστεί ότι ένας διακομιστής πληροί συγκεκριμένες προϋποθέσεις πριν προχωρήσει με τα αυτοματοποιημένα σενάρια.
|
||||
* **Security and Networking**: Ασφαλίστε τον διακομιστή σας περιορίζοντας τις συνδέσεις μέσω κανόνων τείχους προστασίας που επιτρέπουν μόνο συγκεκριμένες δημόσιες διευθύνσεις IP, ή χρησιμοποιώντας ιδιωτικά endpoints που ενσωματώνουν τον διακομιστή σας σε ένα εικονικό δίκτυο. Όλες οι συνδέσεις προστατεύονται με κρυπτογράφηση TLS 1.2. Οι βάσεις δεδομένων, τα αντίγραφα ασφαλείας και τα αρχεία καταγραφής κρυπτογραφούνται σε κατάσταση ηρεμίας από προεπιλογή χρησιμοποιώντας κλειδιά που διαχειρίζεται η υπηρεσία ή προσαρμοσμένα κλειδιά.
|
||||
* **Data Protection and Backup**: περιλαμβάνει επιλογές για τη διαχείριση των αντιγράφων ασφαλείας ευέλικτου διακομιστή για ανάκτηση δεδομένων, εκτέλεση γεω-αποκατάστασης για την ανάκτηση ενός διακομιστή σε διαφορετική περιοχή, εξαγωγή αντιγράφων ασφαλείας διακομιστή για εξωτερική χρήση (σε Preview), και αποκατάσταση ενός διακομιστή από αντίγραφο ασφαλείας σε συγκεκριμένη χρονική στιγμή.
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -110,7 +110,7 @@ az mysql flexible-server execute \
|
||||
--querytext "SELECT * FROM <table-name>;"
|
||||
|
||||
```
|
||||
Ή με το πρόσθετο της εγγενής επέκτασης MySQL
|
||||
Ή με το πρόσθετο MySQL native extension
|
||||
```bash
|
||||
mysql -h <server-name>.mysql.database.azure.com -P 3306 -u <username> -p
|
||||
```
|
||||
@@ -149,6 +149,4 @@ az mysql flexible-server deploy run \
|
||||
|
||||
* Αναζητήστε έναν τρόπο πρόσβασης με mysql flexible-server ad-admin για να επαληθεύσετε ότι είναι μέθοδος ανύψωσης δικαιωμάτων
|
||||
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Azure PostgreSQL
|
||||
**Azure Database for PostgreSQL** είναι μια πλήρως διαχειριζόμενη **υπηρεσία σχεσιακής βάσης δεδομένων που βασίζεται στο PostgreSQL** Community Edition. Είναι σχεδιασμένη για να παρέχει κλιμάκωση, ασφάλεια και ευελιξία για ποικιλία αναγκών εφαρμογών. Παρόμοια με το Azure MySQL, το PostgreSQL προσφέρει δύο μοντέλα ανάπτυξης:
|
||||
**Azure Database for PostgreSQL** είναι μια πλήρως διαχειριζόμενη **υπηρεσία σχεσιακής βάσης δεδομένων που βασίζεται στην έκδοση Community του PostgreSQL**. Είναι σχεδιασμένη για να παρέχει κλιμάκωση, ασφάλεια και ευελιξία για ποικίλες ανάγκες εφαρμογών. Παρόμοια με το Azure MySQL, το PostgreSQL προσφέρει δύο μοντέλα ανάπτυξης:
|
||||
|
||||
* **Single Server** (σε πορεία αποσύρσης):
|
||||
- Βελτιστοποιημένο για απλές, οικονομικά αποδοτικές αναπτύξεις PostgreSQL.
|
||||
@@ -22,7 +22,8 @@
|
||||
* **Stop/Start Server**: Οι χρήστες μπορούν να σταματούν και να ξεκινούν τον διακομιστή.
|
||||
* **Automatic Backups**: Ενσωματωμένα καθημερινά αντίγραφα ασφαλείας με ρυθμιζόμενες περιόδους διατήρησης έως 35 ημέρες.
|
||||
* **Role-Based Access**: Ελέγξτε τις άδειες χρηστών και την διοικητική πρόσβαση μέσω του Azure Active Directory.
|
||||
* **Security and Networking**: μπορεί να διαχειριστεί κανόνες τείχους προστασίας διακομιστή για ασφαλή πρόσβαση στη βάση δεδομένων και να αποσυνδέσει τις ρυθμίσεις εικονικού δικτύου όπως απαιτείται.
|
||||
* **Security and Networking**: μπορείτε να διαχειριστείτε τους κανόνες τείχους προστασίας του διακομιστή για ασφαλή πρόσβαση στη βάση δεδομένων και να αποσυνδέσετε τις ρυθμίσεις εικονικού δικτύου όπως απαιτείται.
|
||||
* **Managed Identities**: επιτρέπουν στον διακομιστή σας να πιστοποιείται με ασφάλεια με άλλες υπηρεσίες Azure χωρίς να αποθηκεύει διαπιστευτήρια. Επιτρέπει την πρόσβαση σε άλλες υπηρεσίες που θα είναι η ταυτότητα που ανατίθεται από το σύστημα και θα προσπελάζεται από άλλες υπηρεσίες με άλλες ταυτότητες που είναι η ταυτότητα που ανατίθεται από τον χρήστη.
|
||||
|
||||
### Enumeration
|
||||
|
||||
@@ -130,7 +131,7 @@ psql -h testpostgresserver1994.postgres.database.azure.com -p 5432 -U adminuser
|
||||
|
||||
## ToDo
|
||||
|
||||
* Δείτε έναν τρόπο πρόσβασης με ad-admin για να επαληθεύσετε ότι είναι μέθοδος privesc
|
||||
* Δείτε έναν τρόπο πρόσβασης με ad-admin για να επαληθεύσετε ότι είναι μέθοδος ανάβασης δικαιωμάτων
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,148 +4,96 @@
|
||||
|
||||
## Azure SQL
|
||||
|
||||
Το Azure SQL είναι μια οικογένεια διαχειριζόμενων, ασφαλών και έξυπνων προϊόντων που χρησιμοποιούν την **μηχανή βάσης δεδομένων SQL Server στο Azure cloud**. Αυτό σημαίνει ότι δεν χρειάζεται να ανησυχείτε για τη φυσική διαχείριση των διακομιστών σας και μπορείτε να εστιάσετε στη διαχείριση των δεδομένων σας.
|
||||
Το Azure SQL είναι μια οικογένεια διαχειριζόμενων, ασφαλών και έξυπνων προϊόντων που χρησιμοποιούν την **μηχανή βάσης δεδομένων SQL Server στο Azure cloud**. Αυτό σημαίνει ότι δεν χρειάζεται να ανησυχείτε για τη φυσική διαχείριση των διακομιστών σας και μπορείτε να επικεντρωθείτε στη διαχείριση των δεδομένων σας.
|
||||
|
||||
Το Azure SQL αποτελείται από τέσσερις κύριες προσφορές:
|
||||
|
||||
1. **Azure SQL Server**: Το Azure SQL Server είναι μια διαχειριζόμενη υπηρεσία σχεσιακής βάσης δεδομένων που απλοποιεί την ανάπτυξη και τη διαχείριση βάσεων δεδομένων SQL Server, με ενσωματωμένα χαρακτηριστικά ασφάλειας και απόδοσης.
|
||||
2. **Azure SQL Database**: Αυτή είναι μια **πλήρως διαχειριζόμενη υπηρεσία βάσης δεδομένων**, που σας επιτρέπει να φιλοξενείτε μεμονωμένες βάσεις δεδομένων στο Azure cloud. Προσφέρει ενσωματωμένη νοημοσύνη που μαθαίνει τα μοναδικά πρότυπα της βάσης δεδομένων σας και παρέχει προσαρμοσμένες συστάσεις και αυτόματη ρύθμιση.
|
||||
3. **Azure SQL Managed Instance**: Αυτό είναι για μεγαλύτερης κλίμακας, πλήρεις αναπτύξεις βάσεων δεδομένων SQL Server. Παρέχει σχεδόν 100% συμβατότητα με την τελευταία μηχανή βάσης δεδομένων SQL Server on-premises (Enterprise Edition), η οποία παρέχει μια εγγενή υλοποίηση εικονικού δικτύου (VNet) που αντιμετωπίζει κοινές ανησυχίες ασφάλειας, και ένα επιχειρηματικό μοντέλο ευνοϊκό για τους πελάτες SQL Server on-premises.
|
||||
4. **Azure SQL Server σε Azure VMs**: Αυτή είναι η Υποδομή ως Υπηρεσία (IaaS) και είναι καλύτερη για μεταφορές όπου θέλετε **έλεγχο του λειτουργικού συστήματος και της παρουσίας SQL Server**, όπως αν ήταν ένας διακομιστής που λειτουργούσε on-premises.
|
||||
1. **Azure SQL Server**: Ένας διακομιστής είναι απαραίτητος για την **ανάπτυξη και διαχείριση** των βάσεων δεδομένων SQL Server.
|
||||
2. **Azure SQL Database**: Αυτή είναι μια **πλήρως διαχειριζόμενη υπηρεσία βάσης δεδομένων**, που σας επιτρέπει να φιλοξενείτε μεμονωμένες βάσεις δεδομένων στο Azure cloud.
|
||||
3. **Azure SQL Managed Instance**: Αυτό είναι για μεγαλύτερης κλίμακας, πλήρεις αναπτύξεις SQL Server.
|
||||
4. **Azure SQL Server σε Azure VMs**: Αυτό είναι καλύτερο για αρχιτεκτονικές όπου θέλετε **έλεγχο του λειτουργικού συστήματος** και της παρουσίας SQL Server.
|
||||
|
||||
### Azure SQL Server
|
||||
### Χαρακτηριστικά Ασφαλείας SQL Server
|
||||
|
||||
Το Azure SQL Server είναι ένα σύστημα διαχείρισης σχεσιακής βάσης δεδομένων (RDBMS) που χρησιμοποιεί Transact-SQL για τις λειτουργίες δεδομένων και είναι κατασκευασμένο για να χειρίζεται συστήματα επιπέδου επιχείρησης. Προσφέρει ισχυρά χαρακτηριστικά για απόδοση, ασφάλεια, κλιμάκωση και ενσωμάτωση με διάφορες εφαρμογές της Microsoft. Οι βάσεις δεδομένων Azure SQL βασίζονται σε αυτόν τον διακομιστή, καθώς αυτές είναι κατασκευασμένες σε αυτούς τους διακομιστές και είναι το σημείο εισόδου για τους χρήστες να έχουν πρόσβαση στις βάσεις δεδομένων.
|
||||
**Πρόσβαση δικτύου:**
|
||||
|
||||
#### Δίκτυο
|
||||
- Δημόσιο σημείο πρόσβασης (μπορεί να περιορίσει την πρόσβαση σε συγκεκριμένα δίκτυα).
|
||||
- Ιδιωτικά σημεία πρόσβασης.
|
||||
- Είναι επίσης δυνατό να περιορίσετε τις συνδέσεις με βάση τα ονόματα τομέα.
|
||||
- Είναι επίσης δυνατό να επιτρέψετε στις υπηρεσίες Azure να έχουν πρόσβαση (όπως για να χρησιμοποιήσετε τον επεξεργαστή ερωτημάτων στην πύλη ή να επιτρέψετε σε μια Azure VM να συνδεθεί).
|
||||
|
||||
**Συνδεσιμότητα Δικτύου**: Επιλέξτε αν θα επιτρέψετε πρόσβαση μέσω δημόσιου ή ιδιωτικού σημείου. Αν επιλέξετε Καμία πρόσβαση, δεν δημιουργούνται σημεία μέχρι να ρυθμιστούν χειροκίνητα:
|
||||
- Καμία πρόσβαση: Δεν έχουν ρυθμιστεί σημεία, αποκλείοντας τις εισερχόμενες συνδέσεις μέχρι να ρυθμιστούν χειροκίνητα.
|
||||
- Δημόσιο σημείο: Επιτρέπει άμεσες συνδέσεις μέσω του δημόσιου διαδικτύου, υπόκειται σε κανόνες τείχους προστασίας και άλλες ρυθμίσεις ασφαλείας.
|
||||
- Ιδιωτικό σημείο: Περιορίζει τη συνδεσιμότητα σε ένα ιδιωτικό δίκτυο.
|
||||
**Μέθοδοι Αυθεντικοποίησης:**
|
||||
|
||||
**Πολιτική Σύνδεσης**: Ορίστε πώς επικοινωνούν οι πελάτες με τον διακομιστή βάσης δεδομένων SQL:
|
||||
- Προεπιλογή: Χρησιμοποιεί πολιτική Ανακατεύθυνσης για όλες τις συνδέσεις πελατών από μέσα στο Azure (εκτός από αυτές που χρησιμοποιούν Ιδιωτικά Σημεία) και πολιτική Proxy για συνδέσεις από έξω από το Azure.
|
||||
- Proxy: Δρομολογεί όλες τις συνδέσεις πελατών μέσω της πύλης Azure SQL Database.
|
||||
- Ανακατεύθυνση: Οι πελάτες συνδέονται απευθείας στον κόμβο που φιλοξενεί τη βάση δεδομένων.
|
||||
- Αυθεντικοποίηση **μόνο Entra της Microsoft**: Πρέπει να υποδείξετε τους Entra principals που θα έχουν πρόσβαση στην υπηρεσία.
|
||||
- **Και οι δύο SQL και Microsoft Entra** αυθεντικοποίηση: Παραδοσιακή αυθεντικοποίηση SQL με όνομα χρήστη και κωδικό πρόσβασης μαζί με Microsoft Entra.
|
||||
- **Μόνο SQL** αυθεντικοποίηση: Επιτρέπεται μόνο η πρόσβαση μέσω χρηστών βάσης δεδομένων.
|
||||
|
||||
#### Μέθοδοι Αυθεντικοποίησης
|
||||
Το Azure SQL υποστηρίζει διάφορες μεθόδους αυθεντικοποίησης για την ασφάλεια της πρόσβασης στη βάση δεδομένων:
|
||||
Σημειώστε ότι αν επιτρέπεται οποιαδήποτε αυθεντικοποίηση SQL, πρέπει να υποδειχθεί ένας χρήστης διαχειριστή (όνομα χρήστη + κωδικός πρόσβασης) και αν επιλεγεί η αυθεντικοποίηση Entra ID, είναι επίσης απαραίτητο να υποδειχθεί τουλάχιστον ένας principal με διαχειριστική πρόσβαση.
|
||||
|
||||
- **Αυθεντικοποίηση μόνο με Microsoft Entra**: Χρησιμοποιεί το Microsoft Entra (πρώην Azure AD) για κεντρική διαχείριση ταυτοτήτων και ενιαία είσοδο.
|
||||
- **Αυθεντικοποίηση και SQL και Microsoft Entra**: Σας επιτρέπει να χρησιμοποιείτε την παραδοσιακή αυθεντικοποίηση SQL παράλληλα με το Microsoft Entra.
|
||||
- **Αυθεντικοποίηση SQL**: Βασίζεται αποκλειστικά σε ονόματα χρηστών και κωδικούς πρόσβασης SQL Server.
|
||||
**Κρυπτογράφηση:**
|
||||
|
||||
#### Χαρακτηριστικά Ασφάλειας
|
||||
- Ονομάζεται “Διαφανής κρυπτογράφηση δεδομένων” και κρυπτογραφεί βάσεις δεδομένων, αντίγραφα ασφαλείας και αρχεία καταγραφής σε κατάσταση ηρεμίας.
|
||||
- Όπως πάντα, χρησιμοποιείται από προεπιλογή ένα διαχειριζόμενο κλειδί Azure, αλλά μπορεί επίσης να χρησιμοποιηθεί ένα κλειδί κρυπτογράφησης που διαχειρίζεται ο πελάτης (CMEK).
|
||||
**Διαχειριζόμενες Ταυτότητες:**
|
||||
|
||||
Οι διακομιστές SQL διαθέτουν **Διαχειριζόμενες Ταυτότητες**. Οι διαχειριζόμενες ταυτότητες επιτρέπουν στον διακομιστή σας να αυθεντικοποιείται με ασφάλεια με άλλες υπηρεσίες Azure χωρίς να αποθηκεύει διαπιστευτήρια. Επιτρέπουν την πρόσβαση σε άλλες υπηρεσίες που θα είναι η Διαχειριζόμενη ταυτότητα που έχει ανατεθεί από το σύστημα και θα προσπελάζεται από άλλες υπηρεσίες με άλλες ταυτότητες που είναι η Διαχειριζόμενη ταυτότητα που έχει ανατεθεί από τον χρήστη. Ορισμένες από τις υπηρεσίες που μπορεί να προσπελάσει το SQL είναι το Azure Storage Account(V2), το Azure Data Lake Storage Gen2, το SQL Server, το Oracle, το Teradata, το MongoDB ή το Cosmos DB API για MongoDB, το Generic ODBC, τις Μαζικές Λειτουργίες και την αποθήκευση αντικειμένων συμβατή με S3.
|
||||
- Είναι δυνατό να ανατεθούν συστήματα και διαχειριζόμενες ταυτότητες χρηστών.
|
||||
- Χρησιμοποιούνται για την πρόσβαση στο κλειδί κρυπτογράφησης (αν χρησιμοποιείται CMEK) και σε άλλες υπηρεσίες από τις βάσεις δεδομένων.
|
||||
- Εάν ανατεθούν περισσότερες από μία UMI, είναι δυνατό να υποδειχθεί η προεπιλεγμένη που θα χρησιμοποιηθεί.
|
||||
- Είναι δυνατό να ρυθμιστεί μια ομοσπονδία ταυτότητας πελάτη για διασυνοριακή πρόσβαση.
|
||||
|
||||
Άλλα χαρακτηριστικά ασφαλείας που έχει ο διακομιστής SQL είναι:
|
||||
**Microsoft Defender:**
|
||||
|
||||
- **Κανόνες Τείχους Προστασίας**: Οι κανόνες τείχους προστασίας ελέγχουν την πρόσβαση στον διακομιστή σας περιορίζοντας ή επιτρέποντας την κυκλοφορία. Αυτό είναι ένα χαρακτηριστικό και των βάσεων δεδομένων.
|
||||
- **Διαφάνεια Κρυπτογράφησης Δεδομένων (TDE)**: Το TDE κρυπτογραφεί τις βάσεις δεδομένων, τα αντίγραφα ασφαλείας και τα αρχεία καταγραφής σε κατάσταση αδράνειας για να προστατεύσει τα δεδομένα σας ακόμη και αν η αποθήκευση παραβιαστεί. Μπορεί να γίνει με ένα κλειδί που διαχειρίζεται η υπηρεσία ή με ένα κλειδί που διαχειρίζεται ο πελάτης.
|
||||
- **Microsoft Defender for SQL**: Ο Microsoft Defender for SQL μπορεί να ενεργοποιηθεί προσφέροντας αξιολογήσεις ευπαθειών και προηγμένη προστασία από απειλές για έναν διακομιστή.
|
||||
- Χρήσιμο για “μείωση πιθανών ευπαθειών βάσης δεδομένων και ανίχνευση ανωμαλιών”
|
||||
- Θα μιλήσουμε για τον Defender σε δικό του μάθημα (μπορεί να ενεργοποιηθεί σε πολλές άλλες υπηρεσίες Azure)
|
||||
|
||||
#### Μοντέλα Ανάπτυξης
|
||||
**Αντίγραφα ασφαλείας:**
|
||||
- Η συχνότητα των αντιγράφων ασφαλείας διαχειρίζεται στις πολιτικές διατήρησης.
|
||||
|
||||
Η Azure SQL Database υποστηρίζει ευέλικτες επιλογές ανάπτυξης για να καλύψει διάφορες ανάγκες:
|
||||
**Διαγραμμένες βάσεις δεδομένων:**
|
||||
- Είναι δυνατό να αποκατασταθούν οι βάσεις δεδομένων που έχουν διαγραφεί από υπάρχοντα αντίγραφα ασφαλείας.
|
||||
|
||||
- **Μοναδική Βάση Δεδομένων**:
|
||||
- Μια πλήρως απομονωμένη βάση δεδομένων με τους δικούς της αφιερωμένους πόρους.
|
||||
- Ιδανική για μικροϋπηρεσίες ή εφαρμογές που απαιτούν μια μόνο πηγή δεδομένων.
|
||||
- **Ελαστική Πισίνα**:
|
||||
- Επιτρέπει σε πολλές βάσεις δεδομένων να μοιράζονται πόρους εντός μιας πισίνας.
|
||||
- Οικονομικά αποδοτική για εφαρμογές με μεταβαλλόμενα πρότυπα χρήσης σε πολλές βάσεις δεδομένων.
|
||||
## Azure SQL Database
|
||||
|
||||
### Azure SQL Database
|
||||
**Azure SQL Database** είναι μια **πλήρως διαχειριζόμενη πλατφόρμα βάσης δεδομένων ως υπηρεσία (PaaS)** που παρέχει κλιμακούμενες και ασφαλείς λύσεις σχεσιακής βάσης δεδομένων. Είναι χτισμένη στις τελευταίες τεχνολογίες SQL Server και εξαλείφει την ανάγκη για διαχείριση υποδομών, καθιστώντας την δημοφιλή επιλογή για εφαρμογές που βασίζονται στο cloud.
|
||||
|
||||
**Azure SQL Database** είναι μια **πλήρως διαχειριζόμενη πλατφόρμα βάσης δεδομένων ως υπηρεσία (PaaS)** που παρέχει κλιμακούμενες και ασφαλείς λύσεις σχεσιακής βάσης δεδομένων. Είναι κατασκευασμένη με τις τελευταίες τεχνολογίες SQL Server και εξαλείφει την ανάγκη για διαχείριση υποδομής, καθιστώντας την δημοφιλή επιλογή για εφαρμογές που βασίζονται στο cloud.
|
||||
Για να δημιουργήσετε μια βάση δεδομένων SQL, είναι απαραίτητο να υποδείξετε τον διακομιστή SQL όπου θα φιλοξενηθεί.
|
||||
|
||||
#### Κύρια Χαρακτηριστικά
|
||||
### Χαρακτηριστικά Ασφαλείας Βάσης Δεδομένων SQL
|
||||
|
||||
- **Πάντα Ενημερωμένο**: Λειτουργεί στην τελευταία σταθερή έκδοση του SQL Server και λαμβάνει αυτόματα νέες δυνατότητες και ενημερώσεις.
|
||||
- **Δυνατότητες PaaS**: Ενσωματωμένη υψηλή διαθεσιμότητα, αντίγραφα ασφαλείας και ενημερώσεις.
|
||||
- **Ευελιξία Δεδομένων**: Υποστηρίζει σχεσιακά και μη σχεσιακά δεδομένα (π.χ. γραφήματα, JSON, χωρικά και XML).
|
||||
- **Πάντα Ενημερωμένο**: Λειτουργεί στην τελευταία σταθερή έκδοση του SQL Server και λαμβάνει αυτόματα νέες δυνατότητες και διορθώσεις.
|
||||
- **Κληρονομημένα χαρακτηριστικά ασφαλείας SQL Server:**
|
||||
- Αυθεντικοποίηση (SQL και/ή Entra ID)
|
||||
- Ανατεθειμένες Διαχειριζόμενες Ταυτότητες
|
||||
- Περιορισμοί δικτύου
|
||||
- Κρυπτογράφηση
|
||||
- Αντίγραφα ασφαλείας
|
||||
- …
|
||||
- **Πλεονασμός δεδομένων:** Οι επιλογές είναι τοπικές, ζώνης, γεωγραφικές ή γεωγραφικές-ζώνες πλεονασματικές.
|
||||
- **Λογιστικό βιβλίο:** Επαληθεύει κρυπτογραφικά την ακεραιότητα των δεδομένων, διασφαλίζοντας ότι οποιαδήποτε αλλοίωση ανιχνεύεται. Χρήσιμο για χρηματοοικονομικές, ιατρικές και οποιαδήποτε οργάνωση διαχειρίζεται ευαίσθητα δεδομένα.
|
||||
|
||||
#### Δίκτυο
|
||||
Μια βάση δεδομένων SQL θα μπορούσε να είναι μέρος ενός **ελαστικού Pool**. Οι ελαστικοί pools είναι μια οικονομικά αποδοτική λύση για τη διαχείριση πολλαπλών βάσεων δεδομένων μοιράζοντας ρυθμιζόμενους υπολογιστικούς πόρους (eDTUs) και πόρους αποθήκευσης μεταξύ τους, με τιμολόγηση που βασίζεται αποκλειστικά στους πόρους που έχουν ανατεθεί και όχι στον αριθμό των βάσεων δεδομένων.
|
||||
|
||||
**Συνδεσιμότητα Δικτύου**: Επιλέξτε αν θα επιτρέψετε πρόσβαση μέσω δημόσιου ή ιδιωτικού σημείου. Αν επιλέξετε Καμία πρόσβαση, δεν δημιουργούνται σημεία μέχρι να ρυθμιστούν χειροκίνητα:
|
||||
- Καμία πρόσβαση: Δεν έχουν ρυθμιστεί σημεία, αποκλείοντας τις εισερχόμενες συνδέσεις μέχρι να ρυθμιστούν χειροκίνητα.
|
||||
- Δημόσιο σημείο: Επιτρέπει άμεσες συνδέσεις μέσω του δημόσιου διαδικτύου, υπόκειται σε κανόνες τείχους προστασίας και άλλες ρυθμίσεις ασφαλείας.
|
||||
- Ιδιωτικό σημείο: Περιορίζει τη συνδεσιμότητα σε ένα ιδιωτικό δίκτυο.
|
||||
#### Azure SQL Ασφάλεια Επιπέδου Στήλης (Μάσκα) & Ασφάλεια Επιπέδου Γραμμής
|
||||
|
||||
**Πολιτική Σύνδεσης**: Ορίστε πώς επικοινωνούν οι πελάτες με τον διακομιστή βάσης δεδομένων SQL:
|
||||
- Προεπιλογή: Χρησιμοποιεί πολιτική Ανακατεύθυνσης για όλες τις συνδέσεις πελατών από μέσα στο Azure (εκτός από αυτές που χρησιμοποιούν Ιδιωτικά Σημεία) και πολιτική Proxy για συνδέσεις από έξω από το Azure.
|
||||
- Proxy: Δρομολογεί όλες τις συνδέσεις πελατών μέσω της πύλης Azure SQL Database.
|
||||
- Ανακατεύθυνση: Οι πελάτες συνδέονται απευθείας στον κόμβο που φιλοξενεί τη βάση δεδομένων.
|
||||
Η **δυναμική** μάσκα δεδομένων του Azure SQL είναι μια δυνατότητα που βοηθά **στην προστασία ευαίσθητων πληροφοριών κρύβοντάς τις** από μη εξουσιοδοτημένους χρήστες. Αντί να τροποποιεί τα πραγματικά δεδομένα, μάσκαρε δυναμικά τα εμφανιζόμενα δεδομένα, διασφαλίζοντας ότι ευαίσθητες λεπτομέρειες όπως οι αριθμοί πιστωτικών καρτών είναι κρυμμένες.
|
||||
|
||||
#### Χαρακτηριστικά Ασφάλειας
|
||||
Η **Δυναμική Μάσκα Δεδομένων** επηρεάζει όλους τους χρήστες εκτός από αυτούς που είναι μη μάσκες (αυτοί οι χρήστες πρέπει να υποδειχθούν) και τους διαχειριστές. Έχει την επιλογή ρύθμισης που καθορίζει ποιοι χρήστες SQL εξαιρούνται από τη δυναμική μάσκα δεδομένων, με **τους διαχειριστές πάντα εξαιρούμενους**.
|
||||
|
||||
- **Microsoft Defender for SQL**: μπορεί να ενεργοποιηθεί προσφέροντας αξιολογήσεις ευπαθειών και προηγμένη προστασία από απειλές.
|
||||
- **Ledger**: κρυπτογραφικά επαληθεύει την ακεραιότητα των δεδομένων, διασφαλίζοντας ότι οποιαδήποτε παραποίηση ανιχνεύεται.
|
||||
- **Ταυτότητα Διακομιστή**: χρησιμοποιεί διαχειριζόμενες ταυτότητες που έχουν ανατεθεί από το σύστημα και από τον χρήστη για να επιτρέψει κεντρική πρόσβαση.
|
||||
- **Διαχείριση Κλειδιών Κρυπτογράφησης Διαφάνειας Δεδομένων**: κρυπτογραφεί τις βάσεις δεδομένων, τα αντίγραφα ασφαλείας και τα αρχεία καταγραφής σε κατάσταση αδράνειας χωρίς να απαιτεί αλλαγές στην εφαρμογή. Η κρυπτογράφηση μπορεί να ενεργοποιηθεί σε κάθε βάση δεδομένων, και αν ρυθμιστεί σε επίπεδο βάσης δεδομένων, αυτές οι ρυθμίσεις υπερκαλύπτουν τη ρύθμιση σε επίπεδο διακομιστή.
|
||||
- **Πάντα Κρυπτογραφημένα**: είναι μια σουίτα προηγμένων χαρακτηριστικών προστασίας δεδομένων που διαχωρίζει την ιδιοκτησία των δεδομένων από τη διαχείριση των δεδομένων. Αυτό διασφαλίζει ότι οι διαχειριστές ή οι χειριστές με υψηλά προνόμια δεν μπορούν να έχουν πρόσβαση σε ευαίσθητα δεδομένα.
|
||||
|
||||
#### Μοντέλα Αγοράς / Επιπέδων Υπηρεσίας
|
||||
|
||||
- **vCore-based**: Επιλέξτε υπολογιστική ισχύ, μνήμη και αποθήκευση ανεξάρτητα. Για Γενική Χρήση, Επιχειρηματική Κρίσιμη (με υψηλή ανθεκτικότητα και απόδοση για εφαρμογές OLTP), και κλιμακώνεται έως 128 TB αποθήκευσης.
|
||||
- **DTU-based**: Συνδυάζει υπολογιστική ισχύ, μνήμη και I/O σε σταθερά επίπεδα. Ισορροπημένοι πόροι για κοινές εργασίες.
|
||||
- Πρότυπο: Ισορροπημένοι πόροι για κοινές εργασίες.
|
||||
- Premium: Υψηλή απόδοση για απαιτητικά φορτία εργασίας.
|
||||
|
||||
#### Κλιμακούμενη απόδοση και πισίνες
|
||||
|
||||
- **Μοναδικές Βάσεις Δεδομένων**: Κάθε βάση δεδομένων είναι απομονωμένη και έχει τους δικούς της αφιερωμένους πόρους υπολογισμού, μνήμης και αποθήκευσης. Οι πόροι μπορούν να κλιμακωθούν δυναμικά (πάνω ή κάτω) χωρίς χρόνο διακοπής (1–128 vCores, 32 GB–4 TB αποθήκευση, και έως 128 TB).
|
||||
- **Ελαστικές Πισίνες**: Μοιράζονται πόροι σε πολλές βάσεις δεδομένων σε μια πισίνα για να μεγιστοποιήσουν την αποδοτικότητα και να εξοικονομήσουν κόστος. Οι πόροι μπορούν επίσης να κλιμακωθούν δυναμικά για ολόκληρη την πισίνα.
|
||||
- **Ευελιξία Επιπέδων Υπηρεσίας**: Ξεκινήστε μικρά με μια μοναδική βάση δεδομένων στο επίπεδο Γενικής Χρήσης. Αναβαθμίστε σε Επιχειρηματική Κρίσιμη ή Υπερμεγέθη επίπεδα καθώς οι ανάγκες αυξάνονται.
|
||||
- **Επιλογές Κλιμάκωσης**: Δυναμική Κλιμάκωση ή Εναλλακτικές Αυτόματης Κλιμάκωσης.
|
||||
|
||||
#### Ενσωματωμένη Παρακολούθηση & Βελτιστοποίηση
|
||||
|
||||
- **Query Store**: Παρακολουθεί προβλήματα απόδοσης, εντοπίζει τους κορυφαίους καταναλωτές πόρων και προσφέρει εφαρμόσιμες συστάσεις.
|
||||
- **Αυτόματη Ρύθμιση**: Βελτιστοποιεί προληπτικά την απόδοση με χαρακτηριστικά όπως αυτόματη ευρετηρίαση και διορθώσεις σχεδίων ερωτημάτων.
|
||||
- **Ενοποίηση Τηλεμετρίας**: Υποστηρίζει παρακολούθηση μέσω Azure Monitor, Event Hubs ή Azure Storage για προσαρμοσμένες πληροφορίες.
|
||||
|
||||
#### Ανάκτηση από Καταστροφή & Διαθεσιμότητα
|
||||
|
||||
- **Αυτόματα αντίγραφα ασφαλείας**: Η SQL Database εκτελεί αυτόματα πλήρη, διαφορικά και αντίγραφα ασφαλείας αρχείων καταγραφής βάσεων δεδομένων.
|
||||
- **Ανάκτηση σε Σημείο στο Χρόνο**: Ανάκτηση βάσεων δεδομένων σε οποιαδήποτε προηγούμενη κατάσταση εντός της περιόδου διατήρησης αντιγράφων ασφαλείας.
|
||||
- **Γεω-Επικαλυπτικότητα**
|
||||
- **Ομάδες Αποτυχίας**: Απλοποιεί την ανάκτηση από καταστροφή ομαδοποιώντας βάσεις δεδομένων για αυτόματη αποτυχία σε διάφορες περιοχές.
|
||||
Η **Ασφάλεια Επιπέδου Γραμμής (RLS)** του Azure SQL είναι μια δυνατότητα που **ελέγχει ποιες γραμμές μπορεί να δει ή να τροποποιήσει ένας χρήστης**, διασφαλίζοντας ότι κάθε χρήστης βλέπει μόνο τα δεδομένα που τον αφορούν. Δημιουργώντας πολιτικές ασφαλείας με φίλτρα ή μπλοκαρίσματα, οι οργανισμοί μπορούν να επιβάλουν λεπτομερή πρόσβαση σε επίπεδο βάσης δεδομένων.
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instance** είναι μια μηχανή βάσης δεδομένων Platform as a Service (PaaS) που προσφέρει σχεδόν 100% συμβατότητα με το SQL Server και χειρίζεται τις περισσότερες διαχειριστικές εργασίες (π.χ. αναβάθμιση, επιδιόρθωση, αντίγραφα ασφαλείας, παρακολούθηση) αυτόματα. Παρέχει μια λύση cloud για τη μετανάστευση βάσεων δεδομένων SQL Server on-premises με ελάχιστες αλλαγές.
|
||||
|
||||
#### Επίπεδα Υπηρεσίας
|
||||
|
||||
- **Γενική Χρήση**: Οικονομική επιλογή για εφαρμογές με τυπικές απαιτήσεις I/O και καθυστέρησης.
|
||||
- **Επιχειρηματική Κρίσιμη**: Υψηλής απόδοσης επιλογή με χαμηλή καθυστέρηση I/O για κρίσιμα φορτία εργασίας.
|
||||
|
||||
#### Προηγμένα Χαρακτηριστικά Ασφάλειας
|
||||
|
||||
* **Προστασία από Απειλές**: Προηγμένη Προστασία από Απειλές που ειδοποιεί για ύποπτες δραστηριότητες και επιθέσεις SQL injection. Έλεγχος για την παρακολούθηση και καταγραφή γεγονότων βάσης δεδομένων για συμμόρφωση.
|
||||
* **Έλεγχος Πρόσβασης**: Αυθεντικοποίηση Microsoft Entra για κεντρική διαχείριση ταυτοτήτων. Ασφάλεια σε Επίπεδο Γραμμής και Δυναμική Μάσκα Δεδομένων για λεπτομερή έλεγχο πρόσβασης.
|
||||
* **Αντίγραφα Ασφαλείας**: Αυτοματοποιημένα και χειροκίνητα αντίγραφα ασφαλείας με δυνατότητα ανάκτησης σε σημείο στο χρόνο.
|
||||
Οι **Azure SQL Managed Instances** είναι για μεγαλύτερης κλίμακας, πλήρεις αναπτύξεις SQL Server. Παρέχουν σχεδόν 100% συμβατότητα με την τελευταία έκδοση SQL Server on-premises (Enterprise Edition) Database Engine, που παρέχει μια εγγενή υλοποίηση εικονικού δικτύου (VNet) που αντιμετωπίζει κοινές ανησυχίες ασφαλείας και ένα επιχειρηματικό μοντέλο ευνοϊκό για τους πελάτες SQL Server on-premises.
|
||||
|
||||
### Azure SQL Virtual Machines
|
||||
|
||||
**Azure SQL Virtual Machines** είναι καλύτερες για μεταφορές όπου θέλετε **έλεγχο του λειτουργικού συστήματος και της παρουσίας SQL Server**, όπως αν ήταν ένας διακομιστής που λειτουργούσε on-premises. Μπορεί να έχει διαφορετικά μεγέθη μηχανών και μια ευρεία επιλογή εκδόσεων και εκδόσεων SQL Server.
|
||||
Οι **Azure SQL Virtual Machines** επιτρέπουν να **ελέγχετε το λειτουργικό σύστημα** και την παρουσία SQL Server, καθώς μια VM θα δημιουργηθεί στην υπηρεσία VM που εκτελεί τον SQL Server.
|
||||
|
||||
#### Κύρια Χαρακτηριστικά
|
||||
Όταν δημιουργείται μια SQL Virtual Machine, είναι δυνατό να **επιλεγούν όλες οι ρυθμίσεις της VM** (όπως φαίνεται στο μάθημα VM) που θα φιλοξενούν τον SQL Server.
|
||||
- Αυτό σημαίνει ότι η VM θα έχει πρόσβαση σε κάποια VNet(s), μπορεί να έχει **συνδεδεμένες Διαχειριζόμενες Ταυτότητες**, θα μπορούσε να έχει κοινές χρήσεις αρχείων… καθιστώντας μια **μετάβαση από τον SQL** στη VM πολύ ενδιαφέρουσα.
|
||||
- Επιπλέον, είναι δυνατό να ρυθμιστεί ένα ID εφαρμογής και μυστικό για **να επιτρέψει στον SQL να έχει πρόσβαση σε ένα συγκεκριμένο key vault**, το οποίο θα μπορούσε να περιέχει ευαίσθητες πληροφορίες.
|
||||
|
||||
**Αυτοματοποιημένο Αντίγραφο Ασφαλείας**: Προγραμματίστε αντίγραφα ασφαλείας για βάσεις δεδομένων SQL.
|
||||
**Αυτόματη Επιδιόρθωση**: Αυτοματοποιεί την εγκατάσταση ενημερώσεων Windows και SQL Server κατά τη διάρκεια ενός παραθύρου συντήρησης.
|
||||
**Ενοποίηση Azure Key Vault**: Αυτόματα ρυθμίζει το Key Vault για SQL Server VMs.
|
||||
**Ενοποίηση Defender for Cloud**: Δείτε τις συστάσεις Defender for SQL στην πύλη.
|
||||
**Ευελιξία Έκδοσης/Έκδοσης**: Αλλάξτε τα μεταδεδομένα έκδοσης ή έκδοσης SQL Server χωρίς να χρειάζεται να αναπτύξετε ξανά το VM.
|
||||
|
||||
#### Χαρακτηριστικά Ασφάλειας
|
||||
|
||||
**Microsoft Defender for SQL**: Ενημερώσεις και ειδοποιήσεις ασφαλείας.
|
||||
**Ενοποίηση Azure Key Vault**: Ασφαλής αποθήκευση διαπιστευτηρίων και κλειδιών κρυπτογράφησης.
|
||||
**Microsoft Entra (Azure AD)**: Αυθεντικοποίηση και έλεγχος πρόσβασης.
|
||||
Είναι επίσης δυνατό να ρυθμιστούν πράγματα όπως **αυτόματες ενημερώσεις SQL**, **αυτόματα αντίγραφα ασφαλείας**, **αυθεντικοποίηση Entra ID** και οι περισσότερες δυνατότητες των άλλων υπηρεσιών SQL.
|
||||
|
||||
## Enumeration
|
||||
|
||||
@@ -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,7 +232,32 @@ Get-AzSqlVM
|
||||
{{#endtab}}
|
||||
{{#endtabs}}
|
||||
|
||||
### Σύνδεση και εκτέλεση ερωτημάτων SQL
|
||||
Επιπλέον, αν θέλετε να απαριθμήσετε την Dynamic Data Masking και τις Row Level πολιτικές, μέσα στη βάση δεδομένων, μπορείτε να κάνετε ερώτηση:
|
||||
```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;
|
||||
|
||||
```
|
||||
### Συνδεθείτε και εκτελέστε ερωτήματα SQL
|
||||
|
||||
Μπορείτε να βρείτε μια συμβολοσειρά σύνδεσης (που περιέχει διαπιστευτήρια) από το παράδειγμα [enumerating an Az WebApp](az-app-services.md):
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user