ステップ 1: AWS IAM ユーザーとロールを作成する
Kameleoon が Redshift クラスタへのアクセスに使用する IAM ユーザーとロールを作成する必要があります。これらは AWS マネジメントコンソールまたは AWS CLI で作成できます。ここでは AWS CLI のコマンド例を示します。1. IAM ユーザーを作成する
以下のコマンドを使用して、Kameleoon 専用の IAM ユーザーを作成します:aws iam create-user --user-name kameleoon_user
次に、kameleoon_user のアクセスキーを生成します:
aws iam create-access-key --user-name kameleoon_user
このコマンドが返す JSON 内の AccessKeyId および SecretAccessKey フィールドは必ず控えておいてください。Kameleoon UI でセットアップを行う際に、これらを Kameleoon に提供するよう求められます。
2. IAM ロールを作成する
Kameleoon が引き受けることができるロールを作成し、Redshift クラスタとの対話を許可します。インライン JSON 信頼ポリシーでロールを作成するには、以下のコマンドを使用します:{account_id} を AWS アカウント ID に置き換えてください。
Redshift をソースとして使用する場合、s3.amazonaws.com は省略できます。Provisioned を使用する場合、redshift-serverless.amazonaws.com は省略できます。
Amazon Redshift をデスティネーションとして使用する場合 — IAM ロールに S3 Redshift アクセス権を付与する
S3 ロールを作成して接続し、Kameleoon が選択した S3 バケットと対話し、S3 から Redshift にデータをコピーできるようにします。{s3_bucket_name}、{aws_region}、{account_id} をご自身のデータに置き換えてください。
または、既存の AmazonS3FullAccess および AmazonRedshiftFullAccess ポリシーを使用してください。
ステップ 2: Kameleoon ロールに権限を付与する
Kameleoon に関連付けられた IAM ロールに必要な権限を付与し、Redshift データベースとの対話を可能にします。権限は SQL ユーザーレベルで SQL コマンドを介して付与する必要があります。IAM ロール用に作成されたデフォルトの SQL ユーザーはIAMR:{role_name} と呼ばれるため、使用するロールが kameleoon_role と呼ばれる場合、SQL ユーザー IAMR:kameleoon_role に対してこれらのコマンドを実行することになります。
Amazon Redshift をソースとして使用する場合
1. 既存のスキーマへのアクセスを付与する
Kameleoon IAM ロールに、Redshift データベース内の関連するスキーマとテーブルへのアクセスを提供します。たとえば、Kameleoon にschema_containing_data スキーマの「users」テーブルからデータを取り込ませたい場合、以下の SQL コマンドを実行します:
2. Kameleoon 設定スキーマを作成する
Kameleoon 設定用の新しいスキーマを作成し、必要な権限を付与します:3. Kameleoon 設定スキーマで DML 権限を付与する
kameleoon_configuration スキーマでデータを挿入、更新、削除する権限を Kameleoon ロールに付与します:
4. 将来のテーブルに対するデフォルト権限を設定する
kameleoon_configuration スキーマに作成される将来のテーブルが、自動的に Kameleoon ロールに必要な権限を付与するようにします:
Amazon Redshift をデスティネーションとして使用する場合
1. Kameleoon イベントスキーマを作成する
Kameleoon イベント用の新しいスキーマを作成し、必要な権限を付与します:2. Kameleoon イベントスキーマで DML 権限を付与する
kameleoon_events スキーマでデータを挿入、更新、削除する権限を Kameleoon ロールに付与します:
3. 将来のテーブルに対するデフォルト権限を設定する
kameleoon_events スキーマに作成される将来のテーブルが、自動的に Kameleoon ロールに必要な権限を付与するようにします:
ステップ 3: Kameleoon UI で統合を有効化および構成する
Kameleoon アカウントの Integrations ページに移動し、リストで Amazon Redshift を見つけます。

- AWS Account ID: Amazon Web Services アカウントの一意の数値識別子
- AWS Role name: 前のセクションの手順に従って Kameleoon 用に作成した AWS IAM ロールの名前
- AWS Access key ID および Secret access key ID: これら 2 つのフィールドは、AWS ロールの認証情報を作成する際に提供されます。この記事のステップ 1 で説明されているように、AWS コマンドラインインターフェイスを使用してこのキーを作成した場合、これら 2 つの値はそのコマンドへの JSON レスポンスで提供されています。
ステップ 4: Redshift のセキュリティグループを構成する
Kameleoon が Redshift クラスタに接続できるようにするには、セキュリティグループで Kameleoon の IP アドレスからのクエリを承認します。これは AWS コンソールで行えます:- セキュリティグループを特定する: Redshift クラスタに関連付けられたセキュリティグループは Redshift ダッシュボードで確認でき、そこからこのセキュリティグループの構成ページにアクセスできます。Redshift Serverless を使用している場合は、ワークグループのセキュリティグループを探します。
- インバウンドルールを追加する
- Inbound Rules タブに移動します。
- Edit inbound rules > Add rule をクリックします。
- 以下のパラメータを設定します:
- Type: Custom TCP rule
- Port range: 5439 (デフォルトの Redshift ポート)
- Source: Custom (Kameleoon UI の Redshift 統合セクションに表示される Kameleoon の IP アドレスを追加します)
ステップ 5: ワークグループ VPC を外部接続に開放する
Redshift クラスタに関連付けられた VPC が外部接続を許可するように構成されていることを確認してください。簡単のために、VPC をパブリックにアクセス可能にして、セキュリティグループ設定にのみ依存することもできます。より安全なアプローチは、VPC サブネットのネットワークアクセス制御リストを細かく調整することです。これを行うには、AWS コンソールで以下のように VPC 設定を変更します:- VPC 設定にアクセスする: AWS マネジメントコンソールの VPC ダッシュボードに移動します。
- ネットワーク ACL を変更する:
- Network ACLs セクションに移動します。
- VPC に関連付けられている ACL を特定します。
- インバウンドおよびアウトバウンドルールを変更して、ポート 5439 で Kameleoon の IP アドレスからのトラフィックを許可します。
- ルートテーブルを更新する: VPC に関連付けられたルートテーブルが、Redshift クラスタへのトラフィックを正しくルーティングするように構成されていることを確認します。