在使用 JDBC 驱动程序连接到 Athena 时,如何使用我的 IAM 角色凭证或切换到其他 IAM 角色?

2 分钟阅读
0

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

解决方法

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

检索该角色的临时凭证。检索临时凭证的流程取决于您担任该角色的方式。

  • 通过 SAML 身份提供商代入该角色Athena JDBC 驱动程序中直接支持SAML 2.0 身份提供商仅有 Active Directory Federation Services(AD FS)3.0、Okta、PingFederate 和 Azure AD。如果您通过其他身份提供商代入该角色,请使用 assume-role-with-saml 命令获取临时凭证。
  • **在您的账户中代入不同的角色:**如果您在同一个 AWS 账户中代入另外一个角色,请使用 assume-role 获取临时凭证。

**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

有关详细信息,请参阅使用 IAM 角色并查看比较使用角色的方法表。

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

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

    以下是名为 testprofile 的 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;)。或者,在 Profile JDBC 配置属性中设置配置文件名称。

    注意:Profile JDBC 配置属性适用于 Athena JDBC 驱动程序版本 2.0.6 及更高版本。要获取最新的 JDBC 驱动程序,请参阅使用 JDBC 连接到 Amazon Athena

切换到其他 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

    注意: AWS CLI 支持在 AWS CLI 配置文件(/.aws/config)中指定 source_profile,在单独的 AWS CLI 凭证文件(~/.aws/credentials)中指定用户凭证。但是,Athena JDBC 驱动程序仅支持从 AWS CLI 凭证文件读取凭证。由于此限制,必须将这些配置文件放在同一 AWS CLI 凭证文件(/.aws/creditions)中。另外,不要在其前面加上 profile。Athena JDBC 驱动程序不支持在命名配置文件中使用 credential_source = Ec2InstanceMetadata

  2. 要使用 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 角色

AWS 官方
AWS 官方已更新 9 个月前