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

Considerazioni sulla sicurezza per i punti di accesso S3 Object Lambda

Amazon S3 Object Lambda ti consente di eseguire trasformazioni personalizzate sui dati in uscita da Amazon S3 utilizzando la scalabilità e la flessibilità di AWS Lambda come piattaforma di calcolo. 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

I punti di accesso S3 supportano le policy sulle risorse di AWS Identity and Access Management (IAM) che consentono di controllare l'utilizzo del punto di accesso per risorsa, utente o altre condizioni. Per ulteriori informazioni, consulta Configurazione delle policy IAM per i punti di accesso Object Lambda.

Funzionamento della crittografia

Poiché i punti di accesso Object Lambda utilizzano sia Amazon S3 che AWS Lambda, esistono differenze nel comportamento della 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 Object Lambda, l'oggetto viene decrittografato 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 si utilizza la crittografia lato client S3 con i punti di accesso Object Lambda, assicurarsi che Lambda abbia accesso alla chiave di crittografia affinché possa decrittografare e ricrittografare l'oggetto.

Sicurezza dei punti di accesso

S3 Object Lambda utilizza due punti di accesso, un punto di accesso Object Lambda e un punto di accesso S3 standard, denominato punto di accesso di supporto. Quando effettui una richiesta a un punto di accesso Object Lambda, S3 richiama Lambda per tuo conto o delega la richiesta al punto di accesso di supporto, a seconda della configurazione di S3 Object Lambda. 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 Object Lambda, è 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 Object Lambda, è 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 principal autenticati. Se hai bisogno di un accesso pubblico, come possibile alternativa può essere utilizzato Lambda@Edge. Per ulteriori informazioni, consulta la sezione Personalizzazione sul perimetro con Lambda@Edge nella Guida per gli sviluppatori di Amazon CloudFront.

Indirizzi IP dei punti di accesso Object Lambda

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 Object Lambda non supporta il gateway VPC, mancano i relativi intervalli IP. Gli intervalli mancanti appartengono ad Amazon S3, ma non sono supportati dagli endpoint VPC del gateway. Per ulteriori informazioni su describe-managed-prefix-lists, consulta DescribeManagedPrefixLists nella Documentazione di riferimento dell'API Amazon EC2 e Intervalli di indirizzi IP AWS in Riferimenti generali di AWS.