Configurazione delle policy IAM per l'utilizzo degli access point - Amazon Simple Storage Service

Configurazione delle policy IAM per l'utilizzo degli access point

I punti di accesso Amazon S3 supportano le policy di risorse AWS Identity and Access Management (IAM) che consentono di controllare l'utilizzo del punto di accesso per risorsa, utente o 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 access point S3 a un bucket non modifica il comportamento del bucket quando si accede tramite il nome bucket o l'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.

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 dell'access point sono valide solo se il bucket sottostante consente anche lo stesso accesso. Puoi farlo in due modi:

  1. (Consigliato) Delegare il controllo di accesso dal bucket all'access point 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 dell'access point viene illustrato come modificare la policy del bucket sottostante per consentire l'accesso necessario.

Esempio Concessione della policy di access point

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

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

Affinché la policy di access point conceda effettivamente l'accesso ad Alice, anche il bucket sottostante deve consentire lo stesso accesso ad Alice. È 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 ad Alice. 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/Alice" }, "Action": ["s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::awsexamplebucket1/Alice/*" }] }
Esempio Policy di access point con condizione di tag

La policy di access point riportata di seguito concede all'utente IAM Bob dell'account 123456789012 le autorizzazioni per gli oggetti GET tramite l'access point 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/Bob" }, "Action":"s3:GetObject", "Resource" : "arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/*", "Condition" : { "StringEquals": { "s3:ExistingObjectTag/data": "finance" } } }] }
Esempio Policy dell'access point che consente l'elenco dei bucket

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

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

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "s3:CreateAccessPoint", "Resource": "*", "Condition": { "StringNotEquals": { "s3:AccessPointNetworkOrigin": "VPC" } } }] }
Esempio 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 examplebucket agli access point con un'origine di rete VPC.

Importante

Prima di utilizzare un'istruzione come nell'esempio, assicurati di non utilizzare funzionalità che non sono supportate dagli access point, 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:::examplebucket/*", "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: Queste chiavi di condizione fanno parte di una policy IAM, per un esempio completo di policy. Consulta Esempi di policy degli access point.

s3:DataAccessPointArn

Questa è una stringa che è possibile utilizzare per la corrispondenza dell'ARN di un access point. L'esempio seguente restituisce tutti i punti di accesso per l'Account AWS 123456789012 nella regione us-west-2:

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

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

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

È 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'uso delle chiavi di condizione con Amazon S3, consulta Operazioni, risorse e chiavi di condizione per Amazon S3.

Delegazione del controllo di accesso agli access point

È possibile delegare il controllo degli accessi per un bucket agli access point del bucket. La policy del bucket di esempio seguente consente l'accesso completo a tutti gli access point 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 Policy del bucket che delega il controllo degli accessi agli access point
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "Bucket ARN", "Bucket ARN/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" } } }] }