やっほー
【Cognito】Admin系関数でAccessDeniedExceptionが出る件

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

  • 2019年5月18日
  • 2021年3月17日
  • AWS
  • 424view
AWS 【Cognito】Admin系関数でAccessDeniedExceptionが出る件

CognitoのAdmin系関数を使うと「AccessDeniedException」という訳の分からんエラーが出よる

Laravelで「aws-sdk」を使用しており、その中で「AdminGetUser」などの、いわゆる認証情報が必要な関数を使用しています。

認証情報自体は、EC2に付与されたIAMロールから取得しているのですが、そのロールに権限が足りなそうな感じです。

ということで今回は、CognitoのAdmin系関数でAccessDeniedExceptionが出る件について見ていきます。

前提

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

エラー内容

見た感じ、関数を実行するための権限がないと言っていますね。
ということで、EC2のIAMロールに最強権限を与えてみます。

エラー解消法

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

  • AmazonCognitoDeveloperAuthenticatedIdentities
  • AmazonCognitoPowerUser

これですべて解決です。

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

ポリシーの意味

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

二ついるんか?分からん。。

参考サイト

まとめ

それにしてもCognito周りで悩まされることが多すぎます。

権限やらネットワークの問題やら、原因を探すのにクソ時間かかります。

Cognitoっていうワード、二度と聞きたくない。

ではまた!

【Cognito】Admin系関数でAccessDeniedExceptionが出る件
フォローしてもらえると泣いて喜びます