

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Redshift に接続する
<a name="connectors-redshift"></a>

App Studio を Amazon Redshift に接続して、ビルダーがアプリケーションで Amazon Redshift リソースにアクセスして使用できるようにするには、次の手順を実行する必要があります。

1. [ステップ 1: Amazon Redshift リソースを作成して設定する](#connectors-redshift-create-resources)

1. [ステップ 2: 適切な Amazon Redshift アクセス許可を持つ IAM ポリシーとロールを作成する](#connectors-redshift-iam)

1. [ステップ 3: Amazon Redshift コネクタを作成する](#connectors-redshift-create-connector)

## ステップ 1: Amazon Redshift リソースを作成して設定する
<a name="connectors-redshift-create-resources"></a>

App Studio で使用する Amazon Redshift リソースを作成および設定するには、次の手順に従います。

**App Studio で使用する Amazon Redshift を設定するには**

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

   で作成した管理ユーザーを使用することをお勧めします[AWS リソースを管理するための管理ユーザーを作成する](setting-up-first-time-admin.md#setting-up-create-admin-user)。

1. Redshift Serverless データウェアハウスまたはプロビジョニングされたクラスターを作成します。詳細については、「Amazon [Redshift ユーザーガイド」の「Redshift Serverless を使用したデータウェアハウス](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html#serverless-console-resource-creation)の作成」または[「クラスターの作成](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#create-cluster)」を参照してください。 **

1. プロビジョニングが完了したら、**クエリデータ**を選択してクエリエディタを開きます。データベースに接続します。

1. 次の設定を変更します。

   1. **分離されたセッション**の切り替えを に設定します`OFF`。これは、実行中の App Studio アプリケーションなど、他のユーザーによって行われたデータ変更を表示するために必要です。

   1. 「歯車」アイコンを選択します。**[Account settings]** (アカウント設定) を選択します。への**最大同時接続**数を増やします`10`。これは、Amazon Redshift データベースに接続できるクエリエディタセッションの数の制限です。App Studio アプリケーションなどの他のクライアントには適用されません。

1. `public` スキーマの下にデータテーブルを作成します。これらのテーブルに初期データ`INSERT`を含めます。

1. クエリエディタで次のコマンドを実行します。

   次のコマンドは、データベースユーザーを作成し、App Studio で使用される *AppBuilderDataAccessRole* という名前の IAM ロールに接続します。IAM ロールは後のステップで作成します。ここでの名前は、そのロールに指定された名前と一致する必要があります。

   ```
   CREATE USER "IAMR:AppBuilderDataAccessRole" WITH PASSWORD DISABLE;
   ```

   次のコマンドは、すべてのテーブルに対するすべてのアクセス許可を App Studio に付与します。
**注記**  
セキュリティのベストプラクティスとして、ここでのアクセス許可の範囲を、適切なテーブルに必要な最小限のアクセス許可に絞り込む必要があります。`GRANT` コマンドの詳細については、「Amazon Redshift データベースデベロッパーガイド」の[「GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html)」を参照してください。

   ```
   GRANT ALL ON ALL TABLES IN SCHEMA public to "IAMR:AppBuilderDataAccessRole";
   ```

## ステップ 2: 適切な Amazon Redshift アクセス許可を持つ IAM ポリシーとロールを作成する
<a name="connectors-redshift-iam"></a>

App Studio で Amazon Redshift リソースを使用するには、管理者は IAM ポリシーとロールを作成して、リソースへのアクセス許可を App Studio に付与する必要があります。IAM ポリシーは、ビルダーが使用できるデータの範囲と、作成、読み取り、更新、削除など、そのデータに対して呼び出すことができるオペレーションを制御します。IAM ポリシーは、App Studio で使用される IAM ロールにアタッチされます。

サービスおよびポリシーごとに少なくとも 1 つの IAM ロールを作成することをお勧めします。たとえば、ビルダーが Amazon Redshift の異なるテーブルにバックアップされた 2 つのアプリケーションを作成している場合、管理者は Amazon Redshift のテーブルごとに 1 つずつ、2 つの IAM ポリシーとロールを作成する必要があります。

### ステップ 2a: 適切な Amazon Redshift アクセス許可を持つ IAM ポリシーを作成する
<a name="connectors-redshift-iam-policy"></a>

App Studio で作成して使用する IAM ポリシーには、アプリケーションがベストプラクティスに従うための適切なリソースに対する最小限のアクセス許可のみを含める必要があります。

**適切な Amazon Redshift アクセス許可を持つ IAM ポリシーを作成するには**

1. [IAM ポリシーを作成する権限を持つユーザーを使用して IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。で作成した管理ユーザーを使用することをお勧めします[AWS リソースを管理するための管理ユーザーを作成する](setting-up-first-time-admin.md#setting-up-create-admin-user)。

1. 左側のナビゲーションペインで、**ポリシー**を選択します。

1. [**Create policy**] (ポリシーの作成) を選択します。

1. [**ポリシーエディタ**] セクションで、[**JSON**] オプションを選択します。

1. JSON ポリシードキュメントに入力または貼り付けます。次のタブには、プロビジョニングされた Amazon Redshift とサーバーレス Amazon Redshift の両方のポリシーの例が含まれています。
**注記**  
以下のポリシーは、ワイルドカード () を使用するすべての Amazon Redshift リソースに適用されます`*`。ベストプラクティスとして、ワイルドカードを App Studio で使用するリソースの Amazon リソースネーム (ARN) に置き換える必要があります。

------
#### [ Provisioned ]

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
         "Sid": "ProvisionedRedshiftForAppStudio",
         "Effect": "Allow",
            "Action": [
               "redshift:DescribeClusters",
               "redshift:GetClusterCredentialsWithIAM",
               "redshift-data:ListDatabases",
               "redshift-data:ListTables",
               "redshift-data:DescribeTable",
               "redshift-data:DescribeStatement",
               "redshift-data:ExecuteStatement",
               "redshift-data:GetStatementResult"
            ],
            "Resource": "*"
         }
      ]
   }
   ```

------

------
#### [ Serverless ]

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
         "Sid": "ServerlessRedshiftForAppStudio",
         "Effect": "Allow",
            "Action": [
               "redshift-serverless:ListNamespaces",
               "redshift-serverless:GetCredentials",
               "redshift-serverless:ListWorkgroups",
               "redshift-data:ListDatabases",
               "redshift-data:ListTables",
               "redshift-data:DescribeTable",
               "redshift-data:DescribeStatement",
               "redshift-data:ExecuteStatement",
               "redshift-data:GetStatementResult"
            ],
            "Resource": "*"
         }
      ]
   }
   ```

------

------

1. [**次へ**] を選択します。

1. **確認と作成**ページで、 **RedshiftServerlessForAppStudio**や などの**ポリシー名****RedshiftProvisionedForAppStudio**、および**説明** (オプション) を指定します。

1. [**ポリシーの作成**]を選択し、ポリシーを作成します。

### ステップ 2b: App Studio に Amazon Redshift リソースへのアクセスを許可する IAM ロールを作成する
<a name="connectors-redshift-iam-role"></a>

次に、以前に作成したポリシーを使用する IAM ロールを作成します。App Studio はこのポリシーを使用して、設定された Amazon Redshift リソースにアクセスします。

**App Studio に Amazon Redshift リソースへのアクセスを許可する IAM ロールを作成するには**

1. [IAM ロールを作成する権限を持つユーザーを使用して IAM コンソール](https://console.aws.amazon.com/iam)にサインインします。で作成した管理ユーザーを使用することをお勧めします[AWS リソースを管理するための管理ユーザーを作成する](setting-up-first-time-admin.md#setting-up-create-admin-user)。

1. 左側のナビゲーションペインで、**ロールを選択します。**

1. [**ロールの作成**] を選択してください。

1. **信頼されたエンティティタイプ**で、**カスタム信頼ポリシー**を選択します。

1. デフォルトポリシーを次のポリシーに置き換えて、App Studio アプリケーションがアカウントでこのロールを引き受けることを許可します。

   ポリシーで次のプレースホルダーを置き換える必要があります。使用する値は、App Studio の**アカウント設定**ページにあります。
   + *111122223333* を、App Studio インスタンスのセットアップに使用したアカウントの AWS アカウント番号に置き換えます。これは、App Studio インスタンスのアカウント設定に**AWS アカウント ID** として表示されます。
   + *11111111-2222-3333-4444-5555555555 *を、App Studio **インスタンスのアカウント設定でインスタンス ID としてリストされている App Studio インスタンス ID** に置き換えます。

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

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           { 
               "Effect": "Allow",
               "Principal": { 
                   "AWS": "arn:aws:iam::111122223333:root"
               }, 
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                           "aws:PrincipalTag/IsAppStudioAccessRole": "true",
                           "sts:ExternalId": "11111111-2222-3333-4444-555555555555"
                   }
               }
           } 
       ]
   }
   ```

------

   [**次へ**] を選択します。

1. アクセス**許可の追加**で、前のステップで作成したポリシー (**RedshiftServerlessForAppStudio** または ) を検索して選択します**RedshiftProvisionedForAppStudio**。ポリシーの横にある **\$1** を選択すると、ポリシーが展開され、ポリシーによって付与されたアクセス許可が表示され、チェックボックスを選択するとポリシーが選択されます。

   [**次へ**] を選択します。

1. **名前、レビュー、および作成**ページで、**ロール名**と**説明**を指定します。
**重要**  
ここでのロール名は、 [ステップ 1: Amazon Redshift リソースを作成して設定する](#connectors-redshift-create-resources) (*AppBuilderDataAccessRole*) の `GRANT` コマンドで使用されるロール名と一致する必要があります。

1. **ステップ 3: タグを追加する**で、**新しいタグを追加**を選択して次のタグを追加して App Studio アクセスを提供します。
   + **キー: **`IsAppStudioDataAccessRole`
   + **値: **`true`

1. **ロールの作成**を選択し、生成された Amazon リソースネーム (ARN) を書き留めます。[App Studio で Amazon Redshift コネクタを作成する](#connectors-redshift-create-connector)ときに必要になります。

## ステップ 3: Amazon Redshift コネクタを作成する
<a name="connectors-redshift-create-connector"></a>

Amazon Redshift リソースと IAM ポリシーとロールを設定したら、その情報を使用して、ビルダーがアプリケーションを Amazon Redshift に接続するために使用できるコネクタを App Studio に作成します。

**注記**  
コネクタを作成するには、App Studio に管理者ロールが必要です。

**Amazon Redshift のコネクタを作成するには**

1. App Studio に移動します。

1. 左側のナビゲーションペインで、**「管理****」セクションの「コネクタ**」を選択します。既存のコネクタのリストとそれぞれの詳細を示すページが表示されます。

1. **\$1 コネクタの作成**を選択します。

1. **Amazon Redshift** コネクタを選択します。

1. 次のフィールドに入力してコネクタを設定します。
   + **名前:** コネクタの名前を指定します。
   + **説明:** コネクタの説明を入力します。
   + **IAM ロール:** で作成した IAM ロールから Amazon リソースネーム (ARN) を入力します[ステップ 2b: App Studio に Amazon Redshift リソースへのアクセスを許可する IAM ロールを作成する](#connectors-redshift-iam-role)。IAM の詳細については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) を参照してください。
   + **リージョン:** Amazon Redshift リソースがある AWS リージョンを選択します。
   + **コンピューティングタイプ:** Amazon Redshift Serverless を使用しているか、プロビジョニングされたクラスターを使用しているかを選択します。
   + **クラスターまたはワークグループの選択:** **プロビジョニング済み** を選択した場合は、App Studio に接続するクラスターを選択します。**Serverless** を選択した場合は、ワークグループを選択します。
   + **データベースの選択:** App Studio に接続するデータベースを選択します。
   + **使用可能なテーブル:** App Studio に接続するテーブルを選択します。

1. [**次へ**] を選択します。接続情報を確認し、**作成**を選択します。

1. 新しく作成されたコネクタが**コネクタ**リストに表示されます。