mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-31 23:15:48 -08:00
Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
|
||||
## Lambda
|
||||
|
||||
Amazon Web Services (AWS) Lambda è descritta come un **servizio di calcolo** che consente l'esecuzione di codice senza la necessità di provisioning o gestione dei server. È caratterizzata dalla sua capacità di **gestire automaticamente l'allocazione delle risorse** necessarie per l'esecuzione del codice, garantendo funzionalità come alta disponibilità, scalabilità e sicurezza. Un aspetto significativo di Lambda è il suo modello di pricing, dove **i costi sono basati esclusivamente sul tempo di calcolo utilizzato**, eliminando la necessità di investimenti iniziali o obblighi a lungo termine.
|
||||
Amazon Web Services (AWS) Lambda è descritta come un **servizio di calcolo** che consente l'esecuzione di codice senza la necessità di provisioning o gestione del server. È caratterizzata dalla sua capacità di **gestire automaticamente l'allocazione delle risorse** necessarie per l'esecuzione del codice, garantendo funzionalità come alta disponibilità, scalabilità e sicurezza. Un aspetto significativo di Lambda è il suo modello di pricing, dove **i costi sono basati esclusivamente sul tempo di calcolo utilizzato**, eliminando la necessità di investimenti iniziali o obblighi a lungo termine.
|
||||
|
||||
Per chiamare una lambda è possibile invocarla **con la frequenza desiderata** (con Cloudwatch), **esporre** un **endpoint URL** e chiamarlo, invocarlo tramite **API Gateway** o anche in base a **eventi** come **cambiamenti** nei dati in un **S3** bucket o aggiornamenti a una tabella **DynamoDB**.
|
||||
Per chiamare una lambda è possibile farlo **tanto frequentemente quanto si desidera** (con Cloudwatch), **esporre** un **endpoint URL** e chiamarlo, chiamarlo tramite **API Gateway** o anche in base a **eventi** come **cambiamenti** nei dati in un **S3** bucket o aggiornamenti a una tabella **DynamoDB**.
|
||||
|
||||
Il **codice** di una lambda è memorizzato in **`/var/task`**.
|
||||
|
||||
@@ -44,13 +44,13 @@ Un layer Lambda è un archivio .zip che **può contenere codice aggiuntivo** o a
|
||||
|
||||
È possibile includere fino a **cinque layer per funzione**. Quando includi un layer in una funzione, i **contenuti vengono estratti nella directory `/opt`** nell'ambiente di esecuzione.
|
||||
|
||||
Per **definizione**, i **layer** che crei sono **privati** al tuo account AWS. Puoi scegliere di **condividere** un layer con altri account o di **rendere** il layer **pubblico**. Se le tue funzioni consumano un layer pubblicato da un account diverso, le tue funzioni possono **continuare a utilizzare la versione del layer dopo che è stata eliminata, o dopo che il tuo permesso di accesso al layer è stato revocato**. Tuttavia, non puoi creare una nuova funzione o aggiornare funzioni utilizzando una versione di layer eliminata.
|
||||
Per **definizione**, i **layer** che crei sono **privati** al tuo account AWS. Puoi scegliere di **condividere** un layer con altri account o di **rendere** il layer **pubblico**. Se le tue funzioni consumano un layer pubblicato da un altro account, le tue funzioni possono **continuare a utilizzare la versione del layer dopo che è stata eliminata, o dopo che il tuo permesso di accesso al layer è stato revocato**. Tuttavia, non puoi creare una nuova funzione o aggiornare funzioni utilizzando una versione di layer eliminata.
|
||||
|
||||
Le funzioni distribuite come immagine del contenitore non utilizzano layer. Invece, impacchetti il tuo runtime preferito, librerie e altre dipendenze nell'immagine del contenitore quando costruisci l'immagine.
|
||||
|
||||
### Lambda Extensions
|
||||
|
||||
Le estensioni Lambda migliorano le funzioni integrandosi con vari **strumenti di monitoraggio, osservabilità, sicurezza e governance**. Queste estensioni, aggiunte tramite [.zip archivi utilizzando i layer Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) o incluse nelle [distribuzioni di immagini del contenitore](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/), operano in due modalità: **interna** ed **esterna**.
|
||||
Le estensioni Lambda migliorano le funzioni integrandosi con vari **strumenti di monitoraggio, osservabilità, sicurezza e governance**. Queste estensioni, aggiunte tramite [.zip archive utilizzando i layer Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) o incluse nelle [distribuzioni di immagini del contenitore](https://aws.amazon.com/blogs/compute/working-with-lambda-layers-and-extensions-in-container-images/), operano in due modalità: **interna** ed **esterna**.
|
||||
|
||||
- Le **estensioni interne** si fondono con il processo di runtime, manipolando il suo avvio utilizzando **variabili ambientali specifiche del linguaggio** e **script wrapper**. Questa personalizzazione si applica a una gamma di runtime, inclusi **Java Correto 8 e 11, Node.js 10 e 12, e .NET Core 3.1**.
|
||||
- Le **estensioni esterne** vengono eseguite come processi separati, mantenendo l'allineamento operativo con il ciclo di vita della funzione Lambda. Sono compatibili con vari runtime come **Node.js 10 e 12, Python 3.7 e 3.8, Ruby 2.5 e 2.7, Java Corretto 8 e 11, .NET Core 3.1**, e **runtime personalizzati**.
|
||||
@@ -92,7 +92,7 @@ aws lambda list-event-source-mappings
|
||||
aws lambda list-code-signing-configs
|
||||
aws lambda list-functions-by-code-signing-config --code-signing-config-arn <arn>
|
||||
```
|
||||
### Invocare una lambda
|
||||
### Invochare una lambda
|
||||
|
||||
#### Manuale
|
||||
```bash
|
||||
@@ -103,12 +103,12 @@ aws lambda invoke --function-name FUNCTION_NAME /tmp/out
|
||||
## user_name = event['user_name']
|
||||
aws lambda invoke --function-name <name> --cli-binary-format raw-in-base64-out --payload '{"policy_names": ["AdministratorAccess], "user_name": "sdf"}' out.txt
|
||||
```
|
||||
#### Via URL esposta
|
||||
#### Tramite URL esposta
|
||||
```bash
|
||||
aws lambda list-function-url-configs --function-name <function_name> #Get lambda URL
|
||||
aws lambda get-function-url-config --function-name <function_name> #Get lambda URL
|
||||
```
|
||||
#### Call Lambda function via URL
|
||||
#### Chiama la funzione Lambda tramite URL
|
||||
|
||||
Ora è il momento di scoprire le possibili funzioni lambda da eseguire:
|
||||
```
|
||||
@@ -152,7 +152,7 @@ Nella pagina seguente puoi controllare come **abusare dei permessi di Lambda per
|
||||
../aws-unauthenticated-enum-access/aws-lambda-unauthenticated-access.md
|
||||
{{#endref}}
|
||||
|
||||
### Post Sfruttamento
|
||||
### Post Exploitation
|
||||
|
||||
{{#ref}}
|
||||
../aws-post-exploitation/aws-lambda-post-exploitation/
|
||||
|
||||
Reference in New Issue
Block a user