Amazon QuickSightで「Insufficient permissions to execute the query」のエラーがでたときの対処法

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どうも!大阪オフィスの西村祐二です。

最近よくAmazon AthenaとAmazon QuickSightをさわっています。
そこでIAMユーザのポリシーは問題ないはずなのにpermissionに関するエラー
Insufficient permissions to execute the query」が出てハマったので、
解決策を共有しておきます。

ハマったところ

どこでエラーは発生したかというと
Amazon QuickSightでデータセットを作成する際にAmazon Athenaを選択し、SPACEにデータをimportするときにエラーが発生しました。

下記のようなエラー画面がでていました。

permissonに関するエラーはだいたいIAMポリシーの設定不足だと思いますが、
今回の場合きちんとドキュメントに記載のポリシーを付与していました。

https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/set-iam-policy.html

原因

原因は下記ブログにかいてありました。(※これからQuickSightを触る方ははじめに下記ブログを一読するのがいいかもしれません。)

Amazon QuickSight: DBデータソースからデータセットを作成する際の諸注意(前提条件まとめ)

Amazon QuickSightへのサインアップの一環として、Amazon QuickSightの権限をAWSリソースに設定します。これらの権限を編集し、Amazon QuickSightがこれらリソースへのアクセスを行う際のアクセスレベルを変更する事が可能です。権限を編集するにはAmazon QuickSightアカウント作成に使用されたIAMアカウントまたはAWSのルートアカウント、または管理者権限を所有するIAMユーザーとしてサインインする必要があります。

つまり、Amazon QuickSightがリソースへのアクセスを行う際にアクセスレベルの設定が可能で、
それが今回importしようとしているAmazon Athenaの参照先S3バケットに対して許可されていなかったということです。

対処法

原因がわかったので対象のS3バケットに対してアクセスを許可していきます。

▼アカウントをクリックし「Manage QuickSight」を選択します。

▼Account settingsをクリックし「Edit AWS permissions」を選択します。

▼「Choose S3 buckets」をクリックします。

▼対象のS3バケットにチェックをいれてい「Select buckets」をクリックします。

▼これで再度importすると問題なく完了しました。

さいごに

いかがだったでしょうか。

Amazon QuickSightで「Insufficient permissions to execute the query」のエラーがでたときの対処法についてまとめてみました。

誰かの参考になれば幸いです。