> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Пользовательская настройка AWS

> Разверните ClickHouse BYOC в существующей VPC AWS

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<div id="customer-managed-vpc-aws">
  ## Управляемая клиентом VPC (BYO-VPC) для AWS
</div>

Если вы хотите использовать существующую VPC для развертывания ClickHouse BYOC, а не поручать ClickHouse Cloud создание новой VPC, выполните приведенные ниже шаги. Такой подход дает больше контроля над конфигурацией сети и позволяет интегрировать ClickHouse BYOC в вашу существующую сетевую инфраструктуру.

<Steps>
  <Step title="Настройте существующую VPC" id="configure-existing-vpc">
    1. Пометьте VPC тегом `clickhouse-byoc="true"`.
    2. Выделите ровно 3 приватные подсети в 3 разных зонах доступности, которые будет использовать ClickHouse Cloud.
    3. Убедитесь, что каждая подсеть имеет минимальный CIDR-диапазон `/25` (например, 10.0.0.0/25). `/25` поддерживает примерно 10 серверных узлов ClickHouse на зону доступности; для большинства развертываний рекомендуется `/24`, а для развертываний, которые вы предполагаете масштабировать, — более крупные подсети. IP-адреса подов выделяются из самой подсети, поэтому каждая реплика потребляет адреса подсети.
    4. Добавьте в каждую подсеть теги `kubernetes.io/role/internal-elb=1` и `clickhouse-byoc="true"`, чтобы обеспечить корректную настройку балансировщика нагрузки.

    <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/reference/byoc-subnet-1.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=f0ea0b8a51ca82b99ad0dc5357b7b49b" size="lg" alt="Подсеть BYOC VPC" width="1600" height="827" data-path="images/cloud/reference/byoc-subnet-1.webp" />

    <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/reference/byoc-subnet-2.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=f4b261417ba2195f37756779b31f4ddc" size="lg" alt="Теги подсети BYOC VPC" width="1600" height="406" data-path="images/cloud/reference/byoc-subnet-2.webp" />
  </Step>

  <Step title="Настройте конечную точку шлюза S3" id="configure-s3-endpoint">
    Если в вашей VPC еще не настроена конечная точка шлюза S3, ее нужно создать, чтобы обеспечить безопасное приватное взаимодействие между вашей VPC и Amazon S3. Эта конечная точка позволяет сервисам ClickHouse обращаться к S3 без выхода в публичный интернет. Пример конфигурации приведен на снимке экрана ниже.

    <Image img="https://mintcdn.com/private-7c7dfe99/5su3gw1SIJE0qay9/images/cloud/reference/byoc-s3-endpoint.webp?fit=max&auto=format&n=5su3gw1SIJE0qay9&q=85&s=9ef22c33d1d9f17d80b7b2881c29b8fa" size="lg" alt="Конечная точка S3 BYOC" width="1711" height="1559" data-path="images/cloud/reference/byoc-s3-endpoint.webp" />
  </Step>

  <Step title="Убедитесь в наличии сетевой связности" id="ensure-network-connectivity">
    **Исходящий доступ в интернет**
    Ваша VPC должна как минимум разрешать исходящий доступ в интернет, чтобы компоненты ClickHouse BYOC могли взаимодействовать с Tailscale control plane. Tailscale используется для обеспечения безопасной zero-trust-сети для приватных операций управления. Для первоначальной регистрации и настройки Tailscale требуется доступ к публичному интернету — напрямую или через NAT gateway. Это подключение необходимо для сохранения как конфиденциальности, так и безопасности вашего развертывания BYOC.

    **Разрешение DNS**
    Убедитесь, что в вашей VPC работает разрешение DNS и что стандартные DNS-имена не блокируются, не перехватываются и не переопределяются. ClickHouse BYOC использует DNS для разрешения адресов серверов управления Tailscale и конечных точек сервисов ClickHouse. Если DNS недоступен или настроен неправильно, сервисы BYOC могут не подключаться или работать некорректно.
  </Step>

  <Step title="Настройте учетную запись AWS" id="configure-aws-account">
    При первоначальной настройке BYOC создается привилегированная роль IAM (`ClickHouseManagementRole`), которая позволяет контроллерам BYOC из ClickHouse Cloud управлять вашей инфраструктурой. Это можно сделать с помощью [шаблона CloudFormation](https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/cf-templates/byoc_v2.yaml) или модуля Terraform (см. ниже).

    <Warning>
      **Имя роли IAM является обязательным требованием.** Роль должна сохранять имя по умолчанию `ClickHouseManagementRole` — без префиксов, суффиксов или переименования для соответствия принятым в организации правилам именования — если только ClickHouse заранее явно не согласовал другое имя (входной параметр Terraform `role_name` следует изменять только по согласованию с ClickHouse). Переименованная роль успешно применяется, но затем подготовка инфраструктуры завершается ошибкой, поскольку ClickHouse не может принять ожидаемую роль. В целом не изменяйте ничего в предоставленном шаблоне или модуле без явного одобрения ClickHouse; поддерживаемые настройки доступны в виде параметров.
    </Warning>

    При развертывании в конфигурации `BYO-VPC` установите параметр `IncludeVPCWritePermissions` в значение `false`, чтобы ClickHouse Cloud не получил разрешения на изменение вашей управляемой клиентом VPC.

    <Note>
      Бакеты хранилища, Kubernetes-кластер и вычислительные ресурсы, необходимые для запуска ClickHouse, не входят в эту первоначальную настройку. Они будут подготовлены на следующем шаге. Хотя вы управляете своей VPC, ClickHouse Cloud по-прежнему нужны разрешения IAM для создания и управления Kubernetes-кластером, ролями IAM для service accounts, S3 бакетами и другими важными ресурсами в вашей учетной записи AWS.
    </Note>

    #### Модуль Terraform

    Если вы предпочитаете использовать Terraform вместо CloudFormation, используйте модуль [terraform-byoc-onboarding](https://github.com/ClickHouse/terraform-byoc-onboarding):

    ```hcl theme={null}
    module "clickhouse_onboarding" {
      source                        = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws?ref=<version>"
      external_id                   = "<external-id-provided-by-clickhouse>"
      include_vpc_write_permissions = false
    }
    ```

    Замените `<version>` на последний тег со [страницы релизов](https://github.com/ClickHouse/terraform-byoc-onboarding/releases) модуля — всегда используйте последний релиз.

    Модуль выводит `clickhouse_management_role_arn`. В стандартном сценарии с ним не нужно выполнять никаких действий — онбординг продолжается в консоли ClickHouse Cloud, — но держите его под рукой: ClickHouse запросит его, если ваша конфигурация отличается от значений по умолчанию (например, при согласованном пользовательском имени роли).

    Значение `external_id` генерируется консолью ClickHouse Cloud и используется всеми инфраструктурами BYOC в одном аккаунте AWS. Подробнее, включая устаревший заполнитель `emptyid`, см. в разделе [Внешний ID AWS](/docs/ru/products/bring-your-own-cloud/onboarding/standard#aws-external-id).

    <Note>
      Ранее модуль распространялся в виде tarball по адресу `https://s3.us-east-2.amazonaws.com/clickhouse-public-resources.clickhouse.cloud/tf/byoc.tar.gz`. Этот URL по-прежнему доступен, но устарел — используйте указанный выше модуль GitHub.
    </Note>
  </Step>

  <Step title="Настройте инфраструктуру BYOC" id="set-up-byoc-infrastructure">
    В консоли ClickHouse Cloud при настройке новой инфраструктуры укажите следующее:

    1. В разделе **VPC configuration** выберите **Use existing VPC**.
    2. Введите свой **VPC ID** (например, `vpc-0bb751a5b888ad123`).
    3. Введите **Private subnet IDs** для 3 подсетей, которые вы настроили ранее.
    4. При необходимости введите **Public subnet IDs**, если в вашей конфигурации требуются общедоступные балансировщики нагрузки.
    5. Нажмите **Set up Infrastructure**, чтобы начать подготовку инфраструктуры.

    <Image img="https://mintcdn.com/private-7c7dfe99/_Wm1iA2BOg7clsCl/images/cloud/reference/byoc-aws-existing-vpc-ui.webp?fit=max&auto=format&n=_Wm1iA2BOg7clsCl&q=85&s=f16f7db299f6b8a8780ef9afaa8ceffc" size="lg" alt="Интерфейс настройки BYOC в ClickHouse Cloud с выбранным пунктом Use existing VPC" width="1182" height="1466" data-path="images/cloud/reference/byoc-aws-existing-vpc-ui.webp" />

    <Note>
      Настройка нового региона может занять до 40 минут.
    </Note>
  </Step>
</Steps>

<div id="customer-managed-iam-roles">
  ## Управляемые клиентом роли IAM
</div>

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

<Info>
  Управляемые клиентом роли IAM находятся в стадии закрытой предварительной версии. Прежде чем выполнять приведенные ниже шаги, свяжитесь с ClickHouse Support, чтобы включить эту возможность для вашей организации.
</Info>

С управляемыми клиентом ролями IAM вы:

* Заранее создаете IAM-роли для каждой инфраструктуры, которые иначе создал бы ClickHouse Cloud
* Убираете разрешения на запись в IAM у `ClickHouseManagementRole`, используемой для межаккаунтного доступа
* Сохраняете полный контроль над разрешениями ролей и отношениями доверия

Оба приведенных ниже модуля используют `external_id`, сгенерированный в консоли ClickHouse Cloud; все инфраструктуры BYOC в одном аккаунте AWS используют один и тот же внешний ID. Подробнее, включая устаревший заполнитель `emptyid`, см. в разделе [Внешний ID AWS](/docs/ru/products/bring-your-own-cloud/onboarding/standard#aws-external-id).

<Steps>
  <Step title="Настройте роль управления без разрешений на запись в IAM" id="byo-iam-management-role">
    При выполнении [первоначальной настройки BYOC](/docs/ru/products/bring-your-own-cloud/onboarding/standard) отключите разрешения на запись в IAM для роли управления. В шаблоне CloudFormation установите параметр `IncludeIAMWritePermissions` в значение `false`. В модуле Terraform:

    ```hcl theme={null}
    module "clickhouse_onboarding" {
      source                        = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws?ref=<version>"
      external_id                   = "<external-id-provided-by-clickhouse>"
      include_iam_write_permissions = false
    }
    ```

    Замените `<version>` на последний тег со [страницы релизов](https://github.com/ClickHouse/terraform-byoc-onboarding/releases) модуля — всегда используйте последний релиз.
  </Step>

  <Step title="Создайте IAM-роли для каждой инфраструктуры" id="byo-iam-per-infra-roles">
    Перед подготовкой каждой инфраструктуры BYOC создайте необходимые для нее IAM-роли (роли EKS Pod Identity, роль доступа ClickHouse к S3 и роль управления плоскостью данных) с помощью per-infra-модуля [terraform-byoc-onboarding](https://github.com/ClickHouse/terraform-byoc-onboarding):

    ```hcl theme={null}
    module "clickhouse_per_infra_iam" {
      source = "github.com/ClickHouse/terraform-byoc-onboarding.git//modules/aws-per-infra-iam?ref=<version>"

      spoken_name = "<spoken-name-provided-by-clickhouse>"
      region      = "<aws-region-of-the-infrastructure>"
      external_id = "<external-id-provided-by-clickhouse>"
    }
    ```

    Замените `<version>` на последний тег со [страницы релизов](https://github.com/ClickHouse/terraform-byoc-onboarding/releases) модуля — всегда используйте последний релиз.
  </Step>

  <Step title="Поддерживайте роли для каждой инфраструктуры в актуальном состоянии" id="byo-iam-keep-up-to-date">
    <Warning>
      ClickHouse периодически добавляет роли и разрешения, необходимые для новых возможностей платформы. Когда ClickHouse уведомит вас об обновлении, повторно примените per-infra-модуль из последнего релиза — использование устаревшей версии может привести к сбоям при подготовке и обновлении вашей инфраструктуры BYOC.
    </Warning>
  </Step>
</Steps>

Сведения о ролях IAM, которые ClickHouse Cloud создает по умолчанию, см. в [справочнике по привилегиям BYOC](/docs/ru/products/bring-your-own-cloud/reference/privilege).
