Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊,請參閱部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
先決條件
Amazon Redshift 聯合許可設定的 IAM 政策要求
Amazon Redshift 聯合許可可讓您透過直接由 Redshift 倉儲管理的許可,集中管理分析工作負載的資料存取。
若要啟用 Amazon Redshift 聯合許可,除了建立 Redshift 佈建叢集和無伺服器命名空間所需的標準許可之外,還需要特定的 IAM 許可。
對於 Redshift 佈建的倉儲,以啟用 Redshift 聯合許可:
redshift:ModifyLakehouseConfigurationredshift:RegisterNamespace
若要讓 Redshift Serverless 倉儲啟用 Redshift 聯合許可:
redshift-serverless:UpdateLakehouseConfigurationredshift:RegisterNamespace
若要 AWS Glue Data Catalog 整合以建立具有 Redshift 聯合許可的目錄:
glue:CreateCatalogglue:GetCatalog
對於將 Lake Formation 資源註冊為一次性註冊,以從具有聯合許可的遠端倉儲啟用 Redshift 許可聯合:
lakeformation:RegisterResourcelakeformation:RegisterResourceWithPrivilegedAccess
具有聯合許可的 Redshift 倉儲的 IAM Identity Center 應用程式組態
Amazon Redshift 支援身分中心身分傳播,以在 Redshift 執行個體 AWS Lake Formation 和 AWS Glue 服務之間無縫傳遞使用者身分。此功能需要設定專用 IdC 應用程式。
所需的 IAM 許可
若要建立和管理用於身分中心身分傳播的身分中心應用程式,請確定您的 IAM 許可包含下列許可:
對於 Amazon Redshift IdC 應用程式管理:
redshift:CreateRedshiftIdcApplicationredshift:ModifyRedshiftIdcApplicationredshift:DescribeRedshiftIdcApplications
對於 Lake Formation IdC 應用程式管理:
lakeformation:CreateLakeFormationIdentityCenterConfigurationlakeformation:DescribeLakeFormationIdentityCenterConfigurationlakeformation:UpdateLakeFormationIdentityCenterConfiguration
建立對應的 IdC 應用程式和組態
若要為您的分析工作負載建立身分傳播,請建立 Lakehouse 類型的 Amazon Redshift IdC 應用程式。它會管理許可,而不需要明確的使用者指派。連結至此應用程式的 Redshift 倉儲需要 CONNECT 權限,IdC 使用者才能驗證連線。
您只能建立一個 Lakehouse 類型的 Amazon Redshift IdC 應用程式 AWS 帳戶。此應用程式會在與 Lake Formation AWS Glue 和服務整合的所有 Redshift 倉儲中處理身分傳播。應用程式只能與向 註冊的 Redshift 倉儲搭配使用 AWS Glue Data Catalog。
準備 Redshift 擔任並由 IdC 身分傳播使用的 IAM 角色
Redshift Lakehouse IdC 應用程式建立需要您帳戶中具有特定 IAM 許可的 IAM 角色。您在 Redshift IdC 應用程式中使用的 IAM 角色應具有下列信任關係,以允許 Redshift 擔任該角色並設定 IdC 身分傳播的內容。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": [ "redshift-serverless.amazonaws.com", "redshift.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
以及低於 IdC IAM 角色支援 IdC 身分傳播的許可。
-
AmazonRedshiftFederatedAuthorization – 此政策可讓 Amazon Redshift 透過聯合許可查詢 AWS Glue Data Catalog 資料庫。
-
AWSIDC 設定內容政策
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:SetContext" ], "Resource": "*" } ] } -
AWSIDC 身分中心 SSO IAM 政策:
-
sso:DescribeApplication— 在目錄中建立身分提供者 (IdP) 項目時需要。 -
sso:DescribeInstance— 用於手動建立 IdP 聯合角色或使用者。{ "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "sso:DescribeApplication", "sso:DescribeInstance" ], "Resource": [ "arn:aws:sso:::instance/<IAM Identity Center Instance ID>", "arn:aws:sso::<AWS-account-id>:application/<IAM Identity Center Instance ID>/*" ] }
-
建立新的 Lakehouse 類型 Redshift IdC 應用程式
修改現有的 Redshift IdC 應用程式
如果您的現有 Redshift IdC 應用程式未啟用所需的服務整合,您可以更新它以支援服務與叢集/命名空間之間的身分傳播。
建立 Lake Formation 身分中心組態
如果尚未建立專用 IdC 應用程式,則您的 Lake Formation 服務需要該應用程式。您也必須啟用組態Redshift:Connect的授權,才能正常運作。
更新 Lake Formation 身分中心組態
如果您已設定未啟用必要服務整合的 Lake Formation IdC 應用程式,您可以更新它以支援服務與叢集/命名空間之間的身分傳播。
Lake Formation 先決條件
客戶需要 Lake Formation CREATE_CATALOG許可,才能使用 AWS Glue Data Catalog Amazon Redshift 聯合許可啟用 。
-
如果帳戶屬於現有的 Lake Formation 客戶,Lake Formation 管理員必須明確授予 CREATE_CATALOG 許可給每個叢集建立者。使用下列範例 CLI 命令:
aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier": "<PrincipalArn>" }, "Resource": { "Catalog": {} }, "Permissions": [ "CREATE_CATALOG" ] }' -
如果帳戶從未使用 Lake Formation,請確認 Lake Formation 主控台的管理角色和任務頁面中的目錄建立者設定為 IAMAllowedPrincipals。如果未設定,請遵循建立資料湖管理員來設定 Data Lake 管理員。或者,如果您只搭配 Amazon Redshift 聯合許可使用 ,則可以建立 AWS Glue Data Catalog 具有最低必要政策的 Data Lake 管理員。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "lakeformation:PutDataLakeSettings", "lakeformation:GrantPermissions", "lakeformation:GetDataLakeSettings", "lakeformation:BatchGrantPermissions", "lakeformation:ListPermissions" ], "Resource": [ "*" ] } ] } -
讓 DataLake Admin 授予 IAMAllowedPrincipals 建立目錄的許可。您可以透過管理角色和任務頁面中目錄建立者的授予按鈕授予存取權。
Connect 權限
作為 Amazon Redshift 聯合許可的一部分,Amazon Redshift 引入了 CONNECT 權限,以管理聯合身分使用者對 AWS IAM Identity Center Amazon Redshift 工作群組或叢集的存取。此功能可在工作群組或叢集上啟用 Amazon Redshift 聯合許可時使用。
此權限可讓管理員透過啟用 Amazon Redshift 聯合許可的每個 Amazon Redshift 工作群組 (Amazon Redshift) 或叢集 (Amazon Redshift) 的精細許可來控制使用者存取。Amazon Redshift 管理員可以指定哪些 AWS IAM Identity Center 聯合身分使用者或群組可以直接連線至 Amazon Redshift 工作群組或叢集 (Amazon Redshift),為每個工作群組或叢集 AWS IAM Identity Center 的使用者存取權提供精細的控制。
語法
GRANT CONNECT [ON WORKGROUP] TO [USER] <prefix>:<username> | ROLE <prefix>:<rolename> | PUBLIC;
- CONNECT 【在 WORKGROUP 上】
-
准許連線至工作群組。CONNECT 許可僅適用於身分 AWS IAM Identity Center (使用者和角色)。
- TO <prefix>:<username>
-
指出接收許可的 AWS IAM Identity Center 聯合身分使用者。
- TO ROLE <prefix>:<rolename>
-
指出接收許可的 AWS IAM Identity Center 聯合群組。
- PUBLIC
-
將 CONNECT AWS IAM Identity Center 許可授予所有聯合身分使用者,包括稍後建立的使用者。