授權 Amazon Redshift 代表您存取 AWS 服務 - Amazon Redshift

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

授權 Amazon Redshift 代表您存取 AWS 服務

某些 Amazon Redshift 功能需要 Amazon Redshift AWS 代表您存取其他服務。例如, COPYUNLOAD命令可以使用 Amazon S3 儲存貯體將資料載入或卸載至 Amazon Redshift 叢集。CREATE EXTERNAL FUNCTION 命令可以使用純量 AWS Lambda 使用者定義函數 () 叫用 Lambda 函數UDF。Amazon Redshift Spectrum 可以在 Amazon Athena 或 中使用資料目錄 AWS Glue。若要讓 Amazon Redshift 叢集代替您執行作業,您需為叢集提供安全憑證。提供安全憑證的首選方法是指定 AWS Identity and Access Management (IAM) 角色。對於 COPY和 UNLOAD,您可以提供臨時憑證。

如果使用者想要與 AWS 外部互動,則需要程式設計存取權 AWS Management Console。授予程式設計存取權的方式取決於存取 的使用者類型 AWS。

若要授與使用者程式設計存取權,請選擇下列其中一個選項。

哪個使用者需要程式設計存取權? By

人力身分

(在 IAM Identity Center 中管理的使用者)

使用暫時憑證簽署對 AWS CLI AWS SDKs、 或 的程式設計請求 AWS APIs。

請依照您要使用的介面所提供的指示操作。

IAM 使用暫時憑證簽署對 AWS CLI AWS SDKs、 或 的程式設計請求 AWS APIs。 請遵循 IAM 使用者指南 中的將臨時憑證與 AWS 資源搭配使用中的指示。
IAM

(不建議使用)

使用長期憑證簽署對 AWS CLI AWS SDKs、 或 的程式設計請求 AWS APIs。

請依照您要使用的介面所提供的指示操作。

接下來,了解如何建立具有適當許可IAM的角色來存取其他服務 AWS 。您也需要在執行 Amazon Redshift 命令時,將角色與叢集建立關聯,並指定角色的 Amazon Resource Name (ARN)。如需詳細資訊,請參閱使用IAM角色授權 COPY、FUNCTION、 UNLOAD CREATE EXTERNAL 和 CREATEEXTERNALSCHEMA操作

此外,超級使用者可以將 ASSUMEROLE 權限授予特定使用者和群組,以提供 COPY和 UNLOAD操作角色的存取權。如需詳細資訊,請參閱 Amazon Redshift 資料庫開發人員指南 GRANT 中的 。

建立IAM角色以允許 Amazon Redshift 叢集存取 AWS 服務

建立具有 許可IAM的角色

若要建立IAM角色以允許 Amazon Redshift 叢集代表您與其他 AWS 服務通訊,請執行下列步驟。本節中使用的值是範例,您可以根據需要選擇值。

建立IAM角色以允許 Amazon Redshift 存取 AWS 服務
  1. 開啟IAM主控台

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

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

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

  5. 選取您的使用案例下,選擇Redshift – 可自訂,然後選擇下一步:許可連接許可政策頁面隨即出現。

  6. 若要使用 存取 Amazon S3COPY,您可以使用 AmazonS3ReadOnlyAccess並附加 。若要使用 COPY或 存取 Amazon S3UNLOAD,建議您建立受管政策,以相應限制對所需儲存貯體和字首的存取。對於讀取和寫入操作,我們建議您強制執行最低權限並僅限用於 Amazon Redshift 所需的 Amazon S3 儲存貯體和索引鍵字首。

    若要存取 CREATEEXTERNALFUNCTION命令的叫用 Lambda 函數,請新增 AWSLambdaRole

    對於 Redshift Spectrum,除了 Amazon S3 存取之外,另請新增 AWSGlueConsoleFullAccessAmazonAthenaFullAccess

    選擇下一步:標籤

  7. Add tags (新增標籤) 頁面隨即出現。您可以選擇性地新增標籤。選擇下一步:檢閱

  8. 針對 Role name (角色名稱),輸入您的角色名稱,例如 RedshiftCopyUnload。選擇建立角色

  9. 新角色適用於叢集上使用該角色的所有使用者。若要限制只有特定叢集上的特定使用者或特定區域中的叢集可存取,請編輯角色的信任關係。如需詳細資訊,請參閱限制對IAM角色的存取

  10. 將角色與叢集相關聯。您可以在建立叢集時將IAM角色與叢集建立關聯,或將角色新增至現有叢集。如需詳細資訊,請參閱將IAM角色與叢集建立關聯

    注意

    若要限制對特定資料的存取,請使用授予所需最低權限IAM的角色。