日々更新中です!

【Cognito】Admin系関数でAccessDeniedExceptionが出る件

  • URLをコピーしました!
悩んでいる男の子

CognitoのAdmin系関数でAccessDeniedExceptionエラーが出るんだけど、解消方法が分からないんだよね。。

こんな悩みを解決します。

  • 本記事の内容
  • CognitoのAdmin系関数で出るAccessDeniedExceptionエラー解消方法
  • 本記事の執筆者
プロフィール
いずみん(どこの写真だよ)
  • 元エンジニア(歴7年)、資格保有数約20個(IT系以外も含む)
  • 物販月利50万円⇒脱サラ
  • 物販、システム開発、アフィリエイト、プログラミング、投資をやっています。
  • 物販は彼女と楽しみながらやっています!

今回は、CognitoのAdmin系関数で出るAccessDeniedExceptionエラーの解消方法を解説します。

いずみん

すぐ読み終わるので、是非最後まで読んでみてください!

目次

前提

  • EC2にIAMロールが付与されていること
  • 認証情報はEC2のIAMロールから取得すること
  • IAMロールには最低限必要なCognitoに関するポリシーをアタッチしていること

エラー内容

Message: ErrorexecutingAdminGetUseronhttps://cognito-idp.ap-northeast-1.amazonaws.com;
AWSHTTPerror:Clienterror:resultedinaresponse:
\n{__type:AccessDeniedException,Message:User:arn:aws:sts:**********assumed-role/
**********/i-03f0(truncated...)\nAccessDeniedException(client):
User:arn:aws:sts:**********assumed-role/**********/
*********isnotauthorizedtoperform:cognito-idp:AdminGetUseronresource:arn:
aws:cognito-idp:ap-northeast-1**********userpool/ap-northeast-1_**********-
{__type:AccessDeniedException,Message:User:arn:aws:sts:**********assumed-role/
**********/**********isnotauthorizedtoperform:cognito-idp:AdminGetUseronresource:arn:
aws:cognito-idp:ap-northeast-1:**********:userpool/ap-northeast-1_**********}
StackTrace:
#0/var/www/laravel/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php(100):Aws\WrappedHttpHandler->parseError(Array,Object(GuzzleHttp\Psr7\Request),Object(Aws\Command),Array)
#1/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(203):Aws\WrappedHttpHandler->Aws\{closure}(Array)
#2/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(174):GuzzleHttp\Promise\Promise::callHandler(2,Array,Array)
#3/var/www/laravel/vendor/guzzlehttp/promises/src/RejectedPromise.php(40):GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}(Array)
#4/var/www/laravel/vendor/guzzlehttp/promises/src/TaskQueue.php(47):GuzzleHttp\Promise\RejectedPromise::GuzzleHttp\Promise\{closure}()
#5/var/www/laravel/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(98):GuzzleHttp\Promise\TaskQueue->run()
#6/var/www/laravel/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(125):GuzzleHttp\Handler\CurlMultiHandler->tick()
#7/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(246):GuzzleHttp\Handler\CurlMultiHandler->execute(true)
#8/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(223):GuzzleHttp\Promise\Promise->invokeWaitFn()
#9/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(267):GuzzleHttp\Promise\Promise->waitIfPending()
#10/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(225):GuzzleHttp\Promise\Promise->invokeWaitList()
#11/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(267):GuzzleHttp\Promise\Promise->waitIfPending()
#12/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(225):GuzzleHttp\Promise\Promise->invokeWaitList()
#13/var/www/laravel/vendor/guzzlehttp/promises/src/Promise.php(62):GuzzleHttp\Promise\Promise->waitIfPending()
#14/var/www/laravel/vendor/aws/aws-sdk-php/src/AwsClientTrait.php(58):GuzzleHttp\Promise\Promise->wait()
#15/var/www/laravel/vendor/aws/aws-sdk-php/src/AwsClientTrait.php(77):Aws\AwsClient->execute(Object(Aws\Command))

エラーの内容を見ると、「関数を実行するための権限がない」と記載されています。

ですので、EC2のIAMロールに最強権限を付与してみます。

エラー解消法

以下のポリシーをアタッチします。

  • AmazonCognitoDeveloperAuthenticatedIdentities
  • AmazonCognitoPowerUser

これでOKです。

これで解決しない場合、権限の問題ではないので、他の解決策を探す必要があります。

ポリシーの意味

AmazonCognitoPowerUser ID プールのあらゆる側面にアクセスし、管理するためのアクセス権限。
AmazonCognitoDeveloperAuthenticatedIdentities Amazon Cognito と統合するための認証システムのアクセス権限。
いずみん

2つ必要なのかは分かりません。。

まとめ

今回は、CognitoのAdmin系関数で出るAccessDeniedExceptionエラーの解消方法を解説しました。

ポリシー周りは分かりにくくて困りますね。。

ではまた!

まとめ
  • CognitoのAdmin系関数でAccessDeniedExceptionエラーが出る場合は、ポリシー設定を見直すこと
  • 自由な生き方がしたいなら!

自由な生き方をするためには、稼ぐスキルを身に付けなければなりません。

当サイト「リバトレ」では稼ぐスキルに関する情報を日々発信しているので、興味のあるものから見て頂ければ嬉しいです。

この記事が気に入ったら
いいね または フォローしてね!

シェアするんやで!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

いずみんのアバター いずみん 自由大好きおじ

自由大好きおじ | 物販月利50万達成⇨脱サラ | 物販(アパレルせどり)・アフィリエイト・プログラミング・投資に関する情報を発信中 | 元エンジニア | 保有資格約20個

コメント

コメントする

目次
閉じる