この記事では、ClickPipes のお客様がロールベースアクセスを利用して Amazon Kinesis で認証を行い、データストリームに安全にアクセスする方法を説明します。
前提条件
このガイドを進めるには、以下が必要です。
- 有効な ClickHouse Cloud サービス
- AWS アカウント
はじめに
セキュアな Kinesis アクセスの設定に入る前に、まずその仕組みを理解しておくことが重要です。以下では、ClickPipes が顧客の AWS アカウント内のロールを引き受けることで、Amazon Kinesis ストリームにアクセスする方法の概要を説明します。

この方法を使用すると、顧客は各ストリームのアクセスポリシーを個別に変更しなくても、Kinesis データストリームへのすべてのアクセスを 1 か所 (引き受けるロールの IAM ポリシー) で管理できます。
セットアップ
ClickHouseサービスの IAM ロール ARN を取得する
-
- ClickHouse Cloud アカウントにログインします。
-
- インテグレーションを作成する ClickHouseサービスを選択します
-
- Settings タブを選択します
-
- ページ下部にある Network security information セクションまでスクロールします
-
- 以下のように、そのサービスに対応する サービスロール ID (IAM) の値をコピーします。

IAM AssumeRole の設定
IAM ロールを手動で作成する
-
- IAM ロールを作成および管理する権限を持つ IAM ユーザーで、Web ブラウザーから AWS アカウントにログインします。
-
- IAM Service Console に移動します。
-
- Trusted Entity Type を
AWS accountに設定し、新しい IAM ロールを作成します。これを機能させるには、IAM ロール名が 必ずClickHouseAccessRole-で始まっている必要があります。
i. 信頼ポリシーを設定する
信頼ポリシーにより、ClickHouse の IAM ロールがこのロールを引き受けられるようになります。
{ClickHouse_IAM_ARN}は、ClickHouse サービス の IAM Role ARN (前の手順で取得) に置き換えてください。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "{ClickHouse_IAM_ARN}" }, "Action": "sts:AssumeRole" } ] }ii. 権限ポリシーを設定する
権限ポリシーは、Kinesis ストリームへのアクセスを付与します。次のプレースホルダーを置き換えてください。
{REGION}: AWS リージョン (例:us-east-1){ACCOUNT_ID}: AWS アカウント ID{STREAM_NAME}: Kinesis ストリーム名
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:RegisterStreamConsumer", "kinesis:DeregisterStreamConsumer", "kinesis:ListStreamConsumers" ], "Resource": [ "arn:aws:kinesis:{REGION}:{ACCOUNT_ID}:stream/{STREAM_NAME}" ] }, { "Effect": "Allow", "Action": [ "kinesis:SubscribeToShard", "kinesis:DescribeStreamConsumer" ], "Resource": [ "arn:aws:kinesis:{REGION}:{ACCOUNT_ID}:stream/{STREAM_NAME}/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:ListStreams" ], "Resource": "*" } ] } - Trusted Entity Type を
-
- 作成後、新しい IAM ロール ARN をコピーします。これは Kinesis ストリームにアクセスするために必要です。