Перейти к основному содержанию
В этом руководстве показано, как клиенты ClickHouse Cloud могут использовать ролевой доступ для аутентификации в Amazon Simple Storage Service (S3) и безопасного доступа к своим данным. Прежде чем переходить к настройке безопасного доступа к S3, важно понять, как это работает. Ниже приведен обзор того, как сервисы ClickHouse могут получать доступ к приватным S3 бакетам, принимая на себя роль в аккаунте AWS клиента.
Этот подход позволяет клиентам управлять всем доступом к своим S3 бакетам в одном месте (в политике IAM для принимаемой роли), не просматривая все политики бакетов, чтобы добавить или удалить доступ. В разделе ниже вы узнаете, как это настроить.

Получение ARN роли IAM вашего сервиса ClickHouse

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

Настройка IAM Assume Role

IAM Assume Role можно настроить одним из двух способов:

Развертывание с помощью стека CloudFormation

  1. Войдите в свою учетную запись AWS в браузере под пользователем IAM, у которого есть права на создание роли IAM и управление ею.
  2. Перейдите по следующему URL CloudFormation, чтобы заполнить параметры стека CloudFormation.
  3. Введите (или вставьте) Service role ID (IAM) для вашего сервиса, который вы получили ранее, в поле “ClickHouse Instance Roles” ID сервисной роли можно вставить в точности так, как он отображается в консоли Cloud.
  4. Введите имя вашего бакета в поле “Bucket Names”. Если URL вашего бакета — https://ch-docs-s3-bucket.s3.eu-central-1.amazonaws.com/clickhouseS3/, то имя бакета — ch-docs-s3-bucket.
Указывайте не полный ARN бакета, а только имя бакета.
  1. Настройте стек CloudFormation. Ниже приведена дополнительная информация об этих параметрах.
  1. Установите флажок I acknowledge that AWS CloudFormation might create IAM resources with custom names.
  2. Нажмите кнопку Create stack в правом нижнем углу
  3. Убедитесь, что создание стека CloudFormation завершилось без ошибок.
  4. Выберите только что созданный Stack, затем откройте вкладку Outputs этого стека CloudFormation
  5. Скопируйте значение RoleArn для этой интеграции — оно потребуется для доступа к вашему S3 бакету.

Создайте роль IAM вручную

  1. Войдите в свой аккаунт AWS в браузере под пользователем IAM, у которого есть права на создание и управление ролью IAM.
  2. Перейдите в консоль сервиса IAM
  3. Создайте новую роль IAM со следующими политиками IAM и доверия. Замените {ClickHouse_IAM_ARN} на ARN роли IAM, относящейся к вашему экземпляру ClickHouse.
Политика IAM
  1. После создания скопируйте новый ARN роли IAM — он понадобится для доступа к вашему S3 бакету.

Получите доступ к S3 бакету с ролью ClickHouseAccess

ClickHouse Cloud позволяет указывать extra_credentials в табличной функции S3. Ниже приведён пример выполнения запроса с использованием только что созданной роли, скопированной выше.
Ниже приведён пример запроса, в котором role_session_name используется в качестве общего секрета для запроса данных из бакета. Если role_session_name указан неверно, эта операция завершится ошибкой.
Мы рекомендуем размещать исходный S3 в том же регионе, что и ваш сервис ClickHouse Cloud, чтобы сократить расходы на передачу данных. Подробнее см. в разделе Тарифы S3

Расширенный контроль действий

Для более строгого управления доступом можно ограничить политику бакета так, чтобы она принимала только запросы, поступающие через конечные точки VPC ClickHouse Cloud, с помощью условия aws:SourceVpce. Чтобы получить конечные точки VPC для вашего региона ClickHouse Cloud, откройте терминал и выполните:
Затем добавьте в политику IAM запрещающее правило с полученными конечными точками:
Подробнее о доступе к конечным точкам сервисов ClickHouse Cloud см. в разделе Cloud IP Addresses.
Последнее изменение 12 июня 2026 г.