本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 1. 為 Amazon Redshift 建立 IAM 角色
您的叢集需要授權才能存取 Amazon Athena 中 AWS Glue 的外部資料目錄,以及 Amazon S3 中的資料檔案。若要提供該授權,請參考連接至叢集的 AWS Identity and Access Management (IAM) 角色。如需將角色與 Amazon Redshift 搭配使用的相關資訊,請參閱使用 IAM 角色授權 COPY 與 UNLOAD 操作。
注意
在某些情況下,您可以將 Athena 資料目錄移轉至 AWS Glue 資料目錄。如果您的叢集位於受支援的 AWS 區域,且您的 AWS Glue Athena 資料目錄中有 Redshift 頻譜外部表格,則可以執行此操作。若要將資 AWS Glue 料目錄與 Redshift 頻譜搭配使用,您可能需要變更 IAM 政策。如需詳細資訊,請參閱《Athena 使用者指南》中的升級至 AWS Glue 資料目錄。
當您為 Amazon Redshift 建立角色時,請選擇下列其中一個方法:
如果您將 Redshift 頻譜與 Athena 資料目錄或 AWS Glue 資料目錄搭配使用,請按照中為 Amazon Redshift 建立 IAM 角色所述的步驟進行。
如果您在啟用的情況下使用 Redshift 頻譜 AWS Lake Formation,請按照以下程序中概述的步驟進行操作: AWS Glue Data Catalog
為 Amazon Redshift 建立 IAM 角色
-
開啟 IAM 主控台
。 -
在導覽窗格中,選擇 Roles (角色)。
-
選擇 Create Role (建立角色)。
-
選擇AWS 服務做為信任的實體,然後選擇Redshift做為使用案例。
-
在 [其他使用案例] 下 AWS 服務,選擇 [Redshift]-[自訂],然後選擇 [下一步]。
-
連接許可政策頁面隨即出現。如果您使用的是 AWS Glue 資料目錄
AWSGlueConsoleFullAccess
,請選擇AmazonS3ReadOnlyAccess
和。或者,如果您使用的是 Athena 資料目錄,則選擇AmazonAthenaFullAccess
。選擇下一步。注意
AmazonS3ReadOnlyAccess
政策會授予您的叢集對所有 Amazon S3 儲存貯體的唯讀存取權限。若只要授與 AWS 範例資料儲存貯體的存取權,請建立新原則並新增下列權限。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::redshift-downloads/*" } ] }
-
在 Role name (角色名稱) 中輸入角色名稱,例如
myspectrum_role
。 -
檢閱資訊,然後選擇 Create role (建立角色)。
-
在導覽窗格中,選擇角色。選擇新角色的名稱以檢視摘要,然後複製 Role ARN (角色 ARN) 至您的剪貼簿。此值是您剛剛建立的角色 Amazon Resource Name (ARN)。您可以在建立外部資料表時使用該值,以便在 Amazon S3 上參考資料檔案。
若要使用 AWS Glue Data Catalog 已啟用的功能建立 Amazon Redshift 的 IAM 角色 AWS Lake Formation
-
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇政策。
如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)。
-
選擇 Create policy (建立政策)。
-
在 JSON 索引標籤上選擇建立政策。
-
貼上下列 JSON 政策文件,這能授予資料目錄的存取權限,但會拒絕 Lake Formation 的管理員許可。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftPolicyForLF", "Effect": "Allow", "Action": [ "glue:*", "lakeformation:GetDataAccess" ], "Resource": "*" } ] }
-
完成時,選擇 Review (檢閱) 以檢閱該政策。政策驗證程式會回報任何語法錯誤。
-
在 Review policy (檢閱政策) 頁面的 Name (名稱) 中,輸入
myspectrum_policy
來為您所建立的政策命名。輸入 Description (說明) (選用)。檢閱政策 Summary (摘要) 來查看您的政策所授予的許可。然後選擇 Create policy (建立政策) 來儲存您的工作。建立政策之後,您可以提供存取權給使用者。
若要提供存取權,請新增權限至您的使用者、群組或角色:
-
使用者和群組位於 AWS IAM Identity Center:
建立權限合集。請按照 AWS IAM Identity Center 使用者指南 中的 建立權限合集 說明進行操作。
-
透過身分提供者在 IAM 中管理的使用者:
建立聯合身分的角色。請按照 IAM 使用者指南 的 為第三方身分提供者 (聯合) 建立角色 中的指示進行操作。
-
IAM 使用者:
-
建立您的使用者可擔任的角色。請按照 IAM 使用者指南 的 為 IAM 使用者建立角色 中的指示進行操作。
-
(不建議) 將政策直接附加至使用者,或將使用者新增至使用者群組。請遵循《IAM 使用者指南》的新增許可到使用者 (主控台) 中的指示。
-
授予資料表的 SELECT 許可,以在 Lake Formation 資料庫中進行查詢
-
開啟 Lake Formation 主控台,網址為 https://console.aws.amazon.com/lakeformation/
。 -
在導覽窗格中,選擇資料湖許可,然後選擇授予。
-
遵循AWS Lake Formation 開發人員指南的使用具名資源方法授予資料表權限中的指示。請提供下列資訊:
-
在IAM 角色中,選擇您所建立的 IAM 角色
myspectrum_role
。當您執行 Amazon Redshift 查詢編輯器時,其會使用此 IAM 角色來取得資料的許可。注意
若要授予啟用 Lake Formation 之資料目錄中的資料表進行查詢的 SELECT 許可,請執行下列操作:
在 Lake Formation 中註冊資料的路徑。
在 Lake Formation 中授予使用者該路徑的許可。
建立的資料表會位於 Lake Formation 中註冊的路徑。
-
-
選擇 Grant (授予)。
重要
根據最佳實務,請僅允許透過 Lake Formation 許可存取基礎 Amazon S3 物件。若要防止未經授權的存取,則可移除授予 Lake Formation 外部 Amazon S3 物件的任何許可。如果您先前在設定 Lake Formation 之前就已存取 Amazon S3 物件,則請移除先前設定的所有 IAM 政策或儲存貯體許可。如需詳細資訊,請參閱將資AWS Glue 料權限升級至 AWS Lake Formation 模型和 Lake Formation 權限。