В этой статье показано, как клиенты ClickPipes могут использовать доступ на основе ролей для аутентификации в Amazon Kinesis и безопасного доступа к своим потокам данных.
Предварительные требования
Чтобы воспользоваться этим руководством, вам потребуется:
- Активный сервис ClickHouse Cloud
- Учетная запись AWS
Введение
Прежде чем переходить к настройке безопасного доступа к Kinesis, важно понять сам механизм. Ниже кратко описано, как ClickPipes могут получать доступ к потокам Amazon Kinesis, принимая на себя роль в AWS-аккаунтах клиентов.

При таком подходе клиенты могут управлять всем доступом к своим потокам данных Kinesis из одного места (через IAM-политику принимаемой на себя роли), не изменяя политику доступа для каждого потока по отдельности.
Настройка
Получение ARN роли IAM для сервиса ClickHouse
-
- Войдите в свою учетную запись ClickHouse Cloud.
-
- Выберите сервис ClickHouse, для которого хотите создать интеграцию
-
- Откройте вкладку Settings
-
- Прокрутите страницу вниз до раздела Network security information в нижней части страницы
-
- Скопируйте значение Service role ID (IAM) для сервиса, как показано ниже.

Настройка AssumeRole в IAM
Создайте роль IAM вручную.
-
- Войдите в свою учетную запись AWS в веб-браузере под пользователем IAM, у которого есть разрешение на создание ролей IAM и управление ими.
-
- Перейдите в консоль сервиса IAM.
-
- Создайте новую роль IAM с типом доверенного субъекта
AWS account. Обратите внимание: чтобы это работало, имя роли IAM должно начинаться сClickHouseAccessRole-.
i. Настройте политику доверия
Политика доверия позволяет роли IAM ClickHouse принять на себя эту роль. Замените
{ClickHouse_IAM_ARN}на ARN роли IAM из вашего сервиса ClickHouse (полученный на предыдущем шаге).{ "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{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": "*" } ] } - Создайте новую роль IAM с типом доверенного субъекта
-
- После создания скопируйте новый ARN роли IAM. Он потребуется для доступа к вашему потоку Kinesis.