kato9913
@kato9913

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Amplifyデプロイ時に発生するIAMの権限のエラーを解決したい

解決したいこと

Amplifyデプロイ時に発生する権限関連のエラーを解決したいです。

発生している問題・エラー

Amplifyからデプロイを行うと以下エラーでビルド以前の権限によるエラーがデプロイが失敗する。

     .png

以下がエラーログ

!!! Unable to assume specified IAM Role. Please ensure the selected IAM Role has sufficient permissions and the Trust Relationship is configured correctly.

直訳すると以下の内容でエラーが起きている状態

指定された IAM ロールを引き受けることができません。選択された IAM ロールが十分な権限を持っていること、また信頼関係(Trust Relationship)が正しく設定されていることを確認してください。

エラーまでの手順

1 Amplify作成

AWS CLIからAmplifyを作成

aws amplify create-app \
    --region ap-northeast-1 \
    --name "{アプリ名}" \
    --repository {リポジトリURL} \
    --oauth-token "{GitHubアクセストークン}"

同様にブランチも作成

aws amplify create-branch \
    --region ap-northeast-1 \
    --app-id {作成したAmplifyのID値} \
    --branch-name {対象ブランチ名} \
    --stage DEVELOPMENT \
    --enable-auto-build

問題なくAmplifyアプリが生成される。

2 IAM側の設定

  • IAMからAmplify用のロールを作成
  • Amplifyにフルアクセスできる権限を持つAdministratorAccess-Amplifyをアタッチする

スクリーンショット 2024-10-09 19.16.42.png

  • ロールの「信頼関係」は以下のようにamplifyへの設定を記述

スクリーンショット 2024-10-09 19.22.59.png

3 AmplifyとIAMの紐付け

1で作成したAmplifyアプリの設定で2で作成したロールを紐付け
(隠していますが、「サービスロール」に2で作成したロールを指定しています。)

スクリーンショット 2024-10-09 19.27.55.png

以上の手順を行った後、デプロイを行うとエラーが発生しています。

試したこと

エラー文で検索すると以下がヒットする

上記の回答を参考に「信頼情報」を以下のように記述してみる

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": ["amplify.ap-northeast-1.amazonaws.com","amplify.amazonaws.com"]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

(東京リージョンを使用しているため、リージョンについては書き換え)

再度デプロイするも、エラーは変わらず...

最後に

こちら何か足りてない設定などあるでしょうか。
何かご存知の方がいればコメントよろしくお願いします!

0

1Answer

Comments

  1. @kato9913

    Questioner

    Could you please let me know which part of the information is missing?
    This might be off the mark, but my amplify.yml is as follows:

    version: 1.0
    frontend:
      phases:
        preBuild:
          commands:
            - npm install
        build:
          commands:
            - npm run build
      artifacts:
        baseDirectory: .next
        files:
          - '**/*'
      cache:
        paths:
          - node_modules/**/*
    

Your answer might help someone💌