登入資料和存取許可 - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

登入資料和存取許可

若要使用另一個 AWS 資源 (例如 Amazon S3、Amazon DynamoDB、Amazon EMR 或 Amazon EC2) 載入或卸載資料,Amazon Redshift 必須具備存取資源和執行必要動作以存取資料的許可。例如,若要從 Amazon S3 載入資料,COPY 必須具備儲存貯體的 LIST 存取權和儲存貯體物件的 GET 存取權。

Amazon Redshift 必須經過身分驗證,才能獲得授權來存取資源。您可以選擇角色型存取控制或金鑰型存取控制中的一個。本節說明這兩個方法的概觀。如需詳細資訊和範例,請參閱存取其他 AWS 資源的許可

角色類型存取控制

使用角色型存取控制時,Amazon Redshift 會暫時代表您擔任 AWS Identity and Access Management (IAM) 角色。然後,根據授與角色的授權,Amazon Redshift 即可存取所需的 AWS 資源。

建議您使用角色型存取控制,因為除了可保護 AWS 登入資料,也能更安全、更精細地控制對 AWS 資源和敏感使用者資料的存取。

若要使用角色型存取控制,您必須先使用 Amazon Redshift 服務角色類型建立 IAM 角色,再將該角色連接至資料倉儲。角色至少必須具備 COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 許可中列出的許可。如需建立 IAM 角色並將其附加到叢集的步驟,請參閱《Amazon Redshift 管理指南》中的建立 IAM 角色以允許您的 Amazon Redshift 叢集存取 AWS 服務

您可以使用 Amazon Redshift 管理主控台、CLI 或 API 將角色新增至叢集,或檢視與叢集相關聯的角色。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的使用 IAM 角色授權 COPY 和 UNLOAD 操作

建立 IAM 角色時,IAM 會傳回角色的 Amazon Resource Name (ARN)。若要使用 IAM 角色來執行 COPY 命令,請使用 IAM_ROLE 參數或 CREDENTIALS 參數來提供角色 ARN。

下列 COPY 命令範例會使用 IAM_ROLE 參數搭配角色 MyRedshiftRole 進行身分驗證。

COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' IAM_ROLE 'arn:aws:iam::12345678901:role/MyRedshiftRole';

AWS 使用者至少必須具備 COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 許可 中列出的許可。

金鑰型存取控制

使用金鑰型存取控制時,請提供使用者的存取金鑰 ID 和私密存取金鑰,而此使用者獲授權存取含有資料的 AWS 資源。 

注意

強烈建議使用 IAM 角色來驗證身分,而不要提供純文字存取金鑰 ID 和私密存取金鑰。如果您選擇金鑰型存取控制,請絕對不要使用 AWS 帳戶 (根) 憑證。請一律建立 IAM 使用者,並提供該使用者的存取金鑰 ID 和私密存取金鑰。關於建立 IAM 使用者的步驟,請參閱在 AWS 帳戶中建立 IAM 使用者