我无法从另一个批处理作业中提交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
有什么办法解决此问题吗?
答案 0 :(得分:0)
基于评论。已正确确定此问题是由于缺少权限以执行批处理作业角色中的batch:SubmitJob
操作引起的。 action:
根据任务定义提交一个AWS Batch任务。