將 Redshift 與 IAM Identity Center 連線,為使用者提供單一登入體驗 - Amazon Redshift

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

將 Redshift 與 IAM Identity Center 連線,為使用者提供單一登入體驗

您可以透過信任身分傳播來管理使用者和群組對 Amazon Redshift 資料倉儲的存取。這可透過 Redshift 和 AWS IAM 身分中心之間的連線運作,讓您的使用者享有單一登入體驗。這樣您就可以從目錄導入使用者和群組,並直接將權限指派給他們。隨後此連線會支援繫結其他工具和服務。為了說明一個 end-to-end 案例,您可以使用 Amazon QuickSight 儀表板或 Amazon Redshift 查詢編輯器 v2 來存取 Redshift。在此情況下,存取權限是以 IAM Identity Center 群組為基礎。Redshift 可以判斷使用者的身分及其群組成員資格。IAM 身分中心也可讓您透過第三方身分提供者 (IdP) (例如 Okta 或) 來連接和管理身分識別。 PingOne

管理員設定 Redshift 和 IAM Identity Center 之間的連線後,他們可以根據身分提供者群組設定精細的存取權限,以授予資料存取權給使用者。

Redshift 與 AWS IAM 身分中心整合的好處

搭配 Redshift 使用 IAM Identity Center 可使您的組織透過下列方式受益:

  • 中的儀表板作者 Amazon QuickSight 可以連線到 Redshift 資料來源,無需重新輸入密碼或要求管理員設定具有複雜許可的 IAM 角色。

  • IAM Identity Center 為您的員工使用者在 AWS提供中央位置。您可以直接在 IAM 身分中心建立使用者和群組, PingOne或連接您在標準型身分識別提供者 (例如 Okta 或 Microsoft Entra ID (Azure AD) 中管理的現有使用者和群組。IAM Identity Center 會將身分驗證導向您選擇的使用者和群組的事實來源,並維護使用者和群組的目錄以供 Redshift 存取。如需詳細資訊,請參閱 AWS IAM Identity Center 使用者指南中的管理身分來源支援的身分提供者

  • 您可以透過簡單的自動探索和連線功能,與多個 Redshift 叢集和工作群組共用一個 IAM Identity Center 執行個體。這可讓您快速新增叢集,而無需為每個叢集設定 IAM Identity Center 連線的額外工作,並確保所有叢集和工作群組都有一致的使用者、使用者屬性和群組視觀表。請注意,您組織的 IAM Identity Center 執行個體必須與您要連線的任何 Redshift 資料共用位於相同的區域。

  • 由於使用者身分是已知且會隨著資料存取而被記錄,因此您可以更輕鬆地透過稽核中的使用者存取權來符合法規 AWS CloudTrail。

設定 IAM Identity Center 與 Amazon Redshift 整合

您的 Amazon Redshift 叢集管理員或 Amazon Redshift Serverless 管理員必須執行幾個步驟,才能將 Redshift 設定為啟用 IAM Identity Center 的應用程式。這使得 Redshift 可以自動發現並連接 IAM Identity Center,以接收登入和使用者目錄服務。在此之後,當您的 Redshift 管理員建立叢集或工作群組時,他們可以讓新的資料倉儲使用 IAM Identity Center 來管理資料庫存取。

啟用 Redshift 做為 IAM Identity Center 受管應用程式的重點在於,您可以從 IAM Identity Center 內,或從與之整合的第三方身分提供者來控制使用者和群組權限。當您的資料庫使用者登入 Redshift 資料庫 (例如分析師或資料科學家) 時,它會在 IAM Identity Center 檢查其群組,而這些群組與 Redshift 中的角色名稱相符。以這種方式定義 Redshift 資料庫角色名稱的群組,可以存取一組用於銷售分析的資料表。下列各節展示如何設定此項。

必要條件

以下是將 IAM Identity Center 與 Amazon Redshift 整合的先決條件:

  • 帳戶設定 — 如果您打算擁有跨帳戶使用案例,或者在具有相同 IAM 身分中心執行個體的不同帳戶中使用 Redshift 叢集,則必須在 AWS 組織的管理帳戶中設定 IAM 身分中心。這包括設定您的身分識別來源。如需詳細資訊,請參閱 AWS IAM Identity Center 使用者指南中的入門員工身分識別支援的身分提供者。您必須確定已在 IAM Identity Center 中建立使用者或群組,或從身分識別來源同步處理使用者和群組,然後才能將使用者和群組指派給 Redshift 中的資料。

    注意

    您可以選擇使用 IAM 身分中心的帳戶執行個體,前提是 Redshift 和 IAM 身分中心位於同一個帳戶中。當您建立和設定 Redshift 叢集或工作群組時,可以使用小工具建立此執行個體。

  • 設定受信任的字符發行者 — 在某些情況下,您可能需要使用受信任的字符簽發者,這是一個可以發出和驗證信任字符的實體。在設定 IAM Identity Center 整合的 Redshift 管理員可以選取受信任的字符發行者,並新增必要的屬性以完成組態設定之前,必須先執行初步的步驟。這包括設定外部身分提供者做為受信任的字符發行者,以及在 IAM Identity Center 主控台新增其屬性。若要完成這些步驟,請參閱搭配受信任憑證發行者使用應用程式

    注意

    並非所有外部連線都需要設定受信任的字符發行者。使用 Amazon Redshift 查詢編輯器 v2 連線到 Redshift 資料庫,並不需要受信任的字符發行者組態。但可以套用於第三方應用程式,例如透過您的身分提供者進行驗證的儀表板或自訂應用程式。

  • 設定 IAM 角色 — 必須設定後續提及權限的區段。您必須依據 IAM 最佳實務新增許可權。下列程序會詳細說明特定權限。

如需詳細資訊,請參閱 IAM Identity Center 入門

設定身分提供者,以使用 IAM Identity Center

控制使用者和群組身分管理的第一步是連線到 IAM Identity Center,並設定您的身分提供者。您可以使用 IAM Identity Center 本身做為身分提供者,也可以連接第三方身分存放區 (例如 Okta)。如需有關設定連線和和設定身分提供者的詳細資訊,請參閱 IAM Identity Center 使用者指南中的連線至外部身分提供者。請務必在此程序結束時將少數使用者和群組新增至 IAM Identity Center,以達測試之目的。

管理許可

紅移/IAM 身分中心應用程式生命週期管理所需的權限

您必須建立身分與存取權管理員,Redshift 管理員使用此身分識別身分來設定 Redshift,以便與 IAM 身分中心搭配使用。最常見的是,您可以建立具有許可的 IAM 角色,並根據需要將其指派給其他身分。它必須具有列出的權限才能執行下列動作。

建立紅移/IAM 身分中心應用程式

  • sso:PutApplicationAssignmentConfiguration— 用於安全性。

  • sso:CreateApplication— 用於建立 IAM Identity Center 應用程式。

  • sso:PutApplicationAuthenticationMethod— 授予 Redshift 驗證存取權。

  • sso:PutApplicationGrant— 用於變更受信任的字符發行者資訊。

  • sso:PutApplicationAccessScope— 適用於 Redshift IAM Identity Center 應用程式設定。這包括適用於 AWS Lake Formation 和適用於 Amazon S3 存取授權

  • redshift:CreateRedshiftIdcApplication— 用於建立 Redshift IDC 應用程式。

描述紅移/IAM 身分識別中心應用程式

  • sso:GetApplicationGrant— 用於列出受信任的字符發行者資訊。

  • sso:ListApplicationAccessScopes— 針對 Redshift IAM 身分中心應用程式設定,以列出下游整合,例如針對 AWS Lake Formation 和 S3 存取授權。

  • redshift:DescribeRedshiftIdcApplications— 用於描述現有的 IAM 身分中心應用程式。

變更紅移/IAM 身分中心應用程式

  • redshift:ModifyRedshiftIdcApplication— 用於變更現有的 Redshift 應用程式。

  • sso:UpdateApplication— 用於更新 IAM Identity Center 應用程式。

  • sso:GetApplicationGrant— 獲取信任令牌發行者信息。

  • sso:ListApplicationAccessScopes— 適用於 Redshift IAM Identity Center 應用程式設定。

  • sso:DeleteApplicationGrant – 刪除信任權杖發行者資訊。

  • sso:PutApplicationGrant— 用於變更受信任的字符發行者資訊。

  • sso:PutApplicationAccessScope— 適用於 Redshift IAM Identity Center 應用程式設定。這包括適用於 AWS Lake Formation 和適用於 Amazon S3 存取授權

  • sso:DeleteApplicationAccessScope— 用於刪除 Redshift IAM 身份中心應用程序設置。這包括適用於 AWS Lake Formation 和適用於 Amazon S3 存取授權

刪除紅移/IAM 身分中心應用程式

  • sso:DeleteApplication— 用於刪除 IAM Identity Center 應用程式。

  • redshift:DeleteRedshiftIdcApplication— 提供刪除現有 Redshift IDC 應用程式的功能。

紅移/查詢編輯器v2 應用程式生命週期管理所需的權限

您必須建立身分與存取權管理員,Redshift 管理員使用此身分識別身分來設定 Redshift,以便與 IAM 身分中心搭配使用。最常見的是,您可以建立具有許可的 IAM 角色,並根據需要將其指派給其他身分。它必須具有列出的權限才能執行下列動作。

創建查詢編輯器 v2 應用程序

  • redshift:CreateQev2IdcApplication— 用於建立 QEV2 應用程式。

  • sso:CreateApplication— 能夠建立 IAM 身分中心應用程式。

  • sso:PutApplicationAuthenticationMethod— 授予 Redshift 驗證存取權。

  • sso:PutApplicationGrant— 用於變更受信任的字符發行者資訊。

  • sso:PutApplicationAccessScope— 適用於 Redshift IAM Identity Center 應用程式設定。這包括查詢編輯器第 2 版。

  • sso:PutApplicationAssignmentConfiguration— 用於安全性。

描述查詢編輯器 v2 應用程序

  • redshift:DescribeQev2IdcApplications— 用來描述 IAM 身分中心 QEV2 應用程式。

更改查詢編輯器 v2 應用程序

  • redshift:ModifyQev2IdcApplication— 用於變更 IAM 身分中心 QEV2 應用程式。

  • sso:UpdateApplication— 用於變更 IAM 身分中心 QEV2 應用程式。

刪除查詢編輯器 v2 應用程式

  • redshift:DeleteQev2IdcApplication— 用於刪除 QEV2 應用程式。

  • sso:DeleteApplication— 用於刪除 QEV2 應用程式。

注意

在 Amazon Redshift 開發套件中,以下 API 不可用:

  • CreateQev2 IdcApplication

  • DescribeQev2 IdcApplications

  • ModifyQev2 IdcApplication

  • DeleteQev2 IdcApplication

這些動作專用於在主控台中與 Redshift QEV2 執行 IAM 身分中心整合。 AWS 如需詳細資訊,請參閱 Amazon Redshift 定義的動作

資料庫管理員在主控台中連線新資源所需的權限

在建立過程中,需要這些權限才能連接新的佈建叢集或 Amazon Redshift Serverless 工作群組。如果您具有這些權限,主控台會顯示選項,供您選擇連線至適用於 Redshift 的 IAM Identity Center 受管應用程式。

  • redshift:DescribeRedshiftIdcApplications

  • sso:ListApplicationAccessScopes

  • sso:GetApplicationAccessScope

  • sso:GetApplicationGrant

我們建議的最佳實務是,將許可政策附加到 IAM 角色,然後根據需要將其指派給使用者和群組。如需詳細資訊,請參閱 Amazon Redshift 中的身分和存取管理

使用 IAM 身分中心將 Redshift 設定為 AWS 受管應用程式

在 IAM Identity Center 可以管理 Amazon Redshift 佈建的叢集或 Amazon Redshift Serverless 工作群組的身分之前,Redshift 管理員必須先完成以下步驟,讓 Redshift 成為 IAM Identity Center 受管應用程式:

  1. 在 Amazon Redshift 或 Amazon Redshift Serverless 主控台功能表中選取 IAM Identity Center 整合,然後選取連線至 IAM Identity Center。您可以從那裡逐步執行一系列選項,以填入 IAM Identity Center 整合的屬性。

  2. 為 Redshift 的 IDC 受管應用程式選擇顯示名稱和唯一名稱。

  3. 指定組織的命名空間。這通常是組織名稱的縮寫版。它會新增為 Redshift 資料庫中 IDC 管理的使用者和角色的字首。

  4. 選取要使用的 IAM 角色。此 IAM 角色應與用於 Redshift 的其他角色分開,建議您不要將其用於其他用途。需要的特定政策許可如下所示:

    • sso:DescribeApplication— 在目錄中建立身分提供者 (IdP) 項目時需要。

    • sso:DescribeInstance— 用於手動建立 IdP 聯合角色或使用者。

  5. 設定用戶端連線和受信任的字符發行者。藉由設定與外部身分提供者的關係,設定受信任的字符發行者有助於信任的身分傳播。身分傳播可讓使用者登入一個應用程式的同時,存取另一個應用程式中的特定資料。這可讓使用者更順暢地從不同位置收集資料。在此步驟中,您可以在主控台為每個受信任的字符發行者設定屬性。這些屬性包括名稱和受眾聲明 (或 aud claim),您可能必須從工具或服務的組態屬性中取得這些聲明。您可能還需要提供第三方工具的 JSON Web 字符 (JWT)應用程序名稱。

    注意

    根據字符類型,每個第三方工具或服務的 aud claim 需求可能會有所不同,字符類型可以是身分提供者發行的存取字符或另一種類型 (例如 ID 字符)。每個廠商可以有所不同。當您實作信任的身分傳播並與 Redshift 整合時,需要為第三方工具傳送給 AWS的字符類型提供正確的 aud 值。查看您的工具或服務廠商的建議。

    如需有關信任的身分傳播的詳細資訊,請參閱信任的身分傳播的運作方式。另外,請參閱本文件隨附的 IAM Identity Center 測試版文件。

Redshift 管理員完成這些步驟並儲存設定之後,IAM Identity Center 屬性就會顯示在 Redshift 主控台中。您也可以查詢系統檢視 SVV_IDENTITY_PROVIDERS,以驗證應用程式的屬性。其中包括應用程式名稱和命名空間。您可以使用命名空間做為與應用程式相關聯之 Redshift 資料庫物件的字首。完成這些任務,使 Redshift 成為已啟用 IAM Identity Center 的應用程式。主控台內的屬性包括整合狀態。當整合完成時,會顯示已啟用。完成此程序後,可以在每個新叢集上啟用 IAM Identity Center 整合。

設定好組態之後,您可以透過選擇使用者群組索引標籤,並選擇指派,在 Redshift 中包含 IAM Identity Center 的使用者和群組。

為新 Amazon Redshift 叢集或 Amazon Redshift Serverless 工作群組啟用 IAM Identity Center 整合

您的資料庫管理員會設定新的 Redshift 資源,以便與 IAM Identity Center 一致運作,使登入和資料存取操作更加輕鬆。這是建立已佈建叢集或 Serverless 工作群組的步驟的一部分來執行。任何具有建立 Redshift 資源權限的人,都可以執行這些 IAM Identity Center 整合任務。建立佈建的叢集時,請先在 Amazon Redshift 主控台選擇建立叢集。後續步驟說明如何為資料庫啟用 IAM Identity Center 管理。(不包括建立叢集的所有步驟。)

  1. 在建立叢集步驟中的 IAM Identity Center 整合區段中選擇啟用 <您的叢集名稱>

  2. 啟用整合時,處理程序依照步驟。您可以在主控台選擇啟用 IAM Identity Center 整合以執行此操作。

  3. 對於新的叢集或工作群組,請使用 SQL 命令在 Redshift 中建立資料庫角色。以下是命令:

    CREATE ROLE <idcnamespace:rolename>;

    命名空間和角色名稱如下所示:

    • IAM Identity Center 命名空間字首 — 這是您在設定 IAM Identity Center 與 Redshift 之間的連線時定義的命名空間。

    • 角色名稱 — 此 Redshift 資料庫角色必須與 IAM Identity Center 中的群組名稱相符。

    Redshift 會與 IAM Identity Center 連線,並擷取建立資料庫角色,並將資料庫角色對應至 IAM Identity Center 群組所需的資訊。

請注意,建立新的資料倉儲時,針對 IDC 整合指定的 IAM 角色會自動附加到佈建的叢集或 Amazon Redshift Serverless 工作群組。完成輸入所需的叢集中繼資料並建立資源後,您可以在屬性中檢查 IAM Identity Center 整合的狀態。如果 IAM Identity Center 中的群組名稱有空格,則在建立相符角色時,必須在 SQL 中使用引號。

啟用 Redshift 資料庫並建立角色之後,您就可以使用 Amazon Redshift 查詢編輯器 v2 或 Amazon QuickSight連線到資料庫。接下來章節中會進一步提供詳細資訊。

使用 API 設定預設值 RedshiftIdcApplication

設定作業由您的身分管理員執行。您可以使用 API 建立並填入RedshiftIdcApplication,其代表 IAM Identity Center 內的 Redshift 應用程式。

  1. 若要開始,您可以在 IAM Identity Center 中建立使用者,並將其加入至群組。您可以在 IAM 身分中心 (IDC) 的 AWS 主控台中執行此操作。

  2. 呼叫 create-redshift-idc-application 以建立 IDC 應用程式,並使其與 Redshift 相容。您可以填入必要的值來建立應用程式。顯示名稱是指要在 IDC 儀表板上顯示的名稱。IAM 角色 ARN 是具有 IAM Identity Center 許可權限的 ARN,也可由 Redshift 確認。

    aws redshift create-redshift-idc-application ––idc-instance-arn 'arn:aws:sso:::instance/ssoins-1234a01a1b12345d' ––identity-namespace 'MYCO' ––idc-display-name 'TEST-NEW-APPLICATION' ––iam-role-arn 'arn:aws:redshift:us-east-1:012345678901:role/TestRedshiftRole' ––redshift-idc-application-name 'myredshiftidcapplication'

    下列範例顯示從呼叫 create-redshift-idc-application 傳回的範例 RedshiftIdcApplication 回應。

    "RedshiftIdcApplication": { "IdcInstanceArn": "arn:aws:sso:::instance/ssoins-1234a01a1b12345d", "RedshiftIdcApplicationName": "test-application-1", "RedshiftIdcApplicationArn": "arn:aws:redshift:us-east-1:012345678901:redshiftidcapplication:12aaa111-3ab2-3ab1-8e90-b2d72aea588b", "IdentityNamespace": "MYCO", "IdcDisplayName": "Redshift-Idc-Application", "IamRoleArn": "arn:aws:redshift:us-east-1:012345678901:role/TestRedshiftRole", "IdcManagedApplicationArn": "arn:aws:sso::012345678901:application/ssoins-1234a01a1b12345d/apl-12345678910", "IdcOnboardStatus": "arn:aws:redshift:us-east-1:123461817589:redshiftidcapplication", "RedshiftIdcApplicationArn": "Completed", "AuthorizedTokenIssuerList": [ "TrustedTokenIssuerArn": ..., "AuthorizedAudiencesList": [...]... ]}
  3. 您可以使用 create-application-assignment 將特定群組或個別使用者指派給 IAM Identity Center 中的受管應用程式。這樣一來,您就可以指定要透過 IAM Identity Center 管理的群組。如果資料庫管理員在 Redshift 中建立資料庫角色,IAM Identity Center 中的群組名稱會對應至 Redshift 中的角色名稱。那些角色可以控制資料庫中的權限。如需詳細資訊,請參閱在 IAM Identity Center 主控台中指派應用程式的使用者存取權

  4. 啟用應用程式後,請從 IAM Identity Center 呼叫 create-cluster,並加入 Redshift 受管應用程式 ARN。這樣做會使叢集與 IAM Identity Center 中的受管應用程式產生關聯。

為 IAM Identity Center 應用程式與現有叢集或工作群組建立關聯

如果您有要啟用 IAM Identity Center 整合的現有叢集或工作群組,則可以執行 SQL 命令來執行此作業。您會執行下列命令以啟用整合。資料庫管理員必須執行查詢,且 Redshift 和 IAM Identity Center 之間的連線已經設定完成。設定 ENABLE 後,它可讓 IAM Identity Center 為叢集或工作群組提供身分管理。

ALTER IDENTITY PROVIDER <idp_name> | NAMESPACE <namespace> | IAM_ROLE default | 'arn:aws:iam::<AWS account-id-1>:role/<role-name>' | [DISABLE | ENABLE]

您可以捨棄現有身分提供者。以下範例顯示 CASCADE 如何刪除附加至身分提供者的使用者和角色。

DROP IDENTITY PROVIDER <provider_name> [ CASCADE ]

設定使用者權限

管理員可根據使用者的身分屬性和群組成員資格,在其身分提供者內或在 IAM Identity Center 內直接設定各種資源的權限。例如,身分提供者管理員可以將資料庫工程師新增至適合其角色的群組。此群組名稱會對應至 Redshift 資料庫角色名稱。此角色可提供或限制 Redshift 中特定資料表或視觀表的存取權。

連接應用程式的管理員角色

以下是將分析應用程式連接到適用於 Redshift 的 IAM Identity Center 受管應用程式的關鍵角色:

  • 應用程式管理員 — 建立應用程式,並設定應用程式將啟用哪些服務來交換身分字符。此管理員也會指定哪些使用者或群組可存取應用程式。

  • 資料管理員 — 設定對資料的精細存取權限。IAM Identity Center 中的使用者和群組可對應至特定權限。

透過 IAM 身分中心連線至 Amazon Redshift Amazon QuickSight

以下內容顯示如何使用 Amazon 在 Redshift 連接 QuickSight 到 Redshift 進行身份驗證,並通過 IAM 身份中心進行訪問:授權從 Amazon QuickSight 到亞馬 Amazon Redshift 集群的連接。這些步驟也適用於 Amazon Redshift Serverless。

使用 IAM Identity Center,透過 Amazon Redshift 查詢編輯器第 2 版連線至 Amazon Redshift

在完成設定與 Redshift 的 IAM Identity Center 連線的操作步驟後,使用者可以透過以 IAM Identity Center 為基礎的命名空間前綴的身分,存取資料庫和資料庫中的適當物件。如需有關使用查詢編輯器 v2 登入以連線至 Redshift 資料庫的詳細資訊,請參閱使用查詢編輯器 v2

透過查詢資料 AWS Lake Formation

使用可 AWS Lake Formation 讓您更輕鬆地集中控管和保護您的資料湖,並提供資料存取。透過 IAM Identity Center 和 Redshift 將身分傳播至 Lake Formation,如此管理員可以根據組織的身分提供者 (IdP) 群組,允許對 Amazon S3 資料湖進行更精細的存取。這些群組是透過 IAM Identity Center 進行管理。本節說明如何設定幾個使用案例、從資料湖查詢以及從資料共用進行查詢,以展示如何利用 IAM Identity Center 搭配 Redshift 連線至 Lake Formation 控管的資源。

使用 IAM Identity Center 和 Redshift 連線查詢資料湖

這些步驟涵蓋使用案例,您可以在其中使用連接到 Redshift 的 IAM Identity Center,查詢由 Lake Formation 管理的資料湖。

先決條件

此程序有幾個先決條件步驟:

  1. 必須先設定 IAM Identity Center 才能透過 Redshift 支援身分驗證和身分管理。您可以從主控台啟用 IAM Identity Center,然後選取身分提供者 (IdP) 來源。之後,將一組 IdP 使用者與 IAM Identity Center 同步處理。您也必須依照本文件先前詳述的步驟,設定 IAM Identity Center 和 Redshift 之間的連線。

  2. 在組態設定步驟中建立新的 Amazon Redshift 叢集,並透過 IAM Identity Center 啟用身分管理。

  3. 建立 Lake Formation 的受管 IAM Identity Center 應用程式,並進行組態設定。這是接在設定 IAM Identity Center 和 Redshift 之間連線之後的步驟。步驟如下:

    1. 在 AWS CLI中,使用 modify-redshift-idc-application 命令促成 Lake Formation 服務與適用於 Redshift 的 IAM Identity Center 受管應用程式的整合。此呼叫包含 service-integrations 參數,該參數設定為啟用 Lake Formation 授權的組態字串值。

    2. 使用 create-lake-formation-identity-center-configuration 命令設定 Lake Formation。這會建立適用於 Lake Formation 的 IAM Identity Center 應用程式,該應用程式會顯示在 IAM Identity Center 入口網站中。管理員必須設定––cli-input-json引數,其值是 JSON 檔案的路徑,該檔案的路徑使用所有 AWS CLI API 呼叫的標準格式。您可以包含下列各值:

      • CatalogId— Lake Formation 目錄 ID。

      • InstanceArn— IAM Identity Center 執行個體 ARN 值。

管理員完成必要條件組態之後,資料庫管理員可以建立外部結構描述以查詢資料湖。

  1. 管理員建立外部結構描述 — Redshift 資料庫管理員使用下列 SQL 陳述式連線到資料庫,並建立外部結構描述:

    CREATE EXTERNAL SCHEMA if not exists my_external_schema from DATA CATALOG database 'my_lf_integrated_db' catalog_id '12345678901234';

    請注意,在這種情況下不需要指定 IAM 角色,因為存取權是透過 IAM Identity Center 進行管理。

  2. 系統管理員授予權限 — 管理員會將使用權授予 IAM Identity Center 群組,該群組會授予 Redshift 資源的使用權。這是透過執行 SQL 陳述式來完成,如下所示:

    GRANT USAGE ON SCHEMA "my_external_schema" to "MYCO:sales";

    隨後,系統管理員會根據組織的需求,使用 AWS CLI 授予物件的 Lake Formation 權限:

    aws lakeformation grant-permissions ...
  3. 使用者執行查詢 — 此時,屬於銷售群組一部分的 IAM Identity Center 使用者,可以透過查詢編輯器 v2 登入 Redshift 資料庫。然後,他們可以執行存取外部結構描述中資料表的查詢,如以下範例所示:

    SELECT * from my_external_schema.table1;

使用 IAM Identity Center 和 Redshift 連線連線至資料共用

透過 IAM Identity Center 管理存取權時,您可以從不同的 Redshift 資料倉儲存取資料共用。若要這麼做,您可以執行查詢來設定外部資料庫。在完成這些步驟之前,假設您已經在 Redshift 和 IAM 身分中心之間設定了連線,而且您已建立 AWS Lake Formation 應用程式,如先前程序所述。

  1. 建立外部資料庫 — 管理員建立外部資料庫以進行資料共用,並透過其 ARN 參考該資料庫。以下是展示如何執行此操作的範例:

    CREATE DATABASE "redshift_external_db" FROM ARN 'arn:aws:glue:us-east-1:123456789012:database/redshift_external_db-iad' WITH NO DATA CATALOG SCHEMA;

    在此使用案例中,如果您搭配 Redshift 使用 IAM Identity Center 進行身分管理,則不包含 IAM 角色。

  2. 管理員設定許可 — 建立資料庫後,管理員會將使用權授予 IAM Identity Center 群組。這會授予 Redshift 資源的權限:

    GRANT USAGE ON DATABASE "my_external_db" to "MYCO:sales";

    系統管理員還會使用 AWS CLI 授予物件的 Lake Formation 權限:

    aws lakeformation grant-permissions ...
  3. 使用者執行查詢 — 來自銷售群的使用者可以根據指派的權限,查詢資料庫中的資料表:

    select * from redshift_external_db.public.employees;

如需有關授予資料湖權限以及授予資料共用權限的詳細資訊,請參閱將權限授予使用者和群組。如需將使用權授予結構描述或資料庫的詳細資訊,請參閱 GRANT

使用信任的字符發行者將您的應用程式或工具與 OAuth 整合

您可以透過 IAM 身分中心連線,將功能新增至您建立的用戶端工具以連線至 Redshift。如果您已將 Redshift 整合設定為 IAM 身分中心,請使用本節中詳述的屬性來設定連線。

身份驗證插件,用於使用 IAM 身份中心連接到 Redshift

IdpTokenAuthPlugin透過 IAM 身分中心提供連線屬性並促進身份驗證。它接受來自 IAM 身份中心的訪問令牌或 OpenID Connect(OIDC)JSON 網絡令牌(JWT)來自鏈接到 IAM 身份中心的任何網絡身份提供商。

如果您使用的是 Amazon Redshift 驅動程式,則可以透過 IAM 身分中心使IdpTokenAuthPlugin用紅移進行身份驗證。(您可能必須下載並使用最新的 Redshift 驅動程式版本,以確保該功能可用。 驅動程式會在限制一節中詳細說明。) 該插件接受來自鏈接到 IAM 身份中心的任何 Web 身份提供商的 IAM 身份中心訪問令牌或 OIDC JWT。下表詳細說明要用於成功驗證的連線選項。

驅動程式 連線選項鍵 Value 備註

JDBC

plugin_name

。亞馬遜。。。 IdpTokenAuthPlugin

連線時,您必須輸入外掛程式的完整類別名稱。

ODBC

plugin_name

IdpTokenAuthPlugin

Python

credentials_provider

IdpTokenAuthPlugin

Python 驅動程plugin_name式沒有可用的選項。請改用 credentials_provider

該插件具有以下附加連接選項:

  • 令牌 — IAM 身份中心提供的訪問令牌或 OpenID Connect(OIDC)JSON 網絡令牌(JWT)由與 IAM 身份中心鏈接的網絡身份提供商提供。您的應用程式必須透過 IAM 身分中心或與 IAM 身分中心連結的身分提供者驗證應用程式的使用者,以產生此權杖。

  • 杖類型 — 用於的權杖類型。IdpTokenAuthPlugin您可以指定下列選項的值:

    • 存取權杖 — 如果您使用 IAM 身分中心提供的存取權杖,請提供此選項。

    • EXT_JWT — 如果您使用 OpenID Connect(OIDC)JSON 網絡令牌(JWT),由與 IAM 身份中心集成的基於 Web 的身份提供商提供,請提供此選項。

您必須在建立並連接的工具的連接屬性中輸入這些值。如需詳細資訊,請參閱各個驅動程式的連線選項說明文件:

限制

這些限制均適用:

  • 外掛程式驅動程式IdpTokenAuthPlugin 只能透過 AWS Redshift 驅動程式取得。使用此功能所需的最低驅動程式版本如下:

    • 驅動程式-v2.1.0.19

    • 驅動程式 — v2.0.11

    • Python 連接器

  • 授權授與類型device_code 授權授與類型不支援為 Redshift 產生 IAM 身分中心存取權杖。如果您想直接使用 IAM 身分中心授權和身份驗證,可以使用查詢編輯器 v2。

  • 瀏覽器安全性設定 — 您網際網路瀏覽器的安全性和隱私權設定,特別是控制安全 Cookie 設定的設定,例如 Firefox 的全面 Cookie 保護功能,可能會導致從查詢編輯器 v2 到 Redshift 資料庫的連線嘗試遭到封鎖。若要修正此問題,您可以將查詢編輯器 v2 主控台站台 URL 新增至瀏覽器的追蹤保護例外清單。要在 Firefox 中執行此操作,請單擊瀏覽器地址欄中的屏蔽,然後切換開關以關閉查詢編輯器 v2 的跟踪保護。在 Chrome 中,如果您使用的是無痕模式,請按一下網址列中的眼睛圖示,以允許第三方 Cookie 用於查詢編輯器 v2。

  • 不支援增強型 VPC — 使用 IAM 身分中心設定 Redshift 受信任身分傳播時,不支援增強型 VPC。如需有關增強型 VPC 的詳細資訊,請參閱 Amazon Redshift 中的增強型 VPC 路由

  • 閒置 Amazon Redshift 無伺服器工作群組 — 當您設定 Amazon Redshift 無伺服器與 IAM 身分中心之間的整合時,請注意,當 Amazon Redshift 無伺服器資料庫處於閒置狀態,而未處理任何工作負載時,它可能會在您與 IAM 身分中心身分連線時保持暫停狀態。若要解決此問題,請使用其他驗證方法登入以繼續無伺服器工作群組。

  • 無效範圍錯誤 — 將 Redshift 佈建的叢集或無伺服器工作群組與適用於身分管理的 IAM 身分識別中心整合後,使用者嘗試從查詢編輯器 v2 (QEV2) 連線至 Redshift 資料庫時,可能會收到下列錯誤:無效範圍。使用者身份證明未獲得連線至 Redshift 的授權。在這種情況下,為了使查詢編輯器 v2 能夠透過 IAM 身分中心成功連線和驗證使用者以存取正確的資源,系統管理員必須透過 Redshift 主控台將使用者指派給 Redshift IAM 身分中心應用程式。(這是在 IAM 身分中心連線下完成。) 在此之後,使用者可以在一小時後建立成功的連線,這是 IAM Identity Center 工作階段快取的限制。