Exemples de politiques - AWS Batch

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.

Exemples de politiques

Les exemples suivants présentent des déclarations de politique que vous pouvez utiliser pour contrôler les autorisations accordées aux utilisateursAWS Batch.

Accès en lecture seule

La politique suivante autorise les utilisateurs à utiliser toutes les actions d'AWS BatchAPI dont le nom commence par Describe etList.

À moins qu'une autre déclaration ne leur accorde l'autorisation de le faire, les utilisateurs ne sont pas autorisés à effectuer des actions sur les ressources. Par défaut, ils ne sont pas autorisés à utiliser les actions de l'API.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:Describe*", "batch:List*" ], "Resource": "*" } ] }

Limitation à l'utilisateur POSIX, à l'image Docker, au niveau de privilège et au rôle lors de la soumission des tâches

La politique suivante permet à un utilisateur POSIX de gérer son propre ensemble de définitions de tâches restreintes.

Utilisez les première et deuxième instructions pour enregistrer et désenregistrer tout nom de définition de tâche dont le nom est préfixé par A_. JobDef

La première instruction utilise également des clés de contexte de condition pour restreindre l'utilisateur POSIX, le statut privilégié et les valeurs d'images de conteneur au sein des containerProperties d'une définition de tâche. Pour plus d'informations, consultez RegisterJobDefinition dans la Référence d'API AWS Batch. Dans cet exemple, les définitions de tâches ne peuvent être enregistrées que lorsque l'utilisateur POSIX est défini sur. nobody Le drapeau privilégié est défini surfalse. Enfin, l'image est configurée pour figurer myImage dans un référentiel Amazon ECR.

Important

Docker résout le user paramètre pour cet utilisateur à uid partir de l'image du conteneur. Dans la plupart des cas, cela se trouve dans le /etc/passwd fichier contenu dans l'image du conteneur. Cette résolution de noms peut être évitée en utilisant des uid valeurs directes à la fois dans la définition de la tâche et dans les politiques IAM associées. Les opérations AWS Batch d'API et les clés conditionnelles batch:User IAM prennent en charge les valeurs numériques.

Utilisez la troisième déclaration pour limiter la définition d'une tâche à un rôle spécifique.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*" ], "Condition": { "StringEquals": { "batch:User": [ "nobody" ], "batch:Image": [ "<aws_account_id>.dkr.ecr.<aws_region>.amazonaws.com/myImage" ] }, "Bool": { "batch:Privileged": "false" } } }, { "Effect": "Allow", "Action": [ "batch:DeregisterJobDefinition" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<aws_account_id>:role/MyBatchJobRole" ] } ] }

Restreindre au préfixe de définition de tâche lors de la soumission de la tâche

Utilisez la politique suivante pour soumettre des tâches à n'importe quelle file d'attente de tâches dont le nom de définition de tâche commence par JobDefA.

Important

Lors de la restriction de l'accès au niveau des ressources pour la soumission de tâche, vous devez fournir des types de ressources de file d'attente de tâches et de définition de tâche.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*", "arn:aws:batch:<aws_region>:<aws_account_id>:job-queue/*" ] } ] }

Limiter à la file d'attente des tâches

Utilisez la politique suivante pour soumettre des tâches à une file d'attente de tâches spécifique nommée queue1 avec n'importe quel nom de définition de tâche.

Important

Lors de la restriction de l'accès au niveau des ressources pour la soumission de tâche, vous devez fournir des types de ressources de file d'attente de tâches et de définition de tâche.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/*", "arn:aws:batch:<aws_region>:<aws_account_id>:job-queue/queue1" ] } ] }

Refuser l'action lorsque la condition est que toutes les clés correspondent à des chaînes

La politique suivante refuse l'accès à l'opération d'RegisterJobDefinitionAPI lorsque la clé de condition batch:Image (ID de l'image du conteneur) est à la fois « string1 » et que la clé de condition batch:LogDriver (pilote du journal du conteneur) est « string2 ». AWS Batch évalue les clés de condition sur chaque conteneur. Lorsqu'une tâche couvre plusieurs conteneurs, tels qu'une tâche parallèle à nœuds multiples, il est possible que les conteneurs aient des configurations différentes. Si plusieurs clés de condition sont évaluées dans une instruction, elles sont combinées de manière AND logique. Ainsi, si l'une des multiples clés de condition ne correspond pas à un conteneur, l'Denyeffet ne s'applique pas à ce conteneur. Au contraire, un conteneur différent pour la même tâche peut être refusé.

Pour la liste des clés de condition pourAWS Batch, voir Clés de condition pour AWS Batch dans la référence d'autorisation de service. À l'exception debatch:ShareIdentifier, toutes les clés de batch condition peuvent être utilisées de cette manière. La clé de batch:ShareIdentifier condition est définie pour une tâche, et non pour une définition de tâche.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": "batch:RegisterJobDefinition", "Resource": "*", "Condition": { "StringEquals": { "batch:Image": "string1", "batch:LogDriver": "string2" } } } ] }

Refuser l'action lorsque des clés de condition correspondent à des chaînes

La politique suivante refuse l'accès à l'opération d'RegisterJobDefinitionAPI lorsque la clé de condition batch:Image (ID de l'image du conteneur) est « string1 » ou que la clé de condition batch:LogDriver (pilote du journal du conteneur) est « string2 ». Lorsqu'une tâche couvre plusieurs conteneurs, tels qu'une tâche parallèle à nœuds multiples, il est possible que les conteneurs aient des configurations différentes. Si plusieurs clés de condition sont évaluées dans une instruction, elles sont combinées de manière AND logique. Ainsi, si l'une des multiples clés de condition ne correspond pas à un conteneur, l'Denyeffet ne s'applique pas à ce conteneur. Au contraire, un conteneur différent pour la même tâche peut être refusé.

Pour la liste des clés de condition pourAWS Batch, voir Clés de condition pour AWS Batch dans la référence d'autorisation de service. À l'exception debatch:ShareIdentifier, toutes les clés de batch condition peuvent être utilisées de cette manière. (La clé de batch:ShareIdentifier condition est définie pour une tâche, pas pour une définition de tâche.)

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "*" ] }, { "Effect": "Deny", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "batch:Image": [ "string1" ] } } }, { "Effect": "Deny", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "batch:LogDriver": [ "string2" ] } } } ] }

Utiliser la clé de batch:ShareIdentifier condition

Utilisez la politique suivante pour soumettre les tâches qui utilisent la définition de jobDefA tâche à la file d'attente des jobqueue1 tâches avec l'identifiant de lowCpu partage.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": [ "arn:aws::batch:<aws_region>:<aws_account_id>:job-definition/JobDefA", "arn:aws::batch:<aws_region>:<aws_account_id>:job-queue/jobqueue1" ], "Condition": { "StringEquals": { "batch:ShareIdentifier": [ "lowCpu" ] } } } ] }