[AWS]API Gateway does not have permission to assume the provided role になった時の解決方法

今回はAPI Gatewayをテストする時「Execution failed due to configuration error: API Gateway does not have permission to assume the provided role」と権限がないから実行できないと怒られる時の解決方法です。
公式ページのチュートリアルの通りIAMロールを新しく作成すればエラーが出ることがないでしょう。
https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/tutorial-api-gateway.html#api-gateway-step-1
しかし、なんらかの理由で既存のIAMロールを使う時にタイトルのエラーが出たらこれから記述する内容を試してみてください。

解決方法

  1. IAMのRolesにアクセス
    https://console.aws.amazon.com/iam/home#/roles

  2. 対象Roleをクリック

  3. Trust relationships タブをクリック

  4. Edit trust relationship をクリック

  5. 下の例のようにService に "lambda.amazonaws.com" と "apigateway.amazonaws.com" を追加。

記入例
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "lambda.amazonaws.com",
          "apigateway.amazonaws.com",
          "states.amazonaws.com",
          ...
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}