

 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/)を参照してください。

# ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスすることを許可する
<a name="authorizing-redshift-service"></a>

一部の Amazon Redshift 機能では、ユーザーに代わって Amazon Redshift が他の AWS のサービスにアクセスする必要があります。たとえば、[COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) と [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) コマンドでは、Amazon S3 バケットを使用してデータを Amazon Redshift クラスターにロードまたはアンロードできます。[CREATE EXTERNAL FUNCTION](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html) コマンドは、スカラーの Lambda ユーザー定義関数 (UDF) を使用して AWS Lambda 関数を呼び出すことができます。Amazon Redshift Spectrum では、Amazon Athena または AWS Glue のデータカタログを使用できます。Amazon Redshift クラスターがユーザーに代わってタスクを実行するには、クラスターにセキュリティ認証情報を指定します。セキュリティ認証情報を指定する望ましい方法は、AWS Identity and Access Management (IAM) ロールを指定することです。COPY と UNLOAD では、一時的な認証情報を指定できます。

AWS マネジメントコンソール の外部で AWS を操作するには、プログラマチックアクセス権が必要です。プログラムによるアクセス権を付与する方法は、AWS にアクセスしているユーザーのタイプによって異なります。

ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。


****  

| プログラムによるアクセス権を必要とするユーザー | 目的 | 方法 | 
| --- | --- | --- | 
| IAM | (推奨) 一時的な認証情報としてコンソール認証情報を使用して、AWS CLI、AWS SDK、または AWS API へのプログラマチックリクエストに署名します。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/authorizing-redshift-service.html)  | 
|  ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー)  | 一時的な認証情報を使用して、AWS CLI、AWS SDK、または AWS API へのプログラムによるリクエストに署名します。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/authorizing-redshift-service.html)  | 
| IAM | 一時的な認証情報を使用して、AWS CLI、AWS SDK、または AWS API へのプログラムによるリクエストに署名します。 | IAM ユーザーガイドの「[AWS リソースでの一時的な認証情報の使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)」の指示に従ってください。 | 
| IAM | (非推奨)長期的な認証情報を使用して、AWS CLI、AWS SDK、または AWS API へのプログラムによるリクエストに署名します。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/authorizing-redshift-service.html)  | 

次に、他の AWS サービスにアクセスするための適切なアクセス許可を持つ IAM ロールを作成する方法を説明します。Amazon Redshift コマンドの実行時に、ロールをクラスターに関連付けてから、そのロールの Amazon リソースネーム (ARN) を指定する必要があります。詳細については、「[IAM ロールを使用して COPY、UNLOAD、CREATE EXTERNAL FUNCTION、CREATE EXTERNAL SCHEMA オペレーションを承認するIAM ロールを使用したオペレーションの承認](copy-unload-iam-role.md)」を参照してください。

さらに、スーパーユーザーは、COPY および UNLOAD 操作のロールへのアクセスを提供するために、特定のユーザーおよびグループに AssumEROLE 権限を付与できます。詳細については、 *Amazon Redshift データベースデベロッパーガイド*から [GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html) を参照してください。

## Amazon Redshift クラスターが AWS サービスにアクセスすることを許可する IAM ロールの作成


## アクセス許可を付与した IAM ロールの作成
<a name="authorizing-redshift-service-creating-an-iam-role"></a>

ユーザーに代わって Amazon Redshift クラスターが他の AWS サービスと通信することを許可する IAM ロールを作成するには、次の手順を実行します。このセクションで使用する値は例であり、必要に応じて値を選択できます。<a name="create-iam-role-for-aws-services"></a>

**Amazon Redshift が AWS サービスにアクセスすることを許可する IAM ロールを作成するには**

1. [IAM コンソール](https://console.aws.amazon.com/iam/home?#home)を開きます。

1. ナビゲーションペインで **[ロール]** を選択します。

1. **ロールの作成**を選択します。

1. **AWS サービス**、**Redshift**の順にクリックします。

1. **ユースケースの選択**で、**Redshift - カスタマイズ可能** 、**次へ : 許可**の順に選択します。**アクセス権限ポリシーをアタッチする** ページが表示されます。

1. COPY を使用して Amazon S3 にアクセスするには、例として、 **AmazonS3ReadOnlyAccess** と入力して追加します。COPY または UNLOAD を使用して Amazon S3 にアクセスする場合は、適切なバケットとプレフィックスへのアクセスを制限する管理ポリシーを作成することをお勧めします。読み取り操作と書き込み操作の両方で、最小限の権限を適用し、Amazon Redshift に必要な Amazon S3 バケットとキープレフィックスのみに制限することをお勧めします。

   CREATE EXTERNAL FUNCTION コマンドの Lambda 関数を呼び出すためのアクセスには、 **AWSLambdaRole**を追加します。

   Redshift Spectrum の場合は、Amazon S3 アクセスに加えて、 **AWSGlueConsoleFullAccess** または **AmazonAthenaFullAccess**を追加します。

   **次へ: タグ**を選択します。

1. **タグの追加** ページが表示されます。必要に応じてタグを追加できます。**次へ: レビュー**を選択します。

1. **ロール名**で、 **RedshiftCopyUnload**などのロール名を入力します。****ロールの作成****を選択します。

1. 新しいロールは、そのロールを使用するクラスターのすべてのユーザーが利用できます。特定のクラスターの特定のユーザーのみ、または特定のリージョンのクラスターのみにアクセスを制限するには、ロールの信頼関係を編集します。詳細については、「[IAM ロールへのアクセスの制限](authorizing-redshift-service-database-users.md)」を参照してください。

1. ロールとクラスターを関連付けます。クラスターの作成時に IAM ロールをクラスターに関連付けるか、既存クラスターにロールを追加できます。詳細については、「[IAM ロールをクラスターに関連付ける](copy-unload-iam-role-associating-with-clusters.md)」を参照してください。
**注記**  
特定のデータへのアクセスを制限するには、必要な最小限の権限を付与する IAM ロールを使用します。