После установки 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-адрес хоста узла OpenLDAP в кластере. ZK_MTLS_HOSTSРазделенный пробелами список IP-адресов частных хостов, на которых размещены узлы ZooKeeper в кластере.
Обратите внимание, что в соответствии с требованиями должно быть не менее трех узлов ZooKeeper.
CASS_MTLS_HOSTSРазделенный пробелами список IP-адресов частных хостов, на которых размещены серверы Cassandra в кластере. PG_MTLS_HOSTSРазделенный пробелами список IP-адресов частных хостов, на которых размещены серверы Postgres в кластере. RT_MTLS_HOSTSРазделенный пробелами список IP-адресов частных хостов, на которых размещены маршрутизаторы в кластере. MTLS_ENCAPSULATE_LDAPШифрует трафик LDAP между Message Processor и сервером LDAP. Должно иметь значение y.MS_MTLS_HOSTSРазделенный пробелами список IP-адресов частных хостов, на которых размещены узлы сервера управления в кластере. MP_MTLS_HOSTSРазделенный пробелами список IP-адресов частных хостов, на которых размещены Message Processor в кластере. QP_MTLS_HOSTSРазделенный пробелами список IP-адресов частных хостов, на которых размещены серверы Qpid в кластере. ENABLE_SIDECAR_PROXYОпределяет, должны ли Cassandra и Postgres знать о сервисной сетке. Необходимо задать значение "y".
ENCRYPT_DATAКлюч шифрования в кодировке Base64, используемый Consul. Вы создали этот ключ с помощью команды consul keygenна шаге 2.Это значение должно быть одинаковым для всех узлов в кластере.
PATH_TO_CA_CERTРасположение файла сертификата на узле. Вы создали этот файл на шаге 2. Это местоположение должно быть одинаковым для всех узлов в кластере, чтобы файлы конфигурации были одинаковыми.
Сертификат должен быть закодирован в формате X509v3.
PATH_TO_CA_KEYРасположение файла ключа на узле. Вы создали этот файл на шаге 2. Это местоположение должно быть одинаковым для всех узлов в кластере, чтобы файлы конфигурации были одинаковыми.
Файл ключа должен быть закодирован в формате 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-адресов в значении свойства должен быть одинаковым во всех файлах конфигурации в кластере.
- Сохраните изменения в файле конфигурации.
Шаг 2. Установите Consul и сгенерируйте учетные данные
В этом разделе описывается, как установить Consul и сгенерировать учетные данные, которые используются компонентами с поддержкой mTLS.
Чтобы создать учетные данные, выберите один из следующих способов:
- Создайте собственный центр сертификации (ЦС) с помощью Consul, как описано в этом разделе (рекомендуется).
- Как использовать учетные данные существующего ЦС с Apigee mTLS (расширенная настройка)
Об учетных данных
Учетные данные состоят из следующих элементов:
- Сертификат. Сертификат TLS.
- Key: открытый ключ TLS.
- Gossip-сообщение. Ключ шифрования в кодировке Base64.
Вы создаете одну версию каждого из этих файлов только один раз. Затем вы копируете файлы ключа и сертификата на все узлы в кластере и добавляете ключ шифрования в файл конфигурации, который также копируете на все узлы.
Дополнительную информацию о реализации шифрования в Consul можно найти в следующих источниках:
Установите Consul и сгенерируйте учетные данные
Чтобы сгенерировать учетные данные, которые Apigee mTLS использует для аутентификации защищенных соединений между узлами в кластере Private Cloud, используйте локальный двоичный файл Consul . Поэтому перед созданием учетных данных необходимо установить Consul на администраторском компьютере.
Чтобы установить Consul и сгенерировать учетные данные mTLS, выполните следующие действия:
- На компьютере администратора скачайте двоичный файл Consul 1.8.0 с сайта HashiCorp.
- Распакуйте скачанный архив. Например, извлеките содержимое в папку
/opt/consul/. - На компьютере администратора создайте новый центр сертификации (ЦС), выполнив следующую команду:
/opt/consul/consul tls ca create
Consul создаст следующие файлы, которые образуют пару сертификат/ключ:
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
Consul выведет случайную строку, похожую на следующую:
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.
Шаг 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, как показано в примере ниже.
/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. Вы также должны убедиться, что применили настройки ко всем узлам.
Повторим ещё раз: при изменении существующей конфигурации mTLS Apigee:
- Если вы измените файл конфигурации, сначала удалите
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 fileOR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure - Вам нужно удалить и заново запустить
setupилиconfigureна всех узлах кластера, а не только на одном.