Перейти к основному содержанию
ClickHouse Cloud поддерживает безопасный ролевой доступ к данным Iceberg, хранящимся в Объектном хранилище (обычно S3), с использованием доверительной связи AWS IAM на основе ARN. В этом руководстве используется тот же подход к безопасной настройке, что и в Безопасный доступ к данным S3, а также добавляется специфичная для Iceberg конфигурация в ClickHouse.

Обзор

  • Получите идентификатор сервисной роли ClickHouse Cloud (IAM).
  • Создайте в своей учётной записи AWS роль IAM, которую ClickHouse сможет взять на себя.
  • Прикрепите к роли политики доступа к объектам и каталогу для Iceberg.
  • Используйте табличные функции Iceberg или движок таблицы IcebergS3 с ролевыми учётными данными.

Получите идентификатор сервисной роли ClickHouse (ARN)

1

1. Войдите в свою учетную запись ClickHouse Cloud.

2

2. Выберите сервис ClickHouse, в котором хотите выполнять запросы к данным Iceberg.

3

3. Перейдите на вкладку Settings.

4

4. Прокрутите страницу до раздела Network security information.

5

5. Скопируйте значение Service role ID (IAM).

Этот ARN требуется для политики доверия роли IAM в AWS, которая будет использоваться для доступа к вашим данным Iceberg.

Настройка роли IAM с AssumeRole

1

1. Войдите в AWS и перейдите в сервис IAM.

2

2. Выберите Roles, затем Create role.

В поле Trusted entity type выберите Custom trust policy и введите значения из шага 3.
3

3. Добавьте policy доверия и политику IAM.

Замените {service-role-id} на Service Role ID (IAM) из вашего экземпляра ClickHouse.
Для рабочих нагрузок чтения и записи политика IAM должна включать s3:PutObject, s3:DeleteObject и действия Iceberg, изменяющие метаданные. Приведённый выше пример — минимальный вариант только для чтения.Если вам нужна более строгая изоляция, потребуйте, чтобы запросы исходили из VPC-конечных точек ClickHouse Cloud. Подробнее об этом см. в разделе Secure S3 advanced action control.
4

4. Завершите создание роли.

a. Нажмите Next, затем ещё раз Next на экране назначения разрешений.b. Укажите имя (например, iceberg-role-for-clickhouse) и описание.c. Добавьте теги (необязательно).d. Проверьте политики.e. Выберите Create role.
5

5. После создания скопируйте новый IAM Role Arn.

Настроить доступ к Iceberg в ClickHouse Cloud

Вариант A: табличная функция Iceberg с ARN роли

Используйте табличную функцию icebergS3 с параметром NOSIGN и ролевыми учётными данными. ClickHouse Cloud вызовет STS, чтобы взять на себя эту роль.

Вариант B: Постоянный движок таблицы Iceberg

Вариант C: каталог Glue + IcebergS3

Примечание: при использовании каталога Glue убедитесь, что у вашей роли IAM есть разрешения S3 и Glue на чтение и просмотр списков.

Вариант D: каталог DataLake для Glue

Поддержка каталога DataLake для Glue появится в версии 26.2.

Проверьте доступ

  1. Выполните простой запрос:
  1. Проверьте, нет ли ошибок IAM, таких как AccessDenied или InvalidAccessKeyId.

Устранение неполадок

  • Проверьте ARN роли в настройках сервиса ClickHouse Cloud.
  • Убедитесь, что ваш бакет/объекты находятся в том же регионе, что и запросы к Iceberg, чтобы снизить задержку и стоимость.
  • Убедитесь, что путь к таблице Iceberg указывает на корректное расположение метаданных Iceberg (файлы metadata/v1/... в корневом каталоге таблицы).
  • Для режима каталога проверьте метаданные Glue и видимость партиций в консоли AWS Glue.
Последнее изменение 2 июля 2026 г.