R, Python, DB 備忘録

データベースとか、jupyter(Python)、Rとか色々

AWS - Athena:スイッチロールする場合のODBC設定/DBeaver(JDBC)設定

前提

  • IAMユーザーとしてログイン
  • S3やAthenaを使うときはスイッチロール
  • アクセスキーは付与されている

Profileファイルの作成

  • %UserProfile%\.aws\に認証用プロフィールcredentials(拡張子なし)を作成
  • 記載内容は下記の通り
    • defaultとしてアクセスキーとシークレットキーを記載
    • スイッチロールの情報はプロフィールを別途作成した上で、ARN(Amazonリソースネーム)をrole_arnに記載
    • なお、ARNは 「AWS Services - IAM(Security, Identity & Compliance) - Roles(Access Management) - 対象のスイッチロール」を選択すると最上部に表示される
[default]
aws_access_key_id = AKI*****************
aws_secret_access_key = ********************************************************************

[myprofile_name]
source_profile = default
role_arn = arn:aws:iam::**********************************

ODBC

ODBC設定

  • コントロールパネル - 管理ツール - ODBC(64 bit / 32 bit)
  • セットアップ画面
    • Regionを指定
    • Catalog, Schema, Workgroupはデフォルト
    • S3 Output Locは必要に応じて
    • 下図参照

f:id:shipapa15:20200927010025p:plain

  • Authentication Option の設定
    • 「IAM Profile」を選択
    • AWS Profileは先に設定したcredentialsの中の適用したいプロフィール名を入力
    • 下図参照

f:id:shipapa15:20200927010114p:plain

DBeaver(JDBC)

  • JDBCのインストールはDBeaver内から可
  • 接続設定(Main)
    • Regionを指定
    • アクセスキーとシークレットキーを設定

f:id:shipapa15:20200928000737p:plain

  • 接続設定(Driver Properties)
    • AwsCredentialsProviderClasscom.simba.athena.amazonaws.auth.profile.ProfileCredentialsProvider
    • AwsCredentialsProviderArugumentsは先に設定したcredentialsの中の適用したいプロフィール名を入力
    • 自分の場合、Workgroup(画面外)をprimary等、設定しないと接続できないことがあった。

f:id:shipapa15:20200928000741p:plain

参考

  • 下記マニュアル「Simba Athena JDBC Driver Installation and Configuration Guide」のUsing InstanceProfileCredentialsProviderの項にSwitchRoleを使う場合の例が記載されている(P36〜37)。

https://s3.amazonaws.com/athena-downloads/drivers/JDBC/SimbaAthenaJDBC_2.0.9/docs/Simba+Athena+JDBC+Driver+Install+and+Configuration+Guide.pdf#%5B%7B%22num%22%3A296%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C76.5%2C629.25%2C0%5D