リソース: POSIX ユーザー、Docker イメージ、特権レベル、ジョブ送信のロールを制限する - AWS Batch

リソース: POSIX ユーザー、Docker イメージ、特権レベル、ジョブ送信のロールを制限する

次のポリシーは、POSIX ユーザーが自身の制限されたジョブ定義のセットを管理することを許可します。

最初と 2 番目のステートメントを使用して、名前が JobDefA_ で始まるジョブ定義を登録および登録解除します。

また、最初のステートメントでは、条件付きコンテキストキーを使用して POSIX ユーザー、特権ステータス、コンテナイメージ値をジョブ定義の containerProperties 内に制限します。詳細については、AWS Batch API リファレンスRegisterJobDefinition を参照してください。この例では、POSIX ユーザーが nobody に設定されている場合にのみ、ジョブ定義を登録できます。特権フラグは false に設定されています。最後に、イメージは Amazon ECR レポジトリの myImage に設定されています。

重要

Docker は、コンテナイメージ内から user パラメータをユーザー uid に解決します。ほとんどの場合、これはコンテナイメージ内の /etc/passwd ファイルにあります。ジョブ定義と関連付けられたすべての IAM ポリシーの両方で直接 uid 値を使用することで、この名前解決を回避できます。AWS Batch API オペレーションおよび batch:User IAM 条件キーのいずれにおいても、数値がサポートされます。

3 番目のステートメントを使用して、ジョブ定義を特定のロールのみに制限します。

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