botocore.exceptions.ClientError:发生错误(AccessDeniedException)

时间:2020-05-23 18:12:37

标签: boto3 amazon-iam aws-batch

我无法从另一个批处理作业中提交AWS批处理作业:

我正在使用具有默认服务AWSBatchServiceRole和默认实例ecsInstanceRole的计算环境。我已经建立了一个作业定义myjobdef,其作业角色为MyJobRole,其中包含对AWS批处理的操作*,仅用于测试。它还具有信任关系:

{
"Version": "2012-10-17",
"Statement": [
    {
    "Effect": "Allow",
    "Principal": {
        "Service": "ecs-tasks.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
    }
]
}

我正在使用python 3.7和最新的boto3。使用我自己的凭据从本地docker容器调用batch_client.submit_job(...)时,它可以工作。从具有上述角色的AWS批处理中运行相同文件时,出现异常:

botocore.exceptions.ClientError: An error occurred (AccessDeniedException)
when calling the SubmitJob operation: User: arn:aws:sts::<account_id>:assumed-role/MyJobRole/xxxx-xxxx-xxx-xx is not authorized to perform: batch:SubmitJob on resource: arn:aws:batch:<region>:<account_id>:job-definition/my_job_def

有什么办法解决此问题吗?

1 个答案:

答案 0 :(得分:0)

基于评论。已正确确定此问题是由于缺少权限以执行批处理作业角色中的batch:SubmitJob操作引起的。 action

根据任务定义提交一个AWS Batch任务。