После установки Apigee mTLS на все узлы кластера необходимо настроить и инициализировать компонент apigee-mtls
. Для этого необходимо сгенерировать пару сертификат/ключ и обновить файл конфигурации на компьютере администратора . Затем необходимо развернуть те же сгенерированные файлы и файл конфигурации на всех узлах кластера и инициализировать локальный компонент apigee-mtls
.
Настройте apigee-mtls (после первоначальной установки)
В этом разделе описывается, как настроить Apigee mTLS сразу после первоначальной установки . Сведения об обновлении существующей установки Apigee mTLS см. в разделе Изменение существующей конфигурации apigee-mtls .
Этот раздел относится к установкам в одном центре обработки данных. Информацию о настройке Apigee mTLS в конфигурации с несколькими центрами обработки данных см. в разделе Настройка нескольких центров обработки данных для Apigee mTLS .
Общий процесс настройки apigee-mtls
выглядит следующим образом:
- Обновите файл конфигурации : на компьютере администратора обновите файл конфигурации, включив в него настройки
apigee-mtls
. - Установите Consul и сгенерируйте учетные данные : установите Consul и (при необходимости) используйте его для генерации учетных данных TLS (только один раз).
Кроме того, отредактируйте файл конфигурации Apigee mTLS следующим образом:
- Добавьте информацию об учетных данных
- Определить топологию кластера
Обратите внимание, что вы можете использовать существующие учетные данные или сгенерировать их с помощью Consul .
- Распространите учетные данные и файл конфигурации : Распространите ту же сгенерированную пару сертификат/ключ и обновленный файл конфигурации на все узлы в вашем кластере.
- Инициализация apigee-mtls : инициализация компонента
apigee-mtls
на каждом узле.
Каждый из этих шагов описан в следующих разделах.
Шаг 1: Обновите файл конфигурации
В этом разделе описывается, как изменить файл конфигурации, включив в него свойства конфигурации mTLS. Более общую информацию о файле конфигурации см. в разделе Создание файла конфигурации .
После обновления файла конфигурации с использованием свойств, связанных с mTLS, скопируйте его на все узлы кластера, прежде чем инициализировать компонент apigee-mtls
на этих узлах.
Чтобы обновить файл конфигурации:
- На административном компьютере откройте файл конфигурации для редактирования.
- Скопируйте следующий набор свойств конфигурации mTLS и вставьте их в файл конфигурации:
ALL_IP="ALL_PRIVATE_IPS_IN_CLUSTER" ZK_MTLS_HOSTS="ZOOKEEPER_PRIVATE_IPS" CASS_MTLS_HOSTS="CASSANDRA_PRIVATE_IPS" PG_MTLS_HOSTS="POSTGRES_PRIVATE_IPS" RT_MTLS_HOSTS="ROUTER_PRIVATE_IPS" MS_MTLS_HOSTS="MGMT_SERVER_PRIVATE_IPS" MP_MTLS_HOSTS="MESSAGE_PROCESSOR_PRIVATE_IPS" QP_MTLS_HOSTS="QPID_PRIVATE_IPS" LDAP_MTLS_HOSTS="OPENLDAP_PRIVATE_IPS" MTLS_ENCAPSULATE_LDAP="y" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="BASE64_GOSSIP_MESSAGE" PATH_TO_CA_CERT="PATH/TO/consul-agent-ca.pem" PATH_TO_CA_KEY="PATH/TO/consul-agent-ca-key.pem" APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR="NUMBER_OF_DAYS"
Установите значение каждого свойства в соответствии с вашей конфигурацией.
В следующей таблице описаны эти свойства конфигурации:
Свойство Описание ALL_IP
Список IP-адресов частных хостов всех узлов кластера, разделенных пробелами. Порядок IP-адресов не имеет значения, за исключением того, что он должен быть одинаковым во всех файлах конфигурации кластера.
Если вы настраиваете Apigee mTLS для нескольких центров обработки данных , перечислите все IP-адреса для всех хостов во всех регионах.
LDAP_MTLS_HOSTS
Частный IP-адрес узла SymasLDAP в кластере. ZK_MTLS_HOSTS
Список IP-адресов частных хостов, на которых размещены узлы ZooKeeper в кластере, разделенных пробелами.
Обратите внимание, что в соответствии с требованиями должно быть не менее трех узлов ZooKeeper.
CASS_MTLS_HOSTS
Список IP-адресов частных хостов, на которых размещены серверы Cassandra в кластере, разделенных пробелами. PG_MTLS_HOSTS
Список IP-адресов частных хостов, на которых размещены серверы Postgres в кластере, разделенных пробелами. RT_MTLS_HOSTS
Список IP-адресов частных хостов, на которых размещены маршрутизаторы в кластере, разделенных пробелами. MTLS_ENCAPSULATE_LDAP
Шифрует трафик LDAP между обработчиком сообщений и сервером LDAP. Установите значение y
.MS_MTLS_HOSTS
Список IP-адресов частных хостов, на которых размещены узлы сервера управления в кластере, разделенных пробелами. MP_MTLS_HOSTS
Список IP-адресов частных хостов, на которых размещены обработчики сообщений в кластере, разделенных пробелами. QP_MTLS_HOSTS
Список IP-адресов частных хостов, на которых размещены серверы Qpid в кластере, разделенных пробелами. ENABLE_SIDECAR_PROXY
Определяет, должны ли Cassandra и Postgres знать о сервисной сетке. Необходимо установить это значение на «y».
ENCRYPT_DATA
Ключ шифрования в кодировке Base64, используемый Consul. Вы сгенерировали этот ключ с помощью команды consul keygen
на шаге 2: Установка Consul и генерация учётных данных .Это значение должно быть одинаковым для всех узлов кластера.
PATH_TO_CA_CERT
Расположение файла сертификата на узле. Этот файл был создан на шаге 2: Установка Consul и генерация учётных данных . Это расположение должно быть одинаковым для всех узлов кластера, чтобы файлы конфигурации были одинаковыми.
Сертификат должен иметь кодировку X509v3.
PATH_TO_CA_KEY
Расположение файла ключа на узле. Вы создали этот файл на шаге 2: Установка Consul и генерация учётных данных . Это расположение должно быть одинаковым для всех узлов кластера, чтобы файлы конфигурации были одинаковыми.
Файл ключа должен быть закодирован в формате X509v3.
APIGEE_MTLS_NUM_DAYS_CERT_VALID_FOR
Количество дней, в течение которых сертификат действителен при создании пользовательского сертификата .
Значение по умолчанию — 365. Максимальное значение — 7865 дней (5 лет).
Помимо перечисленных выше свойств, Apigee mTLS использует несколько дополнительных свойств при установке в конфигурации с несколькими центрами обработки данных. Подробнее см. в разделе «Настройка нескольких центров обработки данных» .
- Убедитесь, что для
ENABLE_SIDECAR_PROXY
установлено значение «y». - Обновите IP-адреса в свойствах хоста. Обязательно используйте частные IP-адреса при обращении к каждому узлу, а не публичные .
На последующих этапах вы зададите значения других свойств, таких как
ENCRYPT_DATA
,PATH_TO_CA_CERT
иPATH_TO_CA_KEY
. Пока что их значения не заданы.При редактировании свойств конфигурации
apigee-mtls
обратите внимание на следующее:- Все свойства являются строками; значения всех свойств необходимо заключать в одинарные или двойные кавычки.
- Если значение, связанное с хостом, имеет более одного частного IP-адреса, разделяйте каждый IP-адрес пробелом.
- Для всех свойств хоста в файле конфигурации используйте частные IP-адреса, а не имена хостов или публичные IP-адреса.
- Порядок IP-адресов в значении свойства должен быть одинаковым во всех файлах конфигурации кластера.
- Сохраните изменения в файле конфигурации.
Шаг 2: Установка Consul и создание учетных данных
В этом разделе описывается, как установить Consul и создать учетные данные, используемые компонентами с поддержкой mTLS.
Для создания учетных данных вам необходимо выбрать один из следующих методов:
- (Рекомендуется) Создайте собственный центр сертификации (ЦС) с помощью Consul, как описано в этом разделе.
- Использовать учетные данные существующего центра сертификации с Apigee mTLS (расширенная настройка)
О полномочиях
Полномочия состоят из следующего:
- Сертификат: Сертификат TLS
- Ключ: открытый ключ TLS
- Сплетня: ключ шифрования в кодировке Base-64
Вы генерируете одну версию каждого из этих файлов только один раз. Затем вы копируете файлы ключа и сертификата на все узлы кластера и добавляете ключ шифрования в файл конфигурации, который также копируется на все узлы.
Более подробную информацию о реализации шифрования Consul можно найти здесь:
Установите Consul и сгенерируйте учетные данные
Чтобы сгенерировать учётные данные, которые Apigee mTLS использует для аутентификации защищённых соединений между узлами в кластере частного облака, используйте локальный исполняемый файл Consul. Поэтому перед генерацией учётных данных необходимо установить Consul на компьютере администратора .
Чтобы установить Consul и сгенерировать учетные данные mTLS:
- Загрузите на свой административный компьютер двоичный файл Consul 1.8.0 с веб-сайта HashiCorp .
- Извлеките содержимое скачанного архива. Например, в папку
/opt/consul/
. - На компьютере администратора создайте новый центр сертификации (ЦС), выполнив следующую команду:
/opt/consul/consul tls ca create
Консул создает следующие файлы, которые образуют пару сертификат/ключ :
-
consul-agent-ca.pem
(сертификат) -
consul-agent-ca-key.pem
(ключ)
По умолчанию файлы сертификатов и ключей имеют кодировку X509v3.
Позже вы скопируете эти файлы на все узлы кластера. Однако сейчас вам нужно только решить, где на узлах вы разместите эти файлы. Они должны находиться в одном и том же месте на каждом узле. Например,
/opt/apigee/
. -
- В файле конфигурации укажите значение
PATH_TO_CA_CERT
, указывающее путь к папке, куда вы будете копировать файлconsul-agent-ca.pem
на узле. Например:PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
- Задайте значение
PATH_TO_CA_KEY
, указывающее путь к папке, в которую вы будете копировать файлconsul-agent-ca-key.pem
на узле. Например:PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
- Создайте ключ шифрования для Consul, выполнив следующую команду:
/opt/consul/consul keygen
Консул выводит случайную строку, которая выглядит примерно так:
QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
- Скопируйте эту сгенерированную строку и установите её в качестве значения свойства
ENCRYPT_DATA
в файле конфигурации. Например:ENCRYPT_DATA="
QbhgD+EXAMPLE+Y9u0742X
/IqX3X429/x1cIQ+JsQvY=" - Сохраните файл конфигурации.
В следующем примере показаны настройки, связанные с mTLS, в файле конфигурации (с примерами значений):
... IP1=10.126.0.121 IP2=10.126.0.124 IP3=10.126.0.125 IP4=10.126.0.127 IP5=10.126.0.130 ALL_IP="$IP1 $IP2 $IP3 $IP4 $IP5" LDAP_MTLS_HOSTS="$IP3" ZK_MTLS_HOSTS="$IP3 $IP4 $IP5" CASS_MTLS_HOSTS="$IP3 $IP4 $IP5" PG_MTLS_HOSTS="$IP2 $IP1" RT_MTLS_HOSTS="$IP4 $IP5" MS_MTLS_HOSTS="$IP3" MP_MTLS_HOSTS="$IP4 $IP5" QP_MTLS_HOSTS="$IP2 $IP1" ENABLE_SIDECAR_PROXY="y" ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=" PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem" PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem" ...
Шаг 3: Распространите файл конфигурации и учетные данные
Скопируйте следующие файлы на все узлы, используя такой инструмент, как scp
:
- Файл конфигурации: скопируйте обновленную версию этого файла и замените существующую версию на всех узлах (а не только на узлах, на которых работает ZooKeeper).
- consul-agent-ca.pem: Скопировать в место, указанное вами в качестве значения
PATH_TO_CA_CERT
в файле конфигурации. - consul-agent-ca-key.pem: Скопировать в место, указанное вами в качестве значения
PATH_TO_CA_KEY
в файле конфигурации.
Убедитесь, что места, куда вы копируете файлы сертификата и ключа, соответствуют значениям, которые вы указали в файле конфигурации на Шаге 2: Установка Consul и генерация учетных данных .
Шаг 4: Инициализация apigee-mtls
После установки apigee-mtls
на каждом узле, обновления файла конфигурации и копирования его и учетных данных на все узлы кластера вы готовы инициализировать компонент apigee-mtls
на каждом узле.
Чтобы инициализировать apigee-mtls:
- Войдите в узел кластера как пользователь root. Вы можете выполнять эти действия на узлах в любом порядке.
- Сделайте пользователя
apigee:apigee
владельцем обновленного файла конфигурации, как показано в следующем примере:chown apigee:apigee config_file
- Настройте компонент
apigee-mtls
, выполнив следующую команду:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
- (Необязательно) Выполните следующую команду, чтобы убедиться, что настройка прошла успешно:
/opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
- Запустите Apigee mTLS, выполнив следующую команду:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls start
После установки Apigee mTLS необходимо запустить этот компонент перед любыми другими компонентами на узле.
- (Только для узлов Cassandra) Для работы Cassandra в сети безопасности требуются дополнительные аргументы. В связи с этим необходимо выполнить следующие команды на каждом узле Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- (Только для узлов Postgres) Для работы Postgres в рамках сети безопасности требуются дополнительные аргументы. В связи с этим на узлах Postgres необходимо выполнить следующие действия:
(Только первичный)
- Выполните следующие команды на первичном узле Postgres:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
(Только в режиме ожидания)
- Создайте резервную копию существующих данных Postgres. Для установки Apigee mTLS необходимо повторно инициализировать основной и резервный узлы, что может привести к потере данных. Подробнее см. в статье Настройка репликации основного и резервного узлов для Postgres .
- Удалить все данные Postgres:
rm -rf /opt/apigee/data/apigee-postgresql/pgdata
- Настройте Postgres, а затем перезапустите Postgres, как показано в следующем примере:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup -f config_file
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql configure
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
Если вы выполняете установку в топологии с несколькими центрами обработки данных, используйте абсолютный путь к файлу конфигурации.
- Выполните следующие команды на первичном узле Postgres:
- Запустите оставшиеся компоненты Apigee на узле в порядке запуска , как показано в следующем примере:
/opt/apigee/apigee-service/bin/apigee-service component_name start
- Повторите этот процесс для каждого узла в кластере.
- (Необязательно) Убедитесь, что инициализация
apigee-mtls
прошла успешно, используя один или несколько из следующих методов:- Проверьте конфигурацию iptables
- Проверить статус удаленного прокси-сервера
- Проверить статус кворума
Каждый из этих методов описан в разделе Проверка конфигурации .
Изменить существующую конфигурацию apigee-mtls
Чтобы настроить существующую конфигурацию apigee-mtls
, необходимо удалить и переустановить apigee-mtls
. Также необходимо убедиться, что ваши изменения применены ко всем узлам.
Повторим этот момент: при изменении существующей конфигурации Apigee mTLS:
- Если вы изменяете файл конфигурации, вам необходимо сначала удалить
apigee-mtls
и повторно запуститьsetup
илиconfigure
:# DO THIS:
/opt/apigee/apigee-service/bin/apigee-service apigee-mtls uninstall
# BEFORE YOU DO THIS:/opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f file
OR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure
- Необходимо удалить и повторно запустить
setup
илиconfigure
на всех узлах кластера, а не только на одном узле.