ablog

不器用で落着きのない技術者のメモ

QuickSight で Athena にクエリしようとすると Access Denied と怒られる

事象

  • Athenaから直接クエリを実行できるが、QuickSightから同じテーブルにクエリすると "Access Denied" と怒られる。
[Simba][AthenaJDBC](100071) An error has been thrown from the AWS Athena client. Access Denied

原因

  • QuickSight でユーザー作成時にS3へのアクセス許可設定をしていない。

解決策

  • 以下の通り設定する。当然の設定だが、この事象が発生していると相談を受けた場合の逆引き用にメモ。
  1. アプリケーションバーでユーザー名を選択してから、[Manage QuickSight] を選択します。
  2. [Account settings] を選択します。
  3. [Account permissions] (アカウント権限) で、[Edit AWS Permissions] (AWS アクセス許可の編集) を選択します。
  4. (Amazon QuickSight Enterprise Edition アカウントのみ) AWS サインインページで、AWS または IAM の認証情報を入力します。
  5. [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 で使用するリソースの個々のオプションを選択します。
  6. Amazon S3 バケットが 1 つ以上ある場合は、[Amazon S3 (all buckets) (​ (すべてのバケット))] チェックボックスをオンにして、それらのバケットに対する Amazon QuickSight アクセス権限を編集します。[Choose Amazon S3 buckets ( バケットを選択)] で、Amazon QuickSight に対して使用可能にするバケットを選択してから、[Select buckets (バケットを選択)] を選択します。
  7. Amazon Athena データベースがある場合は、[Athena] を選択して、Amazon QuickSight がそれらのデータベースにアクセスできるようにします。
  8. [Apply] を選択します。
Amazon QuickSight の AWS リソースへのアクセス権限の管理 - Amazon QuickSight