Skip to main content
Kameleoon は、お使いの AWS アカウントがアクセスを許可するまで、Amazon Redshift クラスターの読み取りや書き込みを行えません。このアクセスは 2 つの部分で構成されます。Kameleoon が引き受ける IAM ロールと、そのロールが Redshift データベースに対して持つ SQL 権限です。AWS の手順は AWS アカウントの管理者が実行し、認証情報はステップ 3 で Kameleoon の UI に入力します。これらの操作の一部は、お使いの AWS 環境に合わせて調整が必要になる場合があります。

ステップ 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 を探します。
Integrations ページの Amazon Redshift カード。右下に Install the tool ボタンがあります。
Install the tool をクリックし、左側の一覧から設定するプロジェクトを選択して、Redshift クラスターへの認証情報を次のフィールドに入力します。
AWS Account ID、AWS Role name、AWS Access key ID、AWS Secret access key ID のフィールドを含む 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 つの値が含まれています
Confirm をクリックして、プロジェクトの認証情報をアップロードします。Advanced setup の下で Authorize IP addresses を展開すると、Kameleoon がお使いの warehouse に接続する際に使用する IP アドレスが表示されます。多くの組織では、warehouse に接続できる IP アドレスをフィルタリングしています。お使いの組織がフィルタリングしている場合は、ステップ 4 とステップ 5 に従って、AWS アカウントでこれらの IP アドレスを許可してください。

ステップ 4: Redshift のセキュリティグループを構成する

Kameleoon が Redshift クラスターに接続できるように、Kameleoon の IP アドレスからのクエリをセキュリティグループで許可します。これらの IP アドレスは AWS コンソールで許可できます:
  1. セキュリティグループを特定する: Redshift のダッシュボードで、Redshift クラスターに関連付けられているセキュリティグループを確認できます。そこからそのセキュリティグループの設定ページにアクセスできます。Redshift Serverless を使用している場合は、ワークグループのセキュリティグループを探します。
  2. インバウンドルールを追加する
    • 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 の設定を変更します:
  1. VPC の設定にアクセスする: AWS マネジメントコンソールで VPC ダッシュボードに移動します。
  2. ネットワーク ACL を変更する:
    • Network ACLs セクションに移動します。
    • VPC に関連付けられている ACL を探します。
    • ポート 5439 で Kameleoon の IP アドレスからのトラフィックを許可するように、インバウンドルールとアウトバウンドルールを変更します。
  3. ルーティングテーブルを更新する: VPC に関連付けられたルーティングテーブルが、Redshift クラスターへのトラフィックを正しくルーティングするように構成されていることを確認します。

データ領域

Kameleoon は、この統合のデータを、お使いのアカウントの Kameleoon データ領域(米国または EU)に保存します。