【AWS】Batchで「現在、使用可能な実行ロールはありません」が出た場合の対処法(Fargate)

AWS Batchのウィザードまたはジョブ定義を作成する際、オーケストレーションタイプFargateを選び「Fargate プラットフォームの設定」欄で実行ロールを選ぼうとした際、以下のエラーが表示されました。

I got an error with no execution role available in AWS Batch.

AWS初心者の私にとってはとても大きな壁だったので、備忘録として載せておきます。

目次

信頼関係の設定が大事

エラーメッセージの通り、IAMの設定が必要です。

ずっとポリシーの設定がいけないんだと思っていたのですが、ポリシーは実際に何かしらの処理が走る際の権限なので、そもそも設定できない件にはあまり関係がないようです。

大切なのはTrust relationships (信頼関係)のところ。

ここが間違っているとダメみたいです。

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

エラー文言に記載されている「詳細はこちら」のページに記載されている設定内容ですが、これをそのまま貼り付ければOKです。

“Servce”がec2とかになってる場合が多いんじゃないかと思います。

見た目が似てると見落としますよね。

基本は知っておかないとダメですね。

結局、基本的なことがちゃんとわかっていなかったことが一番の問題でした。

「必要になった時に必要なことだけやる」っていう学び方だと、こういうところでボロがでるから危険ですね。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内Edtech企業のコーポレートエンジニア。
業務改善・自動化についての開発をしています。
エンジニア歴9年、コーポレートエンジニア歴4年。

目次