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

Kinesis ロールベースアクセス

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

前提条件

このガイドに従うには、次のものが必要です:

  • アクティブな ClickHouse Cloud サービス
  • AWS アカウント

はじめに

Kinesis へのセキュアなアクセス設定の説明に入る前に、その仕組みを理解しておくことが重要です。ここでは、ClickPipes がどのようにしてお客様の AWS アカウント内でロールを引き受けることにより、Amazon Kinesis ストリームへアクセスできるかの概要を説明します。

Secure Kinesis

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

セットアップ

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

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

IAM AssumeRole の設定

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

    1. IAM ロールの作成および管理権限を持つ IAM ユーザーで、Web ブラウザから AWS アカウントにログインします。
    1. IAM サービスコンソールを開きます。
    1. Trusted Entity Type が 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 Role ARN をコピーします。これは Kinesis ストリームへアクセスするために必要となる ARN です。