Как настроить коннектор Apigee API Hub для частного облака

В этом разделе описаны шаги по настройке коннектора Apigee API Hub для частного облака, в том числе сетевые параметры, аутентификация и настройки организации.

Требуемые права доступа

Новый API Hub API интегрирован с коннектором Apigee API Hub для частного облака, чтобы обрабатывать загрузку сред и пакетов прокси, для чего требуется новая роль IAM. Это разовое действие, которое нужно выполнить вручную, чтобы предоставить необходимые разрешения.

Чтобы предоставить нужные разрешения, выполните следующую команду gcloud один раз:

  gcloud projects add-iam-policy-binding GCP_PROJECT_NAME \
    --member="serviceAccount:SERVICE_ACCOUNT" \
    --role="roles/apihub.admin"

Эта команда привязывает роль roles/apihub.admin к указанному сервисному аккаунту, позволяя коннектору выполнять необходимые действия. Убедитесь, что этот сервисный аккаунт совпадает с тем, который использовался при создании экземпляра плагина.

Настройка сети и аутентификации

  1. Добавьте порты в белый список. Коннектору Apigee API Hub для частного облака необходимо подключиться к серверу управления, чтобы получить нужные метаданные API. Поэтому коннектор должен иметь доступ к портам 8080 и 443 сервера управления.
  2. Аутентификация на основе ключей для сервисов Google Cloud Platform. Коннектор Apigee API Hub для частного облака взаимодействует с сервисами Google Cloud и требует для аутентификации токены. Это достигается с помощью ключа сервисного аккаунта для создания токенов, позволяющих выполнять действия от имени сервисного аккаунта.

    • Сервисный аккаунт для создания токенов. Создайте новый сервисный аккаунт, предназначенный для создания токенов. У этого сервисного аккаунта должна быть роль Token Creator.
    • Создайте и скачайте ключ сервисного аккаунта:
      • Следуйте инструкциям в разделе Создайте ключ сервисного аккаунта, чтобы сгенерировать JSON-ключ для сервисного аккаунта, который будет создавать токены.
      • Скачайте этот файл ключа (например, в /opt/apigee/keys/uapim.key на виртуальной машине коннектора Apigee API Hub для частного облака).
    • Настройте GOOGLE_APPLICATION_CREDENTIALS. При запуске коннектора Apigee API Hub для частного облака вам нужно будет указать путь к этому файлу с помощью переменной среды:
      export $GOOGLE_APPLICATION_CREDENTIALS=/opt/apigee/keys/uapim.key
  3. Аутентификация Management API (UAPIM_MGMT_AUTH). Коннектору Apigee API Hub для частного облака требуются учетные данные для вызова Apigee Management API. В целях безопасности и автоматизации в Apigee следует использовать машинного пользователя, а не человека.

    Создайте машинного пользователя в Apigee:

    1. Создать пользователя:
      • В консоли Apigee создайте пользователя машины (или системного пользователя). Подробнее о пользователях и ролях можно узнать в разделе Автоматизация процесса создания токенов.
      • Укажите адрес электронной почты (для идентификации) и понятное название (например, uapim-connector-user).
    2. Назначьте роли. Назначьте пользователю машины следующие роли:
      • Администратор Apigee API. Эта роль предоставляет доступ к API управления, позволяя коннектору Apigee API Hub для частного облака взаимодействовать с системой управления Apigee (например, получать метаданные или управлять конфигурациями API).

Создайте учетные данные с кодировкой Base64:

  1. Создайте пару "имя пользователя:пароль" для пользователя машины.
  2. Закодируйте учетные данные в формате Base64: echo -n 'username:password' | base64
  3. Задайте для переменной среды $UAPIM_MGMT_AUTH значение, закодированное в формате Base64:
    export UAPIM_MGMT_AUTH=USERNAME_PASSWORD

    где USERNAME_PASSWORD – это значение пары "имя пользователя и пароль" в кодировке Base64.

    Убедитесь, что эта переменная среды задана, прежде чем запускать коннектор Apigee API Hub для частного облака.

Как настроить коннектор Apigee API Hub для частного облака

Откройте файл конфигурации /opt/apigee/customer/application/uapim-connector.properties, чтобы указать организации Apigee, данные которых нужно загрузить в API Hub. У вас может быть несколько экземпляров плагина или API Hub.

  conf_uapim_connector.uapim.settings.json={\
    "connectorConfig" : { \
      "org1" : { \
        "runtimeDataPubsub" : "", \
        "metadataPubsub":"", \
        "serviceAccount": "mysa1@in.myfirstProject",\
        "pluginInstanceId":"aaaa" \
      },\
      "org2" : { \
        "runtimeDataPubsub" : "", \
        "metadataPubsub":"",\
        "serviceAccount": "mysa2@in.mySecondProject",\
        "pluginInstanceId":"bbbbb", \
      } 
    },
    "runtimeDataPath":"/the/nfs/mounted/path", \    
    "managementServer": "hostname"
  } 

Описание JSON-файла настроек

  • Раздел connectorConfig:
    • Это карта, где каждый ключ – название организации Apigee (например, org1, org2).
    • Каждая запись организации содержит следующие поля, которые вы получили на этапе создания плагина:
      • runtimeDataPubsub – тема издателя-подписчика для данных среды выполнения (аналитики) для этой организации.
      • metadataPubsub – тема издатель-подписчик для метаданных API этой организации.
      • serviceAccount – сервисный аккаунт (например, mysa1@in.myfirstProject.iam.gserviceaccount.com), используемый для аутентификации при записи данных в Pub/Sub для этой организации.
      • pluginInstanceId – уникальный идентификатор экземпляра плагина, связанного с этой организацией.
  • Раздел runtimeDataPath. Укажите путь к точке монтирования NFS, в которую обработчики сообщений будут записывать данные Аналитики (AX). Путь должен совпадать с тем, который настроен в процессорах сообщений.
  • Раздел managementServer. Имя хоста или IP-адрес URL сервера управления Apigee.
  • Переменная среды UAPIM_MGMT_AUTH. Эта переменная среды, заданная извне, содержит код username:password в формате Base64 для доступа к серверу управления.

Добавьте конфигурации прямого прокси-сервера

Добавьте конфигурации прямого прокси-сервера в тот же файл /opt/apigee/customer/application/uapim-connector.properties

  1. conf_http_client_service_jetty.proxy.enabled=true
  2. conf_http_client_service_jetty.proxy.host=
  3. conf_http_client_service_jetty.proxy.port=
  4. conf_http_client_service_jetty.proxy.user=
  5. conf_http_client_service_jetty.proxy.password=

Чтобы коннектор работал правильно, он должен подключаться к следующим внешним источникам:

  • pubsub.googleapis.com:443
  • oauth2.googleapis.com:443
  • iamcredentials.googleapis.com:443

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

Запуск коннектора Apigee API Hub для частного облака

После того как все конфигурации будут заданы, запустите коннектор Apigee API Hub для частного облака с помощью команды сервиса Apigee:

apigee-service edge-uapim-connector start