

 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 を使用した Amazon Redshift 管理者パスワードの管理
<a name="redshift-secrets-manager-integration"></a>

 Amazon Redshift は、AWS Secrets Manager と統合して、暗号化されたシークレット内で管理者認証情報を生成して管理できます。AWS Secrets Manager を使用して、管理者パスワードを API コールに置き換えて、必要な際にシークレットをプログラムで取得できます。ハードコードされた認証情報の代わりにシークレットを使用すると、認証情報が公開されたり侵害されたりするリスクを軽減できます。AWS Secrets Manager については [https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)を参照してください。

次のいずれかのオペレーションを実行する場合、Amazon Redshift が AWS Secrets Manager を使用して管理者パスワードを管理するように指定できます。
+ プロビジョニングされたクラスターまたはサーバーレス名前空間を作成する
+ プロビジョニングされたクラスターまたはサーバーレス名前空間の管理者認証情報を編集、更新、または変更する
+ スナップショットからのクラスターまたはサーバーレス名前空間を復元する

AWS Secrets Manager で管理者パスワードを Amazon Redshift で管理するように指定すると、Amazon Redshift はパスワードを生成して Secrets Manager に保存します。このシークレットを AWS Secrets Manager で直接アクセスして、管理者ユーザーの認証情報を取得できます。別の AWS アカウントからシークレットにアクセスする必要がある場合、オプションでカスタマーマネージドキーを指定してシークレットを暗号化できます。AWS Secrets Manager が提供する KMS キーを使用することもできます。

Amazon Redshift はシークレットの設定を管理し、デフォルトでシークレットを 30 日ごとにローテーションします。シークレットはいつでもを手動でローテーションできます。AWS Secrets Manager でシークレットを管理しているプロビジョンされたクラスターまたはサーバーレス名前空間を削除すると、シークレットとそれに関連するメタデータも削除されます。

シークレットで管理された認証情報を使用してクラスターまたはサーバーレス名前空間に接続するには、Secrets Manager コンソールまたは `GetSecretValue` Secrets Manager API コールを使用して AWS Secrets Manager からシークレットを取得できます。詳細については、*AWS Secrets Manager ユーザーガイド*の「[AWS Secrets Manager からのシークレットの取得](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html)、[AWS Secrets Manager シークレットの認証情報を使用して SQL データベースに接続する](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_jdbc.html)」を参照してください。

## AWS Secrets Manager の統合に必要となるアクセス許可
<a name="redshift-secrets-manager-integration-permissions"></a>

AWS Secrets Manager の統合に関連するオペレーションを実行するには、ユーザーは必要なアクセス許可を持っている必要があります。必要となる特定のリソースの API オペレーションを実行するためのアクセス許可を付与する IAM ポリシーを作成します。その後、このようなポリシーを、アクセス許可を必要とする IAM アクセス許可セットまたはロールにアタッチします。詳細については、「[Amazon Redshift での Identity and Access Management](redshift-iam-authentication-access-control.md)」を参照してください。

Amazon Redshift が AWS Secrets Manager を使用して管理者パスワードを管理するように指定するユーザーには、次のオペレーションを実行するアクセス許可が付与されている必要があります。
+ `secretsmanager:CreateSecret`
+ `secretsmanager:RotateSecret`
+ `secretsmanager:DescribeSecret`
+ `secretsmanager:UpdateSecret`
+ `secretsmanager:DeleteSecret`
+ `secretsmanager:GetRandomPassword`
+ `secretsmanager:TagResource`

プロビジョン済みのクラスターの `MasterPasswordSecretKmsKeyId` パラメータ、またはサーバーレス名前空間の `AdminPasswordSecretKmsKeyId` パラメータで KMS キーを渡すユーザーの場合は、上記のアクセス許可に加えて、次のアクセス許可が必要です。
+ `kms:Decrypt`
+ `kms:GenerateDataKey`
+ `kms:CreateGrant`
+ `kms:RetireGrant`

## 管理者パスワードシークレットのローテーション
<a name="redshift-secrets-manager-integration-rotation"></a>

デフォルトでは、Amazon Redshift は 30 日ごとにシークレットを自動的にローテーションして、同じ認証情報が長期間使用されることを回避できます。Amazon Redshift が管理者パスワードのシークレットをローテーションすると、AWS Secrets Manager は既存のシークレットが新しい管理者パスワードを含むように更新します。Amazon Redshift は、更新されたシークレットのパスワードと一致するようにクラスターの管理者パスワードを変更します。

AWS Secrets Manager を使用して、スケジュールされたローテーションを待つ代わりに、シークレットを直ちにローテーションできます。シークレットのローテーションの詳細については、「**AWS Secrets Manager ユーザーガイド」の「[AWS Secrets Manager シークレットのローテーション](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_jdbc.html)」を参照してください。

## Amazon Redshift で AWS Secrets Manager を使用する場合の考慮事項
<a name="redshift-secrets-manager-integration-considerations"></a>

 AWS Secrets Manager を使用してプロビジョニングされたクラスターまたはサーバーレス名前空間の管理者認証情報を管理する場合は、次の点を考慮する必要があります。
+  管理者認証情報が AWS Secrets Manager で管理されているクラスターを一時停止しても、クラスターのシークレットは削除されず、引き続きシークレットに対して料金が発生します。シークレットは、クラスターを削除したときにのみ削除されます。
+  Amazon Redshift がアタッチされたシークレットのローテーションを試行する際にクラスターが一時停止していると、ローテーションは失敗します。この場合、Amazon Redshift は自動ローテーションを停止して、クラスターを再開した後でも自動ローテーションを再度試行することはありません。シークレットの自動ローテーションを継続するには、`secretsmanager:RotateSecret` API コールを使用して AWS Secrets Manager の自動ローテーションのスケジュールを再開する必要があります。
+  Amazon Redshift がアタッチされたシークレットのローテーションを試行する際に、サーバーレス名前空間にワークグループが関連付けられていない場合、ローテーションは失敗し、ワークグループをアタッチした後でも自動ローテーションを再度試行することはありません。シークレットの自動ローテーションを継続するには、`secretsmanager:RotateSecret` API コールを使用して AWS Secrets Manager の自動ローテーションのスケジュールを再開する必要があります。