Concessione di autorizzazioni per le operazioni in batch - 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à.

Concessione di autorizzazioni per le operazioni in batch

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 job deve inoltre avere l'iam:PassRoleautorizzazione a passare il ruolo AWS Identity and Access Management (IAM) specificato per il job a Batch Operations.

Nelle sezioni seguenti vengono fornite informazioni sulla creazione di un ruolo IAM e sul collegamento delle policy. Per informazioni generali sulla specificazione delle risorse IAM, consulta IAM JSON Policy elements: Resource in the IAM User Guide.

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. Concedi queste autorizzazioni tramite un ruolo AWS Identity and Access Management (IAM). Quando crei un job S3 Batch Operations, specifichi il ruolo IAM che desideri venga utilizzato dal job. Questo può essere un ruolo IAM esistente. Oppure, se utilizzi la console Amazon S3 per creare il lavoro, può trattarsi di un ruolo IAM creato da Amazon S3 per te.

Se scegli di lasciare che Amazon S3 crei il ruolo IAM per te, crea e associa automaticamente policy di fiducia e autorizzazioni al ruolo. La policy di fiducia consente al service principal (batchoperations.s3.amazonaws.com) di S3 Batch Operations di assumere il ruolo. La politica di autorizzazione consente tutte le azioni necessarie per l'esecuzione del lavoro, in base alle impostazioni specificate per il lavoro. Ad esempio, se si configura un processo per copiare oggetti da un bucket a un altro bucket del proprio Account AWS, la politica delle autorizzazioni consente azioni come e. s3:GetObject s3:PutObject È possibile rivedere le politiche di fiducia e autorizzazioni per il ruolo prima di inviare il lavoro. Questa opzione è disponibile solo se utilizzi la console Amazon S3 per creare un job e configuri il job per utilizzare un elenco di oggetti generato da S3 che utilizza filtri o si basa su una configurazione di replica. Dopo aver inviato il lavoro, il ruolo IAM persiste nel tuo account. Puoi quindi riutilizzarlo per i lavori successivi che eseguono la stessa operazione o eliminarlo al termine dell'esecuzione del lavoro.

Se preferisci creare il ruolo IAM manualmente, gli esempi di policy in questa sezione possono aiutarti a creare il ruolo. Per ulteriori informazioni sulla creazione e la configurazione dei ruoli, consulta i ruoli IAM nella Guida per l'utente IAM. Per informazioni sulle autorizzazioni per le operazioni dell'API S3 in base al tipo di risorsa S3, consulta. Autorizzazioni necessarie per le operazioni API di Amazon S3 Per ulteriori esempi, consulta e. Controllo delle autorizzazioni per le operazioni in batch utilizzando i tag di processo 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 per un elenco completo delle chiavi di condizione specifiche per Amazon S3, consulta Azioni, risorse e chiavi di condizione per Amazon S3 in Riferimento alle autorizzazioni di servizio.

Per ulteriori informazioni sulle autorizzazioni alle operazioni API S3 per tipi di risorse S3, consulta Autorizzazioni necessarie per le operazioni API di Amazon S3.

Il video seguente mostra come configurare le autorizzazioni IAM per i job Batch Operations utilizzando la console Amazon S3.

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.

JSON
{ "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 esegui S3 Batch Operations su oggetti crittografati, il ruolo IAM deve avere accesso anche alle AWS KMS chiavi utilizzate per crittografarli.

  • Se invii un manifesto del rapporto di inventario crittografato con AWS KMS, la tua policy IAM deve includere le autorizzazioni "kms:GenerateDataKey" per l'oggetto manifest.json "kms:Decrypt" e tutti i file di dati CSV associati.

  • Se il processo Batch Operations genera un manifest in un bucket con le liste di controllo degli accessi (ACLs) abilitate e si trova in un altro Account AWS, è necessario concedere l's3:PutObjectAclautorizzazione nella policy IAM del ruolo IAM configurato per il processo batch. Se non si include questa autorizzazione, il processo batch fallisce con l'errore Error occurred when preparing manifest: Failed to write manifest.

Copia gli oggetti: PutObject

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-source-bucket", "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Sostituisci i tag degli oggetti: PutObjectTagging

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Elimina l'etichettatura degli oggetti: DeleteObjectTagging

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:DeleteObjectTagging", "s3:DeleteObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Sostituisci la lista di controllo degli accessi: PutObjectAcl

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObjectAcl", "s3:PutObjectVersionAcl" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Ripristina gli oggetti: RestoreObject

JSON
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:RestoreObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource":[ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

Applica la conservazione Object Lock: PutObjectRetention

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ] }, { "Effect": "Allow", "Action": [ "s3:PutObjectRetention", "s3:BypassGovernanceRetention" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetBucketObjectLockConfiguration", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket" ] }, { "Effect": "Allow", "Action": "s3:PutObjectLegalHold", "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-manifest-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-completion-report-bucket/*" ] } ] }

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

Usa questa policy se si utilizza e si memorizza un manifesto generato da S3. Per ulteriori informazioni sull'uso delle Operazioni in batch per replicare gli oggetti esistenti, consulta Replica di oggetti esistenti con Replica in batch.

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

Replica gli oggetti esistenti: InitiateReplication con un manifesto utente

Usa questa policy se si utilizza un manifesto fornito dall'utente. Per ulteriori informazioni sull'uso delle Operazioni in batch per replicare gli oggetti esistenti, consulta Replica di oggetti esistenti con Replica in batch.

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

Calcola checksum: consentiGetObject, e GetObjectVersion RestoreObject PutObject

Utilizza questa policy per utilizzare l’operazione Calcola il checksum con Operazioni in batch S3. Le autorizzazioni per GetObject, GetObjectVersion e RestoreObject sono necessarie per ottenere e leggere i byte dei dati archiviati. Sostituisci i segnaposto per l’input dell’utente con le informazioni appropriate. Per ulteriori informazioni su Calcola il checksum, consulta Verifica dell’integrità degli oggetti per i dati a riposo in Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:RestoreObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket2/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket3/*" ] } ] }

Aggiorna la crittografia degli oggetti

È necessario allegare la seguente politica di autorizzazioni per consentire a Batch Operations di leggere un manifesto, aggiornare il tipo di crittografia degli oggetti e scrivere un rapporto di completamento. Per utilizzare questa politica di autorizzazioni, sostituiscila user input placeholders con le tue informazioni. Per ulteriori informazioni sull'utilizzo di questa operazione e sulle autorizzazioni da assegnare al ruolo utilizzato dal responsabile IAM, consulta. Aggiorna la crittografia degli oggetti

{ "Version": "2012-10-17", "Statement": [{ "Sid": "S3BatchOperationsUpdateEncryption", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:PutObject", "s3:UpdateObjectEncryption" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-target" "arn:aws:s3:::amzn-s3-demo-bucket-target/*" ] }, { "Sid": "S3BatchOperationsPolicyForManifestFile", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-manifest/*" ] }, { "Sid": "S3BatchOperationsPolicyForCompletionReport", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-completion-report/*" ] }, { "Sid": "S3BatchOperationsPolicyManifestGeneration", "Effect": "Allow", "Action": [ "s3:PutInventoryConfiguration" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-target" ] } { "Sid": "AllowKMSOperationsForS3BatchOperations", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:Encrypt", "kms:ReEncrypt*" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }