Controllo dell'accesso ad Amazon S3 da Athena - Amazon Athena

Controllo dell'accesso ad Amazon S3 da Athena

Puoi concedere l'accesso alle posizioni Amazon S3 utilizzando le policy basate sulle identità, le policy delle risorse bucket, le policy dei punti di accesso o qualsiasi combinazione delle policy qui sopra. Quando gli attori interagiscono con Athena, le loro autorizzazioni passano attraverso Athena per determinare ciò a cui Athena può accedere. Ciò significa che gli utenti devono essere autorizzati ad accedere ai bucket Amazon S3 per potervi eseguire query con Athena.

Ogni volta che si utilizzano le policy IAM, assicurati di seguire le best practice IAM. Per ulteriori informazioni, consulta Best Practice di sicurezza in IAM nella Guida per l'utente di IAM.

Tenere presente che le richieste ad Amazon S3 provengono da un indirizzo IPv4 privato per Athena, non dall'IP di origine specificato in aws:SourceIp. Per questo motivo, non è possibile utilizzare la condizione aws:SourceIp per negare l'accesso alle azioni di Amazon S3 in una determinata policy IAM. Non è possibile limitare o consentire l'accesso alle risorse Amazon S3 in base alle chiavi di condizioni aws:SourceVpc o aws:SourceVpce.

Nota

I gruppi di lavoro Athena che utilizzano l'autenticazione Centro identità IAM richiedono che S3 Access Grants sia configurato per l'utilizzo delle identità con propagazione delle identità attendibili. Per maggiori informazioni, consulta la pagina S3 Access Grants and directory identities nella Guida per l'utente di Amazon Simple Storage Service.

Utilizzare policy basate sull'identità per controllare l'accesso ai bucket Amazon S3

Le policy basate su identità sono collegate a un utente, un gruppo o un ruolo IAM. Queste policy consentono di specificare cosa può fare quell'identità (le sue autorizzazioni). È possibile utilizzare policy basate sull'identità per controllare l'accesso ai bucket Amazon S3.

La policy basata sulle identità riportata di seguito consente a Read e Write l'accesso agli oggetti in un bucket Amazon S3 specifico. Per utilizzare questa policy, sostituisci il testo segnaposto in corsivo con le tue informazioni.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }

Utilizzare policy delle risorse dei bucket per controllare l'accesso ai bucket Amazon S3

Con le policy di bucket Amazon S3, puoi proteggere l'accesso agli oggetti nei tuoi bucket, in modo che solo gli utenti con le autorizzazioni appropriate possano accedervi. Per informazioni, consulta Aggiunta di una policy del bucket utilizzando la console Amazon S3 nella Guida per l'utente di Amazon S3.

La seguente policy di autorizzazione limita l'utente a leggere solo gli oggetti che hanno il tag chiave e il valore environment: production. Questa policy utilizza la chiave di condizione s3:ExistingObjectTag per specificare la chiave e il valore del tag.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::111122223333:role/JohnDoe" }, "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/environment": "production" } } } ] }

Per esempi di policy del bucket di Amazon S3, consulta Esempi di policy di bucket nella Guida per gli sviluppatori di Amazon Simple Storage Service.

Puoi utilizzare i punti di accesso Amazon S3 per un controllo più preciso sull'accesso ai bucket

Se disponi di un set di dati condiviso in un bucket Amazon S3, mantenere una singola policy del bucket che gestisce l'accesso per centinaia di casi d'uso può essere difficile.

I punti di accesso al bucket Amazon S3 aiutano a risolvere questo problema. Un bucket può avere più punti di accesso, ciascuno con una policy che controlla l'accesso al bucket in modo diverso.

Per ogni punto di accesso creato, Amazon S3 genera un alias che rappresenta il punto di accesso. Poiché l'alias è nel formato del nome bucket Amazon S3, è possibile utilizzare l'alias nella clausola LOCATION delle istruzioni CREATE TABLE in Athena. L'accesso di Athena al bucket è quindi controllato dalla policy per il punto di accesso che l'alias rappresenta.

Per ulteriori informazioni, consulta Specificare la posizione di una tabella in Amazon S3 e Utilizzo dei punti di accesso nella Guida per l'utente di Amazon S3.

Usa le chiavi contestuali CalledVia per consentire solo le chiamate da Athena a un altro servizio

Per una maggiore sicurezza, è possibile utilizzare la chiave di contesto di condizione globale aws:CalledVia. La chiave di condizione aws:CalledVia contiene un elenco di servizi a cui è consentito chiamare un altro servizio. Ad esempio, è possibile consentire a InvokeFunction le chiamate a AWS Lambda solo se provengono da Athena specificando il nome del servizio principale athena.amazonaws.com Athena per la chiave di contesto aws:CalledVia. Per ulteriori informazioni, consulta Utilizzare le chiavi di contesto CalledVia per Athena.

Altre risorse

Per ulteriori informazioni ed esempi su come concedere l'accesso ad Amazon S3, consulta le seguenti risorse: