Configurazione delle policy IAM per l'utilizzo degli access point - 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à.

Configurazione delle policy IAM per l'utilizzo degli access point

I punti di accesso Amazon S3 supportano politiche di 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. Affinché un'applicazione o un utente possa accedere agli oggetti tramite un access point, sia l'access point che il bucket sottostante devono consentire la richiesta.

Importante

L'aggiunta di un punto di accesso S3 a un bucket non modifica il comportamento del bucket quando vi si accede direttamente tramite il nome del bucket o il nome della risorsa Amazon (ARN). Tutte le operazioni esistenti inerenti il bucket continueranno a funzionare come prima. Le limitazioni incluse in una policy di access point si applicano solo alle richieste effettuate tramite quell'access point.

Quando utilizzi le policy relative alle risorse IAM, assicurati di risolvere gli avvisi di sicurezza, gli errori, gli avvisi generali e i suggerimenti relativi alla sicurezza AWS Identity and Access Management Access Analyzer prima di salvare la policy. IAM Access Analyzer esegue controlli della policy per convalidarla in rapporto alla sintassi della policy e alle best practice di IAM. Questi controlli generano risultati e forniscono suggerimenti per aiutarti a creare policy funzionali e conformi alle best practice per la sicurezza.

Per ulteriori informazioni sulla convalida delle policy tramite IAM Access Analyzer, consulta Convalida delle policy di IAM Access Analyzer nella Guida per l'utente di IAM. Per visualizzare un elenco di avvisi, errori e suggerimenti di IAM Access Analyzer, consulta Riferimento ai controlli delle policy IAM Access Analyzer.

Esempi di policy degli access point

Negli esempi seguenti viene illustrato come creare le policy IAM per controllare le richieste effettuate tramite un access point.

Nota

Le autorizzazioni concesse in una policy del punto di accesso sono valide solo se anche il bucket sottostante consente lo stesso accesso. Puoi farlo in due modi:

  1. (Consigliato) Delega il controllo degli accessi dal bucket al punto di accesso come descritto in Delegazione del controllo di accesso agli access point.

  2. Aggiungere le stesse autorizzazioni contenute nella policy del punto di accesso alla policy del bucket sottostante. Nel primo esempio di policy del punto di accesso viene illustrato come modificare la policy di bucket sottostante per consentire l'accesso necessario.

Esempio 1: Concessione della policy del punto di accesso

La policy del punto di accesso seguente concede all'utente IAM Jane dell'account 123456789012 le autorizzazioni per gli oggetti GET e PUT con il prefisso Jane/ tramite il punto di accesso my-access-point nell'account 123456789012.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/Jane/*" }] }
Nota

Affinché la policy di access point conceda effettivamente l'accesso ad Jane, anche il bucket sottostante deve consentire lo stesso accesso ad Jane. È possibile delegare il controllo di accesso dal bucket all'access point come descritto in Delegazione del controllo di accesso agli access point. In alternativa, è possibile aggiungere la policy seguente al bucket sottostante per concedere le autorizzazioni necessarie a Jane. Si noti che la voce Resource differisce tra le policy dell'access point e del bucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Jane" }, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET1/Jane/*" }] }
Esempio 2: Policy del punto di accesso con condizione di tag

La policy del punto di accesso riportata di seguito concede all'utente IAM Mateo dell'account 123456789012 le autorizzazioni per gli oggetti GET tramite il punto di accesso my-access-point nell'account 123456789012 con la chiave di tag data impostata su un valore pari a finance.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Principal" : { "AWS": "arn:aws:iam::123456789012:user/Mateo" }, "Action":"s3:GetObject", "Resource" : "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/*", "Condition" : { "StringEquals": { "s3:ExistingObjectTag/data": "finance" } } }] }
Esempio 3: Policy del punto di accesso che consente l'elenco dei bucket

La policy del punto di accesso riportata di seguito consente all'utente IAM Arnav nell'account 123456789012 di visualizzare gli oggetti contenuti nel bucket sottostante il punto di accesso my-access-point nell'account 123456789012.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/Arnav" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point" }] }
Esempio 4: Policy di controllo dei servizi

La seguente policy di controllo dei servizi richiede la creazione di tutti i nuovi punti di accesso con un'origine di rete di tipo cloud privato virtuale (VPC). Con questa policy, gli utenti dell'organizzazione non possono creare nuovi access point accessibili da Internet.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3:CreateAccessPoint", "Resource": "*", "Condition": { "StringNotEquals": { "s3:AccessPointNetworkOrigin": "VPC" } } }] }
Esempio 5: Policy di bucket per limitare le operazioni S3 alle origini di rete VPC

La policy di bucket seguente limita l'accesso a tutte le operazioni degli oggetti S3 per il bucket DOC-EXAMPLE-BUCKET ai punti di accesso con un'origine di rete VPC.

Importante

Prima di utilizzare un'istruzione come quella riportata nell'esempio, assicurati di non utilizzare funzionalità non supportate dai punti di accesso, come la replica tra regioni.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": [ "s3:AbortMultipartUpload", "s3:BypassGovernanceRetention", "s3:DeleteObject", "s3:DeleteObjectTagging", "s3:DeleteObjectVersion", "s3:DeleteObjectVersionTagging", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectLegalHold", "s3:GetObjectRetention", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:GetObjectVersionTagging", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionAcl", "s3:PutObjectVersionTagging", "s3:RestoreObject" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*", "Condition": { "StringNotEquals": { "s3:AccessPointNetworkOrigin": "VPC" } } } ] }

Chiavi di condizione

I punti di accesso S3 utilizzano chiavi di condizione che possono essere utilizzate nelle policy IAM per controllare l'accesso alle risorse. Le seguenti chiavi di condizione rappresentano solo una parte di una policy IAM. Per esempi completi di policy, consulta Esempi di policy degli access point, Delegazione del controllo di accesso agli access point e Concessione delle autorizzazioni per i punti di accesso multi-account.

s3:DataAccessPointArn

Questo esempio mostra una stringa che è possibile utilizzare per la corrispondenza dell'ARN di un punto di accesso. L'esempio seguente corrisponde a tutti i punti di accesso per Account AWS 123456789012in Region: us-west-2

"Condition" : { "StringLike": { "s3:DataAccessPointArn": "arn:aws:s3:us-west-2:123456789012:accesspoint/*" } }
s3:DataAccessPointAccount

Questo esempio mostra un operatore stringa che è possibile utilizzare per la corrispondenza dell'ID account del proprietario di un punto di accesso. L'esempio seguente restituisce tutti i punti di accesso di proprietà dell' Account AWS 123456789012.

"Condition" : { "StringEquals": { "s3:DataAccessPointAccount": "123456789012" } }
s3:AccessPointNetworkOrigin

Questo esempio mostra un operatore stringa che è possibile utilizzare per la corrispondenza dell'origine di rete, Internet o VPC. L'esempio seguente esegue la corrispondenza solo degli access point con un'origine VPC.

"Condition" : { "StringEquals": { "s3:AccessPointNetworkOrigin": "VPC" } }

Per ulteriori informazioni sull'utilizzo delle chiavi di condizione con Amazon S3, consulta Azioni, risorse e chiavi di condizione per Amazon S3 nel Service Authorization Reference.

Delegazione del controllo di accesso agli access point

È possibile delegare il controllo degli accessi per un bucket agli access point del bucket. La policy di bucket di esempio seguente consente l'accesso completo a tutti i punti di accesso dell'account del proprietario del bucket. Pertanto, tutto l'accesso a questo bucket è controllato dalle policy associate agli access point. Si consiglia di configurare i bucket in questo modo per tutti i casi d'uso che non richiedono l'accesso diretto al bucket.

Esempio 6: Policy di bucket che delega il controllo degli accessi ai punti di accesso
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }

Concessione delle autorizzazioni per i punti di accesso multi-account

Per creare un punto di accesso a un bucket di proprietà di un altro account, devi prima creare il punto di accesso specificando il nome del bucket e l'ID del proprietario dell'account. Il proprietario del bucket deve quindi aggiornare la policy di bucket per autorizzare le richieste dal punto di accesso. La creazione di un punto di accesso è simile alla creazione di un DNS CNAME in quanto il punto di accesso non fornisce l'accesso al contenuto del bucket. Tutti gli accessi ai bucket sono controllati dalla policy di bucket. La policy di bucket di esempio consente di eseguire richieste GET e LIST sul bucket da un punto di accesso di proprietà di un Account AWS attendibile.

Sostituisci Bucket ARN con l'ARN del bucket.

Esempio 7 — Policy di Bucket che delega le autorizzazioni a un altro Account AWS
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : ["s3:GetObject","s3:ListBucket"], "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Access point owner's account ID" } } }] }