

 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="loading-data-access-permissions"></a>

 Amazon S3、Amazon DynamoDB、Amazon EMR、Amazon EC2 など、別の AWS リソースを Amazon Redshift で使用してデータをロードまたはアンロードするには、リソースにアクセスし、必要なアクションを実行してデータを利用するためのアクセス許可が必要です。例えば、Amazon S3 からデータをロードする場合、COPY はバケットへの LIST アクセスとバケットオブジェクトへの GET アクセスが必要です。

リソースへのアクセス認可を取得するには、Amazon Redshift の認証が必要です。ロールベースのアクセスコントロールまたはキーに基づくアクセスコントロールのいずれかを選択できます。このセクションは 2 つの方法の概要を示します。詳細と例については、[他の AWS リソースにアクセスするアクセス許可](copy-usage_notes-access-permissions.md) を参照してください。

## ロールベースアクセスコントロール
<a name="loading-data-access-role-based"></a>

ロールベースのアクセスコントロールを使用する場合、Amazon Redshift はユーザーに代わって AWS Identity and Access Management (IAM) ロールを一時的に引き受けます。次に、ロールに付与された許可に応じて、Amazon Redshift は必要な AWS リソースにアクセスできます。

ロールベースのアクセスコントロールの利用をお勧めします。これにより、AWS 認証情報が保護されるだけでなく、AWS のリソースと機密性のあるユーザーデータに対するアクセスがより安全になり、きめ細やかなコントロールが行われます。

ロールベースのアクセスコントロールを使用するには、まず Amazon Redshift サービスロールタイプを使用して IAM ロールを作成し、次にロールをデータウェアハウスにアタッチする必要があります。ロールは、少なくとも [COPY、UNLOAD、CREATE LIBRARY のための IAM のアクセス許可](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions) に示されたアクセス権限が必要です。IAM ロールを作成してクラスターにアタッチする手順については、「*Amazon Redshift 管理ガイド*」の「[Amazon Redshift クラスターによって AWS のサービスへのアクセスを許可する IAM ロールを作成する](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html#authorizing-redshift-service-creating-an-iam-role)」を参照してください。

クラスターにロールを追加するか、Amazon Redshift マネジメントコンソール、CLI、または API を使用してクラスターに関連付けられるロールを表示できます。詳細については、「*Amazon Redshift 管理ガイド*」の「[IAM ロールを使用した COPY および UNLOAD オペレーションの認可](https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html)」を参照してください。

IAM ロールを作成する場合、IAM はロールの Amazon リソースネーム (ARN) を返します。IAM ロールを使用して COPY コマンドを実行するには、IAM\$1ROLE パラメータまたは CREDENTIALS パラメータを介してロールの ARN を指定します。

次の COPY コマンドの例では、ロール `MyRedshiftRole` を指定した IAM\$1ROLE パラメータを認証に使用します。

```
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' 
IAM_ROLE 'arn:aws:iam::12345678901:role/MyRedshiftRole';
```

AWS ユーザーは、少なくとも [COPY、UNLOAD、CREATE LIBRARY のための IAM のアクセス許可](copy-usage_notes-access-permissions.md#copy-usage_notes-iam-permissions) に示されたアクセス許可が必要です。

## キーベースのアクセスコントロール
<a name="loading-data-access-key-based"></a>

キーベースのアクセスコントロールでは、データがある AWS リソースへのアクセスを許可されたユーザーのアクセスキー ID とシークレットアクセスキーを指定します。 

**注記**  
プレーンテキストのアクセスキー ID とシークレットアクセスキーを指定する代わりに、認証のために IAM ロールを使用することを強くお勧めします。キーベースのアクセスコントロールを選択する場合は、AWSアカウント (ルート) 認証情報を使用しないでください。常に IAM ユーザーを作成し、そのユーザーのアクセスキー ID とシークレットアクセスキーを指定します。IAM ユーザーを作成する手順については、「[AWS アカウントでの IAM ユーザーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html)」を参照してください。