月間18,000PV達成! 収益は毎日発生中! 記事は毎日更新中! ギランバレー症候群に関する情報を集めています

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

             
  • 2019.05.18
  • AWS
【Cognito】Admin系関数でAccessDeniedExceptionが出る件
Advertisement

 

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

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

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

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

 

 

前提

・EC2にIAMロールが付与されていること

・認証情報はEC2のIAMロールから取得すること

・IAMロールには最低限必要なCognitoに関するポリシーをアタッチしていること

 

 

エラー内容

見た感じ、関数を実行するための権限がないと言っていますね。

ということで、EC2のIAMロールに最強権限を与えてみます。

 

 

Advertisement

 

エラー解消法

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

・AmazonCognitoDeveloperAuthenticatedIdentities

・AmazonCognitoPowerUser

これですべて解決です。

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

 

 

ポリシーの意味

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

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

 

 

参考サイト

■cognito、phpからadminInitiateAuthを使うとAccessDeniedException

URL:「http://k-suzuki.hateblo.jp/entry/2016/12/25/181322」

■AWS公式:リソースのアクセス許可

URL:「https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/resource-permissions.html」

 

 

まとめ

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

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

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

ではまた!

Travelerを知らないの?