使用 JDBC 驅動程式連線至 Athena 時,如何使用 IAM 角色驗證或切換至其他 IAM 角色?

2 分的閱讀內容
0

我想使​​用 AWS Identity and Access Management (IAM) 角色憑證來驗證與 Amazon Athena 的 JDBC 驅動程式連線。或者,我想在使用 JDBC 驅動程式連線到 Amazon Athena 之前,切換到另一個 IAM 角色。

解決方法

注意: 如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,則請參閱對 AWS CLI 進行錯誤疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

使用 IAM 角色憑證連線至 Athena JDBC 驅動器

擷取角色的臨時憑證。根據您承擔的角色,擷取臨時憑證的過程會有所不同。

您使用 SAML 身分提供者來承擔角色

Active Directory Federation Services (AD FS) 3.0、Okta、PingFederate 和 Microsoft Entra ID 是 Athena JDBC 驅動器中直接支援的唯一 SAML 2.0 身分提供者。如果您使用不同的身分提供者來承擔角色,請執行 assume-role-with-saml 命令來取得臨時憑證。

您在帳戶中承擔不同的角色

如果您在同一個 AWS 帳戶中承擔另一個角色,請執行 accept-role 命令以取得臨時憑證。

如需詳細資訊,請參閱擔任角色的方法

臨時憑證包含工作階段權杖、存取金鑰 ID 和私密存取金鑰,這些都是驗證與 Amazon Athena 的 JDBC 連線所需的。

注意: 臨時憑證僅在 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;。或者,在設定檔 JDBC 組態屬性中設定設定檔名稱。

注意: 設定檔 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 憑證檔案中。此外,不要對設定檔使用設定檔首碼。

若要使用 JDBC 驅動器連接到 Athena,請在 JDBC 連線字串中指定設定檔名稱,例如 jdbc:awsathena://AwsRegion=us-west-2;Profile=switchroletest;。或者,在設定檔 JDBC 組態屬性中設定設定檔名稱。

相關資訊

請求臨時安全憑證

包含 SQL 連接器安裝和組態指南的 Simba Athena JDBC 驅動器 (版本 2.0.9)

切換到 IAM 角色 (AWS CLI)

在 AWS CLI 中使用 IAM 角色

AWS 官方
AWS 官方已更新 1 個月前