AWS Batch
ユーザーガイド

ポリシーの例

以下の例では、AWS Batch に対して IAM ユーザーが所有するアクセス許可を制御するために使用できるポリシーステートメントを示しています。

例: 読み取り専用アクセス

次のポリシーでは、名前が Describe および List で始まるすべての AWS Batch API アクションを使用できるアクセス許可をユーザーに与えます。

デフォルトで API アクションを使用するアクセス許可が拒否されているため、ユーザーには (別のステートメントでアクセス許可が与えられない限り) そのリソースに対してアクションを実行するアクセス許可がありません。

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

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

次のポリシーでは、ユーザーに独自の制限されたジョブ定義の管理を許可します。

最初と 2 番目のステートメントでは、ユーザーに JobDefA_ というプレフィックスがあるジョブ定義名の登録と登録解除を許可します。

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

重要

Docker は、user パラメータをコンテナイメージ内からユーザーの uid に解決します。ほとんどの場合、これはコンテナイメージ内の /etc/passwd ファイルにあります。ジョブ定義と関連付けられたすべての uid ポリシーの両方で直接 IAM 値を使用することで、この名前解決を回避できます。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" ], "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" ] } ] }