После установки 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 (один раз).
Кроме того, измените файл конфигурации mTLS Apigee, чтобы:
- Добавьте информацию об учетных данных
- Определите топологию кластера
Вы можете использовать существующие учетные данные или сгенерировать их с помощью 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 между Message Processor и сервером 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. Этот путь должен быть одинаковым для всех узлов кластера, чтобы файлы конфигурации были одинаковыми.
Сертификат должен быть закодирован в формате 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.
- Ключ: открытый ключ TLS.
- Сообщение Gossip: ключ шифрования в кодировке Base64.
Вы создаете только одну версию каждого из этих файлов. Затем скопируйте файлы ключа и сертификата во все узлы кластера и добавьте ключ шифрования в файл конфигурации, который также нужно скопировать во все узлы.
Дополнительную информацию о реализации шифрования в Consul можно найти в следующих источниках:
Как установить Consul и создать учетные данные
Чтобы создать учетные данные, которые Apigee mTLS использует для аутентификации защищенной связи между узлами в кластере частного облака, используйте локальный двоичный файл 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: установите 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, а затем перезапустите его, как показано в примере ниже.
/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 fileOR/opt/apigee/apigee-service/bin/apigee-service apigee-mtls configure - Необходимо удалить и повторно запустить
setupилиconfigureна всех узлах кластера, а не только на одном.