本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資源:僅限於 POSIX 使用者、Docker 映像、權限層級和任務提交時的角色
下列政策允許 POSIX 使用者管理自己的一組受限任務定義。
使用第一個和第二個陳述式來註冊和取消註冊名稱字首為 JobDefA_
的任何任務定義名稱。
第一個陳述式也使用條件式內容金鑰來限制任務定義內 containerProperties
的 POSIX 使用者、權限狀態,以及容器映像值。如需詳細資訊,請參閱 AWS Batch API 參考中的 RegisterJobDefinition。在此範例中,只有在 POSIX 使用者設定為 時,才能註冊任務定義nobody
。特權旗標設定為 false
。最後,映像在 Amazon ECR 儲存庫myImage
中設定為 。
Docker uid
會從容器映像內將 user
參數解析給該使用者。在大多數情況下,這可在容器映像內的 /etc/passwd
檔案中找到。您可以在任務定義和任何相關聯的 IAM 政策中使用直接uid
值,以避免此名稱解析。 AWS Batch API 操作和 IAM batch:User
條件式金鑰都支援數值。
使用第三個陳述式來限制只有特定角色才能執行任務定義。
- 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"
]
}
]
}