

 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\$1ROLE パラメータの使用](#copy-iam-role) パラメータ
+ [ACCESS\$1KEY\$1ID および SECRET\$1ACCESS\$1KEY パラメータの使用](#copy-access-key-id) 個のパラメータ
+ [CREDENTIALS パラメータの使用](#copy-credentials) 句

## IAM\$1ROLE パラメータの使用
<a name="copy-iam-role"></a>

### IAM\$1ROLE
<a name="copy-iam-role-iam"></a>

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

クラスターが認証と認可に使用する IAM ロールの Amazon リソースネーム (ARN) を使用します。IAM\$1ROLE を指定すると、ACCESS\$1KEY\$1ID および SECRET\$1ACCESS\$1KEY、SESSION\$1TOKEN、または CREDENTIALS は使用できません。

以下に、IAM\$1ROLE パラメータの構文を示します。

```
IAM_ROLE { default | 'arn:aws:iam::<AWS アカウント-id>:role/<role-name>' }
```

詳細については、「[ロールベースアクセスコントロール](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based)」を参照してください。

## ACCESS\$1KEY\$1ID および SECRET\$1ACCESS\$1KEY パラメータの使用
<a name="copy-access-key-id"></a>

### ACCESS\$1KEY\$1ID、SECRET\$1ACCESS\$1KEY
<a name="copy-access-key-id-access"></a>

この認可方法は推奨されません。

**注記**  
アクセス認証情報をプレーンテキストで提供するのではなく、IAM\$1ROLE パラメータを指定してロールベースの認証を使用することを強くお勧めします。詳細については、「[ロールベースアクセスコントロール](copy-usage_notes-access-permissions.md#copy-usage_notes-access-role-based)」を参照してください。

### SESSION\$1TOKEN
<a name="copy-token"></a>

一時的アクセス認証情報で使用するセッショントークン。SESSION\$1TOKEN を指定した場合、ACCESS\$1KEY\$1ID と SECRET\$1ACCESS\$1KEY も使用して一時的アクセスキー認証情報を指定する必要があります。SESSION\$1TOKEN を指定した場合、IAM\$1ROLE または 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\$1KEY\$1ID と SECRET\$1ACCESS\$1KEY パラメータを使用した SESSION\$1TOKEN パラメータの構文を示します。

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

SESSION\$1TOKEN を指定した場合、CREDENTIALS または IAM\$1ROLE は使用できません。

## CREDENTIALS パラメータの使用
<a name="copy-credentials"></a>

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

クラスターが、データファイルまたはマニフェストファイルを含む他の AWS リソースにアクセスする際の方法を示す句。CREDENTIALS パラメータは、IAM\$1ROLE または ACCESS\$1KEY\$1ID と SECRET\$1ACCESS\$1KEY との併用はできません。

次に示すのは CREDENTIALS パラメータの構文です。

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

**注記**  
柔軟性を強化するために、CREDENTIALS パラメータの代わりに [IAM\$1ROLE](#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>'
```