Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
资源:限制为 POSIX 用户、Docker 映像、权限级别和作业提交角色
以下策略允许 POSIX 用户管理自己的一组受限作业定义。
使用第一和第二条语句注册和取消注册名称前缀为的任何作业定义名称。JobDefA_
第一个语句还使用条件上下文键来限制作业定义的 containerProperties 中的 POSIX 用户、特权状态和容器映像值。有关更多信息,请参阅 Amazon Batch API 参考中的 RegisterJobDefinition。在此示例中,只有当 POSIX 用户设置为 nobody 时,才能注册作业定义。特权标志设置为 false。最后,在 Amazon ECR 存储库中将映像设置为 myImage。
Docker 将 user 参数解析为该用户在容器映像中的 uid。在大多数情况下,可以在容器映像中的 /etc/passwd 文件中找到它。可以通过在作业定义和任何关联的 IAM policy 中使用直接 uid 值来避免此名称解析。 Amazon Batch API 和 batch:User IAM 条件键都支持数字值。
第三个语句限制用户仅将特定角色传递给作业定义。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"batch:RegisterJobDefinition"
],
"Resource": [
"arn:aws:batch:us-east-2:999999999999:job-definition/JobDefA_*"
],
"Condition": {
"StringEquals": {
"batch:User": [
"nobody"
],
"batch:Image": [
"999999999999.dkr.ecr.us-east-2.amazonaws.com/myImage"
]
},
"Bool": {
"batch:Privileged": "false"
}
}
},
{
"Effect": "Allow",
"Action": [
"batch:DeregisterJobDefinition"
],
"Resource": [
"arn:aws:batch:us-east-2:999999999999:job-definition/JobDefA_*"
]
},
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"arn:aws:iam::999999999999:role/MyBatchJobRole"
]
}
]
}