AWS Batchのウィザードまたはジョブ定義を作成する際、オーケストレーションタイプFargateを選び「Fargate プラットフォームの設定」欄で実行ロールを選ぼうとした際、以下のエラーが表示されました。
AWS初心者の私にとってはとても大きな壁だったので、備忘録として載せておきます。
目次
信頼関係の設定が大事
エラーメッセージの通り、IAMの設定が必要です。
ずっとポリシーの設定がいけないんだと思っていたのですが、ポリシーは実際に何かしらの処理が走る際の権限なので、そもそも設定できない件にはあまり関係がないようです。
大切なのはTrust relationships (信頼関係)のところ。
ここが間違っているとダメみたいです。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "ecs-tasks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
エラー文言に記載されている「詳細はこちら」のページに記載されている設定内容ですが、これをそのまま貼り付ければOKです。
“Servce”がec2とかになってる場合が多いんじゃないかと思います。
見た目が似てると見落としますよね。
基本は知っておかないとダメですね。
結局、基本的なことがちゃんとわかっていなかったことが一番の問題でした。
「必要になった時に必要なことだけやる」っていう学び方だと、こういうところでボロがでるから危険ですね。