本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授權參數
該COPY命令需要授權才能存取其他 AWS 資源中的資料,包括 Amazon S3、Amazon EMR、Amazon DynamoDB 和亞馬遜。EC2您可以參考附加至叢集的 AWS Identity and Access Management (IAM) 角色 (以角色為基礎的存取控制) 來提供該授權。您可以在 Amazon S3 上加密載入資料。
下列主題提供身分驗證選項的詳細資訊和範例:
使用下列其中一項來提供COPY指令的授權:
- IAM_ ROLE {默認 | 'ARN:AWN:IAM::
<AWS 帳戶-id>
:角色/<role-name>
' } -
使用預設關鍵字可讓 Amazon Redshift 使用設定為預設並在COPY命令執行時與叢集關聯的IAM角色。
將 Amazon 資源名稱 (ARN) 用於叢集用於身份驗證和授權的IAM角色。如果指定 IAM _ROLE,則無法使用 ACCESS _ KEY _ID 和 SECRET ACCESS _ KEY TOKEN、SESSION _ 或CREDENTIALS。
以下顯示 IAM _ ROLE 參數的語法。
IAM_ROLE { default | 'arn:aws:iam::
<AWS 帳戶-id>
:role/<role-name>
' }如需詳細資訊,請參閱角色類型存取控制。
- ACCESSKEY_ 識別碼 'access-key-id ' SECRET _ ACCESS _ KEY 'secret-access-key
-
不建議使用此授權方法。
注意
我們強烈建議您指定 IAM _ ROLE 參數以角色為基礎的驗證,而不是以純文字形式提供存取認證。如需詳細資訊,請參閱角色類型存取控制。
- SESSION_ TOKEN '臨時令牌'
-
用於暫時存取登入資料的工作階段字符。指定 SESSION _ TOKEN 時,您還必須使用 ACCESS _ KEY _ID 和 _ SECRET ACCESS _ KEY 來提供臨時存取金鑰認證。如果您指定 SESSION _TOKEN,則不能使用 IAM _ ROLE 或CREDENTIALS。若要取得更多資訊,請參閱《IAM使用指南》暫時安全憑證中的。
注意
除了建立暫時安全登入資料,強烈建議使用角色型身分驗證。當您使用IAM角色授權時,Amazon Redshift 會自動為每個工作階段建立臨時使用者登入資料。如需詳細資訊,請參閱角色類型存取控制。
以下顯示具有 _ KEY _ID 和 SESSION _ _ TOKEN 參數的 ACCESS 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] '憑證參數'
-
一個子句,指出您的叢集在存取包含資料檔案或資訊清單檔案的其他 AWS 資源時將使用的方法。您不能將CREDENTIALS參數與 IAM _ ROLE 或 _ 或 KEY _ID 和 ACCESS SECRET ACCESS _ KEY 一起使用。
注意
為了提高靈活性,我們建議使用IAM_ROLE參數而不是CREDENTIALS參數。
(選用) 如果使用 ENCRYPTED 參數,則 credentials-args 字串也提供加密金鑰。
credentials-args 字串區分大小寫,且不得包含空格。
關鍵字WITH和 AS 是可選的,並且會被忽略。
您可指定為 role-based access control 或 key-based access control。在任何一種情況下,IAM角色或使用者都必須具有存取指定 AWS 資源所需的權限。如需詳細資訊,請參閱IAMCOPY、和的UNLOAD權限 CREATE LIBRARY。
注意
為了保護您的 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參數,則憑據參數字符串的格式如下,其中
<root-key>
是用來加密檔案的根金鑰值。CREDENTIALS '
<credentials-args>
;master_symmetric_key=<root-key>
'例如,下列COPY命令使用以角色為基礎的存取控制和加密金鑰。
copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::
<account-id>
:role/<role-name>
;master_symmetric_key=<root-key>
'以下COPY命令顯示基於角色的訪問控制與加密密鑰。
copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::
<aws-account-id>
:role/<role-name>
;master_symmetric_key=<root-key>
'