我想使用 AWS Identity and Access Management (IAM) 角色凭证验证与 Amazon Athena 的 JDBC 驱动程序连接。或者,我想在使用 JDBC 驱动程序连接 Amazon Athena 之前切换到其他 IAM 角色。
解决方案
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
使用 IAM 角色凭证连接到 Athena JDBC 驱动程序
检索该角色的临时凭证。根据您代入该角色的方式,检索临时凭证的过程会有所不同。
使用 SAML 身份提供者代入该角色
Athena JDBC 驱动程序中直接支持的 SAML 2.0 身份提供者仅有 Active Directory Federation Services (AD FS) 3.0、Okta、PingFederate 和 Microsoft Entra ID。如果您通过其他身份提供者代入该角色,请使用 assume-role-with-saml 命令获取临时凭证。
在您的账户中代入不同的角色
如果您在同一个 AWS 账户中代入其他角色,请运行 assume-role 命令获取临时凭证。
有关详细信息,请参阅代入角色的方法。
临时凭证包含对与 Amazon Athena 的 JDBC 连接进行身份验证所需的会话令牌、访问密钥 ID 和秘密访问密钥。
**注意:**临时凭证的有效期仅为 12 小时。
将计算机上的临时凭证作为命名配置文件保存到 ~/.aws/credentials AWS 凭证文件中。有关详细信息,请参阅 AWS CLI 中的配置和凭证文件设置。
以下是名为 testprofile 的 AWS CLI 配置文件中存储的临时凭证示例:
[testprofile]aws_access_key_id=ASIA#########
aws_secret_access_key=########
aws_session_token=##################
要使用 JDBC 驱动程序连接到 Amazon Athena,请在 JDBC 连接字符串中指定配置文件名称,例如 jdbc:awsathena://AwsRegion=us-west-2;Profile=testprofile;。或者,在 Profile JDBC 配置属性中设置配置文件名称。
**注意:**Profile JDBC 配置属性适用于 Athena JDBC 驱动程序版本 2.0.6 及更高版本。要获取最新的 JDBC 驱动程序,请参阅使用 JDBC 连接到 Amazon Athena。
切换到其他 IAM 角色,然后连接到 Athena JDBC 驱动程序
要在连接到 Athena JDBC 驱动程序之前切换角色,请在命名配置文件中使用 source_profile 选项。
在您的计算机上,将命名配置文件添加到 ~/.aws/credentials AWS CLI 凭证文件中。有关详细信息,请参阅使用命名配置文件。
配置文件必须包含以下属性:
- role_arn: 您要代入的角色的 ARN。
- source_profile: 包含 IAM 用户或有权代入该角色的 IAM 角色的凭证的配置文件。
以下是代入名为 testrole 的角色的配置示例,该角色的 ARN 为 arn:aws:iam::123456789012:role/testrole:
[switchroletest]role_arn=arn:aws:iam::123456789012:role/testrole
source_profile=default
在以下示例中,默认配置文件包含 IAM 用户或有权代入 testrole 的角色的凭证:
[default]aws_access_key_id=ASIA#########
aws_secret_access_key=########
aws_session_token=##################
**注意:**AWS CLI 允许您在 /.aws/config AWS CLI 配置文件中指定 source_profile,并在单独的 AWS CLI 凭证文件中指定用户凭证。但是,Athena JDBC 驱动程序只能从 AWS CLI 凭证文件读取凭证。由于此限制,您必须将配置文件放在同一 AWS CLI 凭证文件中。另外,不要对配置文件使用 profile 前缀。
要使用 JDBC 驱动程序连接到 Athena,请在 JDBC 连接字符串中指定配置文件名称,例如 jdbc:awsathena://AwsRegion=us-west-2;Profile=switchroletest;。或者,在 Profile JDBC 配置属性中设置配置文件名称。
相关信息
请求临时安全凭证
带 SQL 连接器的 Simba Athena JDBC 驱动程序安装和配置指南(版本 2.0.9)
切换到 IAM 角色 (AWS CLI)
在 AWS CLI 中使用 IAM 角色