步驟 1. 為 Amazon Redshift 建立 IAM 角色 - Amazon Redshift

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

步驟 1. 為 Amazon Redshift 建立 IAM 角色

您的叢集需要授權才能存取AWS Glue或 Amazon Athena 以及 Amazon S3 中的資料檔案。若要提供該授權,您需要參考AWS Identity and Access Management(IAM) 角色,則附加至叢集。如需使用 Amazon Redshift 中的角色的詳細資訊,請參使用 IAM 角色授權複製和卸載操作

注意

在某些情況下,您可以將 Athena 資料目錄遷移至AWS Glue資料目錄。如果您的集羣位於AWS區域AWS Glue,並且您在 Athena 數據目錄中具有 Redshift 頻譜外部表。若要搭配 Redshift Spectrum 使用 AWS Glue 資料目錄,您可能需要變更 IAM 政策。如需詳細資訊,請參閱「」升級到AWS Glue資料目錄中的Athena 使用者指南

當您為 Amazon Redshift 建立角色時,請選擇下列其中一個方法:

為 Amazon Redshift 建立 IAM 角色

  1. 開啟 IAM 主控台

  2. 在導覽窗格中,選擇 Roles (角色)。

  3. 選擇 Create Role (建立角色)。

  4. 選擇AWS服務,然後選擇Redshift

  5. UNDER選擇您的使用案例,選擇Redshift-可自訂,然後選擇下一頁: Permissions (許可)。

  6. Attach permissions policy (連接許可政策) 頁面隨即出現。如果您使用的是 AWS Glue Data Catalog,請選擇 AmazonS3ReadOnlyAccessAWSGlueConsoleFullAccess。或者選擇AmazonAthenaFullAccess如果您使用的是 Athena 資料目錄。選擇 Next: (下一步:) Review (檢閱)。

    注意

    所以此AmazonS3ReadOnlyAccess政策會授權您的叢集存取所有 Amazon S3 存儲體。若要僅授予對AWS範例資料儲存貯體,建立新的政策並添加下列許可。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": "arn:aws:s3:::awssampledbuswest2/*" } ] }
  7. Role name (角色名稱) 中輸入角色名稱,例如 myspectrum_role

  8. 檢閱資訊,然後選擇 Create role (建立角色)

  9. 在導覽窗格中,選擇 Roles (角色)。選擇新角色的名稱以檢視摘要,然後複製 Role ARN (角色 ARN) 至您的剪貼簿。此值是您剛剛建立的角色 Amazon Resource Name (ARN)。當您建立外部資料表時使用該值,以在 Amazon S3 上參考資料檔案。

若要建立 IAM 角色讓 Amazon Redshift 使用AWS Glue Data Catalog已啟用AWS Lake Formation

  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格上選擇 Policies (政策)。

    如果這是您第一次選擇 Policies (政策),將會顯示 Welcome to Managed Policies (歡迎使用受管政策) 頁面。選擇 Get Started (開始使用)

  3. 選擇 Create policy (建立政策)

  4. JSON 索引標籤上選擇建立政策。

  5. 貼上下列 JSON 政策文件,這能授予資料目錄的存取權限,但會拒絕 Lake Formation 描述的管理員許可。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftPolicyForLF", "Effect": "Allow", "Action": [ "glue:*", "lakeformation:GetDataAccess" ], "Resource": "*" } ] }
  6. 完成時,選擇 Review (檢閱) 以檢閱該政策。政策驗證程式會回報任何語法錯誤。

  7. Review policy (檢閱政策) 頁面的 Name (名稱) 中,輸入 myspectrum_policy 來為您所建立的政策命名。輸入 Description (說明) (選用)。檢閱政策 Summary (摘要) 來查看您的政策所授予的許可。然後選擇 Create policy (建立政策) 來儲存您的工作。

    政策建立完畢後,您即可建立角色並套用該政策。

  8. 在 IAM 主控台的導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。

  9. 對於 Select type of trusted entity (選取信任的實體類型),選擇 AWS service ( 服務)

  10. 選擇 Amazon Redshift 服務以擔任此角色。

  11. 選擇服務的 Redshift Customizable (Redshift 可自訂) 使用案例。然後選擇 Next (下一步):Permissions (許可)。

  12. 選擇您建立的 myspectrum_policy 許可政策以連接角色。

  13. 選擇 Next: (下一步:) 標記

  14. 選擇 Next: (下一步:) Review (檢閱)。

  15. Role name (角色名稱) 中,輸入名稱 myspectrum_role

  16. (選用) 在 Role description (角色說明) 中,輸入新角色的說明。

  17. 檢閱角色,然後選擇 Create role (建立角色)。

若要授予資料表的 SELECT 許可,以在 Lake Formation 資料庫中進行查詢

  1. 開啟 Lake Formation 主控台,網址為 https://console.aws.amazon.com/lakeformation/

  2. 在導覽窗格中,選擇 Permissions (許可),然後選擇 Grant (授予)

  3. 請提供下列資訊:

    • 適用於IAM 角色,選擇您所建立的 IAM 角色,myspectrum_role。當您執行 Amazon Redshift 查詢編輯器時,該編輯器會使用此 IAM 角色來取得資料的許可。

      注意

      要為啟用了湖形成的數據目錄中的表授予 SELECT 權限以查詢,請執行以下操作:

      • 在 Lake Formation 中註冊資料路徑。

      • 授予使用者在 Lake Formation 中使用者該路徑的許可。

      • 建立的資料表位於 Lake Formation 中註冊的路徑。

    • 適用於資料庫中,選擇您的 Lake Formation 數據庫。

    • Table (資料表) 中,選擇資料庫內要進行查詢的資料表。

    • Columns (資料欄) 中,選擇 All Columns (所有資料欄)

    • 選擇 Select (選取) 許可。

  4. 選擇 Save (儲存)

重要

根據最佳實務,請僅允許透過 Lake Formation Storage 許可存取基礎 Amazon S3 對象。若要防止未經授權的存取,請移除授予 Lake Formation pectrum 之外的 Amazon S3 對象的任何許可。如果您先前在設定 Lake Formation 描述前已存取 Amazon S3 資料元,則需移除先前設定的所有 IAM 政策或儲存儲體許可。如需詳細資訊,請參閱「」升級AWS Glue資料許可AWS Lake Formation模型Lake Formation 許可