Considerazioni sulla sicurezza per i punti di accesso S3 Object Lambda - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Considerazioni sulla sicurezza per i punti di accesso S3 Object Lambda

Con Amazon S3 Object Lambda, puoi eseguire trasformazioni personalizzate sui dati non appena escono da Amazon S3 utilizzando la scalabilità e la flessibilità di una piattaforma di elaborazione. AWS Lambda S3 e Lambda rimangono protetti per impostazione predefinita, ma per conservare questo livello di sicurezza è necessaria un'attenzione speciale da parte dell'autore della funzione Lambda. S3 Object Lambda richiede che tutti gli accessi siano effettuati da entità autenticate (nessun accesso anonimo) e su HTTPS.

Per ridurre i rischi per la sicurezza, è consigliabile:

  • Definire l'ambito del ruolo di esecuzione della funzione Lambda in base a un set di autorizzazioni il più limitato possibile.

  • Se possibile, assicurati che la funzione Lambda acceda ad Amazon S3 tramite l'URL prefirmato fornito.

Configurazione delle policy IAM

Gli access point S3 supportano policy relative alle risorse AWS Identity and Access Management (IAM) che consentono di controllare l'uso del punto di accesso in base alla risorsa, all'utente o ad altre condizioni. Per ulteriori informazioni, consulta Configurazione delle policy IAM per i punti di accesso Lambda per oggetti.

Funzionamento della crittografia

Poiché gli access point Object Lambda utilizzano sia Amazon S3 che Amazon S3 AWS Lambda, esistono differenze nel comportamento di crittografia. Per ulteriori informazioni sul comportamento della crittografia predefinita di S3, consulta Impostazione del comportamento predefinito della crittografia lato server per i bucket Amazon S3.

  • Quando si utilizza la crittografia lato server S3 con i punti di accesso Lambda per oggetti, l'oggetto viene decrittato prima di essere inviato a Lambda. Dopo l'invio a Lambda, l'oggetto viene elaborato in modo non crittografato (nel caso di una richiesta GET o HEAD).

  • Per evitare la registrazione della chiave di crittografia, S3 rifiuterà le richieste GET e HEAD relative agli oggetti crittografati utilizzando la crittografia lato server con chiavi fornite dal cliente (SSE-C). Tuttavia, la funzione Lambda può ancora recuperare questi oggetti a condizione che abbia accesso alla chiave fornita dal client.

  • Quando utilizzi la crittografia lato client S3 con i punti di accesso Lambda per oggetti, assicurati che Lambda abbia accesso alla chiave di crittografia affinché possa decrittare ed eseguire nuovamente la crittografia dell'oggetto.

Sicurezza dei punti di accesso

Lambda per oggetti S3 utilizza due punti di accesso, un punto di accesso Lambda per oggetti e un punto di accesso S3 standard, denominato punto di accesso di supporto. Quando effettui una richiesta a un punto di accesso Lambda per oggetti, S3 richiama Lambda per tuo conto o delega la richiesta al punto di accesso di supporto, a seconda della configurazione di Lambda per oggetti S3. Quando Lambda viene richiamato per una richiesta, S3 genera un URL prefirmato per l'oggetto per tuo conto tramite il punto di accesso di supporto. Quando viene richiamata, la funzione Lambda riceverà questo URL come input.

È possibile impostare la funzione Lambda in modo che utilizzi questo URL prefirmato per recuperare l'oggetto originale invece di richiamare direttamente S3. Questo modello consente di applicare limiti di sicurezza migliori agli oggetti. È possibile limitare l'accesso diretto agli oggetti tramite bucket S3 o punti di accesso S3 a un set limitato di ruoli o utenti IAM. Questo approccio protegge anche le funzioni Lambda dall'essere soggette al problema del "confused deputy", in cui una funzione configurata erroneamente con autorizzazioni diverse rispetto all'invoker potrebbe consentire o negare l'accesso agli oggetti quando non dovrebbe.

Accesso pubblico ai punti di accesso Object Lambda

S3 Object Lambda non consente l'accesso anonimo o pubblico perché Amazon S3 deve autorizzare l'identità per completare qualsiasi richiesta di S3 Object Lambda. Quando si richiamano le richieste tramite un punto di accesso Lambda per oggetti, è necessaria l'autorizzazione lambda:InvokeFunction per la funzione Lambda configurata. Allo stesso modo, quando si richiamano altre operazioni di API tramite un punto di accesso Lambda per oggetti, è necessario disporre delle autorizzazioni s3:*.

Senza queste autorizzazioni, le richieste per richiamare Lambda o delegare a S3 avranno esito negativo e verrà restituito un errore HTTP 403 Accesso negato. Tutti gli accessi devono essere effettuati da principali autenticati. Se hai bisogno di un accesso pubblico, come possibile alternativa può essere utilizzato Lambda@Edge. Per ulteriori informazioni, consulta Customizing at the edge with Lambda @Edge nella CloudFront Amazon Developer Guide.

Indirizzi IP dei punti di accesso Lambda per oggetti

Le sottoreti describe-managed-prefix-lists supportano gli endpoint VPC (Virtual Private Cloud) del gateway e sono correlate alla tabella di instradamento degli endpoint VPC. Poiché il punto di accesso per le espressioni Lambda dell'oggetto non supporta il VPC del gateway, i relativi intervalli IP mancano. Gli intervalli mancanti appartengono ad Amazon S3, ma non sono supportati dagli endpoint VPC del gateway. Per ulteriori informazioni DescribeManagedPrefixListsin meritodescribe-managed-prefix-lists, consulta la sezione Amazon EC2 API Reference e gli intervalli di indirizzi AWS IP nel Riferimenti generali di AWS.

Supporto CORS per Punto di accesso per le espressioni Lambda dell'oggetto

Quando Lambda per oggetti Amazon S3 riceve una richiesta da un browser o la richiesta include un'intestazione Origin, Lambda per oggetti Amazon S3 aggiunge sempre un campo di intestazione "AllowedOrigins":"*".

Per ulteriori informazioni, consulta Utilizzo della funzionalità Cross-Origin Resource Sharing (CORS).