Octroi d'autorisations pour les opérations par lot Simple Storage Service (Amazon S3) - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Octroi d'autorisations pour les opérations par lot Simple Storage Service (Amazon S3)

Avant de créer et d'exécuter des tâches d'opérations par lot S3, vous devez accorder les autorisations requises. Pour créer une tâche d'opérations par lot Amazon S3, l'autorisation de l'utilisateur s3:CreateJob est requise. La même entité qui crée la tâche doit également être iam:PassRole autorisée à transmettre le rôle AWS Identity and Access Management (IAM) spécifié pour la tâche à Batch Operations.

Pour plus d'informations générales sur la spécification des ressources IAM, consultez Éléments de stratégie JSON IAM : Ressource dans le Guide de l'utilisateur IAM. Les sections suivantes fournissent des informations sur la création d'un rôle IAM et l'attachement de stratégies.

Création d'un rôle IAM pour les opérations par lot S3

Amazon S3 doit avoir l'autorisation d'effectuer des tâches d'opérations par lot S3 en votre nom. Vous accordez ces autorisations par le biais d'un rôle AWS Identity and Access Management (IAM). Cette section fournit des exemples de stratégies d'approbation et d'autorisation que vous utilisez lors de la création d'un rôle IAM. Pour de plus amples informations, veuillez consulter Rôles IAM dans le Guide de l'utilisateur IAM. Pour obtenir des exemples, veuillez consulter Contrôle des autorisations pour les opérations par lot S3 à l’aide d'étiquettes de tâche et Copie d'objets à l'aide d'opérations par lot S3.

Dans vos stratégies IAM, vous pouvez également utiliser des clés de condition pour filtrer les autorisations d'accès pour les tâches d'opérations par lot S3. Pour plus d'informations et une liste complète des clés de condition spécifiques à Amazon S3, consultez la section Actions, ressources et clés de condition pour Amazon S3 dans la référence d'autorisation de service.

La vidéo suivante inclut la procédure de configuration d'autorisations IAM pour des tâches d'opérations par lots à l'aide de la AWS Management Console.

Stratégie d'approbation

Vous attachez la stratégie d'approbation suivante au rôle IAM afin de permettre au principal de service de la fonctionnalité d'opérations par lot S3 d'endosser le rôle.

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

Attachement des stratégies d'autorisations

En fonction du type d'opérations, vous pouvez attacher l'une des stratégies suivantes.

Avant de configurer les autorisations, veuillez noter ce qui suit :

  • Indépendamment de l'opération, Amazon S3 a besoin d'autorisations pour lire l'objet manifeste depuis votre compartiment S3 et, éventuellement, écrire un rapport dans votre compartiment. Dès lors, toutes les stratégies d'autorisations suivantes incluent ces autorisations.

  • Pour les manifestes de rapport Amazon S3 Inventory, S3 Batch Operations nécessite l'autorisation de lire l'objet manifest.json et tous les fichiers de données CSV associés.

  • Des autorisations spécifiques à la version comme s3:GetObjectVersion sont requises uniquement quand vous spécifiez l'ID de version des objets.

  • Si vous exécutez S3 Batch Operations sur des objets chiffrés, le rôle IAM doit également avoir accès aux AWS KMS clés utilisées pour les chiffrer.

  • Si vous soumettez un manifeste de rapport d'inventaire chiffré avec AWS KMS, votre politique IAM doit inclure les autorisations relatives à l'objet manifest.json "kms:Decrypt" et "kms:GenerateDataKey" à tous les fichiers de données CSV associés.

Copier des objets : 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/*" ] } ] }

Remplacez le balisage des objets : 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/*" ] } ] }

Supprimer le balisage des objets : 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/*" ] } ] }

Remplacer la liste de contrôle d'accès : 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/*" ] } ] }

Restaurer les objets : 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/*" ] } ] }

Appliquer la rétention Object Lock : 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/*" ] } ] }

Répliquer des objets existants : InitiateReplication avec un manifeste généré par S3

Utilisez cette politique si vous utilisez et stockez un manifeste généré par S3. Pour plus d'informations sur l'utilisation des opérations par lot pour répliquer des objets existants, consultez Réplication d'objets existants via la réplication par lot S3.

{ "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 ****/*" ] } ] }

Répliquer des objets existants : InitiateReplication avec un manifeste utilisateur

Utilisez cette politique si vous utilisez un manifeste fourni par l'utilisateur. Pour plus d'informations sur l'utilisation des opérations par lot pour répliquer des objets existants, consultez Réplication d'objets existants via la réplication par lot S3.

{ "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 ****/*" ] } ] }