Введение в Apigee mTLS

Edge для частного облака v4.19.01

Функция Apigee mTLS повышает безопасность связи между компонентами вашего Edge для кластера частного облака.

Архитектурный обзор

Чтобы обеспечить безопасную связь между компонентами, Apigee mTLS использует сервисную сетку, которая устанавливает безопасные TLS-соединения с взаимной проверкой подлинности между компонентами.

На следующем изображении показаны соединения между компонентами Apigee, которые защищает Apigee mTLS ( in red ). Порты, показанные на изображении, являются примерами; список диапазонов, которые может использовать каждый компонент, см. в разделе «Использование портов» .

(Обратите внимание, что порты, обозначенные буквой «M», используются для управления компонентом и должны быть открыты на компоненте для доступа к нему со стороны сервера управления.)

Как вы можете видеть на диаграмме выше, Apigee mTLS повышает безопасность соединений между большинством компонентов кластера, включая:

Источник Место назначения
Сервер управления Узлы Router, MP, QPid, LDAP, Postgres, Zookeeper и Cassandra
Маршрутизатор Петлевая обратная связь; Узлы Qpid, Zookeeper и Cassandra
Процессор сообщений Петлевая обратная связь; Узлы Qpid, Zookeeper и Cassandra
Zookeeper и Кассандра Другие узлы Zookeeper и Cassandra
Пограничный интерфейс SMTP (только для внешнего IDP)
Постгрес Другие узлы Postgres, Zookeeper и Cassandra.

Шифрование/дешифрование сообщений

Сетка служб Apigee mTLS состоит из серверов Consul, которые работают на каждом узле ZooKeeper в вашем кластере, и следующих служб Consul на каждом узле кластера:

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

Например, когда сервер управления отправляет сообщение маршрутизатору, выходная прокси-служба перехватывает исходящее сообщение, шифрует его, а затем отправляет маршрутизатору. Когда узел маршрутизатора получает сообщение, входная прокси-служба расшифровывает сообщение, а затем передает его компоненту маршрутизатора для обработки.

Все это происходит прозрачно для Edge-компонентов: они не знают о процессе шифрования и дешифрования, выполняемом прокси-службами Consul.

Кроме того, Apigee mTLS использует утилиту iptables — службу брандмауэра Linux, которая управляет перенаправлением трафика.

Требования

Apigee mTLS предоставляет стандартный способ настройки и установки сервисной сетки. Он поддерживает управление пакетами и автоматизацию настройки.

Поскольку прокси-службы Consul тесно связаны с назначением портов для отдельных процессов, изменение одного узла влияет на все остальные узлы. В результате, если ваша топология изменится, вам придется перенастроить и повторно инициализировать службы на каждом узле кластера.

Прежде чем вы сможете установить Apigee mTLS, ваша среда должна соответствовать следующим требованиям, описанным в этом разделе.

Эти требования включают в себя:

  • Edge для версии частного облака
  • Набор утилит, которые установлены и включены
  • Учетная запись пользователя с соответствующим уровнем разрешений
  • Машина администрирования (рекомендуется)

Edge для требований частного облака

Apigee mTLS поддерживает следующую версию Edge для частного облака (но не на всех поддерживаемых платформах, как описано в требованиях к ОС ):

  • 19.04.06
  • 19.04.01

Apigee mTLS требует, чтобы ваш кластер частного облака использовал топологию, включающую как минимум три узла Zookeeper. В результате вы можете установить Apigee mTLS только в топологиях, использующих 5, 9, 12 (многоцентр обработки данных) или 13 узлов. Дополнительные сведения см. в разделе Топологии установки .

Требования к ОС

Apigee mTLS поддерживает следующие платформы для вашего кластера частного облака (поддерживаемая ОС для mTLS зависит от версии частного облака):

Операционная система Поддерживаемая версия частного облака
v4.19.06 v4.50.00 v4.51.00
ЦентОС
RedHat Enterprise Linux (RHEL)
Oracle Linux
7,5, 7,6, 7,7 7.5, 7.6, 7.7, 7.8, 7.9 7,5, 7,6, 7,7, 7,8, 7,9, 8,0

Утилиты/пакеты

Перед началом процесса установки Apigee mTLS требует, чтобы на каждом компьютере вашего кластера, включая компьютер администрирования , были установлены и включены следующие пакеты:

Утилита/пакет Описание Можно удалить после установки?
base64 Проверяет данные в сценариях установки.
gnu-bash
gnu-sed
gnu-grep
Используется сценарием установки и другими распространенными инструментами.
iptables Заменяет брандмауэр по умолчанию, firewalld .
iptables-services Предоставляет функциональные возможности утилите iptables .
lsof Используется сценарием установки.
nc Проверяет маршруты iptables .
openssl Подписывает сертификаты локально во время первоначального процесса начальной загрузки.

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

Пакет apigee-mtls устанавливает и настраивает серверы Consul, включая входящие и выходные прокси-серверы, на узлах ZooKeeper в кластере.

Разрешения учетной записи пользователя

Учетная запись, которая выполняет установку Apigee mTLS на каждом узле кластера, должна иметь возможность:

  • Запуск, остановка, перезапуск и инициализация компонентов Apigee.
  • Установите правила брандмауэра
  • Создайте новую учетную запись пользователя ОС/системы.
  • Включайте, отключайте, запускайте, останавливайте и маскируйте службы с помощью systemctl

Машина администрирования (рекомендуется)

Apigee рекомендует иметь в кластере узел, который можно использовать для выполнения различных задач, описанных в этом документе, в том числе:

  1. Установите HashiCorp Consul 1.6.2.
  2. Создайте и распространите пару сертификат/ключ и ключ шифрования сплетен.
  3. Обновите и распространите файл конфигурации.

Машина администрирования требует, чтобы:

  • Вы загрузили и установили на него утилиты apigee-service и apigee-setup , как описано в разделе «Установка утилиты apigee-setup Edge» .
  • Имеет доступ scp/ssh ко всем узлам кластера. Чтобы распространить файл конфигурации и учетные данные, у вас должен быть доступ scp/ssh ко всем хостам в кластере.
  • У вас есть root-доступ к машине администрирования.

Использование и назначение портов

В этом разделе описывается использование портов и назначение портов для поддержки связи Consul с Apigee mTLS.

Использование порта: все узлы, на которых работает apigee-mtls.

Все узлы в кластере, использующие службу apigee-mtls , должны разрешать соединения со службами на локальном хосте (127.0.0.1). Это позволяет прокси-серверам Consul взаимодействовать с другими службами при обработке входящих и исходящих сообщений.

Использование порта: узлы сервера Consul (узлы, на которых работает ZooKeeper)

Вам необходимо открыть большинство следующих портов на узлах сервера Consul (узлах, на которых работает ZooKeeper), чтобы принимать запросы от всех узлов в кластере:

Узел Порт сервера Консул Описание Протокол Разрешить внешние mtls-агенты
*
Сервер Consul (узлы ZooKeeper) 8300 Подключает все серверы Consul в кластере. ПКП
8301 Обрабатывает членство и широковещательные сообщения внутри кластера. UDP/TCP
8302 Порт WAN, который обрабатывает членские и широковещательные сообщения в конфигурации с несколькими центрами обработки данных. UDP/TCP
8500 Обрабатывает HTTP-соединения с API-интерфейсами Consul Server из процессов на том же узле.

Этот порт не используется для удаленной связи или координации; он прослушивает только локальный хост.

HTTP
8502 Обрабатывает соединения gRPC+HTTPS с API-интерфейсами сервера Consul с других узлов кластера. gRPC+HTTPS
8503 Обрабатывает HTTPS-соединения с API-интерфейсами сервера Consul с других узлов кластера. HTTPS
8600 Управляет DNS сервера Consul. UDP/TCP
* Apigee рекомендует ограничить входящие запросы только членами кластера (включая перекрестные хранилища данных). Вы можете сделать это с помощью iptables .

Как показано в этой таблице, узлы, на которых работает компонент consul-server (узлы ZooKeeper), должны открывать порты 8301, 8302, 8502 и 8503 всем членам кластера, на которых запущена служба apigee-mtls , даже в центрах обработки данных. Узлам, на которых не работает ZooKeeper, не нужно открывать эти порты.

Назначение портов для всех узлов Consul ( включая узлы, на которых работает ZooKeeper)

Для поддержки связи Consul узлы, на которых работают следующие компоненты Apigee, должны разрешать внешние подключения к портам в следующих диапазонах:

Компонент Апигей Диапазон Количество портов, необходимых на узел
Апиджи mTLS с 10700 до 10799 1
Кассандра от 10100 до 10199 2
Процессор сообщений от 10500 до 10599 2
OpenLDAP от 10200 до 10299 1
Постгрес от 10300 до 10399 3
Qpid от 10400 до 10499 2
Маршрутизатор от 10600 до 10699 2
Работник зоопарка от 10001 до 10099 3

Consul назначает порты простым линейным способом. Например, если в вашем кластере есть два узла Postgres, первый узел использует два порта, поэтому Consul назначает ему порты 10300 и 10301. Второй узел также использует два порта, поэтому Consol назначает этому узлу 10302 и 10303. Это относится ко всем типам компонентов.

Как видите, фактическое количество портов зависит от топологии: если в вашем кластере есть два узла Postgres, вам потребуется открыть четыре порта (два узла по два порта каждый).

Обратите внимание на следующее:

  • Прокси-серверы Consul не могут прослушивать те же порты, что и службы Apigee.
  • Consul имеет только одно адресное пространство портов. Назначения портов прокси-сервера Consul должны быть уникальными в кластере, включая центры обработки данных. Это означает, что если прокси-сервер A на хосте A прослушивает порт 15000, то прокси-сервер B на хосте B не может прослушивать порт 15000.
  • Количество используемых портов зависит от топологии, как описано ранее.

В конфигурации с несколькими центрами обработки данных все хосты, на которых работает mTLS, также должны открыть порт 8302.

Вы можете настроить порты по умолчанию, которые использует Apigee mTLS. Информацию о том, как это сделать, см. в разделе Настройка диапазона портов прокси-сервера .

Ограничения

Apigee mTLS имеет следующие ограничения:

  • Не шифрует межузловую связь Cassandra (порт 7000).
  • Конфигурация и установка не являются идемпотентными. Это означает, что если вы вносите одно изменение в один узел, вы должны внести такое же изменение во все узлы; система не подхватывает это изменение и не применяет его к другим узлам за вас. Дополнительные сведения см. в разделе Изменение существующей конфигурации apigee-mtls .

Терминология

В этом разделе используется следующая терминология:

Срок Определение
кластер Группа компьютеров, составляющих вашу установку Edge для частного облака.
Консул Сервисная сетка, используемая Apigee mTLS. Информацию о том, как Consul защищает ваши соединения в частном облаке, см. в разделе Модель безопасности Consul .
мТЛС TLS с взаимной проверкой подлинности.
сервисная сетка Оверлейная сеть (или сеть внутри сети).
ТЛС Безопасность уровня транзакций. Стандартный протокол аутентификации для безопасной связи.