Обзор
- Получите идентификатор сервисной роли 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.
Проверьте доступ
- Выполните простой запрос:
- Проверьте, нет ли ошибок IAM, таких как
AccessDeniedилиInvalidAccessKeyId.
Устранение неполадок
- Проверьте ARN роли в настройках сервиса ClickHouse Cloud.
- Убедитесь, что ваш бакет/объекты находятся в том же регионе, что и запросы к Iceberg, чтобы снизить задержку и стоимость.
- Убедитесь, что путь к таблице Iceberg указывает на корректное расположение метаданных Iceberg (файлы
metadata/v1/...в корневом каталоге таблицы). - Для режима каталога проверьте метаданные Glue и видимость партиций в консоли AWS Glue.