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

Безопасный доступ к данным 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 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, разделенный запятыми, которые могут использовать эту интеграцию с безопасным 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} на IAM Role arn, принадлежащий вашему экземпляру 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