Translated ['src/pentesting-cloud/azure-security/az-persistence/az-cloud

This commit is contained in:
Translator
2025-01-26 18:01:15 +00:00
parent 82da8fa86a
commit 20339c5d2c
12 changed files with 79 additions and 75 deletions

View File

@@ -77,6 +77,8 @@ def ref(matchobj):
logger.error(f'Error getting chapter title: {path.normpath(path.join(dir,href))}') logger.error(f'Error getting chapter title: {path.normpath(path.join(dir,href))}')
sys.exit(1) sys.exit(1)
if href.endswith("/README.md"):
href = href.replace("/README.md", "/index.html")
template = f"""<a class="content_ref" href="{href}"><span class="content_ref_label">{title}</span></a>""" template = f"""<a class="content_ref" href="{href}"><span class="content_ref_label">{title}</span></a>"""

View File

@@ -398,8 +398,8 @@
- [Az - Enumeration Tools](pentesting-cloud/azure-security/az-enumeration-tools.md) - [Az - Enumeration Tools](pentesting-cloud/azure-security/az-enumeration-tools.md)
- [Az - Unauthenticated Enum & Initial Entry](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md) - [Az - Unauthenticated Enum & Initial Entry](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/README.md)
- [Az - OAuth Apps Phishing](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-oauth-apps-phishing.md) - [Az - OAuth Apps Phishing](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-oauth-apps-phishing.md)
- [Az - Storage Unath](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md) - [Az - Storage Unauth](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md)
- [Az - VMs Unath](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md) - [Az - VMs Unauth](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md)
- [Az - Device Code Authentication Phishing](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md) - [Az - Device Code Authentication Phishing](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
- [Az - Password Spraying](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-password-spraying.md) - [Az - Password Spraying](pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
- [Az - Services](pentesting-cloud/azure-security/az-services/README.md) - [Az - Services](pentesting-cloud/azure-security/az-services/README.md)

View File

@@ -17,10 +17,10 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).p
## Cloud Shell Persistence ## Cloud Shell Persistence
Η Azure Cloud Shell προσφέρει πρόσβαση μέσω γραμμής εντολών για τη διαχείριση πόρων Azure με μόνιμη αποθήκευση και αυτόματη πιστοποίηση. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό το χαρακτηριστικό τοποθετώντας backdoors στον μόνιμο κατάλογο αρχικής: Το Azure Cloud Shell προσφέρει πρόσβαση μέσω γραμμής εντολών για τη διαχείριση πόρων Azure με μόνιμη αποθήκευση και αυτόματη πιστοποίηση. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν αυτό το χαρακτηριστικό τοποθετώντας backdoors στον μόνιμο κατάλογο αρχικής:
* **Persistent Storage**: Ο κατάλογος αρχικής της Azure Cloud Shell είναι τοποθετημένος σε ένα Azure file share και παραμένει ανέπαφος ακόμη και μετά την ολοκλήρωση της συνεδρίας. * **Μόνιμη Αποθήκευση**: Ο κατάλογος αρχικής του Azure Cloud Shell είναι τοποθετημένος σε ένα Azure file share και παραμένει ανέπαφος ακόμη και μετά την ολοκλήρωση της συνεδρίας.
* **Startup Scripts**: Αρχεία όπως το .bashrc εκτελούνται αυτόματα στην αρχή κάθε συνεδρίας, επιτρέποντας τη μόνιμη εκτέλεση όταν ξεκινά η cloud shell. * **Σενάρια Εκκίνησης**: Αρχεία όπως το .bashrc εκτελούνται αυτόματα στην αρχή κάθε συνεδρίας, επιτρέποντας μόνιμη εκτέλεση όταν ξεκινά το cloud shell.
Example backdoor in .bashrc: Example backdoor in .bashrc:
@@ -46,10 +46,10 @@ curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?a
<details> <details>
<summary>Υποστήριξη HackTricks</summary> <summary>Υποστηρίξτε το HackTricks</summary>
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! * Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.** * **Εγγραφείτε στο** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. * **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details> </details>

View File

@@ -23,7 +23,7 @@
{% endcontent-ref %} {% endcontent-ref %}
### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action" ### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
Με αυτές τις άδειες, μπορείτε να τροποποιήσετε τις ροές εργασίας Logic App και να διαχειριστείτε τις ταυτότητές τους. Συγκεκριμένα, μπορείτε να αναθέσετε ή να αφαιρέσετε ταυτότητες που ανατίθενται από το σύστημα και ταυτότητες που ανατίθενται από τον χρήστη σε ροές εργασίας, επιτρέποντας στην Logic App να πιστοποιείται και να έχει πρόσβαση σε άλλους πόρους Azure χωρίς ρητές διαπιστευτήρια. Με αυτές τις άδειες, μπορείτε να τροποποιήσετε τις ροές εργασίας Logic App και να διαχειριστείτε τις ταυτότητές τους. Συγκεκριμένα, μπορείτε να αναθέσετε ή να αφαιρέσετε ταυτότητες που έχουν ανατεθεί από το σύστημα και ταυτότητες που έχουν ανατεθεί από τον χρήστη σε ροές εργασίας, επιτρέποντας στην Logic App να πιστοποιείται και να έχει πρόσβαση σε άλλους πόρους Azure χωρίς ρητές διαπιστευτήρια.
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@@ -36,7 +36,9 @@ az logic workflow identity remove/assign \
{% endcode %} {% endcode %}
### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write" ### "Microsoft.Web/sites/read", "Microsoft.Web/sites/write"
Με αυτές τις άδειες, μπορείτε να δημιουργήσετε ή να ενημερώσετε Logic Apps Με αυτές τις άδειες, μπορείτε να δημιουργήσετε ή να ενημερώσετε Logic Apps που φιλοξενούνται σε ένα App Service Plan. Αυτό περιλαμβάνει την τροποποίηση ρυθμίσεων όπως η ενεργοποίηση ή η απενεργοποίηση της επιβολής HTTPS.
{% code overflow="wrap" %}
```bash ```bash
az logicapp update \ az logicapp update \
--resource-group <resource_group_name> \ --resource-group <resource_group_name> \
@@ -46,7 +48,7 @@ az logicapp update \
{% endcode %} {% endcode %}
### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action" ### "Microsoft.Web/sites/stop/action", "Microsoft.Web/sites/start/action" || "Microsoft.Web/sites/restart/action"
Με αυτή την άδεια, μπορείτε να ξεκινήσετε/σταματήσετε/επανεκκινήσετε μια εφαρμογή ιστού, συμπεριλαμβανομένων των Logic Apps που φιλοξενούνται σε ένα App Service Plan. Αυτή η ενέργεια διασφαλίζει ότι μια προηγουμένως σταματημένη εφαρμογή επανέρχεται online και επαναλαμβάνει τη λειτουργικότητά της. Αυτό μπορεί να διαταράξει τις ροές εργασίας, να προκαλέσει μη προγραμματισμένες λειτουργίες ή να προκαλέσει διακοπή λειτουργίας ξεκινώντας, σταματώντας ή επανεκκινώντας τις Logic Apps απροσδόκητα. Με αυτή την άδεια, μπορείτε να ξεκινήσετε/σταματήσετε/επανεκκινήσετε μια εφαρμογή ιστού, συμπεριλαμβανομένων των Logic Apps που φιλοξενούνται σε ένα App Service Plan. Αυτή η ενέργεια διασφαλίζει ότι μια προηγουμένως σταματημένη εφαρμογή επανέρχεται online και συνεχίζει τη λειτουργικότητά της. Αυτό μπορεί να διαταράξει τις ροές εργασίας, να προκαλέσει μη προγραμματισμένες ενέργειες ή να προκαλέσει διακοπή λειτουργίας ξεκινώντας, σταματώντας ή επανεκκινώντας τις Logic Apps απροσδόκητα.
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash

View File

@@ -4,13 +4,13 @@
## App Service Basic Information ## App Service Basic Information
Azure App Services επιτρέπει στους προγραμματιστές να **δημιουργούν, αναπτύσσουν και κλιμακώνουν διαδικτυακές εφαρμογές, backend κινητών εφαρμογών και APIs χωρίς προβλήματα**. Υποστηρίζει πολλές γλώσσες προγραμματισμού και ενσωματώνεται με διάφορα εργαλεία και υπηρεσίες Azure για βελτιωμένη λειτουργικότητα και διαχείριση. Azure App Services επιτρέπει στους προγραμματιστές να **δημιουργούν, αναπτύσσουν και κλιμακώνουν διαδικτυακές εφαρμογές, backend εφαρμογών κινητών και APIs χωρίς προβλήματα**. Υποστηρίζει πολλές γλώσσες προγραμματισμού και ενσωματώνεται με διάφορα εργαλεία και υπηρεσίες Azure για βελτιωμένη λειτουργικότητα και διαχείριση.
Κάθε εφαρμογή εκτελείται μέσα σε ένα sandbox, αλλά η απομόνωση εξαρτάται από τα σχέδια App Service: Κάθε εφαρμογή εκτελείται μέσα σε ένα sandbox, αλλά η απομόνωση εξαρτάται από τα σχέδια App Service:
- Οι εφαρμογές σε δωρεάν και κοινές κατηγορίες εκτελούνται σε **κοινές VM** - Οι εφαρμογές σε δωρεάν και κοινά επίπεδα εκτελούνται σε **κοινές VM**
- Οι εφαρμογές σε Standard και Premium κατηγορίες εκτελούνται σε **αφιερωμένες VM που μοιράζονται μόνο από εφαρμογές** στην ίδια κατηγορία App Service. - Οι εφαρμογές σε τυπικά και premium επίπεδα εκτελούνται σε **αφιερωμένες VM που μοιράζονται μόνο από εφαρμογές** στο ίδιο σχέδιο App Service.
- Οι απομονωμένες κατηγορίες εκτελούνται σε **αφιερωμένες VM σε αφιερωμένα εικονικά δίκτυα**, βελτιώνοντας την απομόνωση των εφαρμογών. - Τα απομονωμένα επίπεδα εκτελούνται σε **αφιερωμένες VM σε αφιερωμένα εικονικά δίκτυα**, βελτιώνοντας την απομόνωση των εφαρμογών.
> [!WARNING] > [!WARNING]
> Σημειώστε ότι **κανένα** από αυτά τα επίπεδα απομόνωσης **δεν αποτρέπει** άλλες κοινές **ευπάθειες ιστού** (όπως η μεταφόρτωση αρχείων ή οι εισβολές). Και αν χρησιμοποιηθεί μια **ταυτότητα διαχείρισης**, θα μπορούσε να είναι σε θέση να **κλιμακώσει τα δικαιώματα σε αυτές**. > Σημειώστε ότι **κανένα** από αυτά τα επίπεδα απομόνωσης **δεν αποτρέπει** άλλες κοινές **ευπάθειες ιστού** (όπως η μεταφόρτωση αρχείων ή οι εισβολές). Και αν χρησιμοποιηθεί μια **ταυτότητα διαχείρισης**, θα μπορούσε να είναι σε θέση να **κλιμακώσει τα δικαιώματα σε αυτές**.
@@ -18,13 +18,13 @@ Azure App Services επιτρέπει στους προγραμματιστές
Οι εφαρμογές έχουν κάποιες ενδιαφέρουσες ρυθμίσεις: Οι εφαρμογές έχουν κάποιες ενδιαφέρουσες ρυθμίσεις:
- **Always On**: Διασφαλίζει ότι η εφαρμογή είναι πάντα σε λειτουργία. Αν δεν είναι ενεργοποιημένο, η εφαρμογή θα σταματήσει να λειτουργεί μετά από 20 λεπτά αδράνειας και θα ξεκινήσει ξανά όταν ληφθεί ένα αίτημα. - **Always On**: Διασφαλίζει ότι η εφαρμογή είναι πάντα σε λειτουργία. Αν δεν είναι ενεργοποιημένο, η εφαρμογή θα σταματήσει να λειτουργεί μετά από 20 λεπτά αδράνειας και θα ξεκινήσει ξανά όταν ληφθεί ένα αίτημα.
- Αυτό είναι απαραίτητο αν έχετε μια webjob που χρειάζεται να εκτελείται συνεχώς, καθώς η webjob θα σταματήσει αν σταματήσει η εφαρμογή. - Αυτό είναι απαραίτητο αν έχετε μια webjob που χρειάζεται να εκτελείται συνεχώς, καθώς η webjob θα σταματήσει αν η εφαρμογή σταματήσει.
- **SSH**: Αν είναι ενεργοποιημένο, ένας χρήστης με αρκετά δικαιώματα μπορεί να συνδεθεί στην εφαρμογή χρησιμοποιώντας SSH. - **SSH**: Αν είναι ενεργοποιημένο, ένας χρήστης με αρκετά δικαιώματα μπορεί να συνδεθεί στην εφαρμογή χρησιμοποιώντας SSH.
- **Debugging**: Αν είναι ενεργοποιημένο, ένας χρήστης με αρκετά δικαιώματα μπορεί να αποσφαλματώσει την εφαρμογή. Ωστόσο, αυτό απενεργοποιείται αυτόματα κάθε 48 ώρες. - **Debugging**: Αν είναι ενεργοποιημένο, ένας χρήστης με αρκετά δικαιώματα μπορεί να αποσφαλματώσει την εφαρμογή. Ωστόσο, αυτό απενεργοποιείται αυτόματα κάθε 48 ώρες.
- **Web App + Database**: Η διαδικτυακή κονσόλα επιτρέπει τη δημιουργία μιας εφαρμογής με μια βάση δεδομένων. Σε αυτή την περίπτωση, είναι δυνατή η επιλογή της βάσης δεδομένων που θα χρησιμοποιηθεί (SQLAzure, PostgreSQL, MySQL, MongoDB) και επιτρέπει επίσης τη δημιουργία ενός Azure Cache για Redis. - **Web App + Database**: Η διαδικτυακή κονσόλα επιτρέπει τη δημιουργία μιας εφαρμογής με μια βάση δεδομένων. Σε αυτή την περίπτωση, είναι δυνατή η επιλογή της βάσης δεδομένων που θα χρησιμοποιηθεί (SQLAzure, PostgreSQL, MySQL, MongoDB) και επιτρέπει επίσης τη δημιουργία ενός Azure Cache for Redis.
- Η διεύθυνση URL που περιέχει τα διαπιστευτήρια για τη βάση δεδομένων και το Redis θα αποθηκευτεί στα **appsettings**. - Η διεύθυνση URL που περιέχει τα διαπιστευτήρια για τη βάση δεδομένων και το Redis θα αποθηκευτεί στα **appsettings**.
- **Container**: Είναι δυνατή η ανάπτυξη ενός container στην υπηρεσία App Service υποδεικνύοντας τη διεύθυνση URL του container και τα διαπιστευτήρια για την πρόσβαση σε αυτό. - **Container**: Είναι δυνατή η ανάπτυξη ενός container στην υπηρεσία App Service υποδεικνύοντας τη διεύθυνση URL του container και τα διαπιστευτήρια για την πρόσβαση σε αυτό.
- **Mounts**: Είναι δυνατή η δημιουργία 5 mounts από λογαριασμούς αποθήκευσης, είτε αυτοί είναι Azure Blob (Μόνο για Ανάγνωση) είτε Azure Files. Η ρύθμιση θα αποθηκεύσει το κλειδί πρόσβασης πάνω από τον Λογαριασμό Αποθήκευσης. - **Mounts**: Είναι δυνατή η δημιουργία 5 mounts από λογαριασμούς αποθήκευσης, είτε αυτοί είναι Azure Blob (Μόνο για Ανάγνωση) είτε Azure Files. Η ρύθμιση θα αποθηκεύσει το κλειδί πρόσβασης πάνω από τον λογαριασμό αποθήκευσης.
## Basic Authentication ## Basic Authentication
@@ -41,7 +41,7 @@ Azure App Services επιτρέπει στους προγραμματιστές
Kudu είναι η πλατφόρμα που **διαχειρίζεται τόσο το SCM όσο και μια διαδικτυακή και API διεπαφή** για τη διαχείριση μιας υπηρεσίας App Service, και παρέχει δυνατότητες ανάπτυξης βασισμένες σε Git, απομακρυσμένη αποσφαλμάτωση και διαχείριση αρχείων. Είναι προσβάσιμη μέσω της διεύθυνσης URL SCM που ορίζεται στην διαδικτυακή εφαρμογή. Kudu είναι η πλατφόρμα που **διαχειρίζεται τόσο το SCM όσο και μια διαδικτυακή και API διεπαφή** για τη διαχείριση μιας υπηρεσίας App Service, και παρέχει δυνατότητες ανάπτυξης βασισμένες σε Git, απομακρυσμένη αποσφαλμάτωση και διαχείριση αρχείων. Είναι προσβάσιμη μέσω της διεύθυνσης URL SCM που ορίζεται στην διαδικτυακή εφαρμογή.
Σημειώστε ότι οι εκδόσεις Kudu που χρησιμοποιούνται από τις Υπηρεσίες App και από τις Function Apps είναι διαφορετικές, με την έκδοση των Function apps να είναι πολύ πιο περιορισμένη. Σημειώστε ότι οι εκδόσεις Kudu που χρησιμοποιούνται από τις υπηρεσίες App Services και από τις Function Apps είναι διαφορετικές, με την έκδοση των Function apps να είναι πολύ πιο περιορισμένη.
Ορισμένα ενδιαφέροντα endpoints που μπορείτε να βρείτε στο Kudu είναι: Ορισμένα ενδιαφέροντα endpoints που μπορείτε να βρείτε στο Kudu είναι:
- `/BasicAuth`: Πρέπει να αποκτήσετε πρόσβαση σε αυτή τη διαδρομή για να **συνδεθείτε στο Kudu**. - `/BasicAuth`: Πρέπει να αποκτήσετε πρόσβαση σε αυτή τη διαδρομή για να **συνδεθείτε στο Kudu**.
@@ -52,15 +52,15 @@ Kudu είναι η πλατφόρμα που **διαχειρίζεται τόσ
- `/Env`: Λάβετε πληροφορίες σχετικά με το σύστημα, τις ρυθμίσεις εφαρμογής, τις μεταβλητές περιβάλλοντος, τις συμβολοσειρές σύνδεσης και τις κεφαλίδες HTTP. - `/Env`: Λάβετε πληροφορίες σχετικά με το σύστημα, τις ρυθμίσεις εφαρμογής, τις μεταβλητές περιβάλλοντος, τις συμβολοσειρές σύνδεσης και τις κεφαλίδες HTTP.
- `/wwwroot/`: Ο ριζικός κατάλογος της διαδικτυακής εφαρμογής. Μπορείτε να κατεβάσετε όλα τα αρχεία από εδώ. - `/wwwroot/`: Ο ριζικός κατάλογος της διαδικτυακής εφαρμογής. Μπορείτε να κατεβάσετε όλα τα αρχεία από εδώ.
Επιπλέον, το Kudu χρησιμοποιούνταν ως ανοιχτού κώδικα στο [https://github.com/projectkudu/kudu](https://github.com/projectkudu/kudu) αλλά το έργο έχει αποσυρθεί και συγκρίνοντας τη συμπεριφορά του τρέχοντος Kudu στην Azure με το παλιό, είναι δυνατόν να παρατηρηθεί ότι **πολλά πράγματα έχουν ήδη αλλάξει**. Επιπλέον, το Kudu ήταν ανοιχτού κώδικα στο [https://github.com/projectkudu/kudu](https://github.com/projectkudu/kudu), αλλά το έργο έχει αποσυρθεί και συγκρίνοντας τη συμπεριφορά του τρέχοντος Kudu στην Azure με το παλιό, είναι δυνατό να παρατηρήσετε ότι **πολλά πράγματα έχουν ήδη αλλάξει**.
## Sources ## Sources
Οι Υπηρεσίες App επιτρέπουν την αποστολή του κώδικα ως αρχείο zip από προεπιλογή, αλλά επιτρέπουν επίσης τη σύνδεση σε μια υπηρεσία τρίτου μέρους και την απόκτηση του κώδικα από εκεί. Οι υπηρεσίες App Services επιτρέπουν την ανέβασμα του κώδικα ως αρχείο zip από προεπιλογή, αλλά επιτρέπουν επίσης τη σύνδεση σε μια τρίτη υπηρεσία και την απόκτηση του κώδικα από εκεί.
- Οι υποστηριζόμενες τρίτες πηγές είναι **Github** και **Bitbucket**. - Οι τρέχουσες υποστηριζόμενες τρίτες πηγές είναι **Github** και **Bitbucket**.
- Μπορείτε να αποκτήσετε τα διαπιστευτήρια αυθεντικοποίησης εκτελώντας `az rest --url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01"` - Μπορείτε να αποκτήσετε τα διαπιστευτήρια αυθεντικοποίησης εκτελώντας `az rest --url "https://management.azure.com/providers/Microsoft.Web/sourcecontrols?api-version=2024-04-01"`
- Η Azure από προεπιλογή θα ρυθμίσει μια **Github Action** για να αναπτύξει τον κώδικα στην Υπηρεσία App κάθε φορά που ενημερώνεται ο κώδικας. - Η Azure από προεπιλογή θα ρυθμίσει μια **Github Action** για να αναπτύξει τον κώδικα στην υπηρεσία App Service κάθε φορά που ενημερώνεται ο κώδικας.
- Είναι επίσης δυνατή η ένδειξη ενός **απομακρυσμένου git repository** (με όνομα χρήστη και κωδικό πρόσβασης) για να αποκτήσετε τον κώδικα από εκεί. - Είναι επίσης δυνατή η ένδειξη ενός **απομακρυσμένου git repository** (με όνομα χρήστη και κωδικό πρόσβασης) για να αποκτήσετε τον κώδικα από εκεί.
- Μπορείτε να αποκτήσετε τα διαπιστευτήρια για το απομακρυσμένο repo εκτελώντας `az webapp deployment source show --name <app-name> --resource-group <res-group>` ή `az rest --method POST --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/config/metadata/list?api-version=2022-03-01" --resource "https://management.azure.com"` - Μπορείτε να αποκτήσετε τα διαπιστευτήρια για το απομακρυσμένο repo εκτελώντας `az webapp deployment source show --name <app-name> --resource-group <res-group>` ή `az rest --method POST --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.Web/sites/<app-name>/config/metadata/list?api-version=2022-03-01" --resource "https://management.azure.com"`
- Είναι επίσης δυνατή η χρήση ενός **Azure Repository**. - Είναι επίσης δυνατή η χρήση ενός **Azure Repository**.
@@ -70,26 +70,26 @@ Kudu είναι η πλατφόρμα που **διαχειρίζεται τόσ
## Webjobs ## Webjobs
Οι Azure WebJobs είναι **εργασίες παρασκηνίου που εκτελούνται στο περιβάλλον Azure App Service**. Επιτρέπουν στους προγραμματιστές να εκτελούν σενάρια ή προγράμματα παράλληλα με τις διαδικτυακές τους εφαρμογές, διευκολύνοντας την εκτέλεση ασύγχρονων ή χρονοβόρων εργασιών όπως η επεξεργασία αρχείων, η διαχείριση δεδομένων ή οι προγραμματισμένες εργασίες. Οι Azure WebJobs είναι **εργασίες φόντου που εκτελούνται στο περιβάλλον Azure App Service**. Επιτρέπουν στους προγραμματιστές να εκτελούν σενάρια ή προγράμματα παράλληλα με τις διαδικτυακές τους εφαρμογές, διευκολύνοντας την εκτέλεση ασύγχρονων ή χρονοβόρων εργασιών όπως η επεξεργασία αρχείων, η διαχείριση δεδομένων ή οι προγραμματισμένες εργασίες.
Υπάρχουν 2 τύποι web jobs: Υπάρχουν 2 τύποι web jobs:
- **Continuous**: Εκτελείται αδιάκοπα σε βρόχο και ενεργοποιείται μόλις δημιουργηθεί. Είναι ιδανικό για εργασίες που απαιτούν συνεχή επεξεργασία. Ωστόσο, αν η εφαρμογή σταματήσει να λειτουργεί επειδή το Always On είναι απενεργοποιημένο και δεν έχει λάβει αίτημα στα τελευταία 20 λεπτά, η web job θα σταματήσει επίσης. - **Continuous**: Εκτελείται επ' αόριστον σε βρόχο και ενεργοποιείται μόλις δημιουργηθεί. Είναι ιδανικό για εργασίες που απαιτούν συνεχή επεξεργασία. Ωστόσο, αν η εφαρμογή σταματήσει να λειτουργεί επειδή το Always On είναι απενεργοποιημένο και δεν έχει λάβει αίτημα τα τελευταία 20 λεπτά, η web job θα σταματήσει επίσης.
- **Triggered**: Εκτελείται κατόπιν αιτήματος ή με βάση ένα πρόγραμμα. Είναι καλύτερα προσαρμοσμένο για περιοδικές εργασίες, όπως ενημερώσεις δεδομένων batch ή ρουτίνες συντήρησης. - **Triggered**: Εκτελείται κατόπιν αιτήματος ή με βάση ένα πρόγραμμα. Είναι πιο κατάλληλο για περιοδικές εργασίες, όπως ενημερώσεις δεδομένων batch ή ρουτίνες συντήρησης.
Οι webjobs είναι πολύ ενδιαφέρουσες από την προοπτική των επιτιθέμενων καθώς θα μπορούσαν να χρησιμοποιηθούν για **εκτέλεση κώδικα** στο περιβάλλον και **κλιμάκωση δικαιωμάτων** στις συνδεδεμένες διαχειριζόμενες ταυτότητες. Οι webjobs είναι πολύ ενδιαφέρουσες από την προοπτική των επιτιθέμενων, καθώς θα μπορούσαν να χρησιμοποιηθούν για **εκτέλεση κώδικα** στο περιβάλλον και **κλιμάκωση δικαιωμάτων** στις συνδεδεμένες διαχειριζόμενες ταυτότητες.
Επιπλέον, είναι πάντα ενδιαφέρον να ελέγχετε τα **αρχεία καταγραφής** που παράγονται από τις Webjobs καθώς θα μπορούσαν να περιέχουν **ευαίσθητες πληροφορίες**. Επιπλέον, είναι πάντα ενδιαφέρον να ελέγχετε τα **αρχεία καταγραφής** που παράγονται από τις Webjobs, καθώς θα μπορούσαν να περιέχουν **ευαίσθητες πληροφορίες**.
## Slots ## Slots
Οι Θέσεις Υπηρεσίας App Azure χρησιμοποιούνται για **να αναπτύξουν διαφορετικές εκδόσεις της εφαρμογής** στην ίδια Υπηρεσία App. Αυτό επιτρέπει στους προγραμματιστές να δοκιμάζουν νέες δυνατότητες ή αλλαγές σε ένα ξεχωριστό περιβάλλον πριν τις αναπτύξουν στο περιβάλλον παραγωγής. Οι Azure App Service Slots χρησιμοποιούνται για **να αναπτύξουν διαφορετικές εκδόσεις της εφαρμογής** στην ίδια υπηρεσία App Service. Αυτό επιτρέπει στους προγραμματιστές να δοκιμάζουν νέες δυνατότητες ή αλλαγές σε ένα ξεχωριστό περιβάλλον πριν τις αναπτύξουν στο περιβάλλον παραγωγής.
Επιπλέον, είναι δυνατή η δρομολόγηση ενός **ποσοστού της κίνησης** σε μια συγκεκριμένη θέση, κάτι που είναι χρήσιμο για A/B testing και για **σκοπούς backdoor**. Επιπλέον, είναι δυνατή η δρομολόγηση ενός **ποσοστού της κίνησης** σε μια συγκεκριμένη υποδοχή, κάτι που είναι χρήσιμο για A/B testing και για **σκοπούς backdoor**.
## Azure Function Apps ## Azure Function Apps
Βασικά, **οι Azure Function apps είναι ένα υποσύνολο της Azure App Service** στην διαδικτυακή κονσόλα και αν πάτε στην διαδικτυακή κονσόλα και καταγράψετε όλες τις υπηρεσίες εφαρμογών ή εκτελέσετε `az webapp list` στο az cli, θα μπορείτε να **δείτε τις Function apps επίσης καταγεγραμμένες εκεί**. Βασικά, **οι Azure Function apps είναι ένα υποσύνολο της Azure App Service** στην διαδικτυακή κονσόλα και αν πάτε στην διαδικτυακή κονσόλα και καταγράψετε όλες τις υπηρεσίες εφαρμογών ή εκτελέσετε `az webapp list` στο az cli, θα μπορείτε να **δείτε τις Function apps επίσης καταγεγραμμένες εκεί**.
Επομένως, και οι δύο υπηρεσίες έχουν κυρίως τις **ίδιες ρυθμίσεις, δυνατότητες και επιλογές στο az cli**, αν και μπορεί να τις ρυθμίζουν λίγο διαφορετικά (όπως οι προεπιλεγμένες τιμές των appsettings ή η χρήση ενός Λογαριασμού Αποθήκευσης στις Function apps). Επομένως, και οι δύο υπηρεσίες έχουν κυρίως τις **ίδιες ρυθμίσεις, δυνατότητες και επιλογές στο az cli**, αν και μπορεί να τις ρυθμίζουν λίγο διαφορετικά (όπως οι προεπιλεγμένες τιμές των appsettings ή η χρήση ενός Storage Account στις Function apps).
## Enumeration ## Enumeration
@@ -283,7 +283,7 @@ cd msdocs-python-flask-webapp-quickstart
# Create webapp from this code # Create webapp from this code
az webapp up --runtime PYTHON:3.9 --sku B1 --logs az webapp up --runtime PYTHON:3.9 --sku B1 --logs
``` ```
Συνδεόμενοι στο SCM portal ή συνδεόμενοι μέσω FTP, είναι δυνατόν να δούμε στο `/wwwroot` το συμπιεσμένο αρχείο `output.tar.gz` που περιέχει τον κώδικα της webapp. Συνδεόμενος στο SCM portal ή συνδεόμενος μέσω FTP, είναι δυνατόν να δει κανείς στο `/wwwroot` το συμπιεσμένο αρχείο `output.tar.gz` που περιέχει τον κώδικα της webapp.
> [!TIP] > [!TIP]
> Απλώς η σύνδεση μέσω FTP και η τροποποίηση του αρχείου `output.tar.gz` δεν είναι αρκετή για να αλλάξει τον κώδικα που εκτελείται από την webapp. > Απλώς η σύνδεση μέσω FTP και η τροποποίηση του αρχείου `output.tar.gz` δεν είναι αρκετή για να αλλάξει τον κώδικα που εκτελείται από την webapp.
@@ -298,7 +298,7 @@ az webapp up --runtime PYTHON:3.9 --sku B1 --logs
2. Δημιουργήστε μια νέα python Web App στο Azure. 2. Δημιουργήστε μια νέα python Web App στο Azure.
3. Στο `Deployment Center` αλλάξτε την πηγή, συνδεθείτε με το Github, επιλέξτε το forked repo και κάντε κλικ στο `Save`. 3. Στο `Deployment Center` αλλάξτε την πηγή, συνδεθείτε με το Github, επιλέξτε το forked repo και κάντε κλικ στο `Save`.
Όπως στην προηγούμενη περίπτωση, συνδεόμενοι στο SCM portal ή συνδεόμενοι μέσω FTP, είναι δυνατόν να δούμε στο `/wwwroot` το συμπιεσμένο αρχείο `output.tar.gz` που περιέχει τον κώδικα της webapp. Όπως και στην προηγούμενη περίπτωση, συνδεόμενος στο SCM portal ή συνδεόμενος μέσω FTP, είναι δυνατόν να δει κανείς στο `/wwwroot` το συμπιεσμένο αρχείο `output.tar.gz` που περιέχει τον κώδικα της webapp.
> [!TIP] > [!TIP]
> Απλώς η σύνδεση μέσω FTP και η τροποποίηση του αρχείου `output.tar.gz` και η επανενεργοποίηση μιας ανάπτυξης δεν είναι αρκετή για να αλλάξει τον κώδικα που εκτελείται από την webapp. > Απλώς η σύνδεση μέσω FTP και η τροποποίηση του αρχείου `output.tar.gz` και η επανενεργοποίηση μιας ανάπτυξης δεν είναι αρκετή για να αλλάξει τον κώδικα που εκτελείται από την webapp.

View File

@@ -17,7 +17,7 @@
## Azure Cloud Shell ## Azure Cloud Shell
**Azure Cloud Shell** είναι ένα διαδραστικό, αυθεντικοποιημένο, προσβάσιμο μέσω προγράμματος περιήγησης τερματικό σχεδιασμένο για τη διαχείριση πόρων Azure, προσφέροντας την ευελιξία να εργάζεστε είτε με Bash είτε με PowerShell. Λειτουργεί σε έναν προσωρινό, ανά συνεδρία διακομιστή που λήγει μετά από 20 λεπτά αδράνειας, ενώ διατηρεί αρχεία στην τοποθεσία $HOME χρησιμοποιώντας μια κοινή χρήση αρχείων 5 GB. Το Cloud Shell μπορεί να προσπελαστεί μέσω πολλών σημείων, συμπεριλαμβανομένων του Azure portal, shell.azure.com, Azure CLI και της τεκμηρίωσης PowerShell, της εφαρμογής Azure mobile και της επέκτασης Azure Account του Visual Studio Code. **Azure Cloud Shell** είναι ένα διαδραστικό, αυθεντικοποιημένο, προσβάσιμο μέσω προγράμματος περιήγησης τερματικό σχεδιασμένο για τη διαχείριση πόρων Azure, προσφέροντας την ευελιξία να εργάζεστε είτε με Bash είτε με PowerShell. Λειτουργεί σε έναν προσωρινό, ανά συνεδρία διακομιστή που λήγει μετά από 20 λεπτά αδράνειας, ενώ διατηρεί αρχεία στην τοποθεσία $HOME χρησιμοποιώντας μια κοινή χρήση 5 GB. Το Cloud Shell μπορεί να προσπελαστεί μέσω πολλών σημείων, συμπεριλαμβανομένων του Azure portal, shell.azure.com, Azure CLI και της τεκμηρίωσης PowerShell, της εφαρμογής Azure mobile και της επέκτασης Azure Account του Visual Studio Code.
Δεν υπάρχουν δικαιώματα που να έχουν ανατεθεί σε αυτή την υπηρεσία, επομένως δεν υπάρχουν τεχνικές ανύψωσης προνομίων. Επίσης, δεν υπάρχει κανενός είδους αρίθμηση. Δεν υπάρχουν δικαιώματα που να έχουν ανατεθεί σε αυτή την υπηρεσία, επομένως δεν υπάρχουν τεχνικές ανύψωσης προνομίων. Επίσης, δεν υπάρχει κανενός είδους αρίθμηση.

View File

@@ -17,11 +17,11 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).p
## Azure CosmosDB ## Azure CosmosDB
**Azure Cosmos DB** είναι μια πλήρως **διαχειριζόμενη NoSQL, σχεσιακή και διανυσματική βάση δεδομένων** που προσφέρει χρόνους απόκρισης σε χιλιοστά του δευτερολέπτου, αυτόματη κλιμάκωση και διαθεσιμότητα υποστηριζόμενη από SLA με ασφάλεια επιπέδου επιχείρησης. Διευκολύνει την ταχύτερη ανάπτυξη εφαρμογών μέσω έτοιμης διανομής δεδομένων σε πολλές περιοχές, ανοιχτών APIs, SDKs για δημοφιλείς γλώσσες και χαρακτηριστικών βάσεων δεδομένων AI όπως η ενσωματωμένη υποστήριξη διανυσμάτων και η απρόσκοπτη ενσωμάτωσή της με Azure AI. **Azure Cosmos DB** είναι μια πλήρως **διαχειριζόμενη NoSQL, σχεσιακή και διανυσματική βάση δεδομένων** που προσφέρει χρόνους απόκρισης σε χιλιοστά του δευτερολέπτου, αυτόματη κλιμάκωση και διαθεσιμότητα υποστηριζόμενη από SLA με ασφάλεια επιπέδου επιχείρησης. Διευκολύνει την ταχύτερη ανάπτυξη εφαρμογών μέσω έτοιμης διανομής δεδομένων πολλαπλών περιοχών, ανοιχτών APIs, SDKs για δημοφιλείς γλώσσες και χαρακτηριστικά βάσεων δεδομένων AI όπως η ενσωματωμένη υποστήριξη διανυσμάτων και η απρόσκοπτη ενσωμάτωσή τους με Azure AI.
Η Azure Cosmos DB παρέχει πολλαπλά APIs βάσεων δεδομένων για την μοντελοποίηση πραγματικών δεδομένων χρησιμοποιώντας έγγραφα, σχεσιακά, key-value, γραφήματα και μοντέλα δεδομένων column-family, με αυτά τα 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. Ένας βασικός τομέας της CosmosDB είναι ο Azure Cosmos Account. **Azure Cosmos Account**, λειτουργεί ως σημείο εισόδου στις βάσεις δεδομένων. Ο λογαριασμός καθορίζει βασικές ρυθμίσεις όπως η παγκόσμια διανομή, τα επίπεδα συνέπειας και το συγκεκριμένο API που θα χρησιμοποιηθεί, όπως το NoSQL. Μέσω του λογαριασμού, μπορείτε να ρυθμίσετε την παγκόσμια αναπαραγωγή για να διασφαλίσετε ότι τα δεδομένα είναι διαθέσιμα σε πολλές περιοχές για γρήγορη πρόσβαση. Επιπλέον, μπορείτε να επιλέξετε ένα επίπεδο συνέπειας που ισορροπεί μεταξύ απόδοσης και ακρίβειας δεδομένων, με επιλογές που κυμαίνονται από Strong έως Eventual consistency.
### NoSQL (sql) ### NoSQL (sql)
Το Azure Cosmos DB NoSQL API είναι ένα API βασισμένο σε έγγραφα που χρησιμοποιεί το JSON ως μορφή δεδομένων του. Παρέχει μια σύνταξη ερωτήσεων παρόμοια με τη SQL για την εκτέλεση ερωτήσεων σε αντικείμενα JSON, καθιστώντας το κατάλληλο για εργασία με δομημένα και ημι-δομημένα δεδομένα. Το endpoint της υπηρεσίας είναι: Το Azure Cosmos DB NoSQL API είναι ένα API βασισμένο σε έγγραφα που χρησιμοποιεί το JSON ως μορφή δεδομένων του. Παρέχει μια σύνταξη ερωτήσεων παρόμοια με τη SQL για την εκτέλεση ερωτήσεων σε αντικείμενα JSON, καθιστώντας το κατάλληλο για εργασία με δομημένα και ημι-δομημένα δεδομένα. Το endpoint της υπηρεσίας είναι:
@@ -33,7 +33,7 @@ https://<Account-Name>.documents.azure.com:443/
{% endcode %} {% endcode %}
#### Βάσεις Δεδομένων #### Βάσεις Δεδομένων
Μέσα σε έναν λογαριασμό, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων, οι οποίες λειτουργούν ως λογικές ομάδες κοντέινερ. Μια βάση δεδομένων λειτουργεί ως όριο για τη διαχείριση πόρων και τα δικαιώματα χρηστών. Οι βάσεις δεδομένων μπορούν είτε να μοιράζονται την παρεχόμενη απόδοση σε όλα τα κοντέινερ τους είτε να εκχωρούν αποκλειστική απόδοση σε μεμονωμένα κοντέινερ. Μέσα σε έναν λογαριασμό, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων, οι οποίες λειτουργούν ως λογικές ομάδες κοντέινερ. Μια βάση δεδομένων λειτουργεί ως όριο για τη διαχείριση πόρων και τα δικαιώματα χρηστών. Οι βάσεις δεδομένων μπορούν είτε να μοιράζονται την παρεχόμενη απόδοση μεταξύ των κοντέινερ τους είτε να εκχωρούν αποκλειστική απόδοση σε μεμονωμένα κοντέινερ.
#### Κοντέινερ #### Κοντέινερ
Η βασική μονάδα αποθήκευσης δεδομένων είναι το κοντέινερ, το οποίο περιέχει έγγραφα JSON και είναι αυτόματα ευρετηριασμένο για αποδοτική αναζήτηση. Τα κοντέινερ είναι ελαστικά κλιμακούμενα και κατανεμημένα σε κατατμήσεις, οι οποίες καθορίζονται από ένα κλειδί κατατμήσεων που ορίζει ο χρήστης. Το κλειδί κατατμήσεων είναι κρίσιμο για την εξασφάλιση βέλτιστης απόδοσης και ομοιόμορφης κατανομής δεδομένων. Για παράδειγμα, ένα κοντέινερ μπορεί να αποθηκεύει δεδομένα πελατών, με το "customerId" ως το κλειδί κατατμήσεων. Η βασική μονάδα αποθήκευσης δεδομένων είναι το κοντέινερ, το οποίο περιέχει έγγραφα JSON και είναι αυτόματα ευρετηριασμένο για αποδοτική αναζήτηση. Τα κοντέινερ είναι ελαστικά κλιμακούμενα και κατανεμημένα σε κατατμήσεις, οι οποίες καθορίζονται από ένα κλειδί κατατμήσεων που ορίζει ο χρήστης. Το κλειδί κατατμήσεων είναι κρίσιμο για την εξασφάλιση βέλτιστης απόδοσης και ομοιόμορφης κατανομής δεδομένων. Για παράδειγμα, ένα κοντέινερ μπορεί να αποθηκεύει δεδομένα πελατών, με το "customerId" ως το κλειδί κατατμήσεων.
@@ -173,7 +173,7 @@ print(item)
``` ```
{% endcode %} {% endcode %}
Ένας άλλος τρόπος για να καθιερώσετε μια σύνδεση είναι να χρησιμοποιήσετε το **DefaultAzureCredential()**. Απλώς χρειάζεται να συνδεθείτε (az login) με τον λογαριασμό που έχει τις άδειες και να το εκτελέσετε. Για αυτή την περίπτωση, πρέπει να γίνει μια ανάθεση ρόλου, δίνοντας τις απαραίτητες άδειες (δείτε για περισσότερα) Ένας άλλος τρόπος για να καθορίσετε μια σύνδεση είναι να χρησιμοποιήσετε το **DefaultAzureCredential()**. Απλώς χρειάζεται να συνδεθείτε (az login) με τον λογαριασμό που έχει τις άδειες και να το εκτελέσετε. Για αυτή την περίπτωση, πρέπει να γίνει μια ανάθεση ρόλου, δίνοντας τις απαραίτητες άδειες (δείτε για περισσότερα)
{% code overflow="wrap" %} {% code overflow="wrap" %}
```python ```python
@@ -203,7 +203,7 @@ print("Document inserted.")
{% endcode %} {% endcode %}
### MongoDB ### MongoDB
Η API MongoDB NoSQL είναι μια API βασισμένη σε έγγραφα που χρησιμοποιεί το BSON (Binary JSON) σε μορφή δεδομένων παρόμοια με το JSON. Παρέχει μια γλώσσα ερωτήσεων με δυνατότητες συγκέντρωσης, καθιστώντας την κατάλληλη για εργασία με δομημένα, ημι-δομημένα και αδόμητα δεδομένα. Το endpoint της υπηρεσίας συνήθως ακολουθεί αυτή τη μορφή: Η API NoSQL του MongoDB είναι μια API βασισμένη σε έγγραφα που χρησιμοποιεί το BSON (Binary JSON) σε μορφή δεδομένων παρόμοια με το JSON. Παρέχει μια γλώσσα ερωτήσεων με δυνατότητες συγκέντρωσης, καθιστώντας την κατάλληλη για εργασία με δομημένα, ημι-δομημένα και αδόμητα δεδομένα. Το endpoint της υπηρεσίας συνήθως ακολουθεί αυτή τη μορφή:
{% code overflow="wrap" %} {% code overflow="wrap" %}
```bash ```bash
@@ -212,7 +212,7 @@ mongodb://<hostname>:<port>/<database>
{% endcode %} {% endcode %}
#### Βάσεις Δεδομένων #### Βάσεις Δεδομένων
Στο MongoDB, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων μέσα σε μια παρουσία. Κάθε βάση δεδομένων λειτουργεί ως λογική ομαδοποίηση συλλογών και παρέχει ένα όριο για την οργάνωση και διαχείριση πόρων. Οι βάσεις δεδομένων βοηθούν στη λογική διαχωριστική και διαχείριση δεδομένων, όπως για διαφορετικές εφαρμογές ή έργα. Στο MongoDB, μπορείτε να δημιουργήσετε μία ή περισσότερες βάσεις δεδομένων μέσα σε μια παρουσία. Κάθε βάση δεδομένων λειτουργεί ως λογική ομαδοποίηση συλλογών και παρέχει ένα όριο για την οργάνωση και διαχείριση πόρων. Οι βάσεις δεδομένων βοηθούν στη λογική διαχωρισμό και διαχείριση των δεδομένων, όπως για διαφορετικές εφαρμογές ή έργα.
#### Συλλογές #### Συλλογές
Η βασική μονάδα αποθήκευσης δεδομένων στο MongoDB είναι η συλλογή, η οποία περιέχει έγγραφα και έχει σχεδιαστεί για αποδοτική αναζήτηση και ευέλικτο σχεδιασμό σχήματος. Οι συλλογές είναι ελαστικά κλιμακούμενες και μπορούν να υποστηρίξουν λειτουργίες υψηλής απόδοσης σε πολλαπλούς κόμβους σε μια κατανεμημένη ρύθμιση. Η βασική μονάδα αποθήκευσης δεδομένων στο MongoDB είναι η συλλογή, η οποία περιέχει έγγραφα και έχει σχεδιαστεί για αποδοτική αναζήτηση και ευέλικτο σχεδιασμό σχήματος. Οι συλλογές είναι ελαστικά κλιμακούμενες και μπορούν να υποστηρίξουν λειτουργίες υψηλής απόδοσης σε πολλαπλούς κόμβους σε μια κατανεμημένη ρύθμιση.
@@ -333,7 +333,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/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) * [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)
## Ανάβαση Δικαιωμάτων ## Ανύψωση Δικαιωμάτων
{% content-ref url="../az-privilege-escalation/az-cosmosDB-privesc.md" %} {% content-ref url="../az-privilege-escalation/az-cosmosDB-privesc.md" %}
[az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md) [az-cosmosDB-privesc.md](../az-privilege-escalation/az-cosmosDB-privesc.md)
@@ -347,8 +347,8 @@ print(f"Inserted document with ID: {result.inserted_id}")
## ToDo ## ToDo
* Η υπόλοιπη DB εδώ, πίνακες, cassandra, gremlin... * Η υπόλοιπη βάση δεδομένων εδώ, πίνακες, cassandra, gremlin...
* Ρίξτε μια ματιά στην εκμετάλλευση "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" και τους ορισμούς ρόλων γιατί εδώ μπορεί να υπάρχει privesc * Ρίξτε μια ματιά στην εκμετάλλευση "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/write" && "Microsoft.DocumentDB/databaseAccounts/mongodbUserDefinitions/read" και τους ορισμούς ρόλων γιατί εδώ μπορεί να υπάρχει ανύψωση δικαιωμάτων
* Ρίξτε μια ματιά στις αποκαταστάσεις * Ρίξτε μια ματιά στις αποκαταστάσεις
{% hint style="success" %} {% hint style="success" %}

View File

@@ -4,7 +4,7 @@
## Basic Information ## Basic Information
**Azure Function Apps** είναι μια **serverless compute service** που σας επιτρέπει να εκτελείτε μικρά κομμάτια κώδικα, που ονομάζονται **functions**, χωρίς να διαχειρίζεστε την υποκείμενη υποδομή. Είναι σχεδιασμένα να εκτελούν κώδικα σε απάντηση σε διάφορους ενεργοποιητές, όπως **HTTP requests, timers, ή events από άλλες υπηρεσίες Azure** όπως Blob Storage ή Event Hubs. Τα Function Apps υποστηρίζουν πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων των C#, Python, JavaScript και Java, καθιστώντας τα ευέλικτα για την κατασκευή **event-driven applications**, αυτοματοποίηση ροών εργασίας ή ενσωμάτωση υπηρεσιών. Είναι οικονομικά, καθώς συνήθως πληρώνετε μόνο για τον χρόνο υπολογισμού που χρησιμοποιείται όταν εκτελείται ο κώδικάς σας. **Azure Function Apps** είναι μια **serverless compute service** που σας επιτρέπει να εκτελείτε μικρά κομμάτια κώδικα, που ονομάζονται **functions**, χωρίς να διαχειρίζεστε την υποκείμενη υποδομή. Είναι σχεδιασμένα να εκτελούν κώδικα σε απάντηση σε διάφορους ενεργοποιητές, όπως **HTTP requests, timers, ή events από άλλες υπηρεσίες Azure** όπως Blob Storage ή Event Hubs. Τα Function Apps υποστηρίζουν πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων των C#, Python, JavaScript και Java, καθιστώντας τα ευέλικτα για την κατασκευή **event-driven applications**, αυτοματοποίηση ροών εργασίας ή ενσωμάτωση υπηρεσιών. Είναι οικονομικά αποδοτικά, καθώς συνήθως πληρώνετε μόνο για τον χρόνο υπολογισμού που χρησιμοποιείται όταν εκτελείται ο κώδικάς σας.
> [!NOTE] > [!NOTE]
> Σημειώστε ότι **Functions είναι ένα υποσύνολο των App Services**, επομένως, πολλές από τις δυνατότητες που συζητούνται εδώ θα χρησιμοποιηθούν επίσης από εφαρμογές που δημιουργούνται ως Azure Apps (`webapp` στο cli). > Σημειώστε ότι **Functions είναι ένα υποσύνολο των App Services**, επομένως, πολλές από τις δυνατότητες που συζητούνται εδώ θα χρησιμοποιηθούν επίσης από εφαρμογές που δημιουργούνται ως Azure Apps (`webapp` στο cli).
@@ -13,30 +13,30 @@
- **Flex Consumption Plan**: Προσφέρει **dynamic, event-driven scaling** με τιμολόγηση pay-as-you-go, προσθέτοντας ή αφαιρώντας παραδείγματα λειτουργιών με βάση τη ζήτηση. Υποστηρίζει **virtual networking** και **pre-provisioned instances** για να μειώσει τις κρύες εκκινήσεις, καθιστώντας το κατάλληλο για **variable workloads** που δεν απαιτούν υποστήριξη κοντέινερ. - **Flex Consumption Plan**: Προσφέρει **dynamic, event-driven scaling** με τιμολόγηση pay-as-you-go, προσθέτοντας ή αφαιρώντας παραδείγματα λειτουργιών με βάση τη ζήτηση. Υποστηρίζει **virtual networking** και **pre-provisioned instances** για να μειώσει τις κρύες εκκινήσεις, καθιστώντας το κατάλληλο για **variable workloads** που δεν απαιτούν υποστήριξη κοντέινερ.
- **Traditional Consumption Plan**: Η προεπιλεγμένη serverless επιλογή, όπου **πληρώνετε μόνο για τους υπολογιστικούς πόρους όταν εκτελούνται οι λειτουργίες**. Αυξάνεται αυτόματα με βάση τα εισερχόμενα γεγονότα και περιλαμβάνει **cold start optimizations**, αλλά δεν υποστηρίζει αναπτύξεις κοντέινερ. Ιδανικό για **intermittent workloads** που απαιτούν αυτόματη κλιμάκωση. - **Traditional Consumption Plan**: Η προεπιλεγμένη serverless επιλογή, όπου **πληρώνετε μόνο για τους υπολογιστικούς πόρους όταν εκτελούνται οι λειτουργίες**. Αυξάνεται αυτόματα με βάση τα εισερχόμενα γεγονότα και περιλαμβάνει **cold start optimizations**, αλλά δεν υποστηρίζει αναπτύξεις κοντέινερ. Ιδανικό για **intermittent workloads** που απαιτούν αυτόματη κλιμάκωση.
- **Premium Plan**: Σχεδιασμένο για **consistent performance**, με **prewarmed workers** για να εξαλείψει τις κρύες εκκινήσεις. Προσφέρει **extended execution times, virtual networking**, και υποστηρίζει **custom Linux images**, καθιστώντας το τέλειο για **mission-critical applications** που χρειάζονται υψηλή απόδοση και προηγμένες δυνατότητες. - **Premium Plan**: Σχεδιασμένο για **consistent performance**, με **prewarmed workers** για να εξαλείψει τις κρύες εκκινήσεις. Προσφέρει **extended execution times, virtual networking**, και υποστηρίζει **custom Linux images**, καθιστώντας το ιδανικό για **mission-critical applications** που χρειάζονται υψηλή απόδοση και προηγμένες δυνατότητες.
- **Dedicated Plan**: Λειτουργεί σε αφιερωμένες εικονικές μηχανές με **predictable billing** και υποστηρίζει χειροκίνητη ή αυτόματη κλιμάκωση. Επιτρέπει την εκτέλεση πολλών εφαρμογών στο ίδιο σχέδιο, παρέχει **compute isolation**, και εξασφαλίζει **secure network access** μέσω App Service Environments, καθιστώντας το ιδανικό για **long-running applications** που χρειάζονται συνεπή κατανομή πόρων. - **Dedicated Plan**: Λειτουργεί σε αφιερωμένες εικονικές μηχανές με **predictable billing** και υποστηρίζει χειροκίνητη ή αυτόματη κλιμάκωση. Επιτρέπει την εκτέλεση πολλών εφαρμογών στο ίδιο σχέδιο, παρέχει **compute isolation**, και εξασφαλίζει **secure network access** μέσω App Service Environments, καθιστώντας το ιδανικό για **long-running applications** που χρειάζονται συνεπή κατανομή πόρων.
- **Container Apps**: Επιτρέπει την ανάπτυξη **containerized function apps** σε ένα διαχειριζόμενο περιβάλλον, παράλληλα με μικροϋπηρεσίες και APIs. Υποστηρίζει προσαρμοσμένες βιβλιοθήκες, μετανάστευση κληρονομημένων εφαρμογών, και **GPU processing**, εξαλείφοντας τη διαχείριση του Kubernetes cluster. Ιδανικό για **event-driven, scalable containerized applications**. - **Container Apps**: Επιτρέπει την ανάπτυξη **containerized function apps** σε ένα διαχειριζόμενο περιβάλλον, παράλληλα με μικροϋπηρεσίες και APIs. Υποστηρίζει προσαρμοσμένες βιβλιοθήκες, μετανάστευση κληρονομημένων εφαρμογών, και **GPU processing**, εξαλείφοντας τη διαχείριση του Kubernetes cluster. Ιδανικό για **event-driven, scalable containerized applications**.
### **Storage Buckets** ### **Storage Buckets**
Όταν δημιουργείτε μια νέα Function App που δεν είναι κοντεϊνεροποιημένη (αλλά δίνετε τον κώδικα για εκτέλεση), τα **κωδικοποιημένα και άλλα δεδομένα που σχετίζονται με τη Function θα αποθηκευτούν σε έναν λογαριασμό Storage**. Από προεπιλογή, η διαδικτυακή κονσόλα θα δημιουργήσει έναν νέο ανά λειτουργία για να αποθηκεύσει τον κώδικα. Όταν δημιουργείτε μια νέα Function App που δεν είναι κοντεϊνερized (αλλά δίνετε τον κώδικα για εκτέλεση), τα **κωδικοποιημένα και άλλα δεδομένα που σχετίζονται με τη Function θα αποθηκευτούν σε έναν λογαριασμό Storage**. Από προεπιλογή, η διαδικτυακή κονσόλα θα δημιουργήσει έναν νέο ανά λειτουργία για να αποθηκεύσει τον κώδικα.
Επιπλέον, τροποποιώντας τον κώδικα μέσα στο bucket (στα διάφορα φορμά που μπορεί να αποθηκευτεί), ο **κώδικας της εφαρμογής θα τροποποιηθεί στον νέο και θα εκτελείται** την επόμενη φορά που θα κληθεί η Function. Επιπλέον, τροποποιώντας τον κώδικα μέσα στο bucket (στα διάφορα φορμά που μπορεί να αποθηκευτεί), ο **κώδικας της εφαρμογής θα τροποποιηθεί στον νέο και θα εκτελείται** την επόμενη φορά που θα κληθεί η Function.
> [!CAUTION] > [!CAUTION]
> Αυτό είναι πολύ ενδιαφέρον από την προοπτική ενός επιτιθέμενου καθώς η **πρόσβαση εγγραφής σε αυτό το bucket** θα επιτρέψει σε έναν επιτιθέμενο να **συμβιβάσει τον κώδικα και να κλιμακώσει τα προνόμια** στις διαχειριζόμενες ταυτότητες μέσα στην Function App. > Αυτό είναι πολύ ενδιαφέρον από την προοπτική ενός επιτιθέμενου καθώς η **write access πάνω σε αυτό το bucket** θα επιτρέψει σε έναν επιτιθέμενο να **συμβιβάσει τον κώδικα και να κλιμακώσει τα προνόμια** στις διαχειριζόμενες ταυτότητες μέσα στην Function App.
> >
> Περισσότερα σχετικά με αυτό στην **ενότητα κλιμάκωσης προνομίων**. > Περισσότερα σχετικά με αυτό στην **ενότητα κλιμάκωσης προνομίων**.
Είναι επίσης δυνατό να βρείτε τα **master και functions keys** αποθηκευμένα στον λογαριασμό storage στο κοντέινερ **`azure-webjobs-secrets`** μέσα στον φάκελο **`<app-name>`** στα αρχεία JSON που μπορείτε να βρείτε μέσα. Είναι επίσης δυνατό να βρείτε τα **master και functions keys** αποθηκευμένα στον λογαριασμό storage στο κοντέινερ **`azure-webjobs-secrets`** μέσα στον φάκελο **`<app-name>`** στα αρχεία JSON που μπορείτε να βρείτε μέσα.
Σημειώστε ότι οι Functions επιτρέπουν επίσης την αποθήκευση του κώδικα σε μια απομακρυσμένη τοποθεσία απλά υποδεικνύοντας το URL της. Σημειώστε ότι οι Functions επιτρέπουν επίσης την αποθήκευση του κώδικα σε μια απομακρυσμένη τοποθεσία απλά υποδεικνύοντας το URL σε αυτήν.
### Networking ### Networking
Χρησιμοποιώντας έναν HTTP trigger: Χρησιμοποιώντας έναν HTTP trigger:
- Είναι δυνατό να δώσετε **πρόσβαση σε μια λειτουργία από όλο το Διαδίκτυο** χωρίς να απαιτείται καμία πιστοποίηση ή να δώσετε πρόσβαση με βάση το IAM. Αν και είναι επίσης δυνατό να περιορίσετε αυτή την πρόσβαση. - Είναι δυνατό να δώσετε **πρόσβαση σε μια λειτουργία από όλο το Διαδίκτυο** χωρίς να απαιτείται καμία αυθεντικοποίηση ή να δώσετε πρόσβαση με βάση το IAM. Αν και είναι επίσης δυνατό να περιορίσετε αυτήν την πρόσβαση.
- Είναι επίσης δυνατό να **δώσετε ή να περιορίσετε την πρόσβαση** σε μια Function App από **ένα εσωτερικό δίκτυο (VPC)**. - Είναι επίσης δυνατό να **δώσετε ή να περιορίσετε την πρόσβαση** σε μια Function App από **ένα εσωτερικό δίκτυο (VPC)**.
> [!CAUTION] > [!CAUTION]
@@ -44,7 +44,7 @@
### **Function App Settings & Environment Variables** ### **Function App Settings & Environment Variables**
Είναι δυνατό να ρυθμίσετε μεταβλητές περιβάλλοντος μέσα σε μια εφαρμογή, οι οποίες μπορεί να περιέχουν ευαίσθητες πληροφορίες. Επιπλέον, από προεπιλογή οι env μεταβλητές **`AzureWebJobsStorage`** και **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (μεταξύ άλλων) δημιουργούνται. Αυτές είναι ιδιαίτερα ενδιαφέρουσες γιατί **περιέχουν το κλειδί λογαριασμού για τον έλεγχο με ΠΛΗΡΗ δικαιώματα του λογαριασμού storage που περιέχει τα δεδομένα της εφαρμογής**. Αυτές οι ρυθμίσεις είναι επίσης απαραίτητες για την εκτέλεση του κώδικα από τον Λογαριασμό Storage. Είναι δυνατό να ρυθμίσετε μεταβλητές περιβάλλοντος μέσα σε μια εφαρμογή, οι οποίες μπορεί να περιέχουν ευαίσθητες πληροφορίες. Επιπλέον, από προεπιλογή οι env μεταβλητές **`AzureWebJobsStorage`** και **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (μεταξύ άλλων) δημιουργούνται. Αυτές είναι ιδιαίτερα ενδιαφέρουσες γιατί **περιέχουν το κλειδί λογαριασμού για τον έλεγχο με ΠΛΗΡΗ δικαιώματα τον λογαριασμό storage που περιέχει τα δεδομένα της εφαρμογής**. Αυτές οι ρυθμίσεις είναι επίσης απαραίτητες για την εκτέλεση του κώδικα από τον λογαριασμό Storage.
Αυτές οι env μεταβλητές ή παράμετροι ρύθμισης ελέγχουν επίσης πώς η Function εκτελεί τον κώδικα, για παράδειγμα αν **`WEBSITE_RUN_FROM_PACKAGE`** υπάρχει, θα υποδεικνύει το URL όπου βρίσκεται ο κώδικας της εφαρμογής. Αυτές οι env μεταβλητές ή παράμετροι ρύθμισης ελέγχουν επίσης πώς η Function εκτελεί τον κώδικα, για παράδειγμα αν **`WEBSITE_RUN_FROM_PACKAGE`** υπάρχει, θα υποδεικνύει το URL όπου βρίσκεται ο κώδικας της εφαρμογής.
@@ -52,7 +52,7 @@
Μέσα στο linux sandbox ο πηγαίος κώδικας βρίσκεται στο **`/home/site/wwwroot`** στο αρχείο **`function_app.py`** (αν χρησιμοποιείται python) ο χρήστης που εκτελεί τον κώδικα είναι **`app`** (χωρίς δικαιώματα sudo). Μέσα στο linux sandbox ο πηγαίος κώδικας βρίσκεται στο **`/home/site/wwwroot`** στο αρχείο **`function_app.py`** (αν χρησιμοποιείται python) ο χρήστης που εκτελεί τον κώδικα είναι **`app`** (χωρίς δικαιώματα sudo).
Σε μια **Windows** function που χρησιμοποιεί NodeJS, ο κώδικας βρισκόταν στο **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, το όνομα χρήστη ήταν **`mawsFnPlaceholder8_f_v4_node_20_x86`** και ήταν μέρος των **groups**: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`. Σε μια **Windows** function που χρησιμοποιεί NodeJS ο κώδικας βρισκόταν στο **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, το όνομα χρήστη ήταν **`mawsFnPlaceholder8_f_v4_node_20_x86`** και ήταν μέρος των **groups**: `Mandatory Label\High Mandatory Level Label`, `Everyone`, `BUILTIN\Users`, `NT AUTHORITY\INTERACTIVE`, `CONSOLE LOGON`, `NT AUTHORITY\Authenticated Users`, `NT AUTHORITY\This Organization`, `BUILTIN\IIS_IUSRS`, `LOCAL`, `10-30-4-99\Dwas Site Users`.
### **Managed Identities & Metadata** ### **Managed Identities & Metadata**
@@ -61,22 +61,22 @@
Η **system assigned** θα είναι μια διαχειριζόμενη ταυτότητα που **μόνο η λειτουργία** που έχει ανατεθεί θα μπορεί να χρησιμοποιήσει, ενώ οι **user assigned** διαχειριζόμενες ταυτότητες είναι διαχειριζόμενες ταυτότητες που **οποιαδήποτε άλλη υπηρεσία Azure θα μπορεί να χρησιμοποιήσει**. Η **system assigned** θα είναι μια διαχειριζόμενη ταυτότητα που **μόνο η λειτουργία** που έχει ανατεθεί θα μπορεί να χρησιμοποιήσει, ενώ οι **user assigned** διαχειριζόμενες ταυτότητες είναι διαχειριζόμενες ταυτότητες που **οποιαδήποτε άλλη υπηρεσία Azure θα μπορεί να χρησιμοποιήσει**.
> [!NOTE] > [!NOTE]
> Ακριβώς όπως στις [**VMs**](vms/index.html), οι Functions μπορούν να έχουν **1 system assigned** διαχειριζόμενη ταυτότητα και **πολλές user assigned**, επομένως είναι πάντα σημαντικό να προσπαθείτε να βρείτε όλες αυτές αν συμβιβάσετε τη λειτουργία γιατί μπορεί να μπορείτε να κλιμακώσετε προνόμια σε πολλές διαχειριζόμενες ταυτότητες από μόνο μία Function. > Ακριβώς όπως στις [**VMs**](vms/index.html), οι Functions μπορούν να έχουν **1 system assigned** διαχειριζόμενη ταυτότητα και **πολλές user assigned**, επομένως είναι πάντα σημαντικό να προσπαθείτε να βρείτε όλες αυτές αν συμβιβάσετε τη λειτουργία γιατί μπορεί να είστε σε θέση να κλιμακώσετε τα προνόμια σε πολλές διαχειριζόμενες ταυτότητες από μόνο μία Function.
> >
> Αν δεν χρησιμοποιείται μια διαχειριζόμενη ταυτότητα συστήματος αλλά μία ή περισσότερες διαχειριζόμενες ταυτότητες χρηστών είναι συνδεδεμένες σε μια λειτουργία, από προεπιλογή δεν θα μπορείτε να αποκτήσετε κανένα token. > Αν δεν χρησιμοποιείται καμία διαχειριζόμενη ταυτότητα συστήματος αλλά μία ή περισσότερες διαχειριζόμενες ταυτότητες χρηστών είναι συνδεδεμένες σε μια λειτουργία, από προεπιλογή δεν θα μπορείτε να αποκτήσετε κανένα token.
Είναι δυνατό να χρησιμοποιήσετε τα [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) για να αποκτήσετε tokens από την προεπιλεγμένη διαχειριζόμενη ταυτότητα από το endpoint μεταδεδομένων. Ή μπορείτε να τα αποκτήσετε **χειροκίνητα** όπως εξηγείται σε: Είναι δυνατό να χρησιμοποιήσετε τα [**PEASS scripts**](https://github.com/peass-ng/PEASS-ng) για να αποκτήσετε tokens από την προεπιλεγμένη διαχειριζόμενη ταυτότητα από το metadata endpoint. Ή μπορείτε να τα αποκτήσετε **χειροκίνητα** όπως εξηγείται σε:
{% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %} {% embed url="https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#azure-vm" %}
Σημειώστε ότι πρέπει να βρείτε έναν τρόπο να **ελέγξετε όλες τις Managed Identities που έχει συνδεδεμένες μια λειτουργία** καθώς αν δεν το υποδείξετε, το endpoint μεταδεδομένων θα **χρησιμοποιεί μόνο την προεπιλεγμένη** (ελέγξτε τον προηγούμενο σύνδεσμο για περισσότερες πληροφορίες). Σημειώστε ότι πρέπει να βρείτε έναν τρόπο να **ελέγξετε όλες τις Managed Identities που έχει συνδεδεμένες μια λειτουργία** καθώς αν δεν το υποδείξετε, το metadata endpoint θα **χρησιμοποιεί μόνο την προεπιλεγμένη** (ελέγξτε τον προηγούμενο σύνδεσμο για περισσότερες πληροφορίες).
## Access Keys ## Access Keys
> [!NOTE] > [!NOTE]
> Σημειώστε ότι δεν υπάρχουν δικαιώματα RBAC για να δώσετε πρόσβαση σε χρήστες να καλέσουν τις λειτουργίες. Η **κλήση της λειτουργίας εξαρτάται από τον ενεργοποιητή** που επιλέχθηκε κατά τη δημιουργία της και αν επιλέχθηκε ένας HTTP Trigger, μπορεί να χρειαστεί να χρησιμοποιήσετε ένα **access key**. > Σημειώστε ότι δεν υπάρχουν δικαιώματα RBAC για να δώσετε πρόσβαση σε χρήστες για να καλέσουν τις λειτουργίες. Η **κλήση της λειτουργίας εξαρτάται από τον ενεργοποιητή** που επιλέχθηκε κατά τη δημιουργία της και αν επιλέχθηκε ένας HTTP Trigger, μπορεί να χρειαστεί να χρησιμοποιήσετε ένα **access key**.
Όταν δημιουργείτε ένα endpoint μέσα σε μια λειτουργία χρησιμοποιώντας έναν **HTTP trigger**, είναι δυνατό να υποδείξετε το **access key authorization level** που απαιτείται για να ενεργοποιήσετε τη λειτουργία. Διατίθενται τρεις επιλογές: Όταν δημιουργείτε ένα endpoint μέσα σε μια λειτουργία χρησιμοποιώντας έναν **HTTP trigger** είναι δυνατό να υποδείξετε το **access key authorization level** που απαιτείται για να ενεργοποιήσετε τη λειτουργία. Διατίθενται τρεις επιλογές:
- **ANONYMOUS**: **Όλοι** μπορούν να έχουν πρόσβαση στη λειτουργία μέσω του URL. - **ANONYMOUS**: **Όλοι** μπορούν να έχουν πρόσβαση στη λειτουργία μέσω του URL.
- **FUNCTION**: Το endpoint είναι προσβάσιμο μόνο σε χρήστες που χρησιμοποιούν ένα **function, host ή master key**. - **FUNCTION**: Το endpoint είναι προσβάσιμο μόνο σε χρήστες που χρησιμοποιούν ένα **function, host ή master key**.
@@ -84,8 +84,8 @@
**Τύποι κλειδιών:** **Τύποι κλειδιών:**
- **Function Keys:** Τα κλειδιά λειτουργίας μπορεί να είναι είτε προεπιλεγμένα είτε καθορισμένα από τον χρήστη και έχουν σχεδιαστεί για να παρέχουν πρόσβαση αποκλειστικά σε **συγκεκριμένα endpoints λειτουργίας** εντός μιας Function App επιτρέποντας μια πιο λεπτομερή πρόσβαση στα endpoints. - **Function Keys:** Τα κλειδιά λειτουργίας μπορεί να είναι είτε προεπιλεγμένα είτε καθορισμένα από τον χρήστη και έχουν σχεδιαστεί για να παρέχουν πρόσβαση αποκλειστικά σε **συγκεκριμένα endpoints λειτουργίας** μέσα σε μια Function App επιτρέποντας μια πιο λεπτομερή πρόσβαση στα endpoints.
- **Host Keys:** Τα κλειδιά host, τα οποία μπορεί επίσης να είναι προεπιλεγμένα ή καθορισμένα από τον χρήστη, παρέχουν πρόσβαση σε **όλα τα endpoints λειτουργίας εντός μιας Function App με επίπεδο πρόσβασης FUNCTION**. - **Host Keys:** Τα κλειδιά host, τα οποία μπορεί επίσης να είναι προεπιλεγμένα ή καθορισμένα από τον χρήστη, παρέχουν πρόσβαση σε **όλα τα endpoints λειτουργίας μέσα σε μια Function App με επίπεδο πρόσβασης FUNCTION**.
- **Master Key:** Το master key (`_master`) χρησιμεύει ως διοικητικό κλειδί που προσφέρει αυξημένα δικαιώματα, συμπεριλαμβανομένης της πρόσβασης σε όλα τα endpoints λειτουργίας (συμπεριλαμβανομένου του επιπέδου πρόσβασης ADMIN). Αυτό το **κλειδί δεν μπορεί να ανακληθεί.** - **Master Key:** Το master key (`_master`) χρησιμεύει ως διοικητικό κλειδί που προσφέρει αυξημένα δικαιώματα, συμπεριλαμβανομένης της πρόσβασης σε όλα τα endpoints λειτουργίας (συμπεριλαμβανομένου του επιπέδου πρόσβασης ADMIN). Αυτό το **κλειδί δεν μπορεί να ανακληθεί.**
- **System Keys:** Τα συστήματα κλειδιά είναι **διαχειριζόμενα από συγκεκριμένες επεκτάσεις** και απαιτούνται για την πρόσβαση σε webhook endpoints που χρησιμοποιούνται από εσωτερικά συστατικά. Παραδείγματα περιλαμβάνουν τον Event Grid trigger και τις Durable Functions, οι οποίες χρησιμοποιούν συστήματα κλειδιά για να αλληλεπιδρούν με τις αντίστοιχες APIs τους με ασφάλεια. - **System Keys:** Τα συστήματα κλειδιά είναι **διαχειριζόμενα από συγκεκριμένες επεκτάσεις** και απαιτούνται για την πρόσβαση σε webhook endpoints που χρησιμοποιούνται από εσωτερικά συστατικά. Παραδείγματα περιλαμβάνουν τον Event Grid trigger και τις Durable Functions, οι οποίες χρησιμοποιούν συστήματα κλειδιά για να αλληλεπιδρούν με τις αντίστοιχες APIs τους με ασφάλεια.
@@ -96,7 +96,7 @@
### Basic Authentication ### Basic Authentication
Ακριβώς όπως στις App Services, οι Functions υποστηρίζουν επίσης βασική πιστοποίηση για σύνδεση στο **SCM** και **FTP** για την ανάπτυξη κώδικα χρησιμοποιώντας ένα **όνομα χρήστη και κωδικό πρόσβασης σε ένα URL** που παρέχεται από την Azure. Περισσότερες πληροφορίες σχετικά με αυτό σε: Ακριβώς όπως στις App Services, οι Functions υποστηρίζουν επίσης βασική αυθεντικοποίηση για σύνδεση στο **SCM** και **FTP** για την ανάπτυξη κώδικα χρησιμοποιώντας ένα **όνομα χρήστη και κωδικό πρόσβασης σε ένα URL** που παρέχεται από το Azure. Περισσότερες πληροφορίες σχετικά με αυτό σε:
{{#ref}} {{#ref}}
az-app-services.md az-app-services.md
@@ -104,7 +104,7 @@ az-app-services.md
### Github Based Deployments ### Github Based Deployments
Όταν μια λειτουργία δημιουργείται από ένα Github repo, η διαδικτυακή κονσόλα Azure επιτρέπει να **δημιουργηθεί αυτόματα ένα Github Workflow σε ένα συγκεκριμένο αποθετήριο** έτσι ώστε κάθε φορά που αυτό το αποθετήριο ενημερώνεται, ο κώδικας της λειτουργίας ενημερώνεται. Στην πραγματικότητα, το Github Action yaml για μια python function φαίνεται έτσι: Όταν μια λειτουργία δημιουργείται από ένα Github repo, η διαδικτυακή κονσόλα Azure επιτρέπει να **δημιουργηθεί αυτόματα ένα Github Workflow σε ένα συγκεκριμένο αποθετήριο** έτσι ώστε κάθε φορά που αυτό το αποθετήριο ενημερώνεται, ο κώδικας της λειτουργίας να ενημερώνεται. Στην πραγματικότητα, το Github Action yaml για μια python function φαίνεται έτσι:
<details> <details>

View File

@@ -11,7 +11,7 @@ Logic Apps παρέχει έναν οπτικό σχεδιαστή για τη
### Examples ### Examples
- **Automating Data Pipelines**: Logic Apps μπορεί να αυτοματοποιήσει **διαδικασίες μεταφοράς και μετασχηματισμού δεδομένων** σε συνδυασμό με το Azure Data Factory. Αυτό είναι χρήσιμο για τη δημιουργία κλιμακούμενων και αξιόπιστων ροών δεδομένων που μεταφέρουν και μετασχηματίζουν δεδομένα μεταξύ διαφόρων αποθηκευτικών χώρων δεδομένων, όπως το Azure SQL Database και το Azure Blob Storage, βοηθώντας σε αναλύσεις και επιχειρηματική ευφυΐα. - **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, επιτρέποντας τη δυναμική επεξεργασία δεδομένων. - **Integrating with Azure Functions**: Logic Apps μπορεί να λειτουργήσει παράλληλα με το Azure Functions για την ανάπτυξη **πολύπλοκων, εκδηλωτικών εφαρμογών που κλιμακώνονται κατά ανάγκη** και ενσωματώνονται απρόσκοπτα με άλλες υπηρεσίες Azure. Ένα παράδειγμα χρήσης είναι η χρήση μιας Logic App για την ενεργοποίηση μιας Azure Function ως απάντηση σε ορισμένα γεγονότα, όπως αλλαγές σε έναν λογαριασμό Azure Storage, επιτρέποντας τη δυναμική επεξεργασία δεδομένων.
### Visualize a LogicAPP ### Visualize a LogicAPP
@@ -39,9 +39,9 @@ curl -XPOST 'https://prod-44.westus.logic.azure.com:443/workflows/2d8de4be6e9741
* **Κανονικό** * **Κανονικό**
- **Σχέδιο Υπηρεσίας Ροής Εργασίας**: αφιερωμένοι υπολογιστικοί πόροι με ενσωμάτωση VNET για δικτύωση και χρεώσεις ανά περίπτωση σχεδίου υπηρεσίας ροής εργασίας. Είναι κατάλληλο για πιο απαιτητικά φορτία εργασίας που απαιτούν μεγαλύτερο έλεγχο. - **Σχέδιο Υπηρεσίας Ροής Εργασίας**: αφιερωμένοι υπολογιστικοί πόροι με ενσωμάτωση VNET για δικτύωση και χρεώσεις ανά περίπτωση σχεδίου υπηρεσίας ροής εργασίας. Είναι κατάλληλο για πιο απαιτητικά φορτία εργασίας που απαιτούν μεγαλύτερο έλεγχο.
- **Περιβάλλον Υπηρεσίας Εφαρμογών V3** αφιερωμένοι υπολογιστικοί πόροι με πλήρη απομόνωση και κλιμάκωση. Επίσης, ενσωματώνεται με VNET για δικτύωση και χρησιμοποιεί ένα μοντέλο τιμολόγησης βασισμένο σε περιπτώσεις Υπηρεσίας Εφαρμογών εντός του περιβάλλοντος. Αυτό είναι ιδανικό για εφαρμογές επιπέδου επιχείρησης που χρειάζονται υψηλή απομόνωση. - **Περιβάλλον Υπηρεσίας Εφαρμογών V3** αφιερωμένοι υπολογιστικοί πόροι με πλήρη απομόνωση και κλιμάκωση. Επίσης, ενσωματώνεται με VNET για δικτύωση και χρησιμοποιεί ένα μοντέλο τιμολόγησης βασισμένο σε περιπτώσεις Υπηρεσίας Εφαρμογών εντός του περιβάλλοντος. Αυτό είναι ιδανικό για εφαρμογές επιπέδου επιχείρησης που χρειάζονται υψηλή απομόνωση.
- **Υβριδικό** σχεδιασμένο για τοπική επεξεργασία και υποστήριξη πολλών σύννεφων. Επιτρέπει τη διαχείριση υπολογιστικών πόρων από τον πελάτη με τοπική πρόσβαση στο δίκτυο και χρησιμοποιεί το Kubernetes Event-Driven Autoscaling (KEDA). - **Υβριδικό** σχεδιασμένο για τοπική επεξεργασία και υποστήριξη πολλών σύννεφων. Επιτρέπει διαχειριζόμενους από τον πελάτη υπολογιστικούς πόρους με τοπική πρόσβαση δικτύου και χρησιμοποιεί το Kubernetes Event-Driven Autoscaling (KEDA).
### Αριθμητική ### Αρίθμηση
{% tabs %} {% tabs %}
{% tab title="az cli" %} {% tab title="az cli" %}
@@ -146,13 +146,13 @@ Get-AzLogicAppTriggerHistory -ResourceGroupName "<ResourceGroupName>" -Name "<Lo
### Λογαριασμοί Ενοποίησης ### Λογαριασμοί Ενοποίησης
**Λογαριασμοί Ενοποίησης**, είναι μια δυνατότητα των Azure Logic Apps. Οι Λογαριασμοί Ενοποίησης χρησιμοποιούνται για να διευκολύνουν τις ενοποιήσεις σε επίπεδο επιχείρησης, επιτρέποντας προηγμένες δυνατότητες B2B, όπως EDI, AS2 και διαχείριση XML schema. Οι Λογαριασμοί Ενοποίησης είναι ένα δοχείο στο Azure που αποθηκεύει τα παρακάτω αντικείμενα που χρησιμοποιούνται για τα Logic Apps: **Λογαριασμοί Ενοποίησης**, είναι μια δυνατότητα των Azure Logic Apps. Οι Λογαριασμοί Ενοποίησης χρησιμοποιούνται για να διευκολύνουν τις ενοποιήσεις σε επίπεδο επιχείρησης, επιτρέποντας προηγμένες δυνατότητες B2B, όπως EDI, AS2 και διαχείριση XML schema. Οι Λογαριασμοί Ενοποίησης είναι ένα δοχείο στο Azure που αποθηκεύει τα παρακάτω αντικείμενα που χρησιμοποιούνται για τα Logic Apps:
* Σχήματα: Διαχείριση XML σχημάτων για την επικύρωση και επεξεργασία μηνυμάτων στον λογαριασμό ενοποίησης σας. * Σχήματα: Διαχείριση XML σχημάτων για την επικύρωση και επεξεργασία μηνυμάτων στον λογαριασμό σας ενοποίησης.
* Χάρτες: Ρύθμιση μετασχηματισμών βασισμένων σε XSLT για τη μετατροπή μορφών δεδομένων μέσα στις ροές εργασίας ενοποίησης σας. * Χάρτες: Ρύθμιση μετασχηματισμών βασισμένων σε XSLT για τη μετατροπή μορφών δεδομένων μέσα στις ροές εργασίας ενοποίησης.
* Συγκροτήματα: Διαχείριση συγκροτημάτων λογαριασμού ενοποίησης για την απλοποίηση της λογικής και της επεξεργασίας δεδομένων. * Συγκροτήματα: Διαχείριση συγκροτημάτων λογαριασμού ενοποίησης για την απλοποίηση της λογικής και της επεξεργασίας δεδομένων.
* Πιστοποιητικά: Διαχείριση πιστοποιητικών για την κρυπτογράφηση και την υπογραφή μηνυμάτων, εξασφαλίζοντας ασφαλή επικοινωνία. * Πιστοποιητικά: Διαχείριση πιστοποιητικών για την κρυπτογράφηση και την υπογραφή μηνυμάτων, εξασφαλίζοντας ασφαλή επικοινωνία.
* Εταίροι: Διαχείριση πληροφοριών εμπορικών εταίρων για B2B συναλλαγές, επιτρέποντας απρόσκοπτες ενοποιήσεις. * Εταίροι: Διαχείριση πληροφοριών εμπορικών εταίρων για B2B συναλλαγές, επιτρέποντας απρόσκοπτες ενοποιήσεις.
* Συμφωνίες: Ρύθμιση κανόνων και ρυθμίσεων για την ανταλλαγή δεδομένων με εμπορικούς εταίρους (π.χ., EDI, AS2). * Συμφωνίες: Ρύθμιση κανόνων και ρυθμίσεων για την ανταλλαγή δεδομένων με εμπορικούς εταίρους (π.χ., EDI, AS2).
* Ρυθμίσεις Παρτίδας: Διαχείριση ρυθμίσεων επεξεργασίας παρτίδων για την ομαδοποίηση και την αποτελεσματική επεξεργασία μηνυμάτων. * Ρυθμίσεις Παρτίδας: Διαχείριση ρυθμίσεων επεξεργασίας παρτίδων για την ομαδοποίηση και επεξεργασία μηνυμάτων αποτελεσματικά.
* RosettaNet PIP: Ρύθμιση διαδικασιών διεπαφής εταίρων RosettaNet (PIPs) για τον εκσυγχρονισμό της B2B επικοινωνίας. * RosettaNet PIP: Ρύθμιση διαδικασιών διεπαφής εταίρων RosettaNet (PIPs) για τον εκσυγχρονισμό της B2B επικοινωνίας.
#### Αρίθμηση #### Αρίθμηση

View File

@@ -9,7 +9,7 @@
### Key Concepts ### Key Concepts
1. **Queues:** ο σκοπός του είναι να αποθηκεύει μηνύματα μέχρι να είναι έτοιμος ο παραλήπτης. 1. **Queues:** ο σκοπός του είναι να αποθηκεύει μηνύματα μέχρι να είναι έτοιμος ο παραλήπτης.
- Τα μηνύματα είναι ταξινομημένα, χρονοσημασμένα και αποθηκευμένα με ανθεκτικότητα. - Τα μηνύματα είναι διατεταγμένα, χρονοσημανμένα και αποθηκεύονται με ανθεκτικότητα.
- Παραδίδονται σε λειτουργία pull (ανάκτηση κατόπιν αιτήματος). - Παραδίδονται σε λειτουργία pull (ανάκτηση κατόπιν αιτήματος).
- Υποστηρίζει επικοινωνία σημείου προς σημείο. - Υποστηρίζει επικοινωνία σημείου προς σημείο.
2. **Topics:** Μηχανισμός δημοσίευσης-εγγραφής για μετάδοση. 2. **Topics:** Μηχανισμός δημοσίευσης-εγγραφής για μετάδοση.
@@ -35,10 +35,10 @@
### Authorization-Rule / SAS Policy ### Authorization-Rule / SAS Policy
Οι πολιτικές SAS καθορίζουν τα δικαιώματα πρόσβασης για τις οντότητες του Azure Service Bus (Η πιο σημαντική), τις ουρές και τα θέματα. Κάθε πολιτική έχει τα εξής συστατικά: Οι πολιτικές SAS καθορίζουν τις άδειες πρόσβασης για τις οντότητες του Azure Service Bus namespace (Πιο Σημαντικό), ουρές και θέματα. Κάθε πολιτική έχει τα εξής συστατικά:
- **Permissions**: Επιλογές για να καθορίσετε τα επίπεδα πρόσβασης: - **Permissions**: Επιλογές για να καθορίσετε τα επίπεδα πρόσβασης:
- Manage: Παρέχει πλήρη έλεγχο της οντότητας, συμπεριλαμβανομένης της διαχείρισης ρυθμίσεων και δικαιωμάτων. - Manage: Παρέχει πλήρη έλεγχο της οντότητας, συμπεριλαμβανομένης της διαχείρισης ρυθμίσεων και αδειών.
- Send: Επιτρέπει την αποστολή μηνυμάτων στην οντότητα. - Send: Επιτρέπει την αποστολή μηνυμάτων στην οντότητα.
- Listen: Επιτρέπει την λήψη μηνυμάτων από την οντότητα. - Listen: Επιτρέπει την λήψη μηνυμάτων από την οντότητα.
- **Primary and Secondary Keys**: Αυτά είναι κρυπτογραφικά κλειδιά που χρησιμοποιούνται για τη δημιουργία ασφαλών tokens για την αυθεντικοποίηση πρόσβασης. - **Primary and Secondary Keys**: Αυτά είναι κρυπτογραφικά κλειδιά που χρησιμοποιούνται για τη δημιουργία ασφαλών tokens για την αυθεντικοποίηση πρόσβασης.

View File

@@ -17,7 +17,7 @@ Azure Static Web Apps είναι μια υπηρεσία cloud για τη φι
### Web App Basic Authentication ### Web App Basic Authentication
Είναι δυνατόν να **ρυθμίσετε έναν κωδικό πρόσβασης** για την πρόσβαση στην Web App. Η web κονσόλα επιτρέπει να ρυθμιστεί ώστε να προστατεύει μόνο τα περιβάλλοντα staging ή και τα δύο, staging και παραγωγής. Είναι δυνατόν να **ρυθμίσετε έναν κωδικό πρόσβασης** για την πρόσβαση στην Web App. Η διαδικτυακή κονσόλα επιτρέπει τη ρύθμιση του για να προστατεύει μόνο τα περιβάλλοντα staging ή και τα δύο, staging και παραγωγής.
Αυτή είναι η εμφάνιση μιας προστατευμένης με κωδικό πρόσβασης web app τη στιγμή που γράφεται: Αυτή είναι η εμφάνιση μιας προστατευμένης με κωδικό πρόσβασης web app τη στιγμή που γράφεται:
@@ -32,7 +32,7 @@ az rest --method GET \
### Διαδρομές & Ρόλοι ### Διαδρομές & Ρόλοι
Οι διαδρομές καθορίζουν **πώς διαχειρίζονται τα εισερχόμενα HTTP αιτήματα** μέσα σε μια στατική εφαρμογή ιστού. Ρυθμισμένες στο **`staticwebapp.config.json`** αρχείο, ελέγχουν την ανακατεύθυνση URL, τις ανακατευθύνσεις, τους περιορισμούς πρόσβασης και την εξουσιοδότηση με βάση ρόλους, διασφαλίζοντας τη σωστή διαχείριση πόρων και ασφάλεια. Οι διαδρομές καθορίζουν **πώς διαχειρίζονται τα εισερχόμενα HTTP αιτήματα** μέσα σε μια στατική εφαρμογή ιστού. Ρυθμισμένες στο **`staticwebapp.config.json`** αρχείο, ελέγχουν την ανακατεύθυνση URL, τις ανακατευθύνσεις, τους περιορισμούς πρόσβασης και την εξουσιοδότηση βάσει ρόλων, διασφαλίζοντας τη σωστή διαχείριση πόρων και ασφάλεια.
Ορισμένα παραδείγματα: Ορισμένα παραδείγματα:
```json ```json
@@ -62,7 +62,7 @@ az rest --method GET \
} }
} }
``` ```
Σημειώστε πώς είναι δυνατόν να **προστατεύσετε μια διαδρομή με έναν ρόλο**, τότε, οι χρήστες θα χρειαστεί να αυθεντικοποιηθούν στην εφαρμογή και να τους παραχωρηθεί αυτός ο ρόλος για να αποκτήσουν πρόσβαση στη διαδρομή. Είναι επίσης δυνατό να **δημιουργήσετε προσκλήσεις** που παραχωρούν συγκεκριμένους ρόλους σε συγκεκριμένους χρήστες που συνδέονται μέσω EntraID, Facebook, GitHub, Google, Twitter, κάτι που μπορεί να είναι χρήσιμο για την κλιμάκωση προνομίων εντός της εφαρμογής. Σημειώστε πώς είναι δυνατόν να **προστατεύσετε μια διαδρομή με έναν ρόλο**, τότε, οι χρήστες θα χρειαστεί να αυθεντικοποιηθούν στην εφαρμογή και να τους παραχωρηθεί αυτός ο ρόλος για να αποκτήσουν πρόσβαση στη διαδρομή. Είναι επίσης δυνατό να **δημιουργήσετε προσκλήσεις** που παραχωρούν συγκεκριμένους ρόλους σε συγκεκριμένους χρήστες που συνδέονται μέσω EntraID, Facebook, GitHub, Google, Twitter, κάτι που μπορεί να είναι χρήσιμο για την κλιμάκωση δικαιωμάτων εντός της εφαρμογής.
> [!TIP] > [!TIP]
> Σημειώστε ότι είναι δυνατόν να ρυθμίσετε την εφαρμογή έτσι ώστε **οι αλλαγές στο αρχείο `staticwebapp.config.json`** να μην γίνονται αποδεκτές. Σε αυτή την περίπτωση, μπορεί να μην είναι αρκετό να αλλάξετε απλώς το αρχείο από το Github, αλλά και να **αλλάξετε τη ρύθμιση στην εφαρμογή**. > Σημειώστε ότι είναι δυνατόν να ρυθμίσετε την εφαρμογή έτσι ώστε **οι αλλαγές στο αρχείο `staticwebapp.config.json`** να μην γίνονται αποδεκτές. Σε αυτή την περίπτωση, μπορεί να μην είναι αρκετό να αλλάξετε απλώς το αρχείο από το Github, αλλά και να **αλλάξετε τη ρύθμιση στην εφαρμογή**.
@@ -170,7 +170,7 @@ Get-AzStaticWebAppUserProvidedFunctionApp -ResourceGroupName <ResourceGroupName>
1. Fork το αποθετήριο https://github.com/staticwebdev/react-basic/generate στον λογαριασμό σας στο GitHub και ονομάστε το `my-first-static-web-app` 1. Fork το αποθετήριο https://github.com/staticwebdev/react-basic/generate στον λογαριασμό σας στο GitHub και ονομάστε το `my-first-static-web-app`
2. Στο Azure portal δημιουργήστε μια Static Web App ρυθμίζοντας την πρόσβαση στο Github και επιλέγοντας το προηγουμένως forked νέο αποθετήριο 2. Στο Azure portal δημιουργήστε μια Static Web App ρυθμίζοντας την πρόσβαση στο Github και επιλέγοντας το προηγουμένως forked νέο αποθετήριο
3. Δημιουργήστε το, περιμένετε μερικά λεπτά και ελέγξτε τη νέα σας σελίδα! 3. Δημιουργήστε το και περιμένετε μερικά λεπτά, και ελέγξτε τη νέα σας σελίδα!
## Ανάβαση Δικαιωμάτων και Μετά την Εκμετάλλευση ## Ανάβαση Δικαιωμάτων και Μετά την Εκμετάλλευση

View File

@@ -6,7 +6,7 @@
**Azure Table Storage** είναι μια NoSQL αποθήκη κλειδιού-τιμής σχεδιασμένη για την αποθήκευση μεγάλων όγκων δομημένων, μη σχεσιακών δεδομένων. Προσφέρει υψηλή διαθεσιμότητα, χαμηλή καθυστέρηση και κλιμακωσιμότητα για την αποτελεσματική διαχείριση μεγάλων συνόλων δεδομένων. Τα δεδομένα οργανώνονται σε πίνακες, με κάθε οντότητα να προσδιορίζεται από ένα partition key και ένα row key, επιτρέποντας γρήγορες αναζητήσεις. Υποστηρίζει χαρακτηριστικά όπως κρυπτογράφηση σε κατάσταση ηρεμίας, έλεγχο πρόσβασης βάσει ρόλου και υπογραφές κοινής πρόσβασης για ασφαλή, διαχειριζόμενη αποθήκευση κατάλληλη για ένα ευρύ φάσμα εφαρμογών. **Azure Table Storage** είναι μια NoSQL αποθήκη κλειδιού-τιμής σχεδιασμένη για την αποθήκευση μεγάλων όγκων δομημένων, μη σχεσιακών δεδομένων. Προσφέρει υψηλή διαθεσιμότητα, χαμηλή καθυστέρηση και κλιμακωσιμότητα για την αποτελεσματική διαχείριση μεγάλων συνόλων δεδομένων. Τα δεδομένα οργανώνονται σε πίνακες, με κάθε οντότητα να προσδιορίζεται από ένα partition key και ένα row key, επιτρέποντας γρήγορες αναζητήσεις. Υποστηρίζει χαρακτηριστικά όπως κρυπτογράφηση σε κατάσταση ηρεμίας, έλεγχο πρόσβασης βάσει ρόλου και υπογραφές κοινής πρόσβασης για ασφαλή, διαχειριζόμενη αποθήκευση κατάλληλη για ένα ευρύ φάσμα εφαρμογών.
Δεν **υπάρχει ενσωματωμένος μηχανισμός δημιουργίας αντιγράφων ασφαλείας** για την αποθήκευση πίνακα. Δεν **υπάρχει ενσωματωMechanism backup** για την αποθήκευση πίνακα.
### Keys ### Keys