Contrôle des autorisations pour les opérations par lot à l’aide de balises de tâche - 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.

Contrôle des autorisations pour les opérations par lot à l’aide de balises de tâche

Pour faciliter la gestion des tâches d’opérations par lot Amazon S3, vous pouvez ajouter des balises de tâche. Les étiquettes de tâche vous permettent de contrôler l’accès à vos tâches d’opérations par lot et d’imposer l’application d’étiquettes lors de la création de toute tâche.

Vous pouvez appliquer jusqu’à 50 étiquettes de tâche à chaque tâche d’opérations par lot. L’utilisation de balises vous permet de définir des politiques granulaires limitant l’ensemble d’utilisateurs qui peuvent modifier la tâche. Les étiquettes de tâche peuvent octroyer ou limiter la capacité d’un utilisateur à annuler une tâche, activer une tâche dans l’état de confirmation ou modifier le niveau de priorité d’une tâche. En outre, vous pouvez exiger l’application d’étiquettes à toutes les nouvelles tâches et spécifier les paires clé-valeur autorisées pour les étiquettes. Vous pouvez exprimer toutes ces conditions en utilisant le même langage de politique AWS Identity and Access Management (IAM). Pour plus d’informations, consultez Actions, ressources et clés de condition pour Amazon S3 dans la Référence de l’autorisation de service.

Pour plus d’informations sur les autorisations relatives aux opérations d’API S3 par type de ressource S3, consultez Autorisations requises pour les opérations d’API Amazon S3.

L’exemple suivant montre comment utiliser des étiquettes de tâche d’opérations par lot S3 pour accorder aux utilisateurs l’autorisation de créer et de modifier uniquement les tâches exécutées au sein d’un service spécifique (par exemple, le service Finance ou Conformité). Vous pouvez également affecter des tâches en fonction du stade de développement auquel elles sont liées, notamment l’assurance qualité ou la production.

Dans cet exemple, vous utilisez les balises de la tâche d’opérations par lot S3 dans les politique IAM pour accorder aux utilisateurs l’autorisation de créer et de modifier uniquement les tâches exécutées au sein de leur service. Vous affectez des tâches en fonction du stade de développement auquel elles sont liées, telles que l’assurance qualité ou la production.

Les exemples suivants utilisent les services suivants, chacun utilisant les tâches d’opérations par lot de différentes manières :

  • Finance

  • Conformité

  • Business Intelligence

  • Ingénierie

Contrôler l’accès en affectant des étiquettes aux utilisateurs et aux ressources

Dans ce scénario, les administrateurs utilisent le contrôle d’accès basé sur les attributs (ABAC). ABAC est une stratégie d'autorisation IAM qui définit les autorisations en attachant des balises aux utilisateurs et AWS aux ressources.

Les utilisateurs et les tâches se voient attribuer l’une des étiquettes de service suivantes :

Clé : Valeur
  • department : Finance

  • department : Compliance

  • department : BusinessIntelligence

  • department : Engineering

    Note

    Les clés et valeurs d’étiquette sont sensibles à la casse.

À l’aide de la stratégie de contrôle d’accès ABAC, vous accordez à un utilisateur du service Finance l’autorisation de créer et de gérer des tâches d’opérations par lot S3 au sein de son service en associant l’étiquette department=Finance à son utilisateur.

En outre, vous pouvez attacher à l’utilisateur IAM une stratégie gérée qui permet à tout utilisateur de son entreprise de créer ou de modifier des tâches d’opérations par lot S3 au sein des différents services.

La stratégie de cet exemple comprend trois déclarations de stratégie :

  • La première déclaration de la stratégie permet à l’utilisateur de créer une tâche d’opérations par lot à condition que la demande de création de tâche comprenne une étiquette de tâche correspondant à son service. Ceci est exprimé à l’aide de la syntaxe "${aws:PrincipalTag/department}", qui est remplacée par l’étiquette du service de l’utilisateur au moment de l’évaluation de la stratégie. La condition est remplie lorsque la valeur fournie pour l’étiquette du service dans la demande ("aws:RequestTag/department") correspond au département de l’utilisateur.

  • La deuxième déclaration de la stratégie permet aux utilisateurs de modifier la priorité des tâches ou de mettre à jour le statut d’une tâche, à condition que la tâche mise à jour corresponde au service de l’utilisateur.

  • La troisième déclaration permet à un utilisateur de mettre à jour les étiquettes d’une tâche d’opérations par lot à tout moment via une demande PutJobTagging, à condition que (1) l’étiquette de son service soit conservée et (2) la tâche qu’il met à jour se trouve dans son département.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:CreateJob", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "${aws:PrincipalTag/department}" } } }, { "Effect": "Allow", "Action": [ "s3:UpdateJobPriority", "s3:UpdateJobStatus" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "${aws:PrincipalTag/department}" } } }, { "Effect": "Allow", "Action": "s3:PutJobTagging", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "${aws:PrincipalTag/department}", "aws:ResourceTag/department": "${aws:PrincipalTag/department}" } } } ] }

Balisage des tâches d’opérations par lot par étape et application de limites sur la priorité des tâches

Toutes les tâches d’opérations par lot S3 ont une priorité numérique, qu’Amazon S3 utilise pour décider de leur ordre d’exécution. Dans cet exemple, vous limitez la priorité maximale que la plupart des utilisateurs peuvent affecter aux tâches, avec des plages de priorité plus élevées réservées à un ensemble limité d’utilisateurs privilégiés, comme suit :

  • Plage de priorité de l’étape assurance qualité (faible) : 1-100

  • Plage de priorité de l’étape production (élevée) : 1-300

Pour ce faire, introduisez un nouveau jeu d’étiquettes représentant l’étape de la tâche :

Clé : Valeur
  • stage : QA

  • stage : Production

Création et mise à jour de tâches à faible priorité au sein d’un service

Cette stratégie introduit deux nouvelles restrictions sur la création et la mise à jour de tâches d’opérations par lot S3, en plus de la restriction basée sur le service :

  • Les utilisateurs peuvent créer ou mettre à jour des tâches dans leur service avec une nouvelle condition qui exige que la tâche inclue l’étiquette stage=QA.

  • Les utilisateurs peuvent créer ou mettre à jour la priorité d’une tâche jusqu’à une nouvelle priorité maximale de 100.

{         "Version": "2012-10-17",         "Statement": [         {         "Effect": "Allow",         "Action": "s3:CreateJob",         "Resource": "*",         "Condition": {             "StringEquals": {                 "aws:RequestTag/department": "${aws:PrincipalTag/department}",                 "aws:RequestTag/stage": "QA"             },             "NumericLessThanEquals": {                 "s3:RequestJobPriority": 100             }         }     },     {         "Effect": "Allow",         "Action": [             "s3:UpdateJobStatus"         ],         "Resource": "*",         "Condition": {             "StringEquals": {                 "aws:ResourceTag/department": "${aws:PrincipalTag/department}"             }         }     },     {         "Effect": "Allow",         "Action": "s3:UpdateJobPriority",         "Resource": "*",         "Condition": {             "StringEquals": {                 "aws:ResourceTag/department": "${aws:PrincipalTag/department}",                 "aws:ResourceTag/stage": "QA"             },             "NumericLessThanEquals": {                 "s3:RequestJobPriority": 100             }         }     },     {         "Effect": "Allow",         "Action": "s3:PutJobTagging",         "Resource": "*",         "Condition": {             "StringEquals": {                 "aws:RequestTag/department" : "${aws:PrincipalTag/department}",                 "aws:ResourceTag/department": "${aws:PrincipalTag/department}",                 "aws:RequestTag/stage": "QA",                 "aws:ResourceTag/stage": "QA"             }         }     },     {         "Effect": "Allow",         "Action": "s3:GetJobTagging",         "Resource": "*"     }     ] }

Création et mise à jour de tâches hautement prioritaires au sein d’un service

Un petit nombre d’utilisateurs peut avoir besoin de créer des tâches hautement prioritaires dans les services de l’assurance qualité ou de la production. Pour répondre à ce besoin, vous créez une stratégie gérée adaptée à la stratégie de faible priorité décrite dans la section précédente.

Cette stratégie effectue les opérations suivantes :

  • Elle permet aux utilisateurs de créer ou de mettre à jour des tâches dans leur service avec l’étiquette stage=QA ou stage=Production.

  • Elle permet aux utilisateurs de créer ou de mettre à jour la priorité d’une tâche jusqu’à un maximum de 300.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:CreateJob", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/stage": [ "QA", "Production" ] }, "StringEquals": { "aws:RequestTag/department": "${aws:PrincipalTag/department}" }, "NumericLessThanEquals": { "s3:RequestJobPriority": 300 } } }, { "Effect": "Allow", "Action": [ "s3:UpdateJobStatus" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "${aws:PrincipalTag/department}" } } }, { "Effect": "Allow", "Action": "s3:UpdateJobPriority", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/stage": [ "QA", "Production" ] }, "StringEquals": { "aws:ResourceTag/department": "${aws:PrincipalTag/department}" }, "NumericLessThanEquals": { "s3:RequestJobPriority": 300 } } }, { "Effect": "Allow", "Action": "s3:PutJobTagging", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/department": "${aws:PrincipalTag/department}", "aws:ResourceTag/department": "${aws:PrincipalTag/department}" }, "ForAnyValue:StringEquals": { "aws:RequestTag/stage": [ "QA", "Production" ], "aws:ResourceTag/stage": [ "QA", "Production" ] } } } ] }