

 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="query-editor-v2-schedule-query-authentication"></a>

クエリをスケジュールする場合は、SQL の実行時に、次のいずれかの認証方法を使用します。各メソッドでは、クエリエディタ v2 の入力の異なる組み合わせが必要です。これらの認証方法は、SQL ステートメントの実行に使用される Data API によってサポートされています。

クエリを実行するために使用されるデータベースユーザーまたはロールには、適切なデータベース権限が必要です。例えば、テーブル `mytable` に `IAMR:MyRedshiftQEv2Scheduler` 権限を付与するには、次の SQL コマンドを実行します。

```
GRANT all ON TABLE mytable TO "IAMR:MyRedshiftQEv2Scheduler";
```

クラスターまたはワークグループ内のデータベースユーザーのリストを表示するには、システムビュー `PG_USER_INFO` にクエリを実行します。

**注記**  
 クエリをスケジュールする対象のすべての Redshift Serverless ワークグループに、キー `RedshiftDataFullAccess` でタグ付けする必要があります。詳細については、「[Amazon Redshift Data API へのアクセスの認可](data-api-access.md)」を参照してください。  
ワークグループにタグを付ける代わりに、`redshift-serverless:GetCredentials` を許可するインラインポリシーを (スケジュールと一緒に指定する) IAMロールに追加できます。例えば、次のようになります。  

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllServerlessWorkgroups",
            "Effect": "Allow",
            "Action": "redshift-serverless:GetCredentials",
            "Resource": [
                "arn:aws:redshift-serverless:*:*:workgroup/*"
            ]
        }
    ]
}
```

**AWS Secrets Manager**  
この方法を使用して、AWS Secrets Manager に保存されている **secret-arn** のシークレット値を指定します。このシークレットには、データベースに接続するための認証情報が含まれます。クラスターまたはワークグループの作成時に、適切な認証情報を使用してシークレットを作成したとします。シークレットにはキー `RedshiftDataFullAccess` のタグを付ける必要があります。タグキーがない場合は、AWS Secrets Manager コンソールを使用して追加します。シークレットの作成方法の詳細については、「[データベース接続認証情報のシークレットの作成](redshift-secrets-manager-integration-create.md)」を参照してください。  
最小のアクセス許可についての詳細は、*AWS Secrets Manager ユーザーガイド*の「[AWS Secrets Manager を使用したシークレットの作成と管理](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)」を参照してください。

**一時的な認証情報**  
このメソッドでは、クラスター内のデータベースに接続するときに、**データベース名**と**データベースユーザー**の値を指定します。**データベース名**は、ワークグループ内のデータベースに接続するときだけに指定する必要があります。  
クラスターに接続する場合、`AmazonRedshiftDataFullAccess` ポリシーは、`redshift_data_api_user` という名前のデータベースユーザーに `redshift:GetClusterCredentials` へのアクセス許可を付与します。別のデータベースユーザーを使用して SQL ステートメントを実行する場合は、クラスターにアタッチされた IAM ロールにポリシーを追加して `redshift:GetClusterCredentials` を許可します。次のポリシー例では、データベースユーザー `awsuser` と `myuser` を許可しています。    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UseTemporaryCredentialsForAllDbUsers",
            "Effect": "Allow",
            "Action": "redshift:GetClusterCredentials",
            "Resource": [
                "arn:aws:redshift:*:*:dbuser:*/awsuser",
                "arn:aws:redshift:*:*:dbuser:*/myuser"
            ]
        }
    ]
}
```