Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊,請參閱部落格文章
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授權 Amazon Redshift 代表您存取 AWS服務
有些 Amazon Redshift 功能需要 Amazon Redshift 代表您存取其他 AWS服務。例如,COPY 和 UNLOAD 命令可在使用 Amazon S3 儲存貯體的 Amazon Redshift 叢集上載入或卸載資料。CREATE EXTERNAL FUNCTION 命令可以使用純量 AWSLambda 使用者定義函數 (UDF) 叫用 Lambda 函數。Amazon Redshift Spectrum 可以使用 Amazon Athena 或 中的資料目錄AWS Glue。若要讓 Amazon Redshift 叢集代替您執行作業,您需為叢集提供安全憑證。提供安全憑證的建議方式為指定 AWS Identity and Access Management (IAM) 角色。對於 COPY 和 UNLOAD,您可以提供臨時憑證。
如果使用者想要與 AWS外部互動,則需要程式設計存取AWS 管理主控台。授予程式設計存取權的方式取決於正在存取的使用者類型AWS。
若要授予使用者程式設計存取權,請選擇下列其中一個選項。
| 哪個使用者需要程式設計存取權? | 到 | 根據 |
|---|---|---|
| IAM | (建議) 使用主控台登入資料做為臨時登入資料,以簽署對 AWS CLI、AWSSDKs程式設計請求。AWSAPIs |
請依照您要使用的介面所提供的指示操作。
|
|
人力資源身分 (IAM Identity Center 中管理的使用者) |
使用暫時登入資料簽署對 AWS CLI、AWSSDKs程式設計請求。 AWSAPIs |
請依照您要使用的介面所提供的指示操作。
|
| IAM | 使用暫時登入資料簽署對 AWS CLI、AWSSDKs程式設計請求。 AWSAPIs | 遵循《IAM 使用者指南》中將臨時登入資料與AWS資源搭配使用的指示。 |
| IAM | (不建議使用) 使用長期憑證簽署對 AWS CLI、AWSSDKs程式設計請求。AWSAPIs |
請依照您要使用的介面所提供的指示操作。
|
接下來,了解如何建立具有適當許可的 IAM 角色來存取其他 AWS服務。您也需要在執行 Amazon Redshift 命令時將角色與您的叢集相關聯,並指定角色的 Amazon Resource Name (ARN)。如需詳細資訊,請參閱使用 IAM 角色授權 COPY、UNLOAD、CREATE EXTERNAL FUNCTION 和 CREATE EXTERNAL SCHEMA 操作。
此外,超級使用者可以將 ASSUMEROLE 權限授予特定使用者和群組,以提供 COPY 和 UNLOAD 操作角色的存取權。如需詳細資訊,請參閱《Amazon Redshift 資料庫開發人員指南》中的 GRANT。
建立 IAM 角色以允許 Amazon Redshift 叢集存取 AWS服務
建立具有許可的 IAM 角色
若要建立 IAM 角色以允許 Amazon Redshift 叢集代表您與其他 AWS 服務進行通訊,請採取下列步驟。本節中使用的值是範例,您可以根據需要選擇值。
建立 IAM 角色以允許 Amazon Redshift 存取 AWS服務
-
開啟 IAM 主控台
。 -
在導覽窗格中,選擇 Roles (角色)。
-
選擇 Create Role (建立角色)。
-
選擇 AWS 服務,然後選擇 Redshift。
-
在選取您的使用案例下,選擇Redshift – 可自訂,然後選擇下一步:許可。連接許可政策頁面隨即出現。
-
舉例來說,若要使用 COPY 存取 Amazon S3,您可以使用
AmazonS3ReadOnlyAccess和 append。若要使用 COPY 或 UNLOAD 存取 Amazon S3,我們建議您建立受管政策,以便相應地限制對所需儲存貯體和字首的存取。對於讀取和寫入操作,我們建議您強制執行最低權限並僅限用於 Amazon Redshift 所需的 Amazon S3 儲存貯體和索引鍵字首。如需為 CREATE EXTERNAL FUNCTION 命令調用 Lambda 函數的存取權,請新增
AWSLambdaRole。對於 Redshift Spectrum,除了 Amazon S3 存取之外,另請新增
AWSGlueConsoleFullAccess或AmazonAthenaFullAccess。選擇下一步:標籤。
-
Add tags (新增標籤) 頁面隨即出現。您可以選擇性地新增標籤。選擇下一步:檢閱。
-
針對 Role name (角色名稱),輸入您的角色名稱,例如
RedshiftCopyUnload。選擇建立角色。 -
新角色適用於叢集上使用該角色的所有使用者。若要限制只有特定叢集上的特定使用者或特定區域中的叢集可存取,請編輯角色的信任關係。如需詳細資訊,請參閱限制對 IAM 角色的存取。
-
將角色與叢集相關聯。您可在建立叢集或新增角色至現有叢集時將 IAM 角色與叢集相關聯。如需詳細資訊,請參閱將 IAM 角色與叢集建立關聯。
注意
若要限制對特定資料的存取權,請使用授予所需最低權限的 IAM 角色。