JDBC ドライバーを使用して Amazon Athena に接続するときに、IAM ロールの認証情報を使用したり、別の IAM ロールに切り替えたりする方法を教えてください。

所要時間2分
0

AWS Identity and Access Management (IAM) ロールの認証情報を使用して Amazon Athena への JDBC ドライバー接続を認証したいです。また、Amazon Athena に接続するために、JDBC ドライバーを使用する前に他の IAM ロールに切り替えたいです。

解決策

注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

IAM ロールの認証情報を使用して Athena JDBC ドライバーに接続する

ロールの一時認証情報を取得します。一時認証情報を取得するプロセスは、ロールの引き受け方法によって異なります。

SAML ID プロバイダーを使用してロールを引き受ける

Active Directory Federation Services (AD FS) 3.0、Okta、PingFederate、Microsoft Entra ID のみが、Athena JDBC ドライバーで直接サポートされる SAML 2.0 ID プロバイダーです。別の ID プロバイダーでロールを引き受ける場合は、assume-role-with-saml コマンドを実行し、一時認証情報を取得する必要があります。

アカウント内の別のロールを引き受ける

同じ AWS アカウント内の別のロールを引き受ける場合は、assume-role コマンドを実行して一時認証情報を取得します。

詳細については、「ロールを引き受ける方法」を参照してください。

一時認証情報には、Amazon Athena への JDBC 接続を認証するために必要なセッショントークン、アクセスキー ID、シークレットアクセスキーが含まれます。

注: 一時認証情報は 12 時間のみ有効です。

マシン上の一時認証情報を、名前付きプロファイルとして AWS 認証情報 ~/.aws/credentials に保存します。詳細については、「AWS CLI で設定ファイルと認証情報ファイルを設定する」を参照してください。

testprofile という名前の AWS CLI プロファイルに保存されている一時認証情報の例を次に示します。

[testprofile]aws_access_key_id=ASIA#########
aws_secret_access_key=########
aws_session_token=##################

Athena への接続に JDBC ドライバーを使用するには、JDBC 接続文字列でプロファイル名を指定します (例: jdbc:awsathena://AwsRegion=us-west-2;Profile=testprofile;)。または、JDBC の設定プロパティ Profile にプロファイル名を設定します。

注: JDBC の設定プロパティProfile は、Athena JDBC ドライバーバージョン 2.0.6 以降で使用できます。最新の JDBC ドライバーを取得する方法については、「JDBC を使用して Amazon Athena に接続する」を参照してください。

別の IAM ロールに切り替えて Athena JDBC ドライバーに接続する

Athena JDBC ドライバーに接続する前にロールを切り替えるには、指定したプロファイルで source_profile オプションを使用します。

お使いのマシンで、名前付きプロファイルを AWS CLI 認証情報ファイル ~/.aws/credentials に追加します。詳しくは、「名前付きプロファイルを使用する」を参照してください。

プロファイルには、次のプロパティを含める必要があります。

  • role_arn: 引き受けるロールの ARN。
  • source_profile: ロールを引き受けるためのアクセス許可を持つ IAM ユーザーまたは IAM ロールの認証情報を含むプロファイル

ARN が arn:aws:iam::123456789012:role/testrole である、testrole という名前のロールを引き受けるための設定例を次に示します。

[switchroletest]role_arn=arn:aws:iam::123456789012:role/testrole
source_profile=default

次の例では、default プロファイルには、testrole を引き受けるためのアクセス許可を持つ IAM ユーザーまたはロールの認証情報が含まれています。

[default]aws_access_key_id=ASIA#########
aws_secret_access_key=########
aws_session_token=##################

注: AWS CLI では、AWS CLI 設定ファイル /.aws/configsource_profile およびユーザー認証情報を、別の AWS CLI 認証情報ファイルで指定できます。ただし、Athena JDBC ドライバーは AWS CLI 認証情報ファイルからのみ、認証情報を読み取りできます。この制限があるので、各プロファイルは同じ AWS CLI 認証情報ファイルに配置する必要があります。なお、プロファイルには profile プレフィックスを使用しないでください。

Athena への接続に JDBC ドライバーを使用するには、JDBC 接続文字列でプロファイル名を指定します (例: jdbc:awsathena://AwsRegion=us-west-2;Profile=switchroletest;)。または、JDBC の設定プロパティ Profile にプロファイル名を設定します。

関連情報

一時セキュリティ認証情報をリクエストする

SQL コネクタ付き Simba Athena JDBC ドライバーのインストールと設定ガイド (バージョン 2.0.9)

IAM ロールに切り替える (AWS CLI)

AWS CLI で IAM ロールを使用する

AWS公式更新しました 4ヶ月前
コメントはありません

関連するコンテンツ