使用 JDBC 驱动程序连接到 Athena 时,如何使用我的 IAM 角色凭证或切换至另一个 IAM 角色?

上次更新时间:2020 年 6 月 25 日

我想要使用 AWS Identity and Access Management (IAM) 角色通过 JDBC 驱动程序连接到 Amazon Athena。或者,在通过 JDBC 驱动程序连接到 Athena 之前,我想要切换至我的 AWS 账户或其他账户中的另一个 IAM 角色。

解决方案

使用 IAM 角色凭证连接到 Athena JDBC 驱动程序

检索角色的临时凭证。检索临时凭证的过程取决于您代入角色的方式:

有关更多信息,请参阅使用 IAM 角色并查看使用角色方法对比表。

临时凭证包含会话令牌、访问密钥 ID 和秘密访问密钥。必须具备这三个凭证才能验证 JDBC 至 Athena 的连接。请记住,临时凭证的最长使用期限为 12 小时。

1.    在已安装 Athena JDBC 驱动程序的计算机上,将临时凭证以命名配置文件的形式保存至 AWS 凭证文件 (~/.aws/credentials) 中。有关更多信息,请参阅配置和凭证文件设置

以下是名为 testprofile 的 AWS 命令行界面 (AWS CLI) 配置文件中存储的临时凭证示例:

[testprofile]
aws_access_key_id=ASIAXXXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXX

2.    要使用 JDBC 驱动程序连接到 Athena,请在 JDBC 连接字符串中指定配置文件名称(例如:jdbc:awsathena://AwsRegion=us-west-2;Profile=testprofile;)。或者,设置配置文件 JDBC 配置属性中的配置文件名称。

注意:配置文件 JDBC 配置属性适用于 Athena JDBC 驱动程序版本 2.0.6 及更高版本。要获取最新的 JDBC 驱动程序,请参阅下载 JDBC 驱动程序链接

切换至不同的 IAM 角色,然后连接到 Athena JDBC 驱动程序

要在连接到 Athena JDBC 驱动程序之前切换角色,请在命名配置文件中使用 source_profile 选项:

1.    在已安装 Athena JDBC 驱动程序的计算机上,将命名配置文件添加到 AWS CLI 凭证文件 (~/.aws/credentials)。有关创建命名配置文件的更多信息,请参阅命名配置文件。配置文件必须包含以下属性:

role_arn:想要代入角色的 Amazon 资源名称 (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

在本示例中,默认配置文件包含 IAM 用户或具有代入 testrole 权限的角色凭证:

[default]
aws_access_key_id=ASIAXXXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXX

2.    要使用 JDBC 驱动程序连接到 Athena,请在 JDBC 连接字符串中指定配置文件名称(例如:jdbc:awsathena://AwsRegion=us-west-2;Profile=switchroletest;)。或者,设置配置文件 JDBC 配置属性中的配置文件名称。