Okta - Amazon Redshift

自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章

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

Okta

您可以使用 Okta 做為身分提供者 (IdP) 來存取您的 Amazon Redshift 叢集。本教學課程說明如何使用 Okta 做為身分提供者 (IdP) 來存取 Amazon Redshift 叢集。

步驟 1:設定 Okta 和 AWS 您的帳戶彼此信任

下列程序說明如何設定信任關係。

設定 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 單一登入身分驗證

步驟 2:設定 JDBC 或 ODBC 以向 Okta 進行身分驗證

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

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

    例如,您可以使用 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
設定 ODBC 以對 Okta 進行身分驗證
  • 將資料庫用戶端設定為使用 Okta 單一登入,透過 ODBC 連線到您的叢集。

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

    在 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。這是所建立 Amazon Redshift 叢集 AWS 的區域。

    • 針對 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