

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# 授權 Amazon Redshift 代表您存取 AWS 服務
<a name="authorizing-redshift-service"></a>

有些 Amazon Redshift 功能需要 Amazon Redshift 代表您存取其他 AWS 服務。例如，[COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) 和 [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) 命令可在使用 Amazon S3 儲存貯體的 Amazon Redshift 叢集上載入或卸載資料。[CREATE EXTERNAL FUNCTION](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html) 命令可以使用純量 AWS Lambda 使用者定義函數 (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、 AWS SDKs程式設計請求。 AWS APIs | 請依照您要使用的介面所提供的指示操作。[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/redshift/latest/mgmt/authorizing-redshift-service.html) | 
| 人力資源身分<br />(IAM Identity Center 中管理的使用者) | 使用暫時登入資料簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs | 請依照您要使用的介面所提供的指示操作。[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/redshift/latest/mgmt/authorizing-redshift-service.html) | 
| IAM | 使用暫時登入資料簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs | 遵循《IAM 使用者指南》中[將臨時登入資料與 AWS 資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)搭配使用的指示。 | 
| IAM | (不建議使用)使用長期登入資料來簽署對 AWS CLI、 AWS SDKs程式設計請求。 AWS APIs | 請依照您要使用的介面所提供的指示操作。[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/redshift/latest/mgmt/authorizing-redshift-service.html) | 

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

此外，超級使用者可以將 ASSUMEROLE 權限授予特定使用者和群組，以提供 COPY 和 UNLOAD 操作角色的存取權。如需詳細資訊，請參閱《Amazon Redshift 資料庫開發人員指南》**中的 [GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html)。

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


## 建立具有許可的 IAM 角色
<a name="authorizing-redshift-service-creating-an-iam-role"></a>

若要建立 IAM 角色以允許 Amazon Redshift 叢集代表您與其他 AWS 服務進行通訊，請採取下列步驟。本節中使用的值是範例，您可以根據需要選擇值。<a name="create-iam-role-for-aws-services"></a>

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

1. 開啟 [ IAM 主控台](https://console.aws.amazon.com/iam/home?#home)。

1. 在導覽窗格中，選擇 **Roles** (角色)。

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

1. 選擇 **AWS 服務**，然後選擇 **Redshift**。

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

1. 舉例來說，若要使用 COPY 存取 Amazon S3，您可以使用 **AmazonS3ReadOnlyAccess** 和 append。若要使用 COPY 或 UNLOAD 存取 Amazon S3，我們建議您建立受管政策，以便相應地限制對所需儲存貯體和字首的存取。對於讀取和寫入操作，我們建議您強制執行最低權限並僅限用於 Amazon Redshift 所需的 Amazon S3 儲存貯體和索引鍵字首。

   如需為 CREATE EXTERNAL FUNCTION 命令調用 Lambda 函數的存取權，請新增 **AWSLambdaRole**。

   對於 Redshift Spectrum，除了 Amazon S3 存取之外，另請新增 **AWSGlueConsoleFullAccess** 或 **AmazonAthenaFullAccess**。

   選擇下**一步：標籤**。

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

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

1. 新角色適用於叢集上使用該角色的所有使用者。若要限制只有特定叢集上的特定使用者或特定區域中的叢集可存取，請編輯角色的信任關係。如需詳細資訊，請參閱[限制對 IAM 角色的存取](authorizing-redshift-service-database-users.md)。

1. 將角色與叢集相關聯。您可在建立叢集或新增角色至現有叢集時將 IAM 角色與叢集相關聯。如需詳細資訊，請參閱[將 IAM 角色與叢集建立關聯](copy-unload-iam-role-associating-with-clusters.md)。
**注意**  
若要限制對特定資料的存取權，請使用授予所需最低權限的 IAM 角色。