本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
提供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選項。
選項 |
描述 |
---|---|
|
僅適用於ODBC連線字串。設定為 1 以使用IAM身分驗證。 |
|
為IAM資料庫身分驗證設定之IAM角色或使用者所需的存取金鑰 ID 和秘密存取金鑰。 SessionToken 僅適用於具有臨時憑證IAM的角色。 SessionToken 不會用於使用者。如需詳細資訊,請參閱暫時性安全登入資料。 |
plugin_name |
實作登入資料供應商之類別的完全合格名稱。Amazon Redshift JDBC驅動程式包含 SAML型憑證提供者外掛程式。如果您提供 plugin_name ,您也可以提供其他相關選項。如需詳細資訊,請參閱憑證提供者外掛程式。 |
|
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 不存在,請指定 |
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身分驗證流程如下所示:
-
使用者嘗試登入。
-
外掛程式會啟動本機伺服器來接聽 localhost 上的傳入連線。
-
外掛程式會啟動 Web 瀏覽器,從HTTPS指定的單一登入URL聯合身分提供者端點請求 SAML回應。
-
web 瀏覽器會遵循連結,並提示使用者輸入登入資料。
-
使用者驗證並授予同意後,聯合身分提供者端點會將SAML回應傳回 HTTPS 所URI指示的
redirect_uri
。 -
Web 瀏覽器會移動回應訊息,並對指定的 做出SAML回應
redirect_uri
。 -
本機伺服器接受傳入連線,而外掛程式會擷取SAML回應並將其傳遞給 Amazon Redshift。
透過瀏覽器 Azure AD 外掛程式,SAML身分驗證流程如下所示:
-
使用者嘗試登入。
-
外掛程式會啟動本機伺服器來接聽 localhost 上的傳入連線。
-
外掛程式會啟動 web 瀏覽器,以從 Azure AD
oauth2/authorize
端點請求授權碼。 -
網頁瀏覽器會遵循產生的連結,HTTPS並提示使用者輸入憑證。連結是使用組態屬性 (例如租用戶和 client_id) 所產生的。
-
使用者驗證並授予同意後,Azure AD
oauth2/authorize
端點會傳回HTTPS包含授權碼的回應,並將其傳送到指定的redirect_uri
。 -
Web 瀏覽器會移動回應訊息,並對指定的 做出SAML回應
redirect_uri
。 -
本機伺服器接受傳入連線和外掛程式請求,並擷取授權碼,並將POST請求傳送至 Azure AD
oauth2/token
端點。 -
Azure AD
oauth2/token
端點會將包含存取權杖的回應傳回指定redirect_uri
。 -
外掛程式會擷取SAML回應並將其傳遞給 Amazon Redshift。
請參閱以下章節:
-
Active Directory Federation Services (AD FS)
如需詳細資訊,請參閱設定 JDBC 或ODBC單一登入身分驗證。
-
PingOne (Ping)
只有在使用 Forms 身分驗證的預先定義 PingOne IdP 轉接器時,才支援 Ping。
如需詳細資訊,請參閱設定 JDBC 或ODBC單一登入身分驗證。
-
Okta
Okta 只有在使用 Okta 提供用於 AWS Management Console的應用程式時受到支援。
如需詳細資訊,請參閱設定 JDBC 或ODBC單一登入身分驗證。
-
Microsoft Azure Active Directory
如需詳細資訊,請參閱設定 JDBC 或ODBC單一登入身分驗證。
外掛程式選項
若要使用 SAML型憑證提供者外掛程式,請使用 JDBC或 選項,或在具名設定檔中指定下列ODBC選項。如果未指定 plugin_name
,則會忽略其他選項。
選項 |
描述 |
---|---|
plugin_name |
對於 JDBC,實作憑證提供者的類別名稱。請指定下列其中一項:
對於 ODBC,請指定下列其中一項:
|
idp_host
|
企業身分提供商主機的名稱。該名稱不得包含任何斜線 (「/」)。針對 Okta 身分提供者,idp_host 的值應以 .okta.com 結尾。 |
|
身分提供者使用的連接埠。預設為 443。Okta 會忽略此連接埠。 |
|
SAML 來自宣告中Role 屬性AttributeValue 元素的角色 Amazon Resource Name (ARN)。若要尋找偏好角色適用的值,請洽詢 IdP 管理員。如需詳細資訊,請參閱步驟 2:為您的 IdP 設定SAML宣告。 |
|
企業使用者名稱,包括網域 (如適用)。例如,在 Active Directory 中,網域名稱為必填,使用格式為網域\使用者名稱。 |
密碼
|
企業使用者的密碼。我們建議不要使用此選項。反之,請使用您的SQL用戶端提供密碼。 |
|
Okta 應用程式的 ID。僅搭配 Okta 使用。Okta 應用程式嵌入連結中 app_id 後方的 amazon_aws 值。若要取得此值,請洽詢 IdP 管理員。以下為應用程式嵌入連結的範例:https://example.okta.com/home/amazon_aws/0oa2hylwrpM8UGehd1t7/272 |
|
用於 Azure AD 的租用戶。僅搭配 Azure 使用。 |
|
Azure AD 中 Amazon Redshift 企業應用程式的用戶端 ID。僅搭配 Azure 使用。 |