提供 IAM 登入資料的選項 - Amazon Redshift

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

提供 IAM 登入資料的選項

若要提供 JDBC 或 ODBC 連線的 IAM 登入資料,請選擇下列選項之一。

  • AWS profile

    做為以 JDBC 或 ODBC 設定形式提供登入資料值的替代方案,您可將值放入命名設定檔。如需詳細資訊,請參閱 使用組態設定檔

  • IAM 登入資料

    以 JDBC 或 ODBC 設定的形式, SessionToken選擇性地提供 AccessKey ID、和的值。 SecretAccessKey SessionToken 只有具有臨時登入資料的 IAM 角色才需要。如需詳細資訊,請參閱 提供 IAM 登入資料的 JDBC 和 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 版組態的選項設定 ODBC 驅動程式選項

如需詳細資訊,請參閱 設定 JDBC 或 ODBC 連線使用 IAM 登入資料

使用組態設定檔

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

針對具有 Amazon Redshift JDBC 或 ODBC 驅動程式之以 SAM 為基礎的憑證供應商外掛程式,您可以使用先前在使用登入資料供應商外掛程式中所述的設定。如果 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 範例的登入資料,請在 JDBC URL 中指定 Profile=user2

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

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

如需為 ODBC 驅動程式使用設定檔的相關資訊,請參閱設定身分驗證

提供 IAM 登入資料的 JDBC 和 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 連線選項的值。如需詳細資訊,請參閱 使用組態設定檔

使用登入資料供應商外掛程式

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

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

設定多重因素認證

為了支援多重要素驗證 (MFA),Amazon Redshift 提供瀏覽器型的外掛程式。使用瀏覽器 SAML 外掛程式確認 PingOne, 和瀏覽器 Azure AD 外掛程式 Microsoft Azure 活動目錄.

使用瀏覽器 SAML 外掛程式時,SAML 身分驗證的流程如下:

  1. 使用者嘗試登入。

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

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

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

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

  6. web 瀏覽器會將回應訊息與 SAML 回應移至指定的 redirect_uri

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

使用瀏覽器 Azure AD 外掛程式時,SAML 身分驗證的流程如下:

  1. 使用者嘗試登入。

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

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

  4. web 瀏覽器會透過 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

Amazon Resource Name (ARN) 角色,來自 SAML 聲明中 Role 屬性的 AttributeValue 元素。若要尋找偏好角色適用的值,請洽詢 IdP 管理員。如需詳細資訊,請參閱 設定 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 使用。

設定 JDBC 或 ODBC 單一登入身分驗證搭配 Microsoft Azure AD

您可以使用 Microsoft Azure AD 作為身分提供者 (IdP) 來存取您的 Amazon Redshift 叢集。接著,您可以尋找描述如何就此目的設定信任關係的程序。如需有關設定 AWS 為 IdP 服務提供者的詳細資訊,請參閱「IAM 使用者指南」中的「使用信賴方信任設定 SAML 2.0 IdP」和「新增宣告」。

注意

若要使用 Azure AD 搭配 JDBC,Amazon Redshift JDBC 驅動程式必須為 1.2.37.1061 版或更新版本。若要使用 Azure AD 搭配 ODBC,Amazon Redshift ODBC 驅動程式必須為 1.4.10.1000 版或更新版本。

如要了解如何搭配 Microsoft Azure AD 單一登入聯合 Amazon Redshift 存取,請觀看以下影片。

若要將 Azure AD 和您的 AWS 帳戶設定為彼此信任
  1. 建立或使用現有的 Amazon Redshift 叢集,以供 Azure AD 使用者連線。若要設定連線,則需要此叢集的特定屬性,例如叢集識別碼。如需詳細資訊,請參閱建立叢集

  2. 設置 Azure 活動目錄,組,用於 Microsoft Azure 門戶網站 AWS 上的用戶。

  3. 在 Microsoft Azure 入口網站上將 Amazon Redshift 新增為企業應用程式,以便用於單一登入 AWS 主控台,以及聯合登入 Amazon Redshift。選擇 Enterprise application (企業應用程式)

  4. 選擇 +New application (新增應用程式)。新增應用程式頁面隨即顯示。

  5. 在搜尋欄位中搜尋 AWS

  6. 選擇 Amazon Web Services (AWS),然後選擇新增。這將創建 AWS 應用程序。

  7. Manage (管理) 下方,選擇 Single sign-on (單一登入)

  8. 選擇 SAML。Amazon Web Services (AWS) | 以 SAML 為基礎的登入頁面隨即顯示。

  9. 選擇 Yes (是),繼續進行「使用 SAML 頁面設定單一登入」。此頁面會顯示預先設定的單一登入相關屬性清單。

  10. Basic SAML Configuration (基本 SAML 組態) 中,選擇編輯圖示並選擇 Save (儲存)

  11. 設定超過一個應用程式時,請提供識別碼值。例如,​輸入 https://signin.aws.amazon.com/saml#2。請注意,從第二個應用程式開始,請使用此格式搭配 # 符號來指定唯一的 SPN 值。

  12. User Attributes and Claims (使用者屬性和宣告) 區段中選擇編輯圖示。

    根據預設,會預先設定唯一使用者識別碼 (UID) RoleSessionName、角色和 SessionDuration 宣告。

  13. 選擇 + Add new claim (新增宣告) 來新增資料庫使用者的宣告。

    針對名稱,輸入 DbUser

    針對 Namespace (命名空間),輸入 https://redshift.amazon.com/SAML/Attributes

    針對 Source (來源),選擇 Attribute (屬性)

    針對 Source attribute (來源屬性),選擇 user.userprincipalname。然後選擇 Save (儲存)

  14. 選擇 [+ 新增聲明] 以新增索賠 AutoCreate。

    針對名稱,輸入 AutoCreate

    針對 Namespace (命名空間),輸入 https://redshift.amazon.com/SAML/Attributes

    針對 Source (來源),選擇 Attribute (屬性)

    針對 Source attribute (來源屬性),選擇 “true”。然後選擇 Save (儲存)

    在此,123456789012 是您的 AWS 帳戶,AzureSSO 是您建立的 IAM 角色,而 AzureADProvider 是 IAM 提供者。

    宣告名稱 Value

    唯一使用者識別碼 (名稱 ID)

    user.userprincipalname

    https://aws.amazon.com/SAML/Attributes/SessionDuration

    "900"

    https://aws.amazon.com/SAML/Attributes/Role

    arn:aws:iam::123456789012:role/AzureSSO,arn:aws:iam::123456789012:saml-provider/AzureADProvider

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    user.userprincipalname

    https://redshift.amazon.com/SAML/Attributes/AutoCreate

    “true”

    https://redshift.amazon.com/SAML/Attributes/DbGroups

    user.assignedroles

    https://redshift.amazon.com/SAML/Attributes/DbUser

    user.userprincipalname

  15. App Registration (應用程式註冊) > your-application-name > Authentication (身分驗證) 下方,新增 Mobile And Desktop Application (行動和桌面應用程式)。將 URL 指定為 http://localhost/redshift。

  16. SAML Signing Certificate (SAML 簽署憑證) 區段中,選擇 Download (下載) 以下載並儲存聯合中繼資料 XML 檔案,以便在建立 IAM SAML 身分提供者時使用。此檔案用於建立單一登入聯合身分。

  17. 在 IAM 主控台上建立 IAM SAML 身分提供者。您所提供的中繼資料文件,是您在設定 Azure 企業應用程式時儲存的聯合中繼資料 XML 檔案。如需詳細步驟,請參閱《IAM 使用者指南》中的建立和管理 IAM 身分提供者 (主控台)

  18. 在 IAM 主控台上建立 SAML 2.0 聯合的 IAM 角色。如需詳細步驟,請參閱《IAM 使用者指南》中的為 SAML 建立角色

  19. 建立 IAM 政策,您可將其附加至您在 IAM 主控台上為 SAML 2.0 聯合建立的 IAM 角色。如需詳細步驟,請參閱《IAM 使用者指南》中的建立 IAM 政策 (主控台)

    為您的環境修改下列政策 (JSON 格式):

    • 以叢集的 AWS 區域取代us-west-1

    • 將您的 AWS 帳戶替換為123456789012

    • 以您的叢集識別碼 (或 * 代表所有叢集) 代替 cluster-identifier

    • 以您的資料庫 (或 * 代表所有資料庫) 代替 dev

    • 以 IAM 角色的唯一識別碼代替 AROAJ2UCCR6DPCEXAMPLE

    • 以您的租用戶或公司電子郵件網域代替 example.com

    • 以您計劃為其指派使用者的資料庫群組代替 my_dbgroup

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:us-west-1:123456789012:dbname:cluster-identifier/dev", "arn:aws:redshift:us-west-1:123456789012:dbuser:cluster-identifier/${redshift:DbUser}", "arn:aws:redshift:us-west-1:123456789012:cluster:cluster-identifier" ], "Condition": { "StringEquals": { "aws:userid": "AROAJ2UCCR6DPCEXAMPLE:${redshift:DbUser}@example.com" } } }, { "Effect": "Allow", "Action": "redshift:CreateClusterUser", "Resource": "arn:aws:redshift:us-west-1:123456789012:dbuser:cluster-identifier/${redshift:DbUser}" }, { "Effect": "Allow", "Action": "redshift:JoinGroup", "Resource": "arn:aws:redshift:us-west-1:123456789012:dbgroup:cluster-identifier/my_dbgroup" }, { "Effect": "Allow", "Action": [ "redshift:DescribeClusters", "iam:ListRoles" ], "Resource": "*" } ] }

    此政策會授與許可,如下所示:

    • 第一個區段會授與 GetClusterCredentials API 操作的許可,以取得所指定叢集的暫時性登入資料。在此範例中,資源是 cluster-identifier,其具有資料庫 dev、位於帳戶 123456789012、並位於 AWS 區域 us-west-1${redshift:DbUser} 子句只允許符合 Azure AD 中指定 DbUser 值的使用者連線。

    • 條件子句會強制只有特定使用者會取得臨時登入資料。這些是依據貴公司電子郵件網域中的電子郵件地址所識別的 IAM 帳戶中,具備角色唯一 ID AROAJ2UCCR6DPCEXAMPLE 所指定角色的使用者。如需唯一 ID 的相關資訊,請參閱《IAM 使用者指南》中的唯一 ID

      您所設定的 IdP (在此案例中為 Azure AD) 會決定條件子句的撰寫方式。如果您的員工電子郵件是 johndoe@example.com,請先將 ${redshift:DbUser} 設定為符合員工使用者名稱 johndoe 的超級欄位。然後將 AWS SAML RoleSessionName 欄位設定為符合員工電子郵件 johndoe@example.com 的超級欄位,讓此條件發揮作用。當您採取這種方法時,請考慮下列事項:

      • 如果您將 ${redshift:DbUser} 設定為員工的電子郵件,然後移除範例 JSON 中符合 RoleSessionName@example.com

      • 如果您將 RoleSessionId 設定為員工的使用者名稱,然後移除範例中符合 RoleSessionName@example.com

      • 在範例 JSON 中,${redshift:DbUser}RoleSessionName 均設定為員工的電子郵件。此範例 JSON 會使用 Amazon Redshift 資料庫使用者名稱搭配 @example.com,讓使用者登入以存取叢集。

    • 第二個區段會授與許可,以在指定的叢集中建立 dbuser 名稱。在此範例 JSON 中,其會將建立限制於 ${redshift:DbUser}

    • 第三個區段會授與許可,以指定使用者可以加入的 dbgroup。在此範例 JSON 中,使用者可以加入指定叢集中的 my_dbgroup 群組。

    • 第四個區段會授予使用者可對所有資源執行動作的許可。在此範例 JSON 中,它可讓使用者呼叫redshift:DescribeClusters以取得叢集資訊,例如叢集端點、 AWS 區域和連接埠。此外,還可允許使用者呼叫 iam:ListRoles,以檢查使用者可以擔任哪些角色。

設定 JDBC 以對 Microsoft Azure AD 進行身分驗證
  • 將資料庫用戶端設定為使用 Azure AD 單一登入,透過 JDBC 連線到您的叢集。

    您可使用任何採用 JDBC 驅動程式的用戶端使用 Azure AD 單一登入進行連線,或使用 Java 之類的語言透過指令碼進行連線。如需安裝和組態資訊,請參閱 設定 Amazon Redshift JDBC 驅動程式 2.1 版的連線

    例如,您可以使用 SQLWorkbench/J 作為用戶端。當您設定 SQLWorkbench /J 時,您的資料庫 URL 會使用下列格式。

    jdbc:redshift:iam://cluster-identifier:us-west-1/dev

    如果您使用 SQLWorkbench /J 作為用戶端,請執行下列步驟:

    1. 啟動 SQL Workbench/J。在選取連線設定檔頁面上,新增名為 AzureAuth設定檔群組

    2. 針對 Connection Profile (連線設定檔),輸入 Azure

    3. 選擇 Manage Drivers (管理驅動程式),然後選擇 Amazon Redshift。選擇程式庫旁邊的開啟資料夾圖示,然後選擇適當的 JDBC .jar 檔案。

    4. Select Connection Profile (選取連線設定檔) 頁面上,將資訊新增至連線設定檔,如下所示:

      • 針對 User (使用者),輸入您的 Microsoft Azure 使用者名稱。這是您用於單一登入之 Microsoft Azure 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。

      • 針對 Password (密碼),輸入您的 Microsoft Azure 密碼。

      • 針對 Drivers (驅動程式),選擇 Amazon Redshift (com.amazon.redshift.jdbc.Driver)

      • 針對 URL,輸入 jdbc:redshift:iam://your-cluster-identifier:your-cluster-region/your-database-name

    5. 選擇 Extended Properties (擴充屬性) 以將其他資訊新增至連線屬性,如下所述。

      針對 Azure AD 單一登入組態新增其他資訊,如下所示:

      • 針對 plugin_name,輸入 com.amazon.redshift.plugin.AzureCredentialsProvider。此值會指定驅動程式使用 Azure AD 單一登入做為身分驗證方法。

      • 針對 idp_tenant,輸入 your-idp-tenant。僅用於 Microsoft Azure AD。這是您在 Azure AD 上設定的公司租用戶名稱。此值可以是租用戶名稱或租用戶唯一 ID (含連字號)。

      • 針對 client_secret,輸入 your-azure-redshift-application-client-secret。僅用於 Microsoft Azure AD。這是您在設定 Azure 單一登入組態時所建立之 Amazon Redshift 應用程式的用戶端秘密。這僅適用於亞馬遜。 AzureCredentialsProvider 插件。

      • 針對 client_id,輸入 your-azure-redshift-application-client-id。僅用於 Microsoft Azure AD。這是您在設定 Azure 單一登入組態時所建立之 Amazon Redshift 應用程式的用戶端 ID (含連字號)。

      針對具有 MFA 的 Azure AD 單一登入組態,將其他資訊新增至連線屬性,如下所示:

      • 針對 plugin_name,輸入 com.amazon.redshift.plugin.BrowserAzureCredentialsProvider。此值會指定驅動程式使用具有 MFA 的 Azure AD 單一登入做為身分驗證方法。

      • 針對 idp_tenant,輸入 your-idp-tenant。僅用於 Microsoft Azure AD。這是您在 Azure AD 上設定的公司租用戶名稱。此值可以是租用戶名稱或租用戶唯一 ID (含連字號)。

      • 針對 client_id,輸入 your-azure-redshift-application-client-id。此選項僅用於 Microsoft Azure AD。這是您在設定具有 MFA 的 Azure AD 單一登入組態時所建立之 Amazon Redshift 應用程式的用戶端 ID (含連字號)。

      • 針對 listen_port,輸入 your-listen-port。這是本機伺服器接聽的連接埠。預設值為 7890。

      • 針對 idp_response_timeout,輸入 the-number-of-seconds。這是 IdP 伺服器傳回回應時,在逾時之前等待的秒數。秒數的下限必須為 10。如果建立連線所花的時間超過此臨界值,連線會中止。

設定 ODBC 以對 Microsoft Azure AD 進行身分驗證
  • 將資料庫用戶端設定為使用 Azure AD 單一登入,透過 ODBC 連線到您的叢集。

    Amazon Redshift 會提供適用於 Linux、Windows 和 macOS 作業系統的 ODBC 驅動程式。安裝 ODBC 驅動程式之前,查明 SQL 用戶端工具是 32 位元或 64 位元。安裝符合 SQL 用戶端工具需求的 ODBC 驅動程式。

    此外,為您的作業系統安裝和設定最新的 Amazon Redshift OBDC 驅動程式,如下所示:

    在 Windows 上,於 Amazon Redshift ODBC Driver DSN Setup (Amazon Redshift ODBC 驅動程式 DSN 設定) 頁面的 Connection Settings (連線設定) 之下,輸入下列資訊:

    • 針對 Data source name (資料來源名稱),輸入 your-DSN。這會指定作為 ODBC 設定檔名稱的資料來源名稱。

    • 針對 Azure AD 單一登入組態的驗證類型,請選擇 Identity Provider: Azure AD。這是 ODBC 驅動程式使用 Azure 單一登入來進行驗證的身分驗證方法。

    • 針對具有 MFA 的 Azure AD 單一登入組態的驗證類型,請選擇 Identity Provider: Browser Azure AD。這是 ODBC 驅動程式使用具有 MFA 之 Azure 單一登入來進行驗證的身分驗證方法。

    • 針對 Cluster ID (叢集 ID),輸入 your-cluster-identifier

    • 針對 Region (區域),輸入 your-cluster-region

    • 針對 Database (資料庫),輸入 your-database-name

    • 針對 User (使用者),輸入 your-azure-username。這是您用於單一登入之 Microsoft Azure 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅在 Auth Type (驗證類型)Identity Provider: Azure AD (身分提供者:Azure AD) 的情況下使用此項目。

    • 針對 Password (密碼),輸入 your-azure-password。僅在 Auth Type (驗證類型)Identity Provider: Azure AD (身分提供者:Azure AD) 的情況下使用此項目。

    • 針對 IdP Tenant (IdP 租用戶),輸入 your-idp-tenant。這是您在 IdP (Azure) 上設定的公司租用戶名稱。此值可以是租用戶名稱或租用戶唯一 ID (含連字號)。

    • 針對 Azure Client Secret (Azure 用戶端密碼),輸入 your-azure-redshift-application-client-secret。這是您在設定 Azure 單一登入組態時所建立之 Amazon Redshift 應用程式的用戶端秘密。

    • 針對 Azure Client ID (Azure 用戶端 ID),輸入 your-azure-redshift-application-client-id。這是您在設定 Azure 單一登入組態時所建立之 Amazon Redshift 應用程式的用戶端 ID (含連字號)。

    • 針對 Listen Port (接聽連接埠),輸入 your-listen-port。這是本機伺服器接聽的預設接聽連接埠。預設值為 7890。這僅適用於瀏覽器 Azure AD 外掛程式。

    • 針對 Response Timeout (回應逾時),輸入 the-number-of-seconds。這是 IdP 伺服器傳回回應時,在逾時之前等待的秒數。秒數的下限必須為 10。如果建立連線所花的時間超過此臨界值,連線會中止。此選項僅適用於瀏覽器 Azure AD 外掛程式。

    在 macOS 和 Linux 上,編輯 odbc.ini 檔案,如下所示:

    注意

    所有項目都不區分大小寫。

    • 針對 clusterid,輸入 your-cluster-identifier。這是所建立 Amazon Redshift 叢集的名稱。

    • 針對 region (區域),輸入 your-cluster-region。這是所建 AWS 立的 Amazon Redshift 叢集的區域。

    • 針對 database (資料庫),輸入 your-database-name。這是您嘗試在 Amazon Redshift 叢集上存取的資料庫名稱。

    • 針對 locale,輸入 en-us。這是錯誤訊息的顯示語言。

    • 針對 iam,輸入 1。此值指定驅動程式使用 IAM 登入資料進行身分驗證。

    • 如需 Azure AD 單一登入組態的 plugin_name,請輸入 AzureAD。這會指定驅動程式使用 Azure 單一登入作為身分驗證方法。

    • 如需具有 MFA 的 Azure AD 單一登入組態的 plugin_name,請輸入 BrowserAzureAD。這會指定驅動程式使用具有 MFA 的 Azure 單一登入做為身分驗證方法。

    • 針對 uid,輸入 your-azure-username。這是您用於單一登入之 Microsoft Azure 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅在 plugin_nameAzureAD 的情況下使用此項目。

    • 針對 pwd,輸入 your-azure-password。僅在 plugin_nameAzureAD 的情況下使用此項目。

    • 針對 idp_tenant,輸入 your-idp-tenant。這是您在 IdP (Azure) 上設定的公司租用戶名稱。此值可以是租用戶名稱或租用戶唯一 ID (含連字號)。

    • 針對 client_secret,輸入 your-azure-redshift-application-client-secret。這是您在設定 Azure 單一登入組態時所建立之 Amazon Redshift 應用程式的用戶端秘密。

    • 針對 client_id,輸入 your-azure-redshift-application-client-id。這是您在設定 Azure 單一登入組態時所建立之 Amazon Redshift 應用程式的用戶端 ID (含連字號)。

    • 針對 listen_port,輸入 your-listen-port。這是本機伺服器接聽的連接埠。預設值為 7890。這適用於瀏覽器 Azure AD 外掛程式。

    • 針對 idp_response_timeout,輸入 the-number-of-seconds。這是等待 Azure 回應的指定時間期間 (秒)。此選項適用於瀏覽器 Azure AD 外掛程式。

    在 macOS 和 Linux 上,同時編輯設定檔設定以新增下列匯出:

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
疑難排解瀏覽器 Azure AD 外掛程式的問題
  1. 若要使用瀏覽器 Azure AD 外掛程式,您必須設定請求中指定的回覆 URL,以符合為您的應用程式設定的回覆 URL。

    瀏覽至 Microsoft Azure 入口網站上的 Set up Single Sign-On with SAML (使用 SAML 設定單一登入) 頁面。然後檢查回覆網址 是否設定為 http://localhost/redshift/。

  2. 如果您收到 IdP 租用戶錯誤,請確認 IdP 租用戶名稱與您最初用來設定 Microsoft Azure 中使用中目錄的網域名稱相符。

    在 Windows 上,導覽至 Amazon Redshift ODBC DSN 設定頁面的連線設定區段。接著檢查您在 IdP (Azure) 上設定的公司租用戶名稱是否與您最初用來在 Microsoft Azure 中設定使用中目錄的網域名稱相符。

    在 macOS 和 Linux 上,找到這個 odbc.ini 檔案。接著檢查您在 IdP (Azure) 上設定的公司租用戶名稱是否與您最初用來在 Microsoft Azure 中設定使用中目錄的網域名稱相符。

  3. 如果您收到請求中指定的回覆 URL 與為應用程式設定的回覆 URL 不相符的錯誤,請確認重新導向 URI 與回覆 URL 相同。

    瀏覽至 Microsoft Azure 入口網站上應用程式的 App registration (應用程式註冊) 頁面。然後檢查重新導向 URI 與回覆 URL 是否相符。

  4. 如果您收到未經授權的回應:未經授權的錯誤,請確認您已完成行動裝置和桌面應用程式組態。

    瀏覽至 Microsoft Azure 入口網站上應用程式的 App registration (應用程式註冊) 頁面。然後瀏覽至 Authentication (驗證),並檢查您已將行動裝置和桌面應用程式設定為使用 http://localhost/redshift/ 做為重新導向 URI。

設定 JDBC 或 ODBC 單一登入身分驗證搭配 AD FS

您可以使用 AD FS 做為身分提供者 (IdP) 來存取您的 Amazon Redshift 叢集。接著,您可以尋找描述如何就此目的設定信任關係的程序。如需有關設定 AWS 為 AD FS 服務提供者的詳細資訊,請參閱「IAM 使用者指南」中的「使用信賴方信任設定 SAML 2.0 IdP」和「新增宣告」。

若要設定 AD FS 和您的 AWS 帳戶互相信任
  1. 建立或使用現有的 Amazon Redshift 叢集,以供 AD FS 使用者連線。若要設定連線,則需要此叢集的特定屬性,例如叢集識別碼。如需詳細資訊,請參閱建立叢集

  2. 設定 AD FS 以控制 Microsoft 管理主控台上的 Amazon Redshift 存取:

    1. 選擇 ADFS 2.0,然後選擇 Add Relying Party Trust (新增信賴方信任)。在 Add Relying Party Trust Wizard (新增信賴方信任精靈) 頁面上,選擇 Start (開始)

    2. Select Data Source (選取資料來源) 頁面上,選擇 Import data about the relying party published online or on a local network (匯入關於在線上或本機網路上發佈信賴方的資料)

    3. 針對 Federation metadata address (host name or URL) (聯合中繼資料地址 (主機名稱或 URL)),輸入 https://signin.aws.amazon.com/saml-metadata.xml。中繼資料 XML 檔案是描述 AWS 為信賴憑證者的標準 SAML 中繼資料文件。

    4. Specify Display Name (指定顯示名稱) 頁面上,輸入 Display name (顯示名稱) 的值。

    5. Choose Issuance Authorization Rules (選擇發行授權規則) 頁面上,選擇允許或拒絕所有使用者存取此信賴方的發行授權規則。

    6. Ready to Add Trust (準備新增信任) 頁面上檢閱您的設定。

    7. Finish (完成) 頁面上,選擇 Open the Edit Claim Rules dialog for this relying party trust when the wizard closes (當精靈關閉時,開啟此信賴方信任的「編輯宣告規則」對話方塊)

    8. 在內容 (按一下滑鼠右鍵) 功能表上,選擇 Relying Party Trusts (依賴方信任)

    9. 針對您的信賴方,開啟內容 (按一下滑鼠右鍵) 功能表,然後選擇 Edit Claim Rules (編輯宣告規則)。在 Edit Claim Rules (編輯宣告規則) 頁面上,選擇 Add Rule (新增規則)

    10. 針對宣告規則範本,選擇 [轉換內送宣告],然後在 [編輯規則-] NameId 頁面上執行下列動作:

      • 針對宣告規則名稱,輸入NameId

      • 針對 Incoming claim name (傳入宣告名稱),選擇 Windows Account Name (Windows 帳戶名稱)

      • 針對 Outgoing claim name (傳出宣告名稱),選擇 Name ID (名稱 ID)

      • 針對 Outgoing name ID format (傳出名稱 ID 格式),選擇 Persistent Identifier (持久性標識符)

      • 選擇 Pass through all claim values (傳遞所有宣告值)

    11. Edit Claim Rules (編輯宣告規則) 頁面上,選擇 Add Rule (新增規則)。在 Select Rule Template (選取規則範本) 頁面上,針對 Claim rule template (宣告規則範本),選擇 Send LDAP Attributes as Claims (將 LDAP 屬性傳送為宣告)

    12. Configure Rule (設定規則) 頁面上,執行下列作業:

      • 針對 Claim rule name (宣告規則名稱),輸入 RoleSessionName

      • 針對 Attribute store (屬性存放區),選擇 Active Directory

      • 針對 LDAP Attribute (LDAP 屬性),選擇 Email Addresses (電子郵件地址)

      • 針對 傳出宣告類型,選擇 https://aws.amazon.com/SAML/Attributes/RoleSessionName

    13. Edit Claim Rules (編輯宣告規則) 頁面上,選擇 Add Rule (新增規則)。在 Select Rule Template (選取規則範本) 頁面上,針對 Claim rule template (宣告規則範本),選擇 Send Claims Using a Custom Rule (使用自訂規則傳送宣告)

    14. Edit Rule – Get AD Groups (編輯規則 – 取得 AD 群組) 頁面上,針對 Claim rule name (宣告規則名稱),輸入 Get AD Groups (取得 AD 群組)

    15. 針對 Custom rule (自訂規則),輸入下列內容。

      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value);
    16. Edit Claim Rules (編輯宣告規則) 頁面上,選擇 Add Rule (新增規則)。在 Select Rule Template (選取規則範本) 頁面上,針對 Claim rule template (宣告規則範本),選擇 Send Claims Using a Custom Rule (使用自訂規則傳送宣告)

    17. Edit Rule – Roles (編輯規則 – 角色) 頁面上,針對 Claim rule name (宣告規則名稱),輸入 Roles (角色)

    18. 針對 Custom rule (自訂規則),輸入下列內容。

      c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-provider/ADFS,arn:aws:iam::123456789012:role/ADFS-"));

      請記下 SAML 供應商的 ARN,以及要扮演的角色。在此範例中,arn:aws:iam:123456789012:saml-provider/ADFS 是 SAML 供應商的 ARN,arn:aws:iam:123456789012:role/ADFS- 是角色的 ARN。

  3. 請確定您已下載 federationmetadata.xml 檔案。檢查文件內容沒有無效的字元。這是您在設定信任關係時使用的中繼資料檔案 AWS。

  4. 在 IAM 主控台上建立 IAM SAML 身分提供者。您所提供的中繼資料文件,是您在設定 Azure 企業應用程式時儲存的聯合中繼資料 XML 檔案。如需詳細步驟,請參閱《IAM 使用者指南》中的建立和管理 IAM 身分提供者 (主控台)

  5. 在 IAM 主控台上建立 SAML 2.0 聯合的 IAM 角色。如需詳細步驟,請參閱《IAM 使用者指南》中的為 SAML 建立角色

  6. 建立 IAM 政策,您可將其附加至您在 IAM 主控台上為 SAML 2.0 聯合建立的 IAM 角色。如需詳細步驟,請參閱《IAM 使用者指南》中的建立 IAM 政策 (主控台)。如需 Azure AD 範例,請參閱設定 JDBC 或 ODBC 單一登入身分驗證搭配 Microsoft Azure AD

設定 JDBC 以對 AD FS 進行身分驗證
  • 將資料庫用戶端設定為使用 AD FS 單一登入,透過 JDBC 連線到您的叢集。

    您可使用任何採用 JDBC 驅動程式的用戶端使用 AD FS 單一登入進行連線,或使用 Java 之類的語言透過指令碼進行連線。如需安裝和組態資訊,請參閱 設定 Amazon Redshift JDBC 驅動程式 2.1 版的連線

    例如,您可以使用 SQLWorkbench/J 作為用戶端。當您設定 SQLWorkbench /J 時,您的資料庫 URL 會使用下列格式。

    jdbc:redshift:iam://cluster-identifier:us-west-1/dev

    如果您使用 SQLWorkbench /J 作為用戶端,請執行下列步驟:

    1. 啟動 SQL Workbench/J。在選取連線設定檔頁面中,新增設定檔群組,例如 ADFS

    2. 針對 Connection Profile (連線設定檔),輸入您的連線設定檔名稱,例如 ADFS

    3. 選擇 Manage Drivers (管理驅動程式),然後選擇 Amazon Redshift。選擇程式庫旁邊的開啟資料夾圖示,然後選擇適當的 JDBC .jar 檔案。

    4. Select Connection Profile (選取連線設定檔) 頁面上,將資訊新增至連線設定檔,如下所示:

      • 針對 User (使用者),輸入您的 AD FS 使用者名稱。這是您用於單一登入之 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。

      • 針對 Password (密碼),輸入您的 AD FS 密碼。

      • 針對 Drivers (驅動程式),選擇 Amazon Redshift (com.amazon.redshift.jdbc.Driver)

      • 針對 URL,輸入 jdbc:redshift:iam://your-cluster-identifier:your-cluster-region/your-database-name

    5. 選擇延伸屬性。針對 plugin_name,輸入 com.amazon.redshift.plugin.AdfsCredentialsProvider。此值會指定驅動程式使用 AD FS 單一登入做為身分驗證方法。

設定 ODBC 以對 AD FS 進行身分驗證
  • 將資料庫用戶端設定為使用 AD FS 單一登入,透過 ODBC 連線到您的叢集。

    Amazon Redshift 會提供適用於 Linux、Windows 和 macOS 作業系統的 ODBC 驅動程式。安裝 ODBC 驅動程式之前,查明 SQL 用戶端工具是 32 位元或 64 位元。安裝符合 SQL 用戶端工具需求的 ODBC 驅動程式。

    此外,為您的作業系統安裝和設定最新的 Amazon Redshift OBDC 驅動程式,如下所示:

    在 Windows 上,於 Amazon Redshift ODBC Driver DSN Setup (Amazon Redshift ODBC 驅動程式 DSN 設定) 頁面的 Connection Settings (連線設定) 之下,輸入下列資訊:

    • 針對 Data source name (資料來源名稱),輸入 your-DSN。這會指定作為 ODBC 設定檔名稱的資料來源名稱。

    • 針對驗證類型,選擇身分提供者:SAML。這是 ODBC 驅動程式使用 AD FS 單一登入來進行驗證的身分驗證方法。

    • 針對 Cluster ID (叢集 ID),輸入 your-cluster-identifier

    • 針對 Region (區域),輸入 your-cluster-region

    • 針對 Database (資料庫),輸入 your-database-name

    • 針對 User (使用者),輸入 your-adfs-username。這是您用於單一登入之 AD FS 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅在 Auth Type (驗證類型)Identity Provider: SAML (身分提供者:SAML) 的情況下使用此項目。

    • 針對 Password (密碼),輸入 your-adfs-password。僅在 Auth Type (驗證類型)Identity Provider: SAML (身分提供者:SAML) 的情況下使用此項目。

    在 macOS 和 Linux 上,編輯 odbc.ini 檔案,如下所示:

    注意

    所有項目都不區分大小寫。

    • 針對 clusterid,輸入 your-cluster-identifier。這是所建立 Amazon Redshift 叢集的名稱。

    • 針對 region (區域),輸入 your-cluster-region。這是所建 AWS 立的 Amazon Redshift 叢集的區域。

    • 針對 database (資料庫),輸入 your-database-name。這是您嘗試在 Amazon Redshift 叢集上存取的資料庫名稱。

    • 針對 locale,輸入 en-us。這是錯誤訊息的顯示語言。

    • 針對 iam,輸入 1。此值指定驅動程式使用 IAM 登入資料進行身分驗證。

    • 針對 plugin_name,執行下列其中一項作業:

      • 若為具有 MFA 的 AD FS 單一登入組態,請輸入 BrowserSAML。這是 ODBC 驅動程式用來驗證 AD FS 的身分驗證方法。

      • 若為 AD FS 單一登入組態,請輸入 ADFS。這是 ODBC 驅動程式使用 Azure AD 單一登入來進行驗證的身分驗證方法。

    • 針對 uid,輸入 your-adfs-username。這是您用於單一登入之 Microsoft Azure 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅在 plugin_nameADFS 的情況下使用此項目。

    • 針對 pwd,輸入 your-adfs-password。僅在 plugin_nameADFS 的情況下使用此項目。

    在 macOS 和 Linux 上,同時編輯設定檔設定以新增下列匯出:

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini

設定 JDBC 或 ODBC 單一登入身分驗證搭配 Ping Identity

您可以使用 Ping 身分做為身分提供者 (IdP) 來存取您的 Amazon Redshift 叢集。接下來,您可以找到描述如何使用 PingOne 入口網站為此目的設定信任關係的程序。如需有關設定 AWS 為 Ping 身分識別的服務提供者的詳細資訊,請參閱在 IAM 使用者指南中設定 SAML 2.0 IdP 和新增宣告

設置 Ping 身份和您的 AWS 帳戶以相互信任
  1. 建立或使用現有的 Amazon Redshift 叢集,以供 Ping Identity 使用者連線。若要設定連線,則需要此叢集的特定屬性,例如叢集識別碼。如需詳細資訊,請參閱建立叢集

  2. 將 Amazon Redshift 新增為入口網站上的新 SAML 應用程式 PingOne 。如需詳細步驟,請參閱 Ping 身分文件

    1. 前往 My Applications (我的應用程式)

    2. Add Application (新增應用程式) 下方,選擇 New SAML Application (新增 SAML 應用程式)

    3. 針對 Application Name (應用程式名稱),輸入 Amazon Redshift

    4. 針對 Protocol Version (通訊協定版本),選擇 SAML v2.0

    5. 針對 Category (類別),選擇 your-application-category

    6. 針對 Assertion Consumer Service (ACS) (聲明消費者服務 (ACS)),輸入 your-redshift-local-host-url。這是 SAML 聲明會重新導向至的本機主機與連接埠。

    7. 針對 Entity ID (實體 ID),輸入 urn:amazon:webservices

    8. 針對 Signing (簽署),選擇 Sign Assertion (簽署聲明)

    9. SSO Attribute Mapping (SSO 屬性映射) 區段中,建立如下表所示的宣告。

      應用程式屬性 常值的身分橋接屬性

      https://aws.amazon.com/SAML/Attributes/Role

      ARN: AWN: IAM:: 123456789012: 角色/平, 阿姆:AWN: IAM:: 123 456789012: 參數提供者/PingProvider

      https://aws.amazon.com/SAML/Attributes/RoleSessionName

      email

      https://redshift.amazon.com/SAML/Attributes/AutoCreate

      “true”

      https://redshift.amazon.com/SAML/Attributes/ DbUser

      email

      https://redshift.amazon.com/SAML/Attributes/ DbGroups

      「DbGroups」屬性中的群組包含 @directory 前置詞。若要移除此項目,請在 Identity Bridge 中輸入 memberOf。在函數中,選擇ExtractByRegularExpression。在運算式中,輸入 (.*)[\@](?:.*)

  3. 針對 Group Access (群組存取),視需要設定下列群組存取:

    • https://aws.amazon.com/SAML/Attributes/Role

    • https://aws.amazon.com/SAML/Attributes/RoleSessionName

    • https://redshift.amazon.com/SAML/Attributes/AutoCreate

    • https://redshift.amazon.com/SAML/Attributes/DbUser

  4. 檢閱您的設定並進行變更 (如有必要)。

  5. 使用 Initiate Single Sign-On (SSO) URL (啟動單一登入 (SSO) URL) 做為瀏覽器 SAML 外掛程式的登入 URL。

  6. 在 IAM 主控台上建立 IAM SAML 身分提供者。您所提供的中繼資料文件,是您在設定 Ping 身分時儲存的聯合中繼資料 XML 檔案。如需詳細步驟,請參閱《IAM 使用者指南》中的建立和管理 IAM 身分提供者 (主控台)

  7. 在 IAM 主控台上建立 SAML 2.0 聯合的 IAM 角色。如需詳細步驟,請參閱《IAM 使用者指南》中的為 SAML 建立角色

  8. 建立 IAM 政策,您可將其附加至您在 IAM 主控台上為 SAML 2.0 聯合建立的 IAM 角色。如需詳細步驟,請參閱《IAM 使用者指南》中的建立 IAM 政策 (主控台)。如需 Azure AD 範例,請參閱設定 JDBC 或 ODBC 單一登入身分驗證搭配 Microsoft Azure AD

設定 JDBC 以對 Ping 身分進行驗證
  • 將資料庫用戶端設定為使用 Ping Identity 單一登入,透過 JDBC 連線到您的叢集。

    您可使用任何採用 JDBC 驅動程式的用戶端使用 Ping Identity 單一登入進行連線,或使用 Java 之類的語言透過指令碼進行連線。如需安裝和組態資訊,請參閱 設定 Amazon Redshift JDBC 驅動程式 2.1 版的連線

    例如,您可以使用 SQLWorkbench/J 作為用戶端。當您設定 SQLWorkbench /J 時,您的資料庫 URL 會使用下列格式。

    jdbc:redshift:iam://cluster-identifier:us-west-1/dev

    如果您使用 SQLWorkbench /J 作為用戶端,請執行下列步驟:

    1. 啟動 SQL Workbench/J。在選取連線設定檔頁面中,新增設定檔群組,例如 Ping

    2. 針對 Connection Profile (連線設定檔),輸入 your-connection-profile-name,例如 Ping

    3. 選擇 Manage Drivers (管理驅動程式),然後選擇 Amazon Redshift。選擇程式庫旁邊的開啟資料夾圖示,然後選擇適當的 JDBC .jar 檔案。

    4. Select Connection Profile (選取連線設定檔) 頁面上,將資訊新增至連線設定檔,如下所示:

      • 使用者中,輸入您的 PingOne 使用者名稱。這是您用於單一登入之 PingOne 帳戶的使用者名稱,該帳戶具有您嘗試使用驗證之叢集權限的使用者名稱。

      • 在「密碼」中,輸入您的 PingOne 密碼。

      • 針對 Drivers (驅動程式),選擇 Amazon Redshift (com.amazon.redshift.jdbc.Driver)

      • 針對 URL,輸入 jdbc:redshift:iam://your-cluster-identifier:your-cluster-region/your-database-name

    5. 選擇 Extended Properties (延伸屬性),然後執行下列任一項:

      • 針對 login_url,輸入 your-ping-sso-login-url。此值會指定 URL 使用單一登入做為登入的身分驗證。

      • 若為 Ping 身分,請針對 plugin_name 輸入 com.amazon.redshift.plugin.PingCredentialsProvider。此值指定驅動程式使用 Ping Identity 單一登入作為身分驗證方法。

      • 若為具有單一登入的 Ping Identity,請針對 plugin_name 輸入 com.amazon.redshift.plugin.BrowserSamlCredentialsProvider。此值會指定驅動程式使用 Ping Identity PingOne 搭配單一登入作為驗證方法。

設定 ODBC 以對 Ping 身分進行身分驗證
  • 將您的資料庫用戶端設定為使用 Ping 身分 PingOne 單一登入透過 ODBC 連線到叢集。

    Amazon Redshift 會提供適用於 Linux、Windows 和 macOS 作業系統的 ODBC 驅動程式。安裝 ODBC 驅動程式之前,查明 SQL 用戶端工具是 32 位元或 64 位元。安裝符合 SQL 用戶端工具需求的 ODBC 驅動程式。

    此外,為您的作業系統安裝和設定最新的 Amazon Redshift OBDC 驅動程式,如下所示:

    在 Windows 上,於 Amazon Redshift ODBC Driver DSN Setup (Amazon Redshift ODBC 驅動程式 DSN 設定) 頁面的 Connection Settings (連線設定) 之下,輸入下列資訊:

    • 針對 Data source name (資料來源名稱),輸入 your-DSN。這會指定作為 ODBC 設定檔名稱的資料來源名稱。

    • 針對 Auth Type (驗證類型),執行下列其中一項操作:

      • 針對 Ping 身分組態,選擇 Identity Provider: Ping Federate (身分提供者:Ping 聯合)。這是 ODBC 驅動程式使用 Ping Identity 單一登入用來驗證的身分驗證方法。

      • 針對具有單一登入的 Ping Identity 組態,選擇身分提供者:瀏覽器 SAML。這是 ODBC 驅動程式透過具有單一登入的 Ping Identity 用來進行身分驗證的身分驗證方法。

    • 針對 Cluster ID (叢集 ID),輸入 your-cluster-identifier

    • 針對 Region (區域),輸入 your-cluster-region

    • 針對 Database (資料庫),輸入 your-database-name

    • 針對 User (使用者),輸入 your-ping-username。這是您用於單一登入的 PingOne 帳戶的使用者名稱,該帳戶具有您嘗試使用驗證之叢集的權限。僅將其用於身份驗證類型身份提供者: PingFederate

    • 針對 Password (密碼),輸入 your-ping-password。僅將其用於身份驗證類型身份提供者: PingFederate

    • 針對 Listen Port (接聽連接埠),輸入 your-listen-port。這是本機伺服器接聽的連接埠。預設值為 7890。這僅適用於瀏覽器 SAML 外掛程式。

    • 針對 Response Timeout (回應逾時),輸入 the-number-of-seconds。這是 IdP 伺服器傳回回應時,在逾時之前等待的秒數。秒數的下限必須為 10。如果建立連線所花的時間超過此臨界值,連線會中止。這僅適用於瀏覽器 SAML 外掛程式。

    • 針對 Login URL (登入 URL),輸入 your-login-url。這僅適用於瀏覽器 SAML 外掛程式。

    在 macOS 和 Linux 上,編輯 odbc.ini 檔案,如下所示:

    注意

    所有項目都不區分大小寫。

    • 針對 clusterid,輸入 your-cluster-identifier。這是所建立 Amazon Redshift 叢集的名稱。

    • 針對 region (區域),輸入 your-cluster-region。這是所建 AWS 立的 Amazon Redshift 叢集的區域。

    • 針對 database (資料庫),輸入 your-database-name。這是您嘗試在 Amazon Redshift 叢集上存取的資料庫名稱。

    • 針對 locale,輸入 en-us。這是錯誤訊息的顯示語言。

    • 針對 iam,輸入 1。此值指定驅動程式使用 IAM 登入資料進行身分驗證。

    • 針對 plugin_name,執行下列其中一項作業:

      • 針對 Ping 身分組態,輸入 BrowserSAML。這是 ODBC 驅動程式用來驗證具有 MFA 之 Ping 身分 SSO 的身分驗證方法。

      • 對於具有單一登入的 Ping Identity 組態,請輸入 Ping。這是 ODBC 驅動程式透過具有單一登入的 Ping Identity 用來進行身分驗證的身分驗證方法。

    • 針對 uid,輸入 your-ping-username。這是您用於單一登入之 Microsoft Azure 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅在 plugin_namePing 的情況下使用此項目。

    • 針對 pwd,輸入 your-ping-password。僅在 plugin_namePing 的情況下使用此項目。

    • 針對 login_url,輸入 your-login-url。這是會傳回 SAML 回應的初始單一登入 URL。這僅適用於瀏覽器 SAML 外掛程式。

    • 針對 idp_response_timeout,輸入 the-number-of-seconds。這是等待 PingOne Identity 回應的指定時間 (以秒為單位)。這僅適用於瀏覽器 SAML 外掛程式。

    • 針對 listen_port,輸入 your-listen-port。這是本機伺服器接聽的連接埠。預設值為 7890。這僅適用於瀏覽器 SAML 外掛程式。

    在 macOS 和 Linux 上,同時編輯設定檔設定以新增下列匯出:

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini

設定 JDBC 或 ODBC 單一登入身分驗證搭配 Okta

您可以使用 Okta 做為身分提供者 (IdP) 來存取您的 Amazon Redshift 叢集。接著,您可以尋找描述如何就此目的設定信任關係的程序。如需有關設定 AWS 為 Okta 服務提供者的詳細資訊,請參閱「IAM 使用者指南」中的「使用信賴方信任設定 SAML 2.0 IdP」和「新增宣告」。

設定 Okta 與您的 AWS 帳戶以互相信任
  1. 建立或使用現有的 Amazon Redshift 叢集,以供 Okta 使用者連線。若要設定連線,則需要此叢集的特定屬性,例如叢集識別碼。如需詳細資訊,請參閱建立叢集

  2. 在 Okta 入口網站上將 Amazon Redshift 新增為新的應用程式。如需詳細步驟,請參閱 Okta 文件

    • 選擇 Add Application (新增應用程式)

    • Add Application (新增應用程式) 下方,選擇 Create New App (建立新的應用程式)

    • Create a New Add Application Integration (建立新的新增應用程式整合) 頁面上,針對 Platform (平台) 選擇 Web

    • 針對 Sign on method (登入方法),選擇 SAML v2.0

    • General Settings (一般設定) 頁面上,針對 App name (應用程式名稱) 輸入 your-redshift-saml-sso-name。這是您的應用程式名稱。

    • SAML Settings (SAML 設定) 頁面上,針對 Single sign on URL (單一登入 URL),輸入 your-redshift-local-host-url。這是 SAML 聲明會重新導向至的本機主機與連接埠,例如 http://localhost:7890/redshift/

  3. 使用單一登入 URL 值做為收件人 URL目標 URL

  4. 針對 Signing (簽署),選擇 Sign Assertion (簽署聲明)

  5. 針對對象 URI (SP 實體 ID),針對宣告輸入 urn:amazon:webservices,如下表所示。

  6. 進階設定區段中,針對 SAML 發行者 ID 輸入 your-Identity-Provider-Issuer-ID,您可以在檢視設定指示區段中找到此值。

  7. Attribute Statements (屬性陳述式) 區段中,建立如下表所示的宣告。

    宣告名稱 Value

    https://aws.amazon.com/SAML/Attributes/Role

    arn:aws:iam::123456789012:role/Okta,arn:aws:iam::123456789012:saml-provider/Okta

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    user.email

    https://redshift.amazon.com/SAML/Attributes/AutoCreate

    “true”

    https://redshift.amazon.com/SAML/Attributes/DbUser

    user.email

  8. App Embed Link (應用程式內嵌連結) 區段中,尋找您可以用來做為瀏覽器 SAML 外掛程式登入 URL 的 URL。

  9. 在 IAM 主控台上建立 IAM SAML 身分提供者。您所提供的中繼資料文件,是您在設定 Okta 時儲存的聯合中繼資料 XML 檔案。如需詳細步驟,請參閱《IAM 使用者指南》中的建立和管理 IAM 身分提供者 (主控台)

  10. 在 IAM 主控台上建立 SAML 2.0 聯合的 IAM 角色。如需詳細步驟,請參閱《IAM 使用者指南》中的為 SAML 建立角色

  11. 建立 IAM 政策,您可將其附加至您在 IAM 主控台上為 SAML 2.0 聯合建立的 IAM 角色。如需詳細步驟,請參閱《IAM 使用者指南》中的建立 IAM 政策 (主控台)。如需 Azure AD 範例,請參閱設定 JDBC 或 ODBC 單一登入身分驗證搭配 Microsoft Azure AD

設定 JDBC 以對 Okta 進行身分驗證
  • 將資料庫用戶端設定為使用 Okta 單一登入,透過 JDBC 連線到您的叢集。

    您可使用任何採用 JDBC 驅動程式的用戶端使用 Okta 單一登入進行連線,或使用 Java 之類的語言透過指令碼進行連線。如需安裝和組態資訊,請參閱 設定 Amazon Redshift JDBC 驅動程式 2.1 版的連線

    例如,您可以使用 SQLWorkbench/J 作為用戶端。當您設定 SQLWorkbench /J 時,您的資料庫 URL 會使用下列格式。

    jdbc:redshift:iam://cluster-identifier:us-west-1/dev

    如果您使用 SQLWorkbench /J 作為用戶端,請執行下列步驟:

    1. 啟動 SQL Workbench/J。在選取連線設定檔頁面中,新增設定檔群組,例如 Okta

    2. 針對 Connection Profile (連線設定檔),輸入 your-connection-profile-name,例如 Okta

    3. 選擇 Manage Drivers (管理驅動程式),然後選擇 Amazon Redshift。選擇程式庫旁邊的開啟資料夾圖示,然後選擇適當的 JDBC .jar 檔案。

    4. Select Connection Profile (選取連線設定檔) 頁面上,將資訊新增至連線設定檔,如下所示:

      • User (使用者) 輸入您的 Okta 使用者名稱。這是您用於單一登入之 Okta 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。

      • Password (密碼) 輸入您的 Okta 密碼。

      • 針對 Drivers (驅動程式),選擇 Amazon Redshift (com.amazon.redshift.jdbc.Driver)

      • 針對 URL,輸入 jdbc:redshift:iam://your-cluster-identifier:your-cluster-region/your-database-name

    5. 選擇 Extended Properties (延伸屬性),然後執行下列任一項:

      • 針對 login_url,輸入 your-okta-sso-login-url。此值會指定 URL 使用單一登入做為登入 Okta 的身分驗證。

      • 針對 Okta 單一登入,請為 plugin_name 輸入 com.amazon.redshift.plugin.OktaCredentialsProvider。此值指定驅動程式使用 Okta 單一登入作為身分驗證方法。

      • 針對具有 MFA 的 Okta 單一登入,請為 plugin_name 輸入 com.amazon.redshift.plugin.BrowserSamlCredentialsProvider。此值會指定驅動程式使用具有 MFA 的 Okta 單一登入做為身分驗證方法。

設定 ODBC 以對 Okta 進行身分驗證
  • 將資料庫用戶端設定為使用 Okta 單一登入,透過 ODBC 連線到您的叢集。

    Amazon Redshift 會提供適用於 Linux、Windows 和 macOS 作業系統的 ODBC 驅動程式。安裝 ODBC 驅動程式之前,查明 SQL 用戶端工具是 32 位元或 64 位元。安裝符合 SQL 用戶端工具需求的 ODBC 驅動程式。

    此外,為您的作業系統安裝和設定最新的 Amazon Redshift OBDC 驅動程式,如下所示:

    在 Windows 上,於 Amazon Redshift ODBC Driver DSN Setup (Amazon Redshift ODBC 驅動程式 DSN 設定) 頁面的 Connection Settings (連線設定) 之下,輸入下列資訊:

    • 針對 Data source name (資料來源名稱),輸入 your-DSN。這會指定作為 ODBC 設定檔名稱的資料來源名稱。

    • 針對 Auth Type (驗證類型),執行下列其中一項操作:

      • 針對 Okta 單一登入組態,請選擇 Identity Provider: Okta。這是 ODBC 驅動程式使用 Okta 單一登入來進行驗證的身分驗證方法。

      • 針對具有 MFA 的 Okta 單一登入組態,請選擇 Identity Provider: Browser SAML。這是 ODBC 驅動程式使用具有 MFA 之 Okta 單一登入來進行驗證的身分驗證方法。

    • 針對 Cluster ID (叢集 ID),輸入 your-cluster-identifier

    • 針對 Region (區域),輸入 your-cluster-region

    • 針對 Database (資料庫),輸入 your-database-name

    • 針對 User (使用者),輸入 your-okta-username。這是您用於單一登入之 Okta 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅在 Auth Type (驗證類型)Identity Provider: Okta (身分提供者:Okta) 的情況下使用此項目。

    • 針對 Password (密碼),輸入 your-okta-password。僅在 Auth Type (驗證類型)Identity Provider: Okta (身分提供者:Okta) 的情況下使用此項目。

    在 macOS 和 Linux 上,編輯 odbc.ini 檔案,如下所示:

    注意

    所有項目都不區分大小寫。

    • 針對 clusterid,輸入 your-cluster-identifier。這是所建立 Amazon Redshift 叢集的名稱。

    • 針對 region (區域),輸入 your-cluster-region。這是所建 AWS 立的 Amazon Redshift 叢集的區域。

    • 針對 database (資料庫),輸入 your-database-name。這是您嘗試在 Amazon Redshift 叢集上存取的資料庫名稱。

    • 針對 locale,輸入 en-us。這是錯誤訊息的顯示語言。

    • 針對 iam,輸入 1。此值指定驅動程式使用 IAM 登入資料進行身分驗證。

    • 針對 plugin_name,執行下列其中一項作業:

      • 若為具有 MFA 的 Okta 單一登入組態,請輸入 BrowserSAML。這是 ODBC 驅動程式用來驗證具有 MFA 之 Okta 單一登入的身分驗證方法。

      • 針對 Okta 單一登入組態,請輸入 Okta。這是 ODBC 驅動程式使用 Okta 單一登入來進行驗證的身分驗證方法。

    • 針對 uid,輸入 your-okta-username。這是您用於單一登入之 Okta 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅在 plugin_nameOkta 的情況下使用此項目。

    • 針對 pwd,輸入 your-okta-password。僅在 plugin_nameOkta 的情況下使用此項目。

    • 針對 login_url,輸入 your-login-url。這是會傳回 SAML 回應的初始單一登入 URL。這僅適用於瀏覽器 SAML 外掛程式。

    • 針對 idp_response_timeout,輸入 the-number-of-seconds。這是等待回應的指定時間 (以秒為單位) PingOne。這僅適用於瀏覽器 SAML 外掛程式。

    • 針對 listen_port,輸入 your-listen-port。這是本機伺服器接聽的連接埠。預設值為 7890。這僅適用於瀏覽器 SAML 外掛程式。

    在 macOS 和 Linux 上,同時編輯設定檔設定以新增下列匯出:

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini