AWS Batch
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

示例策略

以下示例显示了您可用于控制 IAM 用户 AWS Batch 权限的策略语句。

示例:只读访问权限

以下策略向用户授予使用名称以 DescribeList 开头的所有 AWS Batch API 操作的权限。

用户无权对资源执行任何操作 (除非其他语句为用户授予执行此操作的权限),因为在默认情况下会对用户拒绝使用 API 操作的权限。

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

示例:限制为 POSIX 用户、Docker 映像、权限级别和作业提交角色

以下策略允许用户管理自己的一组受限作业定义。

第一个语句和第二个语句允许用户注册和取消注册其名称前缀为 JobDefA_ 的任何作业定义。

第一个语句还使用条件上下文键来限制作业定义的 containerProperties 中的 POSIX 用户、特权状态和容器映像值。有关更多信息,请参阅 AWS Batch API 参考 中的 RegisterJobDefinition。在此示例中,仅在以下情况下能够在 Amazon ECR 存储库中注册作业定义:POSIX 用户设置为 nobody,特权标签设置为 false 映像设置为 myImage

重要

Docker 将 user 参数解析为该用户在容器映像中的 uid。在大多数情况下,可以在容器映像中的 /etc/passwd 文件中找到它。可以通过在作业定义和任何关联的 IAM 策略中使用直接 uid 值来避免此名称解析。AWS Batch API 和 batch:User IAM 条件键都支持数字值。

第三个语句限制用户仅将特定角色传递给作业定义。

{ "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" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "batch.amazonaws.com" ] } } } ] }

示例:限于作业提交的作业定义前缀

以下策略允许用户将作业提交到任何作业队列,其任何作业定义名称以 JobDefA_ 开头。

重要

在限定作业提交的资源级访问时,必须同时提供作业队列和作业定义资源类型。

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

示例:限于作业队列

以下策略允许用户将作业提交到名为 queue1 的特定作业队列,该队列具有任何作业定义名称。

重要

在限定作业提交的资源级访问时,必须同时提供作业队列和作业定义资源类型。

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