Concessione delle autorizzazioni per le operazioni in batch Amazon S3 - Amazon Simple Storage Service

Concessione delle autorizzazioni per le operazioni in batch Amazon S3

Prima di creare ed eseguire processi operazioni in batch S3, è necessario concedere le autorizzazioni necessarie. Per creare un processo di operazioni in batch Amazon S3, è necessaria l'autorizzazione utente s3:CreateJob. La stessa entità che crea il processo deve disporre anche dell'autorizzazione iam:PassRole per passare il ruolo AWS Identity and Access Management (IAM) specificato per il processo alle operazioni in batch.

Per informazioni generali sulla specifica delle risorse IAM, consulta Elementi delle policy IAM JSON e Resource nella Guida per l'utente IAM. Nelle sezioni seguenti vengono fornite informazioni sulla creazione di un ruolo IAM e sul collegamento delle policy.

Creazione di un ruolo IAM di operazioni in batch S3

Perché Amazon S3 possa eseguire operazioni in batch S3 per tuo conto, occorre concedergli le opportune autorizzazioni. Queste autorizzazioni possono essere concesse tramite un ruolo AWS Identity and Access Management (IAM). Questa sezione fornisce esempi delle policy di attendibilità e di autorizzazione che si possono usare quando si crea un ruolo IAM. Per ulteriori informazioni, consulta Ruoli IAM nella Guida per l'utente IAM. Per alcuni esempi, consulta Controllo delle autorizzazioni per S3 Batch Operations utilizzando i tag di processo e Copia di oggetti mediante operazioni in batch S3.

Nelle policy IAM è inoltre possibile utilizzare le chiavi di condizione per filtrare le autorizzazioni di accesso per i processi di operazioni in batch Amazon S3. Per ulteriori informazioni e l'elenco completo delle chiavi di condizione specifiche di Amazon S3, consulta Operazioni, risorse e chiavi di condizione per Amazon S3.

Nel video seguente viene illustrato come impostare le autorizzazioni IAM per i processi di operazioni in batch utilizzando la AWS Management Console.

Policy di trust

Per consentire al principale del servizio di operazioni in batch S3 di assumere il ruolo IAM, collega la seguente policy di attendibilità al ruolo.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"batchoperations.s3.amazonaws.com" }, "Action":"sts:AssumeRole" } ] }

Allegare policy di autorizzazione

A seconda del tipo di operazioni, puoi collegare una delle policy seguenti.

Prima di configurare le autorizzazioni, tieni presente quanto segue:

  • A prescindere dall'operazione, Amazon S3 necessita delle autorizzazioni per leggere l'oggetto manifest dal bucket S3 e, facoltativamente, per scrivere un report nel bucket. Quindi, tutte le policy seguenti includono queste autorizzazioni.

  • Per i manifest di report di Amazon S3 Inventory, S3 Batch Operations richiede l'autorizzazione per leggere l'oggetto manifest.json e tutti i file di dati CSV associati.

  • Autorizzazioni specifiche della versione come s3:GetObjectVersion sono richieste solo quando si specifica l'ID versione degli oggetti.

  • Se le operazioni in batch S3 vengono eseguite su oggetti crittografati, anche il ruolo IAM dovrà avere accesso alle chiavi AWS KMS utilizzate per crittografarli.

Copia di oggetti: PutObject

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DestinationBucket/*" }, { "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::SourceBucket", "arn:aws:s3:::SourceBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ReportBucket/*" ] } ] }

Sostituzione di tag oggetto: putObjectTagging

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::TargetResource/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::ReportBucket/*" ] } ] }

Eliminazione di tag oggetto: DeleteObjectTagging

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::TargetResource/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ReportBucket/*" ] } ] }

Sostituzione di una lista di controllo degli accessi: PutObjectACL

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectAcl", "s3:PutObjectVersionAcl" ], "Resource": "arn:aws:s3:::TargetResource/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::ReportBucket/*" ] } ] }

Ripristino di oggetti: RestoreObject

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:RestoreObject" ], "Resource": "arn:aws:s3:::TargetResource/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::ReportBucket/*" ] } ] }

Applicazione della conservazione del blocco oggetti: putObjectRetention

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::TargetResource" ] }, { "Effect": "Allow", "Action": [ "s3:PutObjectRetention", "s3:BypassGovernanceRetention" ], "Resource": [ "arn:aws:s3:::TargetResource/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ReportBucket/*" ] } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::TargetResource" ] }, { "Effect": "Allow", "Action": "s3:PutObjectLegalHold", "Resource": [ "arn:aws:s3:::TargetResource/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::ManifestBucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::ReportBucket/*" ] } ] }

Replica di oggetti esistenti: InitiateReplication con un manifesto generato da S3

Utilizza questa policy se impieghi e archivi un manifesto generato da S3. Per ulteriori informazioni sull'utilizzo di Batch Operations per la replica di oggetti esistenti, consulta la sezione Replica di oggetti esistenti con S3 Batch Replication.

{ "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:InitiateReplication" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** replication source bucket ***/*" ] }, { "Action":[ "s3:GetReplicationConfiguration", "s3:PutInventoryConfiguration" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** replication source bucket ***" ] }, { "Action":[ "s3:GetObject", "s3:GetObjectVersion" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** manifest bucket ***/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::*** completion report bucket ****/*", "arn:aws:s3:::*** manifest bucket ****/*" ] } ] }

Replica di oggetti esistenti: InitiateReplication con un manifesto fornito dall'utente

Utilizza questa policy se impieghi un manifesto fornito dall'utente. Per ulteriori informazioni sull'utilizzo di Batch Operations per la replica di oggetti esistenti, consulta la sezione Replica di oggetti esistenti con S3 Batch Replication.

{ "Version":"2012-10-17", "Statement":[ { "Action":[ "s3:InitiateReplication" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** replication source bucket ***/*" ] }, { "Action":[ "s3:GetObject", "s3:GetObjectVersion" ], "Effect":"Allow", "Resource":[ "arn:aws:s3:::*** manifest bucket ***/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::*** completion report bucket ****/*" ] } ] }