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

Этот подход позволяет клиентам управлять всем доступом к своим корзинам S3 в одном месте (политика IAM предполагаемой роли), не проходя через все политики своих корзин для добавления или удаления доступа.
Настройка
Получение ARN IAM роли сервиса ClickHouse
1 - Войдите в свой аккаунт ClickHouse cloud.
2 - Выберите сервис ClickHouse, для которого хотите создать интеграцию.
3 - Выберите вкладку Настройки.
4 - Прокрутите вниз до раздела Информация о сетевой безопасности в нижней части страницы.
5 - Скопируйте значение ID роли сервиса (IAM), принадлежащее сервису, как показано ниже.

Настройка IAM предполагаемой роли
Опция 1: Развертывание с помощью стека CloudFormation
1 - Войдите в свой аккаунт AWS в веб-браузере с пользователем IAM, у которого есть разрешение на создание и управление IAM ролями.
2 - Перейдите по этой ссылке, чтобы заполнить стек CloudFormation.
3 - Введите (или вставьте) IAM роль, принадлежащую сервису ClickHouse.
4 - Настройте стек CloudFormation. Ниже приведена дополнительная информация об этих параметрах.
Параметр | Значение по умолчанию | Описание |
---|---|---|
RoleName | ClickHouseAccess-001 | Имя новой роли, которую ClickHouse Cloud будет использовать для доступа к вашей корзине S3 |
Role Session Name | * | Имя сессии роли может использоваться как общий секрет для дополнительной защиты вашей корзины. |
ClickHouse Instance Roles | Список IAM ролей сервиса ClickHouse, которые могут использовать эту интеграцию Secure S3. | |
Bucket Access | Read | Устанавливает уровень доступа для предоставленных корзин. |
Bucket Names | Список имен корзин, к которым эта роль будет иметь доступ, разделённый запятыми. |
Примечание: Не указывайте полный ARN корзины, а вместо этого просто укажите только имя корзины.
5 - Выберите флажок Я подтверждаю, что AWS CloudFormation может создать IAM ресурсы с нестандартными именами.
6 - Нажмите кнопку Создать стек в правом нижнем углу.
7 - Убедитесь, что стек CloudFormation завершен без ошибок.
8 - Выберите Выходные данные стека CloudFormation.
9 - Скопируйте значение RoleArn для этой интеграции. Это то, что необходимо для доступа к вашей корзине S3.

Опция 2: Вручную создать IAM роль
1 - Войдите в свой аккаунт AWS в веб-браузере с пользователем IAM, у которого есть разрешение на создание и управление IAM ролями.
2 - Перейдите в консоль службы IAM.
3 - Создайте новую IAM роль со следующей политикой IAM и политикой доверия.
Политика доверия (Пожалуйста, замените {ClickHouse_IAM_ARN}
на ARN роли IAM, принадлежащий вашему экземпляру ClickHouse):
Политика IAM (Пожалуйста, замените {BUCKET_NAME}
на имя вашей корзины):
4 - Скопируйте новый ARN IAM роли после создания. Это то, что необходимо для доступа к вашей корзине S3.
Доступ к вашей корзине S3 с ролью ClickHouseAccess
ClickHouse Cloud имеет новую функцию, которая позволяет вам указывать extra_credentials
как часть табличной функции S3. Ниже приведен пример запроса с использованием только что созданной роли, скопированной выше.
Ниже приведен пример запроса, который использует role_session_name
как общий секрет для запроса данных из корзины. Если role_session_name
неверен, эта операция завершится неудачей.
Мы рекомендуем, чтобы ваша исходная корзина S3 находилась в том же регионе, что и ваш сервис ClickHouse Cloud, чтобы сократить расходы на передачу данных. Для получения дополнительной информации обратитесь к ценам на S3