Настройка Apigee mTLS

После установки Apigee mTLS на всех узлах вашего кластера необходимо настроить и инициализировать компонент apigee-mtls . Для этого необходимо создать пару сертификат/ключ и обновить файл конфигурации на компьютере администрирования . Затем вы развертываете одни и те же сгенерированные файлы и файл конфигурации на всех узлах кластера и инициализируете локальный компонент apigee-mtls .

Настройте apigee-mtls (после первоначальной установки)

В этом разделе описывается, как настроить Apigee mTLS непосредственно после первоначальной установки . Информацию об обновлении существующей установки Apigee mTLS см. в разделе Изменение существующей конфигурации apigee-mtls .

Этот раздел относится к установкам в одном центре обработки данных. Информацию о настройке Apigee mTLS в конфигурации с несколькими центрами обработки данных см. в разделе Настройка нескольких центров обработки данных для Apigee mTLS .

Общий процесс настройки apigee-mtls выглядит следующим образом:

  1. Обновите файл конфигурации . На компьютере администрирования обновите файл конфигурации, включив в него настройки apigee-mtls .
  2. Установите Consul и сгенерируйте учетные данные . Установите Consul и (необязательно) используйте его для создания учетных данных TLS (только один раз).

    Кроме того, отредактируйте файл конфигурации Apigee mTLS, чтобы:

    1. Добавьте учетные данные
    2. Определить топологию кластера

    Обратите внимание, что вы можете использовать существующие учетные данные или сгенерировать их с помощью Consul .

  3. Распространите учетные данные и файл конфигурации . Распространите одну и ту же сгенерированную пару сертификат/ключ и обновленный файл конфигурации на все узлы вашего кластера.
  4. Инициализировать apigee-mtls : инициализировать компонент apigee-mtls на каждом узле.

Каждый из этих шагов описан в следующих разделах.

Шаг 1. Обновите файл конфигурации.

В этом разделе описывается, как изменить файл конфигурации, включив в него свойства конфигурации mTLS. Более общую информацию о файле конфигурации см. в разделе Создание файла конфигурации .

После обновления файла конфигурации с использованием свойств, связанных с mTLS, скопируйте его на все узлы кластера, прежде чем инициализировать компонент apigee-mtls на этих узлах.

Чтобы обновить файл конфигурации:

  1. На компьютере администратора откройте файл конфигурации для редактирования.
  2. Скопируйте следующий набор свойств конфигурации 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 между процессором сообщений и сервером LDAP. Установите значение y .
    MS_MTLS_HOSTS Разделенный пробелами список IP-адресов частных хостов, на которых в кластере размещены узлы Management Server.
    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 использует несколько дополнительных свойств при установке в конфигурации с несколькими центрами обработки данных. Дополнительные сведения см. в разделе Настройка нескольких центров обработки данных .

  3. Убедитесь, что для ENABLE_SIDECAR_PROXY установлено значение «y».
  4. Обновите IP-адреса в свойствах, связанных с хостом. Обязательно используйте частные IP-адреса при обращении к каждому узлу, а не общедоступные IP-адреса.

    На последующих шагах вы установите значения других свойств, таких как ENCRYPT_DATA , PATH_TO_CA_CERT и PATH_TO_CA_KEY . Вы еще не установили их значения.

    При редактировании свойств конфигурации apigee-mtls обратите внимание на следующее:

    • Все свойства являются строками; вы должны заключить значения всех свойств в одинарные или двойные кавычки.
    • Если значение, связанное с хостом, имеет более одного частного IP-адреса, разделяйте каждый IP-адрес пробелом.
    • Используйте частные IP-адреса, а не имена хостов или общедоступные IP-адреса для всех свойств, связанных с хостом, в файле конфигурации.
    • Порядок IP-адресов в значении свойства должен быть одинаковым во всех файлах конфигурации в кластере.
  5. Сохраните изменения в файле конфигурации.

Шаг 2. Установите Consul и сгенерируйте учетные данные.

В этом разделе описывается, как установить Consul и сгенерировать учетные данные, которые используются компонентами с поддержкой mTLS.

Для создания учетных данных необходимо выбрать один из следующих методов:

  • (Рекомендуется) Создайте свой собственный центр сертификации (CA) с помощью Consul, как описано в этом разделе.
  • Используйте учетные данные существующего центра сертификации с Apigee mTLS (расширенный уровень).

О полномочиях

Полномочия состоят из следующего:

  • Сертификат: сертификат TLS.
  • Ключ: открытый ключ TLS.
  • Сплетня: ключ шифрования в кодировке Base64

Вы создаете одну версию каждого из этих файлов только один раз. Затем вы копируете файлы ключей и сертификатов на все узлы вашего кластера и добавляете ключ шифрования в файл конфигурации, который также копируете на все узлы.

Для получения дополнительной информации о реализации шифрования Consul см. следующее:

Установите Consul и сгенерируйте учетные данные

Чтобы сгенерировать учетные данные, которые Apigee mTLS использует для аутентификации безопасной связи между узлами вашего кластера частного облака, используйте локальный двоичный файл Consul. В результате вам необходимо установить Consul на своем административном компьютере , прежде чем вы сможете генерировать учетные данные.

Чтобы установить Consul и сгенерировать учетные данные mTLS:

  1. На своем административном компьютере загрузите двоичный файл Consul 1.8.0 с сайта HashiCorp .
  2. Извлеките содержимое скачанного архивного файла. Например, извлеките содержимое в /opt/consul/ .
  3. На компьютере администрирования создайте новый центр сертификации (CA), выполнив следующую команду:
    /opt/consul/consul tls ca create

    Consul создает следующие файлы, которые образуют пару сертификат/ключ :

    • consul-agent-ca.pem (сертификат)
    • consul-agent-ca-key.pem (ключ)

    По умолчанию файлы сертификатов и ключей имеют кодировку X509v3.

    Позже вы скопируете эти файлы на все узлы кластера. Однако на данный момент вам нужно только решить, где на узлах вы разместите эти файлы. Они должны находиться в одном и том же месте на каждом узле. Например, /opt/apigee/ .

  4. В файле конфигурации установите значение PATH_TO_CA_CERT для местоположения, в которое вы скопируете файл consul-agent-ca.pem на узле. Например:
    PATH_TO_CA_CERT="/opt/apigee/consul-agent-ca.pem"
  5. Установите значение PATH_TO_CA_KEY в место, в которое вы скопируете файл consul-agent-ca-key.pem на узле. Например:
    PATH_TO_CA_KEY="/opt/apigee/consul-agent-ca-key.pem"
  6. Создайте ключ шифрования для Consul, выполнив следующую команду:
    /opt/consul/consul keygen

    Consul выводит рандомизированную строку, которая выглядит примерно так:

    QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY=
  7. Скопируйте эту сгенерированную строку и установите ее как значение свойства ENCRYPT_DATA в файле конфигурации. Например:
    ENCRYPT_DATA="QbhgD+EXAMPLE+Y9u0742X/IqX3X429/x1cIQ+JsQvY="
  8. Сохраните файл конфигурации.

В следующем примере показаны параметры, связанные с 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:

  1. Войдите на узел в кластере как пользователь root. Вы можете выполнить эти шаги на узлах в любом порядке.
  2. Сделайте пользователя apigee:apigee владельцем обновленного файла конфигурации, как показано в следующем примере:
    chown apigee:apigee config_file
  3. Настройте компонент apigee-mtls , выполнив следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls setup -f config_file
  4. (Необязательно) Выполните следующую команду, чтобы убедиться, что установка прошла успешно:
    /opt/apigee/apigee-mtls/lib/actions/iptables.sh validate
  5. Запустите Apigee mTLS, выполнив следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service apigee-mtls start

    После установки Apigee mTLS необходимо запустить этот компонент перед любыми другими компонентами на узле.

  6. (Только для узлов 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
  7. (Только узлы Postgres) Postgres требует дополнительных аргументов для работы в ячейке безопасности. В результате на узлах Postgres необходимо сделать следующее:

    (Только первичный)

    1. Выполните следующие команды на основном узле 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

    (Только режим ожидания)

    1. Создайте резервную копию существующих данных Postgres. Чтобы установить Apigee mTLS, необходимо повторно инициализировать основной/резервный узлы, поэтому произойдет потеря данных. Дополнительные сведения см. в разделе Настройка основной/резервной репликации для Postgres .
    2. Удалить все данные Postgres:
      rm -rf /opt/apigee/data/apigee-postgresql/pgdata
    3. Настройте 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

    Если вы выполняете установку в топологии с несколькими центрами обработки данных, используйте абсолютный путь к файлу конфигурации.

  8. Запустите остальные компоненты Apigee на узле в порядке запуска , как показано в следующем примере:
    /opt/apigee/apigee-service/bin/apigee-service component_name start
  9. Повторите этот процесс для каждого узла кластера.
  10. (Необязательно) Убедитесь, что инициализация apigee-mtls прошла успешно, используя один или несколько из следующих методов:
    1. Проверьте конфигурацию iptables
    2. Проверьте статус удаленного прокси
    3. Проверка статуса кворума

    Каждый из этих методов описан в разделе «Проверка конфигурации» .

Изменение существующей конфигурации 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 на всех узлах кластера, а не только на одном узле.