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

Доступ к данным S3 безопасно

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

Введение

Прежде чем углубляться в настройку безопасного доступа к S3, важно понять, как это работает. Ниже приведен обзор того, как службы ClickHouse могут получать доступ к частным S3-бакетам, принимая на себя роль в учетной записи AWS клиентов.

Обзор безопасного доступа к S3 с ClickHouse

Этот подход позволяет клиентам управлять всем доступом к своим S3-бакетам в одном месте (IAM-политика принимаемой роли), не проходя через все свои политики бакетов для добавления или удаления доступа.

Настройка

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

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

2 - Выберите службу ClickHouse, интеграцию с которой вы хотите создать.

3 - Выберите вкладку Настройки.

4 - Прокрутите вниз до раздела Информация о сетевой безопасности в нижней части страницы.

5 - Скопируйте значение ID роли сервиса (IAM), принадлежащее сервису, как показано ниже.

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

Настройка IAM assume role

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

1 - Войдите в свою учетную запись AWS в веб-браузере с IAM-пользователем, который имеет разрешение на создание и управление IAM-ролями.

2 - Перейдите по этой ссылке для заполнения стека CloudFormation.

3 - Введите (или вставьте) IAM роль, принадлежащую сервису ClickHouse.

4 - Настройте стек CloudFormation. Ниже приведена дополнительная информация об этих параметрах.

ПараметрЗначение по умолчаниюОписание
RoleNameClickHouseAccess-001Имя новой роли, которую ClickHouse Cloud будет использовать для доступа к вашему S3-бакету
Role Session Name*Имя сессии роли может использоваться как общий секрет для дальнейшей защиты вашего бакета.
ClickHouse Instance RolesСписок IAM-ролей сервиса ClickHouse, разделенный запятыми, которые могут использовать эту интеграцию Secure S3.
Bucket AccessReadУстанавливает уровень доступа для предоставленных бакетов.
Bucket NamesСписок имен бакетов, разделенный запятыми, к которым эта роль будет иметь доступ.

Примечание: Не вводите полный ARN бакета, а просто его имя.

5 - Установите флажок Я понимаю, что AWS CloudFormation может создать ресурсы IAM с пользовательскими именами.

6 - Нажмите кнопку Создать стек в правом нижнем углу.

7 - Убедитесь, что стек CloudFormation завершился без ошибок.

8 - Выберите Выводы стека CloudFormation.

9 - Скопируйте значение RoleArn для этой интеграции. Это то, что нужно для доступа к вашему S3-бакету.

Вывод стека CloudFormation, показывающий ARN роли IAM

Вариант 2: Ручное создание IAM-ролей.

1 - Войдите в свою учетную запись AWS в веб-браузере с IAM-пользователем, который имеет разрешение на создание и управление IAM-ролями.

2 - Перейдите в консоль службы IAM.

3 - Создайте новую IAM-ролю с учетом следующей IAM и Trust политики.

Политика доверия (Пожалуйста, замените {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