Перейти к основному содержимому
Перейти к основному содержимому

Доступ на основе ролей в Kinesis

В этой статье показано, как клиенты ClickPipes могут использовать доступ на основе ролей, чтобы аутентифицироваться в Amazon Kinesis и безопасно получать доступ к своим потокам данных.

Предварительные требования

Чтобы воспользоваться этим руководством, вам потребуется:

  • Активный сервис ClickHouse Cloud
  • Учетная запись AWS

Введение

Прежде чем переходить к настройке безопасного доступа к Kinesis, важно понять механизм работы. Ниже приведён обзор того, как ClickPipes могут получать доступ к потокам Amazon Kinesis, принимая роль (assumed role) в AWS-аккаунтах клиентов.

Secure Kinesis

Используя этот подход, клиенты могут управлять всем доступом к своим потокам данных Kinesis в одном месте — в IAM-политике для принимаемой роли, — без необходимости изменять политику доступа каждого потока по отдельности.

Настройка

Получение ARN роли службы IAM для ClickHouse

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

Настройка роли IAM для использования AssumeRole

Ручное создание роли IAM.

    1. Войдите в свою учетную запись AWS в веб-браузере под пользователем IAM, у которого есть права на создание и управление ролями IAM.
    1. Перейдите в консоль сервиса IAM.
    1. Создайте новую роль IAM с типом доверенной сущности AWS account. Обратите внимание, что имя роли IAM должно начинаться с ClickHouseAccessRole-, иначе это не будет работать.

    i. Настройте политику доверия (Trust Policy)

    Политика доверия позволяет роли IAM ClickHouse принимать (assume) эту роль. Замените {ClickHouse_IAM_ARN} на ARN роли IAM из вашего сервиса ClickHouse (полученный на предыдущем шаге).

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "{ClickHouse_IAM_ARN}"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    

    ii. Настройте политику прав (Permission Policy)

    Политика прав предоставляет доступ к вашему потоку 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": "*"
        }
      ]
    }
    
    1. После создания скопируйте новый IAM Role ARN. Он необходим для доступа к вашему потоку Kinesis.