Примечания к выпуску адаптера 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 для команды samples CLI. Эти версии теперь поддерживаются для образцов:
    • Версия посланника с 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.

Исправлены проблемы

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

v2.0.2

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

Исправлены проблемы

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

v2.0.0

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

Особенности и улучшения

Особенность Описание
Поддержка мультитенантной среды

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

Поддержка API Envoy v3
Поддержка метаданных посланника

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 .

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

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

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

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

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

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

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

  • 401 Несанкционированный
  • 403 Запрещено
  • 429 Слишком много запросов
  • 500 Внутренняя ошибка сервера

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

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

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

Пользовательское сопоставление запроса с целью удаленной службы

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

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

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 удалена.

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

Добавлена ​​поддержка mTLS для Edge для частного облака в командах CLI предоставления/привязок.

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

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

Вы можете предоставить сертификаты TLS на стороне клиента в разделе tenant файла config.yaml адаптера, чтобы использовать mTLS между адаптером и средой выполнения Apigee. Это изменение применяется ко всем поддерживаемым платформам Apigee. Он также позволяет использовать mTLS для аналитики для платформы Apigee Edge for Private Cloud. Дополнительные сведения см. в разделе Настройка mTLS между адаптером и средой выполнения Apigee .

Исправлены проблемы

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

v1.4.0

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

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

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

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

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

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

Особенности и улучшения

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

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

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

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

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

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

v1.3.0

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

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

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

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

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

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

Особенности и улучшения

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

См. раздел Создание продукта API.

Учетные записи службы поддержки и удостоверения рабочей нагрузки. Чтобы разрешить загрузку аналитических данных в Apigee при запуске адаптера за пределами гибридного кластера Apigee, необходимо использовать параметр analytics-sa с командой apigee-remote-service-cli provision . Кроме того, адаптер теперь поддерживает идентификацию рабочей нагрузки в Google Kubernetes Engine (GKE). См. команду «Предоставить» .
(Применимо только к Apigee в Google Cloud и гибридному Apigee)
Новый атрибут конфигурации 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 .

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

v1.2.0

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

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

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

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

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

  • Apigee гибридная версия 1.3.x
  • Istio версии 1.5, 1.6, 1.7
  • Посланники версии 1.14, 1.15

Особенности и улучшения

Особенность Описание
Поддержка Apigee в Google Cloud Теперь вы можете использовать адаптер Apigee для Envoy с Apigee в Google Cloud . Вы можете запустить адаптер в отдельном кластере или запустив Remote Service for Envoy как собственный двоичный файл или в контейнере. Подготовьте адаптер в Apigee с помощью команды обеспечения .
Прямая загрузка аналитических данных Теперь вы можете настроить адаптер Apigee для прямой загрузки аналитических данных в Apigee. Если вы используете гибрид Apigee, эта новая функция позволяет развернуть адаптер в собственном кластере Kubernetes за пределами кластера, в котором установлен гибрид Apigee. Чтобы включить прямую загрузку, используйте новый флаг --analytics-sa с командой provision . См. команду предоставления .
Проверка работоспособности возвращает «Готово» после загрузки данных продукта API из Apigee. Проверка работоспособности Kubernetes не вернет «Готово», пока данные продукта API не будут загружены из Apigee. Это изменение помогает при масштабировании и обновлении, поскольку трафик на вновь созданный адаптер не будет отправляться до тех пор, пока он не будет готов.

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

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

v1.1.0

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

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

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

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

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

  • Гибрид Apigee версия 1.3
  • Istio версии 1.5, 1.6, 1.7
  • Посланники версии 1.14, 1.15

Особенности и улучшения

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

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

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

v1.0.0

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

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

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

Мы публикуем образы докеров с нуля, Ubuntu и Ubuntu с помощью Boring Crypto.

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

  • Гибрид Apigee версия 1.3
  • Истио версии 1.5, 1.6
  • Посланник версии 1.14, 1.15

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

Между выпуском v1.0-beta4 и общедоступной версией в адаптер были внесены следующие изменения:

  • Скучные сборки

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

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

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

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

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

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