DBeaverからAWS Profile認証を使ってAmazon Athenaに接続する

2021.04.21

データアナリティクス事業本部コンサルティングチームの石川です。Athenaコンソールのクエリエディタは、手っ取り早くて便利なのですが、複数のクエリをまとめて実行することができません。Athenaに接続するのに何かおすすめのDB用のGUIツールはないかと聞かれた時に、AWSのマニュアルで紹介されているSQL Workbench/Jも検討しました古さが否めないので、今日は、DBeaverからAWS Profile認証を使ってAmazon Athenaに接続する方法についてご紹介します。

DBeaverとは様々なDBMSに対応しているSQLクライアントツールです。詳しくはこちらをご覧ください。

AWSのコマンドを利用する際に、アクセスキーをaws configreコマンドでインストールしますが、その時生成されるファイルの中に記載されている設定です。

ちなみにAWS Profileは、ホームディレクトリ直下にある~/.aws/credentialsというファイルです。記載例は、以下のとおりです。

なぜ、AWS Profileを使うのか

Amazon Athenaは、ユーザーID/パスワードの代わりにアクセスキーによってユーザーを認証します。しかし、AWSアカウントごとにIAMユーザーとアクセスキーを作成すると、アクセスキー漏洩による不正利用のリスクやキーローテーションが大変です。そのため、弊社では、1つのアクセスキーから信頼された他のAWSアカウントのロールにスイッチして利用するルールとなっています。そのような背景があり、AWS Profileを使ってAWSのサービスを利用することが求められます。

AWS Profileを使ったAmazon Athenaの接続設定

1. Athenaの接続を作成

左上のアイコンから[新しい接続タイプを選択する]ダイアログを表示して、[Athena]を選択します。下の図では、athenaという文字を入力して、表示の絞り込みをしています。

2. 接続先と認証情報を入力

ユーザーIDとパスワードには、スイッチ元のアクセスキーを入力します。

3. Athenaのドライバのインストール

上の画面の[ドライバのプロパティ]をクリックすると、まだAthenaのドライバのインストールしていないとインストールが促されます。ここでは初回なので[ダウンロード]ボタンを押します。

4. プロファイル名とAwsCredentalProviderClassの設定

ここが、認証にAWS Profileを使って接続する設定になります。設定がプロファイル名(この例では、ishikawa)とAwsCredentalProviderClassとしてcom.simba.athena.amazonaws.auth.profile.ProfileCredentialsProviderを設定します。

5. テスト接続

[テスト接続]を押して、接続が確認できたら[終了]を押して、登録完了です。

接続名称は、わかりやすいように適宜、設定することをおすすめします。

Athenaに接続とクエリ実行

Athenaに接続するとデータベースの一覧が表示されます。

複数のクエリを選択して、[複数のタブでステートメントを実行する]を選択して実行します。

2つのタブに結果が表示されます。

まとめ

Athenaコンソールのクエリエディタは、手っ取り早くて便利なのですが、機能的に若干劣るので、PCにインストールするDB用のGUIツールでの利用を望まれることが少なくありません。しかし、アクセスキーをAWS Profileを使ってAmazon Athenaに接続できるツールがあまりありませんでした。その点でDBeaverは、非エンジニアにもおすすめできる素晴らしいツールだと思います。

ちなみに、CLIツール「AthenaCLI」もVery coolなのでこちらもお試しください。

合わせて読みたい