

 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/)。

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

# 授權參數
<a name="copy-parameters-authorization"></a>

COPY 命令需要授權才能存取其他 AWS 資源中的資料，包括 Amazon S3、Amazon EMR、Amazon DynamoDB 和 Amazon EC2。您可以透過參考附加到叢集的 [AWS Identity and Access Management (IAM) 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) 來提供此授權 (*角色型存取控制*)。您可以在 Amazon S3 上加密載入資料。

下列主題提供身分驗證選項的詳細資訊和範例：
+ [COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 許可](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions)
+ [角色類型存取控制](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based)
+ [金鑰型存取控制](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based)

使用下列其中一項來提供 COPY 命令的授權：
+ [使用 IAM\_ROLE 參數](#copy-iam-role) 參數
+ [使用 ACCESS\_KEY\_ID 和 SECRET\_ACCESS\_KEY 參數](#copy-access-key-id) 參數
+ [使用 CREDENTIALS 參數](#copy-credentials) 子句

## 使用 IAM\_ROLE 參數
<a name="copy-iam-role"></a>

### IAM\_ROLE
<a name="copy-iam-role-iam"></a>

使用預設關鍵字，讓 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>}}' }
```

如需詳細資訊，請參閱[角色類型存取控制](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based)。

## 使用 ACCESS\_KEY\_ID 和 SECRET\_ACCESS\_KEY 參數
<a name="copy-access-key-id"></a>

### ACCESS\_KEY\_ID、SECRET\_ACCESS\_KEY
<a name="copy-access-key-id-access"></a>

不建議使用此授權方法。

**注意**  
除了以純文字提供存取登入資料，強烈建議指定 IAM\_ROLE 參數來使用角色型身分驗證。如需詳細資訊，請參閱[角色類型存取控制](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based)。

### SESSION\_TOKEN
<a name="copy-token"></a>

用於暫時存取登入資料的工作階段字符。指定 SESSION\_TOKEN 時，您還必須使用 ACCESS\_KEY\_ID 和 SECRET\_ACCESS\_KEY 來提供暫時存取金鑰登入資料。如果指定 SESSION\_TOKEN，則不能使用 IAM\_ROLE 或 CREDENTIALS。如需詳細資訊，請參閱《IAM 使用者指南》中的[暫時安全憑證](copy-usage_notes-access-permissions.md#r_copy-temporary-security-credentials)。

**注意**  
除了建立暫時安全登入資料，強烈建議使用角色型身分驗證。使用 IAM 角色來授權時，Amazon Redshift 會自動為每個工作階段建立暫時使用者憑證。如需詳細資訊，請參閱[角色類型存取控制](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based)。

以下顯示 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。

## 使用 CREDENTIALS 參數
<a name="copy-credentials"></a>

### CREDENTIALS
<a name="copy-credentials-cred"></a>

子句，指出您的叢集在存取包含資料檔案或資訊清單檔案的其他 AWS 資源時將使用的方法。CREDENTIALS 參數不能與 IAM\_ROLE 或 ACCESS\_KEY\_ID 和 SECRET\_ACCESS\_KEY 一起使用。

以下顯示 CREDENTIALS 參數的語法。

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

**注意**  
若要提高彈性，建議使用 [IAM\_ROLE](#copy-iam-role-iam) 參數，而不是 CREDENTIALS 參數。

(選用) 如果使用 [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted) 參數，則 *credentials-args* 字串也提供加密金鑰。

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

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

您可指定為 [role-based access control](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based.phrase) 或 [key-based access control](copy-usage_notes-access-permissions.md#copy-usage_notes-access-key-based.phrase)。在任一情況下，IAM 角色或使用者必須具有存取指定之 AWS 資源所需的許可。如需詳細資訊，請參閱[COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 許可](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions)。

**注意**  
為了保護您的 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>}}'
```

使用角色型存取控制搭配臨時憑證的 COPY 命令類似下列範例陳述式：

```
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' 
CREDENTIALS
'aws_access_key_id={{<temporary-access-key-id>}};aws_secret_access_key={{<temporary-secret-access-key-id>}};token={{<temporary-token>}}'
```

 如需詳細資訊，請參閱[暫時安全憑證](copy-usage_notes-access-permissions.md#r_copy-temporary-security-credentials)。

如果使用 [ENCRYPTED](copy-parameters-data-source-s3.md#copy-encrypted) 參數，則 *credentials-args* 字串採用下列格式，其中 {{<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>}}'
```