ステップ 1: AWS IAM ユーザーとロールを作成する
Kameleoon が Redshift クラスターへのアクセスに使用する IAM ユーザーとロールを作成する必要があります。AWS マネジメントコンソールまたは AWS CLI で作成できます。Kameleoon は 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 のフィールドを保管してください。ステップ 3 で Kameleoon に入力します。
2. IAM ロールを作成する
Kameleoon が引き受けられるロールを作成し、Kameleoon が Redshift クラスターとやり取りできるようにします。インラインの JSON 信頼ポリシーでロールを作成するには、次のコマンドを使用します:{account_id} を AWS アカウント ID に置き換えてください。
Redshift をソースとしてのみ使用する場合は、s3.amazonaws.com を省略できます。プロビジョニング済みクラスターを使用する場合は、redshift-serverless.amazonaws.com を省略できます。
Amazon Redshift をデスティネーションとして使用する場合 — IAM ロールに S3 Redshift アクセス権を付与する
Kameleoon が S3 にイベントをステージングし、Redshift に読み込めるように、次のコマンドでポリシーをロールに付与します。{s3_bucket_name}、{aws_region}、{account_id} をお使いの値に置き換えてください。
代わりに、既存のマネージドポリシー AmazonS3FullAccess と AmazonRedshiftFullAccess を使用することもできます。
ステップ 2: Kameleoon ロールに権限を付与する
Kameleoon に関連付けられた IAM ロールに、Redshift データベースとのやり取りに必要な権限を付与します。権限は SQL コマンドを使用して SQL ユーザーレベルで付与します。AWS は、IAM ロールに対して作成される既定の SQL ユーザーをIAMR:{role_name} と名付けます。ロールを kameleoon_role と名付けた場合は、SQL ユーザー IAMR:kameleoon_role に対してこれらのコマンドを実行します。
Amazon Redshift をソースとして使用する場合
1. 既存のスキーマへのアクセスを付与する
Kameleoon の IAM ロールに、Redshift データベース内の該当するスキーマとテーブルへのアクセスを付与します。たとえば、スキーマschema_containing_data の「users」テーブルからデータを取り込む場合は、次の SQL コマンドを実行します:
2. Kameleoon 設定スキーマを作成する
Kameleoon の設定用に新しいスキーマを作成し、必要な権限を付与します:3. Kameleoon 設定スキーマで DML 権限を付与する
Kameleoon のロールに、kameleoon_configuration スキーマでデータを挿入、更新、削除する権限を付与します:
4. 将来のテーブルに対するデフォルト権限を設定する
kameleoon_configuration スキーマに今後作成されるテーブルが、Kameleoon のロールに必要な権限を自動的に付与するようにします:
Amazon Redshift をデスティネーションとして使用する場合
1. Kameleoon イベントスキーマを作成する
Kameleoon のイベント用に新しいスキーマを作成し、必要な権限を付与します:2. Kameleoon イベントスキーマで DML 権限を付与する
Kameleoon のロールに、kameleoon_events スキーマでデータを挿入、更新、削除する権限を付与します:
3. 将来のテーブルに対するデフォルト権限を設定する
kameleoon_events スキーマに今後作成されるテーブルが、Kameleoon のロールに必要な権限を自動的に付与するようにします:
ステップ 3: Kameleoon UI で統合を有効化および構成する
Kameleoon アカウントで Admin > Integrations をクリックし、一覧から Amazon Redshift を探します。

- AWS Account ID: Amazon Web Services アカウントの一意の数値 ID
- AWS Role name: Kameleoon 用に作成した AWS IAM ロールの名前(例:
kameleoon_role) - AWS Access key ID and AWS Secret access key ID: IAM ユーザーのアクセスキーを作成する際に、AWS がこれら 2 つのフィールドを提供します。この記事のステップ 1で説明したとおり AWS コマンドラインインターフェイスでこのキーを作成した場合は、そのコマンドの JSON レスポンスに 2 つの値が含まれています
ステップ 4: Redshift のセキュリティグループを構成する
Kameleoon が Redshift クラスターに接続できるように、Kameleoon の IP アドレスからのクエリをセキュリティグループで許可します。これらの 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 サブネットのネットワーク ACL を細かく調整することです。そのためには、AWS コンソールで次のとおり VPC の設定を変更します:- VPC の設定にアクセスする: AWS マネジメントコンソールで VPC ダッシュボードに移動します。
- ネットワーク ACL を変更する:
- Network ACLs セクションに移動します。
- VPC に関連付けられている ACL を探します。
- ポート 5439 で Kameleoon の IP アドレスからのトラフィックを許可するように、インバウンドルールとアウトバウンドルールを変更します。
- ルーティングテーブルを更新する: VPC に関連付けられたルーティングテーブルが、Redshift クラスターへのトラフィックを正しくルーティングするように構成されていることを確認します。