事象
- Athenaから直接クエリを実行できるが、QuickSightから同じテーブルにクエリすると "Access Denied" と怒られる。
[Simba][AthenaJDBC](100071) An error has been thrown from the AWS Athena client. Access Denied
原因
- QuickSight でユーザー作成時にS3へのアクセス許可設定をしていない。
解決策
- 以下の通り設定する。当然の設定だが、この事象が発生していると相談を受けた場合の逆引き用にメモ。
- アプリケーションバーでユーザー名を選択してから、[Manage QuickSight] を選択します。
- [Account settings] を選択します。
- [Account permissions] (アカウント権限) で、[Edit AWS Permissions] (AWS アクセス許可の編集) を選択します。
- (Amazon QuickSight Enterprise Edition アカウントのみ) AWS サインインページで、AWS または IAM の認証情報を入力します。
- [Edit QuickSight read-only access to AWS resources] ページで、[Enable autodiscovery of your data and users in your AWS Redshift, RDS, and IAM services] を選択します。これにより、Amazon QuickSight は、AWS アカウントに関連付けられたこれらのタイプのリソースを自動検出することができます。または、このセクションを展開し、Amazon QuickSight で使用するリソースの個々のオプションを選択します。
- Amazon S3 バケットが 1 つ以上ある場合は、[Amazon S3 (all buckets) ( (すべてのバケット))] チェックボックスをオンにして、それらのバケットに対する Amazon QuickSight アクセス権限を編集します。[Choose Amazon S3 buckets ( バケットを選択)] で、Amazon QuickSight に対して使用可能にするバケットを選択してから、[Select buckets (バケットを選択)] を選択します。
- Amazon Athena データベースがある場合は、[Athena] を選択して、Amazon QuickSight がそれらのデータベースにアクセスできるようにします。
- [Apply] を選択します。
Amazon QuickSight の AWS リソースへのアクセス権限の管理 - Amazon QuickSight