

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

# フェデレーテッドクエリを使用するためのシークレットと IAM ロールの作成
<a name="federated-create-secret-iam-role"></a>

以下のステップは、フェデレーテッドクエリで使用するシークレットと IAM ロールを作成する方法を示しています。

## 前提条件
<a name="federated-create-secret-prerequisites"></a>

横串検索で使用するシークレットと IAM ロールを作成するには、次の前提条件を満たす必要があります。
+ ユーザー名とパスワード認証を使用する RDS PostgreSQL、Aurora PostgreSQL DB インスタンス、RDS MySQL、または Aurora MySQL DB インスタンス。
+ 横串検索をサポートするクラスターメンテナンスバージョンを持つ Amazon Redshift クラスター。

**AWS Secrets Manager でシークレット (ユーザー名とパスワード) を作成するには**

1. RDS または Aurora DB クラスターインスタンスを所有するアカウントで Secrets Manager コンソールにサインインします。

1. [**新しいシークレットの保存**] を選択します｡ 

1. [**RDS データベースの認証情報**] タイルを選択します。[**ユーザー名**] と [**パスワード**] に、インスタンスの値を入力します。[**暗号化キー**] の値を確認または選択します。次に、シークレットがアクセスする RDS データベースを選択します。
**注記**  
デフォルトの暗号化キー (`DefaultEncryptionKey`) を使用することをお勧めします。カスタム暗号化キーを使用する場合、シークレットにアクセスするために使用される IAM ロールをキーユーザーとして追加する必要があります。

1. シークレットの名前を入力し、デフォルトの選択肢を使用して作成ステップを続行して、[**Store (保存)**] を選択します。

1. シークレットを表示し、シークレットを識別するために作成した [**シークレット ARN**] 値をメモします。

**シークレットを使用してセキュリティポリシーを作成するには**

1. AWS マネジメントコンソール にサインインして、IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. 次のような JSON を使用してポリシーを作成します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AccessSecret",
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetResourcePolicy",
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret",
                   "secretsmanager:ListSecretVersionIds"
               ],
               "Resource": "arn:aws:secretsmanager:us-west-2:123456789012:secret:my-rds-secret-VNenFy"
           },
           {
               "Sid": "VisualEditor1",
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetRandomPassword",
                   "secretsmanager:ListSecrets"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   シークレットを取得するには、リストと読み取りアクションが必要です。作成した特定のシークレットにリソースを制限することをお勧めします。これを行うには、シークレットの Amazon リソースネーム (ARN) を使用してリソースを制限します。IAM コンソールのビジュアルエディタを使用して、アクセス許可とリソースを指定することもできます。

1. ポリシーに名前を付けて、作成を完了します。

1. [**IAM ロール**] に移動します。

1. [**Redshift - カスタマイズ可能**] の IAM ロールを作成します。

1. 先ほど作成した IAM ポリシーを既存の IAM ロールにアタッチするか、新しい IAM ロールを作成してポリシーをアタッチします。

1. IAM ロールの [**Trust relationships (信頼関係)**] タブで、信頼エンティティ `redshift.amazonaws.com` が含まれていることを確認します。

1. 作成した**ロール ARN** を書き留めます。この ARN はシークレットにアクセスできます。

**IAM ロールを Amazon Redshift クラスターにアタッチするには**

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/) で Amazon Redshift コンソールを開きます。

1. ナビゲーションメニューで **[クラスター]** を選択します。現在のAWSリージョンにあるアカウントのクラスターがリストされています。

1. リストでクラスター名を選択して、クラスターの詳細を表示します。

1. [**アクション**] で、[**IAM ロールの管理**] を選択します。[**IAM ロールの管理**] ページが表示されます。

1. IAM ロールをクラスターに追加します。