本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
资源:限制为 POSIX 用户、Docker 映像、权限级别和作业提交角色
以下策略允许 POSIX 用户管理自己的一组受限作业定义。
使用第一和第二条语句注册和取消注册名称前缀为的任何作业定义名称。JobDefA_
第一个语句还使用条件上下文键来限制作业定义的 containerProperties
中的 POSIX 用户、特权状态和容器映像值。有关更多信息,请参阅 AWS Batch API 参考中的 RegisterJobDefinition。在此示例中,只有当 POSIX 用户设置为 nobody
时,才能注册作业定义。特权标志设置为 false
。最后,在 Amazon ECR 存储库中将映像设置为 myImage
。
Docker 将 user
参数解析为该用户在容器映像中的 uid
。在大多数情况下,可以在容器映像中的 /etc/passwd
文件中找到它。可以通过在作业定义和任何关联的 IAM policy 中使用直接 uid
值来避免此名称解析。 AWS Batch API 和 batch:User
IAM 条件键都支持数字值。
第三个语句限制用户仅将特定角色传递给作业定义。
- JSON
-
-
{
"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"
]
}
]
}