メインコンテンツへスキップ
メインコンテンツへスキップ

Kinesis のロールベースアクセス

この記事では、ClickPipes のお客様がロールベースのアクセスを利用して Amazon Kinesis に対して認証を行い、データストリームに安全にアクセスする方法を説明します。

前提条件

このガイドを進めるには、次のものが必要です。

  • 有効な ClickHouse Cloud サービス
  • AWS アカウント

はじめに

Kinesis への安全なアクセスをセットアップする前に、その仕組みを理解しておくことが重要です。ここでは、ClickPipes がお客様の AWS アカウント内でロールを引き受けることで Amazon Kinesis ストリームにアクセスする仕組みの概要を説明します。

Secure Kinesis

このアプローチを用いることで、お客様は各ストリームのアクセスポリシーを個別に変更することなく、引き受けたロールに設定された IAM ポリシー 1 か所で Kinesis データストリームへのすべてのアクセスを管理できます。

セットアップ

ClickHouse サービスの IAM ロール ARN を取得する

    1. ClickHouse Cloud アカウントにログインします。
    1. インテグレーションを作成する対象の ClickHouse サービスを選択します。
    1. Settings タブを開きます。
    1. ページ下部の Network security information セクションまでスクロールします。
    1. 下図のように、そのサービスに対応する Service role ID (IAM) の値をコピーします。
Secure S3 ARN

IAM Assume Role の設定

IAM ロールを手動で作成する

    1. IAM ロールの作成および管理権限を持つ IAM ユーザーで、Web ブラウザから自分の AWS アカウントにログインします。
    1. IAM サービスコンソールを開きます。
    1. 信頼されたエンティティタイプとして AWS account を選択し、新しい IAM ロールを作成します。この手順が機能するためには、IAM ロール名は 必ず ClickHouseAccessRole- で始まる必要があります。

    i. 信頼ポリシーを設定する

    信頼ポリシーにより、ClickHouse の IAM ロールがこのロールを引き受けられるようにします。{ClickHouse_IAM_ARN} を、ClickHouse サービスから取得した IAM ロール 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": "*"
        }
      ]
    }
    
    1. 作成後に新しい IAM ロール ARN をコピーします。これは Kinesis ストリームにアクセスするために必要となります。