提供IAM憑證的選項 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

提供IAM憑證的選項

若要提供 JDBC或 ODBC連線的IAM憑證,請選擇下列其中一個選項。

  • AWS profile

    除了以 JDBC或 ODBC設定的形式提供憑證值之外,您也可以將值放入具名設定檔。如需詳細資訊,請參閱使用組態設定檔

  • IAM 憑證

    僅具有臨時憑證IAM的角色 SessionToken 需要提供 AccessKeyID SessionToken值, SecretAccessKey以及選用的 JDBC或 ODBC設定。如需詳細資訊,請參閱JDBC 和提供IAM憑證ODBC的選項

  • 身分提供者聯合

    當您使用身分提供者聯合,讓來自身分提供者的使用者向 Amazon Redshift 進行驗證時,請指定憑證供應商外掛程式的名稱。如需詳細資訊,請參閱憑證提供者外掛程式

    Amazon Redshift JDBC和ODBC驅動程式包含下列 SAML型身分聯合憑證提供者的外掛程式:

    • Microsoft Active Identity Federation Services (AD FS)

    • PingOne

    • Okta

    • Microsoft Azure Active Directory (Azure AD)

    您可以提供外掛程式名稱和相關值,形式為 JDBC或 ODBC設定,或使用設定檔。如需詳細資訊,請參閱JDBC 驅動程式 2.1 版組態的選項

如需詳細資訊,請參閱步驟 5:設定 JDBC或 ODBC 連線以使用IAM憑證

使用組態設定檔

您可以在 AWS 組態檔案中的具名設定檔中提供IAM憑證選項和GetClusterCredentials選項作為設定。若要提供設定檔名稱,請使用設定檔JDBC選項。組態儲存於主目錄內名為 .aws 之資料夾中名為 config 的檔案或名為 credentials 的檔案中。

對於 Amazon Redshift JDBC或ODBC驅動程式隨附的 SAML型憑證提供者外掛程式,您可以使用 中上述的設定憑證提供者外掛程式。如果 plugin_name 未使用,則會忽略其他選項。

下列範例顯示具有兩個設定檔的 ~/.aws/credentials 檔案:

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [user2] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY session_token=AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==

若要使用 user2 範例的憑證,請在 Profile=user2中指定 JDBC URL。

如需使用設定檔的詳細資訊,請參閱 使用者指南中的組態和憑證檔案設定 AWS Command Line Interface

如需使用JDBC驅動程式設定檔的詳細資訊,請參閱 指定設定檔

如需使用ODBC驅動程式設定檔的詳細資訊,請參閱 身分驗證方法

JDBC 和提供IAM憑證ODBC的選項

下表列出提供IAM憑證的 JDBC和 ODBC選項。

選項

描述

Iam

僅適用於ODBC連線字串。設定為 1 以使用IAM身分驗證。

AccessKeyID

SecretAccessKey

SessionToken

為IAM資料庫身分驗證設定之IAM角色或使用者所需的存取金鑰 ID 和秘密存取金鑰。 SessionToken僅適用於具有臨時憑證IAM的角色。 SessionToken 不會用於使用者。如需詳細資訊,請參閱暫時性安全登入資料
plugin_name 實作登入資料供應商之類別的完全合格名稱。Amazon Redshift JDBC驅動程式包含 SAML型憑證提供者外掛程式。如果您提供 plugin_name,您也可以提供其他相關選項。如需詳細資訊,請參閱憑證提供者外掛程式

Profile

AWS 憑證或組態檔案中包含JDBC連線選項值的設定檔名稱。如需詳細資訊,請參閱使用組態設定檔

JDBC 和 ODBC 選項來建立資料庫使用者憑證

若要使用 Amazon Redshift JDBC或ODBC驅動程式建立資料庫使用者憑證,請提供資料庫使用者名稱作為 JDBC或 ODBC選項。如果資料庫使用者不存在,您也可選擇性讓驅動程式建立新的資料庫使用者,此外也可指定使用者於登入時加入的資料庫使用者群組清單。

如果您使用身分提供者 (IdP),請洽詢 IdP 管理員,以決定這些選項的正確值。您的 IdP 管理員也可以設定您的 IdP 以提供這些選項,在這種情況下,您不需要以 JDBC或 ODBC選項的形式提供這些選項。如需詳細資訊,請參閱步驟 2:為您的 IdP 設定SAML宣告

注意

如果您使用IAM政策變數 ${redshift:DbUser},如 的資源政策 GetClusterCredentials 所述的 值DbUser,則會以 API 操作請求內容擷取的值取代。Amazon Redshift 驅動程式會使用 連線 所提供DbUser變數的值URL,而不是以 SAML 屬性形式提供的值。

為了協助保護此組態,建議您使用IAM政策中的 條件來驗證 DbUser的值RoleSessionName。您可以在 中找到如何使用IAM政策設定條件的範例使用 的政策範例 GetClusterCredentials

下表列出提供用於建立資料庫使用者登入資料的選項。

選項

描述
DbUser

資料庫使用者的名稱。如果資料庫中 DbUser 存在名為 的使用者,則臨時使用者憑證具有與現有使用者相同的許可。如果 DbUser 不存在於資料庫中且 AutoCreate 為 true,則會建立新的名為 DbUser 的使用者。您也可選擇性停用現有使用者的密碼。如需詳細資訊,請參閱 ALTER_USER

AutoCreate

如果資料庫使用者 DbUser 不存在,請指定 true以為 指定的名稱建立資料庫使用者。預設值為 false。

DbGroups 資料庫使用者在目前工作階段中加入之一或多個現有資料庫群組名稱的逗號分隔清單。根據預設,新使用者只會新增至 PUBLIC。

憑證提供者外掛程式

Amazon Redshift 使用憑證供應商外掛程式進行單一登入身分驗證。

為了支援單一登入身分驗證,Amazon Redshift 提供適用於 Microsoft Azure Active Directory 的 Azure AD 外掛程式。如需如何設定此外掛程式的資訊,請參閱設定 JDBC 或ODBC單一登入身分驗證

多重要素驗證

若要支援多重要素驗證 (MFA),Amazon Redshift 提供瀏覽器型外掛程式。使用 Okta 的瀏覽器SAML外掛程式 PingOne,以及 Microsoft Azure Active Directory 的瀏覽器 Azure AD 外掛程式。

透過瀏覽器SAML外掛程式,OAuth身分驗證流程如下所示:

OAuth 工作流程,以了解外掛程式、本機伺服器、網頁瀏覽器和端點如何一起運作,以使用身分驗證SAML來驗證使用者。
  1. 使用者嘗試登入。

  2. 外掛程式會啟動本機伺服器來接聽 localhost 上的傳入連線。

  3. 外掛程式會啟動 Web 瀏覽器,從HTTPS指定的單一登入URL聯合身分提供者端點請求 SAML回應。

  4. web 瀏覽器會遵循連結,並提示使用者輸入登入資料。

  5. 使用者驗證並授予同意後,聯合身分提供者端點會將SAML回應傳回 HTTPS 所URI指示的 redirect_uri

  6. Web 瀏覽器會移動回應訊息,並對指定的 做出SAML回應redirect_uri

  7. 本機伺服器接受傳入連線,而外掛程式會擷取SAML回應並將其傳遞給 Amazon Redshift。

透過瀏覽器 Azure AD 外掛程式,SAML身分驗證流程如下所示:

外掛程式、本機伺服器、網頁瀏覽器和端點如何一起運作,以SAML使用身分驗證身分的 Azure 工作流程。
  1. 使用者嘗試登入。

  2. 外掛程式會啟動本機伺服器來接聽 localhost 上的傳入連線。

  3. 外掛程式會啟動 web 瀏覽器,以從 Azure AD oauth2/authorize 端點請求授權碼。

  4. 網頁瀏覽器會遵循產生的連結,HTTPS並提示使用者輸入憑證。連結是使用組態屬性 (例如租用戶和 client_id) 所產生的。

  5. 使用者驗證並授予同意後,Azure AD oauth2/authorize端點會傳回HTTPS包含授權碼的回應,並將其傳送到指定的 redirect_uri

  6. Web 瀏覽器會移動回應訊息,並對指定的 做出SAML回應redirect_uri

  7. 本機伺服器接受傳入連線和外掛程式請求,並擷取授權碼,並將POST請求傳送至 Azure AD oauth2/token端點。

  8. Azure AD oauth2/token 端點會將包含存取權杖的回應傳回指定 redirect_uri

  9. 外掛程式會擷取SAML回應並將其傳遞給 Amazon Redshift。

請參閱以下章節:

外掛程式選項

若要使用 SAML型憑證提供者外掛程式,請使用 JDBC或 選項,或在具名設定檔中指定下列ODBC選項。如果未指定 plugin_name,則會忽略其他選項。

選項

描述
plugin_name

對於 JDBC,實作憑證提供者的類別名稱。請指定下列其中一項:

  • 針對 Active Directory Federation Services

    com.amazon.redshift.plugin.AdfsCredentialsProvider
  • 針對 Okta

    com.amazon.redshift.plugin.OktaCredentialsProvider
  • 對於 PingFederate

    com.amazon.redshift.plugin.PingCredentialsProvider
  • 針對 Microsoft Azure Active Directory

    com.amazon.redshift.plugin.AzureCredentialsProvider
  • 對於 SAML MFA

    com.amazon.redshift.plugin.BrowserSamlCredentialsProvider
  • 對於使用 的 Microsoft Azure Active Directory 單一登入 MFA

    com.amazon.redshift.plugin.BrowserAzureCredentialsProvider

對於 ODBC,請指定下列其中一項:

  • 針對 Active Directory Federation Services:adfs

  • 針對 Okta:okta

  • 對於 PingFederate: ping

  • 針對 Microsoft Azure Active Directory:azure

  • 對於 SAML MFA: browser saml

  • 對於使用 的 Microsoft Azure Active Directory 單一登入MFA: browser azure ad

idp_host 企業身分提供商主機的名稱。該名稱不得包含任何斜線 (「/」)。針對 Okta 身分提供者,idp_host 的值應以 .okta.com 結尾。

idp_port

身分提供者使用的連接埠。預設為 443。Okta 會忽略此連接埠。

preferred_role

SAML 來自宣告中Role屬性AttributeValue元素的角色 Amazon Resource Name (ARN)。若要尋找偏好角色適用的值,請洽詢 IdP 管理員。如需詳細資訊,請參閱步驟 2:為您的 IdP 設定SAML宣告

user

企業使用者名稱,包括網域 (如適用)。例如,在 Active Directory 中,網域名稱為必填,使用格式為網域\使用者名稱
密碼

企業使用者的密碼。我們建議不要使用此選項。反之,請使用您的SQL用戶端提供密碼。

app_id

Okta 應用程式的 ID。僅搭配 Okta 使用。Okta 應用程式嵌入連結中 app_id 後方的 amazon_aws 值。若要取得此值,請洽詢 IdP 管理員。以下為應用程式嵌入連結的範例:https://example.okta.com/home/amazon_aws/0oa2hylwrpM8UGehd1t7/272

idp_tenant

用於 Azure AD 的租用戶。僅搭配 Azure 使用。

client_id

Azure AD 中 Amazon Redshift 企業應用程式的用戶端 ID。僅搭配 Azure 使用。