

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

# AWS Secrets Manager へのデータベース認証情報の保存
<a name="data-api-secrets"></a>

Data API を呼び出すと、AWS Secrets Manager のシークレットを使用してクラスターまたはサーバーレスワークグループの認証情報を渡すことができます。この方法で認証情報を渡すには、シークレットの名前またはシークレットの Amazon リソースネーム (ARN) を指定します。

Secrets Manager で認証情報を保存するには、`SecretManagerReadWrite`マネージドポリシー権限が必要です。最小のアクセス許可についての詳細は、*AWS Secrets Managerユーザーガイド*の「[Creating and Managing Secrets with AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)」を参照してください。

**Amazon Redshift クラスターのシークレットに認証情報を保存するには**

1. AWS Secrets Manager コンソールを使用して、クラスターの認証情報が含まれるシークレットを作成します。
   + [**Store a new secret (新しいシークレットを保存する)**] を選択する場合は、[**Credentials for Redshift cluster (Redshift クラスターの認証情報)**]を選択します。
   + **[User name]** (ユーザー名) (データベースユーザー)、**[Password]** (パスワード)、および **[DB cluster]** (DB クラスター) (クラスター識別子) の値をシークレットに保存します。
   + キー `RedshiftDataFullAccess` でシークレットにタグを付けます。AWS マネージドポリシーの `AmazonRedshiftDataFullAccess` は、キー `RedshiftDataFullAccess` でタグ付けされたシークレットに対してのみアクション `secretsmanager:GetSecretValue` を許可します。

   手順については、*AWS Secrets Managerユーザーガイド* の「[Creating a Basic Secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)」を参照してください。

1. AWS Secrets Manager コンソールを使用して、作成したシークレットの詳細を表示するか、`aws secretsmanager describe-secret`の AWS CLI コマンドを実行します。

   シークレットの名前と ARN を書き留めます。これらは、Data API への呼び出しで使用できます。

**サーバーレスワークグループのシークレットに認証情報を保存するには**

1. サーバーレスワークグループの認証情報を含むシークレットを保存するには、AWS Secrets Manager AWS CLI コマンドを使用します。
   + ファイルにシークレットを作成します。例: `mycreds.json` という名前の JSON ファイル。ファイルで [**ユーザー名**] (データベースユーザー) と [**パスワード**] の値を指定します。

     ```
     {
           "username": "myusername",
           "password": "mypassword"
     }
     ```
   + 値をシークレットに保存し、シークレットに `RedshiftDataFullAccess` キーでタグを付けます。

     ```
     aws secretsmanager create-secret --name MyRedshiftSecret  --tags Key="RedshiftDataFullAccess",Value="serverless" --secret-string file://mycreds.json
     ```

     出力は以下のようになります。

     ```
     {
         "ARN": "arn:aws:secretsmanager:region:accountId:secret:MyRedshiftSecret-mvLHxf",
         "Name": "MyRedshiftSecret",
         "VersionId": "a1603925-e8ea-4739-9ae9-e509eEXAMPLE"
     }
     ```

   詳細については、*AWS Secrets Manager ユーザーガイド*の「[AWS CLI を使用したベーシックシークレットの作成](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html#proc-create-api)」を参照してください。

1. AWS Secrets Manager コンソールを使用して、作成したシークレットの詳細を表示するか、`aws secretsmanager describe-secret`の AWS CLI コマンドを実行します。

   シークレットの名前と ARN を書き留めます。これらは、Data API への呼び出しで使用できます。