【问题标题】:botocore.exceptions.ClientError: An error occurred (AccessDeniedException)botocore.exceptions.ClientError:发生错误(AccessDeniedException)
【发布时间】:2020-05-24 13:14:55
【问题描述】:

我在从另一个批处理作业中提交 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

有什么办法可以解决这个问题吗?

【问题讨论】:

  • 您的错误消息表明您的角色缺少batch:SubmitJob。您是否已将其添加到您的批处理作业角色中?
  • 奇怪 - 我做到了。但是现在我看到除了 submitJob 之外的所有内容都是允许的,并且策略中缺少该特定操作!我认为发生的事情是我最初只添加了 submitJob。当它不起作用时,我通过策略编辑器将策略更改为“全部”,它以某种方式颠倒了我的选择。谢谢。
  • 不,有问题。现在可以用了吗?
  • 很高兴听到。如果你不介意,我会做一个答案以供将来参考。

标签: boto3 amazon-iam aws-batch


【解决方案1】:

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

从作业定义提交 AWS Batch 作业。

【讨论】:

    猜你喜欢
    • 2020-01-19
    • 2021-01-12
    • 2018-06-08
    • 1970-01-01
    • 2017-12-07
    • 2018-12-09
    • 1970-01-01
    • 2020-09-14
    • 2019-07-14
    相关资源
    最近更新 更多