Tableau Desktop から Amazon Athena への接続(IAMロール)


IAMユーザではなく、IAMロールで Tableau Desktop から Amazon Athena へ接続したい場合の手順

※ IAMユーザの認証情報(アクセスキーID、シークレットアクセスキー)を用いた接続方法
https://qiita.com/r18j21/items/e8a459c2544a80c46a70

JDBCドライバの配置

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connect-with-jdbc.html
から最新の .jar ファイルを取得し、OS にあわせて下記ディレクトリに配置

Windows: C:\Program Files\Tableau\Drivers
Mac: ~/Library/Tableau/Drivers
Linux: /opt/tableau/tableau_driver/jdbc

【参考】
https://help.tableau.com/current/pro/desktop/ja-jp/examples_otherdatabases_jdbc.htm

credentials の設定

AWS CLI の credentials が設定されていない場合は aws configure で設定する

【参考】
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration

[default]
aws_access_key_id = ZZZZZZZZZZZZZZZZZZZZ
aws_secret_access_key = 9999999999999999999999999999999999999999

作成された credentials にIAMロールを追加

[default]
aws_access_key_id = ZZZZZZZZZZZZZZZZZZZZ
aws_secret_access_key = 9999999999999999999999999999999999999999

[【任意のIAMロール名】]
role_arn = arn:aws:iam::000000000000:role/iam_role
source_profile = default

Tableau Desktop からの接続

Tableau Desktop データソース接続 > その他のデータベース (JDBC)

URL: jdbc:awsathena://【下記参照】
方言 ( dialect のことらしい...何という和訳センスのなさ... ) : SQL92
その他はすべて空白

jdbc:awsathena://
  AwsRegion = 【リージョン】;
  S3OutputLocation = 【IAMロールで書込み可能なS3バケットおよびディレクトリ】;
  Profile = 【credentials で設定した任意のIAMロール名】;

記述例

jdbc:awsathena://
  AwsRegion=ap-northeast-1;
  S3OutputLocation=s3://bucket/tableau/desktop/;
  Profile=iam_role;

【参考】
https://docs.aws.amazon.com/ja_jp/athena/latest/ug/connect-with-jdbc.html
→ JDBC ドライバーのインストールおよび設定ガイド