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

Безопасный доступ к данным S3

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

Введение

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

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

Настройка

Получение IAM роли Arn для сервиса 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. Ниже представлена дополнительная информация о этих параметрах.

ПараметрЗначение по умолчаниюОписание
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 бакету.

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

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

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

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

Политика доверия (Пожалуйста, замените {ClickHouse_IAM_ARN} на ARN роли IAM, принадлежащей вашему экземпляру ClickHouse):

IAM политика (Пожалуйста, замените {BUCKET_NAME} на имя вашего бакета):

4 - Скопируйте новый IAM Role Arn после создания. Это то, что нужно для доступа к вашему S3 бакету.

Доступ к вашему S3 бакету с角色 ClickHouseAccess

ClickHouse Cloud имеет новую функцию, которая позволяет вам указать extra_credentials в качестве части функции таблицы S3. Ниже приведен пример того, как выполнить запрос, используя новую созданную роль, скопированную выше.

Ниже приведен пример запроса, который использует role_session_name в качестве общего секрета для запроса данных из бакета. Если role_session_name неверен, эта операция завершится неудачей.

примечание

Рекомендуем, чтобы ваш исходный S3 находился в том же регионе, что и ваш сервис ClickHouse Cloud, чтобы уменьшить затраты на передачу данных. Для получения дополнительной информации обратитесь к ценам на S3