Функция 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, ваша среда должна соответствовать следующим требованиям:
- Требования к версии, платформе и топологии
- Утилиты установлены и включены
- Учетная запись пользователя с соответствующим уровнем разрешений
- Машина администрирования (рекомендуется)
- Использование порта
В следующих разделах подробно описывается каждое из этих требований.
Версия, платформа и топология
В следующей таблице перечислены требования mTLS:
Требование | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Версии |
| ||||||||||||
Топология | Должен включать как минимум три узла Zookeeper. В результате вы можете установить Apigee mTLS только в топологиях, использующих 5, 9, 12 (многоцентр обработки данных) или 13 узлов. Дополнительные сведения см. в разделе Топологии установки . | ||||||||||||
Платформы/Операционные системы | Используйте следующие значения, чтобы определить, поддерживается ли Apigee mTLS в конкретной ОС:
Обратите внимание, что Apigee mTLS не обязательно поддерживает все операционные системы, поддерживаемые соответствующей версией Apigee Edge для частного облака, в которой он работает. Например, если версия 4.19.06 поддерживает CentOS x и y, это не обязательно означает, что Apigee mTLS поддерживается в CentOS x и y для версии 4.19.06. |
Утилиты/пакеты
Перед началом процесса установки 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.
- Создайте и распространите пару сертификат/ключ и ключ шифрования сплетен.
- Обновите и распространите файл конфигурации.
При настройке машины администрирования:
- Убедитесь, что у вас есть к нему root-доступ.
- Загрузите и установите на него утилиты
apigee-service
иapigee-setup
, как описано в разделе «Установка утилиты apigee-setup Edge» . - Убедитесь, что вы можете использовать
scp/ssh
для доступа ко всем узлам кластера с компьютера администрирования. Это необходимо для того, чтобы вы могли распространить файл конфигурации и учетные данные.
Использование и назначение портов
В этом разделе описывается использование портов и их назначение для поддержки связи 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 с взаимной проверкой подлинности. |
сервисная сетка | Оверлейная сеть (или сеть внутри сети). |
ТЛС | Безопасность уровня транзакций. Стандартный протокол аутентификации для безопасной связи. |