

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の 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>

デフォルトキーワードを使用して、COPY コマンドの実行時にデフォルトとして設定され、クラスターに関連付けられた IAM ロールの使用を、Amazon Redshift に指示します。

クラスターが認証と認可に使用する IAM ロールの Amazon リソースネーム (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)」を参照してください。

以下に、ACCESS\_KEY\_ID と SECRET\_ACCESS\_KEY パラメータを使用した SESSION\_TOKEN パラメータの構文を示します。

```
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'
```

**注記**  
柔軟性を強化するために、CREDENTIALS パラメータの代わりに [IAM\_ROLE](#copy-iam-role-iam) パラメータを使用することをお勧めします。

必要に応じて [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>}}'
```