[Документация Yandex Cloud](../../../index.md) > [Yandex Managed Service for Apache Kafka®](../../index.md) > [Пошаговые инструкции](../index.md) > Подключение > Предварительная настройка

# Предварительная настройка для подключения к кластеру Apache Kafka®


К хостам кластера Managed Service for Apache Kafka® можно подключиться:

* Через интернет, если вы настроили [публичный доступ](../cluster-update.md#change-sg-set) для кластера. К такому кластеру можно подключиться только используя [SSL-соединение](#get-ssl-cert).
* С виртуальных машин Yandex Cloud, расположенных в той же [облачной сети](../../../vpc/concepts/network.md). Если к кластеру нет публичного доступа, для подключения с таких ВМ SSL-соединение использовать необязательно.

К кластеру Apache Kafka® можно подключиться как с использованием шифрования (`SASL_SSL`) — порт 9091, так и без него (`SASL_PLAINTEXT`) — порт 9092.


Чтобы подключиться к кластеру Apache Kafka®:

1. [Создайте пользователей](../cluster-accounts.md#create-account) для клиентов (производителей и потребителей) с доступами в нужные топики.
1. Подключите клиентов к кластеру:
   * производителей с помощью [Kafka Producer API](https://kafka.apache.org/42/apis/#producer-api);
   * потребителей с помощью [Kafka Consumer API](https://kafka.apache.org/42/apis/#consumer-api).

Для большинства популярных языков программирования существуют готовые реализации API Apache Kafka®. Примеры использования приведены в разделе [Примеры кода](code-examples.md).


## Настройка групп безопасности {#configuring-security-groups}

Для подключения к кластеру необходимо, чтобы [группы безопасности](../../../vpc/concepts/security-groups.md) содержали правила, которые разрешают трафик с определенных портов, IP-адресов или из других групп безопасности.

Настройки правил будут различаться в зависимости от выбранного способа подключения:

{% list tabs group=connection_method %}

- Через интернет {#internet}

  [Настройте все группы безопасности](../../../vpc/operations/security-group-add-rule.md) кластера так, чтобы они разрешали входящий трафик с любых IP-адресов на порт 9091. Для этого создайте следующее правило для входящего трафика:

  * **Диапазон портов** — `9091`.
  * **Протокол** — `TCP`.
  * **Источник** — `CIDR`.
  * **CIDR блоки** — `0.0.0.0/0`.

  Чтобы разрешить использование [API Managed Service for Apache Kafka®](../../concepts/available-apis.md) (например, для работы с [Managed Schema Registry](../../concepts/managed-schema-registry.md)), добавьте правило для входящего трафика:

  * **Диапазон портов** — `443`.
  * **Протокол** — `TCP`.
  * **Источник** — `CIDR`.
  * **CIDR блоки** — `0.0.0.0/0`.

- С ВМ в Yandex Cloud {#cloud}

  1. [Настройте все группы безопасности](../../../vpc/operations/security-group-add-rule.md) кластера так, чтобы они разрешали входящий трафик из группы безопасности, в которой находится ВМ, на порты 9091, 9092. Для этого в этих группах создайте следующее правило для входящего трафика:

     * **Диапазон портов** — `9091-9092`.
     * **Протокол** — `TCP`.
     * **Источник** — `Группа безопасности`.
     * **Группа безопасности** — если кластер и ВМ находятся в одной и той же группе безопасности, выберите значение `Текущая` (`Self`). В противном случае укажите группу безопасности ВМ.

     Чтобы разрешить использование [API Managed Service for Apache Kafka®](../../concepts/available-apis.md) (например, для работы с [Managed Schema Registry](../../concepts/managed-schema-registry.md)), добавьте правило для входящего трафика:

       * **Диапазон портов** — `443`.
       * **Протокол** — `TCP`.
       * **Источник** — `CIDR`.
       * **CIDR блоки** — `0.0.0.0/0`.

  1. [Настройте группу безопасности](../../../vpc/operations/security-group-add-rule.md), в которой находится ВМ так, чтобы можно было подключаться к ВМ и был разрешен трафик между ВМ и хостами кластера.

     Пример правил для ВМ:

     * Для входящего трафика:
       * **Диапазон портов** — `22`.
       * **Протокол** — `TCP`.
       * **Источник** — `CIDR`.
       * **CIDR блоки** — `0.0.0.0/0`.

       Это правило позволяет подключаться к ВМ по протоколу [SSH](../../../glossary/ssh-keygen.md).

     * Для исходящего трафика:
        * **Протокол** — `Любой` (`Any`).
        * **Диапазон портов** — `0-65535`.
        * **Назначение** — `CIDR`.
        * **CIDR блоки** — `0.0.0.0/0`.

       Это правило разрешает любой исходящий трафик, что позволяет не только подключаться к кластеру, но и устанавливать на ВМ необходимые для этого сертификаты и утилиты.

{% endlist %}

{% note info %}

Вы можете задать более детальные правила для групп безопасности, например, разрешающие трафик только в определенных подсетях.

Группы безопасности должны быть корректно настроены для всех подсетей, в которых будут размещены хосты кластера. При неполных или некорректных настройках групп безопасности можно потерять доступ к кластеру.

{% endnote %}

Подробнее о группах безопасности в разделе [Группы безопасности](../../concepts/network.md#security-groups).


## Получение SSL-сертификата {#get-ssl-cert}

Чтобы использовать шифрованное соединение, получите SSL-сертификат:

{% list tabs group=operating_system %}

- Linux (Bash)/macOS (Zsh) {#linux-macos}

   ```bash
   mkdir -p /usr/local/share/ca-certificates/Yandex/ && \
   wget "https://storage.yandexcloud.kz/cloud-certs/CA.pem" \
        --output-document /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt && \
   chmod 0655 /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt
   ```

   Сертификат будет сохранен в файле `/usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt`.

- Windows (PowerShell) {#windows}

   ```powershell
   mkdir $HOME\.kafka; curl.exe -o $HOME\.kafka\YandexInternalRootCA.crt https://storage.yandexcloud.kz/cloud-certs/CA.pem
   ```

   Сертификат будет сохранен в файле `$HOME\.kafka\YandexInternalRootCA.crt`.

   Корпоративные политики и антивирус могут блокировать скачивание сертификата. Подробнее в разделе [Вопросы и ответы](../../qa/index.md#get-ssl-error).

{% endlist %}

При работе с [Managed Service for Apache Kafka® REST API](../../concepts/available-apis.md) используется этот же сертификат.

## Получение FQDN хостов Apache Kafka® {#get-fqdn}

Для подключения к хосту потребуется его [FQDN](../../concepts/network.md#hostname) — доменное имя. Пример FQDN хоста Apache Kafka®:

```text
rc1a-goh2a9tr********.mdb.yandexcloud.kz
```

FQDN можно получить несколькими способами:

* Посмотрите FQDN в консоли управления:

    1. Перейдите на страницу кластера.
    1. Перейдите в раздел **Хосты**.
    1. Скопируйте значение в столбце **FQDN хоста**.

* Скопируйте команду для подключения к кластеру в [консоли управления](https://kz.console.yandex.cloud). Команда содержит заполненный FQDN хоста-брокера. Чтобы получить команду, перейдите на страницу кластера и нажмите кнопку **Подключиться**.

* [Запросите список хостов в кластере](../cluster-hosts.md#list-hosts) с помощью CLI или API.

При работе с [Managed Service for Apache Kafka® REST API](../../concepts/available-apis.md) можно отсылать запросы к любому хосту-брокеру: API доступно со всех хостов-брокеров кластера.

## Что дальше {#whats-next}

* [Подключитесь](clients.md) к кластеру с помощью инструментов командной строки.
* [Интегрируйте](code-examples.md) подключение к кластеру в код вашего приложения.