View a markdown version of this page

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

Amazon Redshift 將不再支援在 2026 年 6 月 30 日之後使用 Python UDFs。我們將開始分階段強制執行。如需 Python 生命週期結束和遷移選項的詳細資訊,請參閱 2025 年 6 月 30 日發佈的部落格文章。

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

登入資料和存取許可

若要使用 Amazon S3、Amazon DynamoDB、Amazon EMR 或 Amazon EC2 等其他 AWS 資源載入或卸載資料,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 許可。

如果您使用 IAM 聯合身分連線,您也可以透過指定 來使用目前工作階段的憑證載入 IAM_ROLE 'SESSION',而不是擔任叢集 IAM 角色。如需詳細資訊,請參閱SESSION。如需設定聯合身分的範例,請參閱使用聯合身分來管理對本機資源和 Amazon Redshift Spectrum 外部資料表的 Amazon Redshift 存取。

金鑰型存取控制

使用金鑰型存取控制,您可以為有權存取包含資料之 AWS 資源的使用者提供存取金鑰 ID 和私密存取金鑰。 

注意

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