Функция 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 рекомендует иметь в кластере узел, который можно использовать для выполнения различных задач, описанных в этом документе, в том числе:
- Установите HashiCorp Consul 1.6.2.
- Создайте и распространите пару сертификат/ключ и ключ шифрования сплетен.
- Обновите и распространите файл конфигурации.
Машина администрирования требует, чтобы:
- Вы загрузили и установили на него утилиты
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 с взаимной проверкой подлинности. |
сервисная сетка | Оверлейная сеть (или сеть внутри сети). |
ТЛС | Безопасность уровня транзакций. Стандартный протокол аутентификации для безопасной связи. |