

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# Okta
<a name="setup-identity-provider-okta"></a>

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

## 步驟 1：設定 Okta 和 AWS 您的帳戶彼此信任
<a name="setup-identity-provider-okta-trust"></a>

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

**設定 Okta 和 AWS 您的帳戶彼此信任**

1. 建立或使用現有的 Amazon Redshift 叢集，以供 Okta 使用者連線。若要設定連線，則需要此叢集的特定屬性，例如叢集識別碼。如需詳細資訊，請參閱[建立叢集](https://docs.aws.amazon.com/redshift/latest/mgmt/create-cluster.html)。

1. 在 Okta 入口網站上將 Amazon Redshift 新增為新的應用程式。如需詳細步驟，請參閱 [Okta 文件](https://developer.okta.com/docs/)。
   + 選擇 **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/`。

1. 使用**單一登入 URL** 值做為**收件人 URL** 和**目標 URL**。

1. 針對 **Signing (簽署)**，選擇 **Sign Assertion (簽署聲明)**。

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

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

1. 在 **Attribute Statements (屬性陳述式)** 區段中，建立如下表所示的宣告。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/redshift/latest/mgmt/setup-identity-provider-okta.html)

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

1. 在 IAM 主控台上建立 IAM SAML 身分提供者。您所提供的中繼資料文件，是您在設定 Okta 時儲存的聯合中繼資料 XML 檔案。如需詳細步驟，請參閱《IAM 使用者指南》**中的[建立和管理 IAM 身分提供者 (主控台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console)。

1. 在 IAM 主控台上建立 SAML 2.0 聯合的 IAM 角色。如需詳細步驟，請參閱《IAM 使用者指南》**中的[為 SAML 建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html#idp_saml_Create)。

1. 建立 IAM 政策，您可將其附加至您在 IAM 主控台上為 SAML 2.0 聯合建立的 IAM 角色。如需詳細步驟，請參閱《IAM 使用者指南》**中的[建立 IAM 政策 (主控台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)。如需 Azure AD 範例，請參閱[設定 JDBC 或 ODBC 單一登入身分驗證](setup-azure-ad-identity-provider.md)。

## 步驟 2：設定 JDBC 或 ODBC 以對 Okta 進行身分驗證
<a name="setup-identity-provider-okta-auth"></a>

------
#### [ JDBC ]

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

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

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

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

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

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

  1. 針對 **Connection Profile (連線設定檔)**，輸入 **{{your-connection-profile-name}}**，例如 **Okta**。

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

  1. 在 **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}}**。

  1. 選擇 **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\_name** 為 **Okta** 的情況下使用此項目。
  + 針對 **pwd**，輸入 **{{your-okta-password}}**。僅在 **plugin\_name** 為 **Okta** 的情況下使用此項目。
  + 針對 **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
  ```

------