授權參數 - Amazon Redshift

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

授權參數

COPY 命令需要授權才能存取其他 AWS 資源中的資料,包括 Amazon S3、Amazon EMR、亞馬遜動態 B 和 Amazon EC2。您可以透過參考附加到叢集的 AWS Identity and Access Management (IAM) 角色 來提供此授權 (角色型存取控制)。您可以在 Amazon S3 上加密載入資料。

下列主題提供身分驗證選項的詳細資訊和範例:

使用下列其中一項來提供 COPY 命令的授權:

IAM_ROLE { default | 'arn:aws:iam::<AWS 帳戶-id>:role/<role-name>' }

使用預設關鍵字,讓 Amazon Redshift 使用設定為預設值並在 COPY 命令執行時與叢集關聯的 IAM 角色。

對叢集進行身分驗證和授權時所使用的 IAM 角色使用 Amazon Resource Name (ARN)。如果指定 IAM_ROLE,則不能使用 ACCESS_KEY_ID 和 SECRET_ACCESS_KEY、SESSION_TOKEN 或 CREDENTIALS。

以下顯示 IAM_ROLE 參數的語法。

IAM_ROLE { default | 'arn:aws:iam::<AWS 帳戶-id>:role/<role-name>' }

如需詳細資訊,請參閱 角色類型存取控制

訪問密鑰 ID '' 秘密訪問密鑰 '' access-key-id secret-access-key

不建議使用此授權方法。

注意

除了以純文字提供存取登入資料,強烈建議指定 IAM_ROLE 參數來使用角色型身分驗證。如需詳細資訊,請參閱 角色類型存取控制

SESSION_TOKEN 'temporary-token'

用於暫時存取登入資料的工作階段字符。指定 SESSION_TOKEN 時,您還必須使用 ACCESS_KEY_ID 和 SECRET_ACCESS_KEY 來提供暫時存取金鑰登入資料。如果指定 SESSION_TOKEN,則不能使用 IAM_ROLE 或 CREDENTIALS。如需詳細資訊,請參閱《IAM 使用者指南》中的暫時安全憑證

注意

除了建立暫時安全登入資料,強烈建議使用角色型身分驗證。使用 IAM 角色來授權時,Amazon Redshift 會自動為每個工作階段建立暫時使用者憑證。如需詳細資訊,請參閱 角色類型存取控制

以下顯示 SESSION_TOKEN 參數及 ACCESS_KEY_ID 和 SECRET_ACCESS_KEY 參數的語法。

ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>' SESSION_TOKEN '<temporary-token>';

如果指定 SESSION_TOKEN,則不能使用 CREDENTIALS 或 IAM_ROLE。

[WITH] CREDENTIALS [AS] 'credentials-args'

一個子句,指出您的叢集在存取包含資料檔案或資訊清單檔案的其他 AWS 資源時將使用的方法。CREDENTIALS 參數不能與 IAM_ROLE 或 ACCESS_KEY_ID 和 SECRET_ACCESS_KEY 一起使用。

注意

若要提高彈性,建議使用 IAM_ROLE 參數,而不是 CREDENTIALS 參數。

(選用) 如果使用 ENCRYPTED 參數,則 credentials-args 字串也提供加密金鑰。

credentials-args 字串區分大小寫,且不得包含空格。

關鍵字 WITH 和 AS 是選用的且會被忽略。

您可指定為 role-based access controlkey-based access control。在任一情況下,IAM 角色或使用者必須具有存取指定之 AWS 資源所需的許可。如需詳細資訊,請參閱 COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 許可

注意

為了保護您的 AWS 認證並保護敏感資料,我們強烈建議您使用角色型存取控制。

若要指定角色型存取控制,請依下列格式提供 credentials-args 字串。

'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'

若要使用暫時字符登入資料,您必須提供暫時存取金鑰 ID、暫時私密存取金鑰及暫時字符。credentials-args 字串採用下列格式。

CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>'

如需詳細資訊,請參閱 暫時安全憑證

如果使用 ENCRYPTED 參數,則 credentials-args 字串採用下列格式,其中 <root-key> 是用於加密檔案之根金鑰的值。

CREDENTIALS '<credentials-args>;master_symmetric_key=<root-key>'

例如,下列 COPY 命令會使用角色型存取控制搭配加密金鑰。

copy customer from 's3://DOC-EXAMPLE-BUCKET/mydata' credentials 'aws_iam_role=arn:aws:iam::<account-id>:role/<role-name>;master_symmetric_key=<root-key>'

下列 COPY 命令顯示角色型存取控制搭配加密金鑰。

copy customer from 's3://DOC-EXAMPLE-BUCKET/mydata' credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>;master_symmetric_key=<root-key>'