Примечания к выпуску адаптера Apigee для Envoy

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

v2.1.1

7 июня 2023 г. мы выпустили версию 2.1.1 адаптера Apigee для Envoy.

Устраненные проблемы

  • Исправлена проблема, из-за которой квоты неправильно дублировались между операциями, а не использовались на уровне продукта.

v2.1.0

5 июня 2023 г. мы выпустили версию 2.1.0 адаптера Apigee для Envoy.

Устраненные проблемы

  • Заявка application_id была добавлена в ответ /verifyApiKey.

v2.0.7

9 марта 2023 г. мы выпустили версию 2.0.7 адаптера Apigee для Envoy.

Функции и улучшения

  • Теперь в JWT можно добавить утверждение customattributes, которое будет передавать значение в целевой сервис в заголовке x-apigee-customattributes (если для append_metadata_headers задано значение true).

Устраненные проблемы

  • Исправлена проблема, из-за которой недействительный ключ API мог создавать ложные записи в журналах и аналитических данных.
  • В прокси-сервере была удалена проверка устаревшей версии, из-за чего в более новых версиях Apigee возникали проблемы.

v2.0.6

18 октября 2022 г. мы выпустили версию 2.0.6 адаптера Apigee для Envoy.

Устраненные проблемы

  • Выпуск, исправляющий уязвимость типа "отказ в обслуживании" (DoS) в библиотеке зависимостей. Подробнее CVE-2022-28948…

v2.0.5

3 марта 2022 г. мы выпустили версию 2.0.5 адаптера Apigee для Envoy.

Устраненные проблемы

  • Выпуск, исправляющий уязвимость, которая может привести к отказу в обслуживании (DoS) в библиотеке Prometheus. Подробнее CVE-2022-21698…

v2.0.4

3 декабря 2021 г. мы выпустили версию 2.0.4 адаптера Apigee для Envoy.

Функции и улучшения

  • Обновлен список поддерживаемых версий Envoy и Istio для команды CLI samples. Теперь для образцов поддерживаются следующие версии:
    • Envoy версий 1.18–1.20
    • Istio версий 1.10–1.12

Устраненные проблемы

  • Чтобы избежать паники, при загрузке закрытого ключа блока PEM была добавлена проверка на нулевое значение. (Выпуск 360)
  • Ошибки авторизации удаленного сервиса теперь регистрируются на уровне отладки. Исключение из этой классификации делается для ошибок получения токенов для ключей API. В этом случае ошибки регистрируются на уровне Error, поэтому они будут видны, даже если уровень журнала отладки для apigee-remote-service-envoy отключен. Также ознакомьтесь с разделом Как задать уровни журналов удаленных сервисов. (Проблема № 104)

v2.0.3

21 сентября 2021 г. мы выпустили версию 2.0.3 адаптера Apigee для Envoy.

Устраненные проблемы

  • Исправлена проблема с ведением журналов аналитики для прямых ответов. Проблема возникала только при определенных обстоятельствах. Пример:
    • Для запросов, не требующих проверки подлинности и авторизации, не был создан параметр authContext, а динамические метаданные были нулевыми, поэтому запись в журнале доступа была проигнорирована.
    • В отклоненном ответе использовался код RPC вместо кода HTTP, из-за чего записи в интерфейсе Apigee отображались как успешные.

v2.0.2

7 июня 2021 г. мы выпустили версию 2.0.2 адаптера Apigee для Envoy.

Устраненные проблемы

  • Устранена проблема, из-за которой при нулевом значении области действия утверждений JWT могли возникать ошибки 403 и паника.

Версия 2.0.0

6 апреля 2021 г. мы выпустили версию 2.0.0 адаптера Apigee для Envoy.

Функции и улучшения

Функция Описание
Поддержка многопользовательской среды

Теперь адаптер может обслуживать несколько сред в организации Apigee. Эта функция позволяет использовать один адаптер Apigee для Envoy, связанный с одной организацией Apigee, для обслуживания нескольких сред. До этого изменения один адаптер всегда был связан с одной средой Apigee. Подробнее о поддержке многопользовательской среды…

Поддержка API Envoy версии 3
Поддержка метаданных Envoy

Envoy версии 1.16 и выше позволяет отправлять метаданные ext_authz без использования заголовков. Благодаря этому и другим изменениям мы теперь предоставляем более подходящие коды HTTP-ответов для отклоненных запросов и больше не нуждаемся в установке фильтра RBAC в Envoy. Посмотреть

Эта функция поддерживается только в Envoy 1.16+ и Istio 1.9+.

После этого изменения в файл конфигурации Envoy (envoy-config.yaml) больше не добавляется следующая конфигурация:

additional_request_headers_to_log:
    - x-apigee-accesstoken
    - x-apigee-api
    - x-apigee-apiproducts
    - x-apigee-application
    - x-apigee-clientid
    - x-apigee-developeremail
    - x-apigee-environment

Если вам нужно добавить заголовки в запросы для особого случая, просто задайте свойство append_metadata_headers:true в файле config.yaml адаптера.

Разделение прокси-сервера remote-token и прокси-сервера remote-service

Прокси-сервер remote-service был переработан и разделен на два отдельных прокси-сервера. В версии 2.0.x при инициализации будут установлены два прокси API: remote-service и remote-token. Конечные точки /token и /certs были перенесены из прокси-сервера remote-service в remote-token.

Это изменение позволяет разделить функции. Теперь прокси-сервер remote-service используется только для внутреннего обмена данными между адаптерами, а прокси-сервер remote-token предоставляет пример рабочего процесса OAuth, который можно настроить. Мы никогда не перезаписываем ваш собственный прокси-сервер remote-token, даже если используется команда provision --force-proxy-install.

Поддержка сбора данных

Доступно только для Apigee X и Apigee Hybrid.

Теперь адаптер поддерживает передачу метаданных Envoy функции сбора данных Apigee, которая отправляет данные, собранные в указанных вами переменных, в аналитику Apigee для использования в специальных отчетах.

RBAC не требуется

Как мы уже отмечали в разделе Поддержка метаданных Envoy, теперь мы сразу отклоняем неавторизованные запросы без отдельного фильтра RBAC. Поскольку RBAC не используется, клиенты будут получать от адаптера следующие коды статуса HTTP:

  • 401 Unauthorized (Не авторизовано)
  • 403 Forbidden
  • 429 Too Many Requests (Слишком много запросов)
  • Ошибка 500: внутренняя ошибка сервера

Если вы хотите разрешить неавторизованные запросы, добавьте в файл config.yaml адаптера следующий код: auth:allow_unauthorized:true

Заголовки x-apigee-* больше не добавляются по умолчанию

Как уже отмечалось в разделе Поддержка метаданных Envoy, заголовки x-apigee-* больше не добавляются по умолчанию. Если вы хотите добавить их, задайте значение append_metadata_headers:true в файле config.yaml. Эта конфигурация полностью необязательна и должна использоваться только в том случае, если необходимо пересылать заголовки в целевой сервис вышестоящего уровня.

Сопоставление запроса с целевым объектом удаленного сервиса

Семантика свойства конфигурации api_header осталась такой же, как у свойства target_header (по умолчанию по-прежнему используется имя целевого хоста), а содержимое указанного заголовка по-прежнему будет соответствовать атрибуту Целевой сервис API или полю apiSource в операции продукта API (только для Apigee Hybrid и Apigee X).

Чтобы переопределить значение этого заголовка с помощью метаданных Envoy, вы можете передать элемент метаданных apigee_api из Envoy в адаптер, чтобы напрямую указать цель удаленного сервиса продукта API или источник API операции продукта API. Чтобы настроить адаптер, добавьте в файл конфигурации Envoy (который можно создать с помощью интерфейса командной строки адаптера) код, похожий на приведенный ниже:

typed_per_filter_config:
  envoy.filters.http.ext_authz:
    "@type": type.googleapis.com/envoy.extensions.filters.http.ext_authz.v3.ExtAuthzPerRoute
    check_settings:
      context_extensions:
        apigee_api: httpbin.org
Аналитика отклоненных запросов регистрируется сразу

Теперь адаптер Envoy будет сразу регистрировать отклоненные запросы в аналитике, как требуется, а не ждать, пока запрос вернется в журнал доступа. Это более эффективный способ, который не требует прикреплять к запросу метаданные.

Удалена поддержка UDCA

Потоковая передача в универсальный агент сбора данных (UDCA) Apigee в Apigee Hybrid и Apigee X больше не требуется для аналитики, поскольку она была заменена прямой загрузкой. Мы просто удалили устаревшую поддержку этого параметра.

Добавлена поддержка mTLS для Edge for Private Cloud в командах CLI для инициализации и привязок

Пользователи Apigee Edge для частного облака могут указать сертификаты TLS на стороне клиента и корневой сертификат с помощью параметров ‑‑tls‑cert, ‑‑tls‑key и ‑‑tls‑ca соответственно при инициализации или перечислении привязок продуктов с помощью CLI.

Поддержка mTLS между адаптером и средой выполнения Apigee

Вы можете предоставить клиентские TLS-сертификаты в разделе tenant файла config.yaml адаптера, чтобы использовать mTLS между адаптером и средой выполнения Apigee. Это изменение применяется ко всем поддерживаемым платформам Apigee. Он также включает mTLS для аналитики на платформе Apigee Edge для частного облака. Подробнее о том, как настроить mTLS между адаптером и средой выполнения Apigee…

Устраненные проблемы

  • Исправлена проблема, из-за которой несколько конфигураций операций с одним и тем же источником API использовали одинаковые идентификаторы сегментов квоты и вызывали конфликты при расчете квоты. (Проблема #34)
  • Исправлена проблема, из-за которой операции без указанных глаголов приводили к отклонению запроса (ожидаемое поведение – разрешить все глаголы, если ни один не указан). (Проблема #39)

v1.4.0

16 декабря 2020 г. мы выпустили версию 1.4.0 адаптера Apigee для Envoy.

Поддерживаемые платформы

Мы публикуем двоичные файлы для macOS, Linux и Windows.

Мы публикуем образы Docker из дистрибутивов Google distroless, Ubuntu и Ubuntu с Boring Crypto.

В этой версии поддерживаются следующие платформы:

  • Apigee Hybrid версии 1.3.x, 1.4.x (дата выпуска ожидается), Apigee Edge для общедоступного облака, Apigee Edge для частного облака и Apigee в Google Cloud
  • Istio версий 1.5, 1.6, 1.7, 1.8
  • Envoy версий 1.14, 1.15, 1.16

Функции и улучшения

Функция Описание
Прокси remote-service больше не нужно связывать с продуктом API, в котором используются целевые объекты удаленного сервиса.

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

  • Продукт API remote-service больше не создается во время инициализации.
  • Команда bindings verify CLI больше не актуальна и устарела.
Для инициализации больше не требуется роль администратора организации Apigee.

Вместо того чтобы требовать разрешение администратора организации для инициализации, теперь можно использовать роли IAM Creator и Deployer. Чтобы успешно выполнить инициализацию, необходимо предоставить обе эти роли.
(применяется только к Apigee в Google Cloud и Apigee Hybrid)

Другие проблемы и исправления

  • Устранена проблема, из-за которой при повторной инициализации Apigee без параметра --rotate возникала ошибка.
  • Теперь CLI для инициализации считывает и повторно использует учетные данные сервисного аккаунта Аналитики из указанного файла config.yaml (проблема № 133).

Версия1.3.0

В понедельник, 23 ноября, мы выпустили версию 1.3.0 адаптера Apigee для Envoy.

Поддерживаемые платформы

Мы публикуем двоичные файлы для macOS, Linux и Windows.

Мы публикуем образы Docker из дистрибутивов Google distroless, Ubuntu и Ubuntu с Boring Crypto.

В этой версии поддерживаются следующие платформы:

  • Apigee Hybrid версии 1.3.x, 1.4.x (дата выпуска ожидается), Apigee Edge для общедоступного облака, Apigee Edge для частного облака и Apigee в Google Cloud
  • Istio версий 1.5, 1.6, 1.7, 1.8
  • Envoy версий 1.14, 1.15, 1.16

Функции и улучшения

Функция Описание
Поддержка групп операций с товарами в API. OperationGroups связывают ресурсы и связанные с ними ограничения квоты в прокси-сервере или удаленном сервисе с методами HTTP.
(применяется только к Apigee в Google Cloud и Apigee Hybrid)
Удалена поддержка динамического прямого прокси-сервера при создании примеров. Из-за этого изменения клиенты должны включать заголовок HOST, если имя хоста отличается от целевого хоста удаленного сервиса, заданного в продукте API. Один из способов:
curl -i http://localhost:8080/httpbin/headers -H "HOST:httpbin.org"

Подробнее о том, как создать продукт API…

Поддержка сервисных аккаунтов и Workload Identity. Чтобы разрешить загрузку данных аналитики в Apigee при запуске адаптера вне гибридного кластера Apigee, необходимо использовать параметр analytics-sa с командой apigee-remote-service-cli provision. Кроме того, адаптер теперь поддерживает Workload Identity в Google Kubernetes Engine (GKE). Подробнее о команде provision…
(применяется только к Apigee в Google Cloud и Apigee Hybrid)
Новый атрибут конфигурации jwt_provider_key. Этот ключ добавляется в файл конфигурации. Он представляет ключ payload_in_metadata поставщика JWT в конфигурации Envoy или издателя JWT RequestAuthentication в конфигурации Istio.
Атрибут конфигурации KeepAliveMaxConnectionAge теперь по умолчанию имеет значение "1 минута". Предыдущее значение по умолчанию составляло 10 минут. Это изменение позволит более плавно масштабировать кампании. Это значение также используется для срока хранения потока журнала доступа. Подробнее о файле конфигурации…
Удалены команды CLI. Поддержка следующих команд CLI прекращена. Мы рекомендуем использовать Edge API для обновления целевых сервисов API-продуктов:
  • apigee-remote-service-cli bindings add
  • apigee-remote-service-cli bindings remove
Добавлена новая команда CLI. Команда:
apigee-remote-service-cli samples templates

перечислены доступные варианты, которые можно использовать с флагом --template в команде samples create. Подробнее об интерфейсе командной строки…

Изменена существующая команда CLI. Команда apigee-remote-service-cli samples create была изменена. Флаги, относящиеся к шаблонам Envoy или Istio, проверяются строго, и при неправильном использовании флагов возвращаются ошибки. Параметр native больше не поддерживается. Чтобы получить список доступных шаблонов, используйте команду apigee-remote-service-cli samples templates. См. также справочное руководство по CLI.
Ответ конечной точки /token теперь соответствует спецификации OAuth2. В ответ был добавлен параметр access_token, а параметр token стал устаревшим.

Версия 1.2.0

В среду, 30 сентября, мы выпустили версию 1.2.0 адаптера Apigee для Envoy.

Поддерживаемые платформы

Мы публикуем двоичные файлы для macOS, Linux и Windows.

Мы публикуем образы Docker из дистрибутивов Google distroless, Ubuntu и Ubuntu с Boring Crypto.

В этой версии поддерживаются следующие платформы:

  • Apigee Hybrid версии 1.3.x
  • Istio версий 1.5, 1.6 и 1.7
  • Envoy версий 1.14 и 1.15

Функции и улучшения

Функция Описание
Поддержка Apigee в Google Cloud Теперь вы можете использовать адаптер Apigee для Envoy с Apigee в Google Cloud. Адаптер можно запустить в собственном кластере или в виде удаленного сервиса для Envoy как собственный исполняемый файл или в контейнере. Настройте адаптер в Apigee с помощью команды provision.
Прямая загрузка данных аналитики Теперь вы можете настроить адаптер Apigee для прямой загрузки данных аналитики в Apigee. Если вы используете Apigee Hybrid, то благодаря этой функции адаптер можно развернуть в отдельном кластере Kubernetes, а не в том, где установлен Apigee Hybrid. Чтобы включить прямую загрузку, используйте новый флаг --analytics-sa с командой provision. Подробнее о команде provision…
Проверка работоспособности возвращает значение "Готов" после загрузки данных о товарах API из Apigee Проверка работоспособности Kubernetes не вернет значение "Готов", пока данные продукта API не будут загружены из Apigee. Это изменение помогает масштабировать и обновлять систему, поскольку трафик не будет отправляться на новый экземпляр адаптера, пока он не будет готов.

Другие проблемы и исправления

  • Исправлена проблема, которая могла привести к взаимной блокировке при синхронизации квот (проблема № 17).
  • Аннотации Prometheus были перенесены в спецификацию пода (проблема № 69).
  • Исправлена проблема, из-за которой неправильно генерировались ошибки проверки (Issue #62).

Версия 1.1.0

В среду, 26 августа, мы выпустили версию 1.1.0 адаптера Apigee для Envoy.

Поддерживаемые платформы

Мы публикуем двоичные файлы для macOS, Linux и Windows.

Мы публикуем образы Docker из дистрибутивов Google distroless, Ubuntu и Ubuntu с Boring Crypto.

В версии 1.1.0 поддерживаются следующие платформы:

  • Apigee Hybrid версии 1.3
  • Istio версий 1.5, 1.6 и 1.7
  • Envoy версий 1.14 и 1.15

Функции и улучшения

Функция Описание
Как проверить привязки В интерфейс командной строки добавлена новая команда apigee-remote-service-cli bindings verify. Эта команда проверяет, что у указанного связанного продукта API и связанных с ним приложений разработчика также есть связанный продукт удаленного сервиса. Подробнее о том, как проверить привязку…
Создание образцов В интерфейс командной строки добавлена новая команда apigee-remote-service-cli samples create. Эта команда создает примеры файлов конфигурации для нативных развертываний Envoy или Istio. Файлы config, которые вы создадите с помощью этой команды, заменят файлы примеров, установленные вместе с адаптером для Envoy в предыдущих версиях. Команда "Примеры"
Аутентификация OAuth2 Теперь адаптер использует аутентификацию OAuth2, когда для Apigee Edge включена многофакторная аутентификация (MFA). Используйте флаг --mfa всякий раз, когда используете флаг --legacy.
Контейнер без дистрибутива Теперь в качестве базового образа Docker по умолчанию адаптер использует образ distroless от Google (gcr.io/distroless/base) вместо scratch.

Другие проблемы и исправления

  • Исправлена проблема с интерфейсом командной строки для команд привязки в OPDK. (#29)
  • Квота может зависнуть при потере подключения (apigee/apigee-remote-service-envoy). (#31)
  • Образы Docker теперь создаются с пользователем без прав root (999).
  • В примерах Kubernetes пользователь не должен быть root-пользователем.
  • Для команд curl, направленных на конечные точки прокси, больше не требуется использовать --http1.1. Пометка удалена из примеров.

Версия 1.0.0

В пятницу, 31 июля, мы выпустили общедоступную версию адаптера Apigee для Envoy.

Поддерживаемые платформы

Мы публикуем двоичные файлы для macOS, Linux и Windows.

Мы публикуем образы Docker с нуля, а также на основе Ubuntu и Ubuntu с Boring Crypto.

В версии 1.0.0 поддерживаются следующие платформы:

  • Apigee Hybrid версии 1.3
  • Istio версий 1.5 и 1.6
  • Envoy версий 1.14 и 1.15

Дополнения и изменения

В адаптер были внесены следующие изменения:

  • Go Boring builds

    Теперь доступна новая сборка, в которой используются соответствующие стандарту FIPS библиотеки Go BoringSSL.

  • Изменения флага уровня журнала

    Флаги уровня ведения журнала для сервиса apigee-remote-service-envoy были изменены для обеспечения согласованности:

    Старый флаг Новая пометка
    log_level log-level
    json_log json-log
  • Новые флаги CLI

    В команды CLI token добавлены новые флаги:

    Флаг Описание
    --legacy Установите этот флаг, если вы используете облачную версию Apigee Edge.
    --opdk Установите этот флаг, если вы используете Apigee Edge для частного облака.