API7 Enterprise v3.2.16: Интегрированные Secret Providers

Zhihuang Lin

Zhihuang Lin

October 10, 2024

Products

В API7 Enterprise может храниться большое количество конфиденциальной информации, такой как SSL-сертификаты и приватные ключи, учетные данные для аутентификации потребителей (логины и пароли), а также данные, необходимые для подключения некоторых плагинов к внешним системам.

Концепция "Поставщиков секретов" (Secret Providers) была введена в API7 Enterprise версии 3.2.16. Теперь мы можем легко добавлять ресурсы поставщиков секретов для интеграции с внешними менеджерами секретов, такими как HashiCorp Vault, AWS Secrets Manager и GCP Secret Manager, и ссылаться на конфиденциальную информацию, хранящуюся внешне, с использованием переменных. Формат ссылки выглядит следующим образом:

$secret://$manager/$id/$secret_name/$key

Как использовать поставщиков секретов?

Добавление поставщика секретов

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

Добавление поставщиков секретов в API7 Enterprise

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

Просмотр поставщика секретов

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

Детали поставщика секретов в API7 Enterprise

Формат переменной секрета: secret://manager/$id/$secret_name/$key, где:

  • $secret: Фиксированный префикс, не требует замены
  • $manager: Служба управления секретами
  • $id: Идентификатор ресурса поставщика секретов
  • $secret_name: Имя секрета в службе управления секретами
  • $key: Ключ, соответствующий секрету в службе управления секретами

Например, если идентификатор поставщика секретов — my-provider, а тип службы управления секретами — HashiCorp Vault, и вы хотите сослаться на секрет с именем my-secret и ключом password, соответствующая переменная секрета будет выглядеть так:

$secret://vault/my-hashicorp-vault/my-secret/password

В настоящее время поддерживается HashiCorp Vault в качестве службы управления секретами. Поддержка AWS Secrets Manager и GCP Secret Manager будет добавлена в ближайшее время.

Использование переменной секрета

После создания поставщика секретов вы можете ссылаться на конфиденциальную информацию, хранящуюся внешне, в различных ресурсах API7 Enterprise через переменные. Например, при добавлении учетных данных Basic Authentication для потребителя, вы можете выбрать хранение конфиденциальной информации, такой как пароли, во внешней службе управления секретами и ссылаться на нее в API7 Enterprise, что повышает безопасность.

Ссылка на поставщиков секретов в API7 Enterprise

Аналогично, при работе с неформальными страницами, такими как редактор плагинов, мы также можем напрямую вводить значение переменной Secret в виде строки в любое поле, поддерживающее ссылки на Secrets.

Использование секретной информации при включении плагинов

Просмотр ссылочных отношений

Когда мы ссылаемся на переменную из my-provider в учетных данных потребителя, мы можем просмотреть эту ссылочную связь в списке ссылок поставщика секретов. Другие ссылочные ресурсы также будут отображаться в этом списке, что упрощает отслеживание использования поставщика секретов.

Ссылки на поставщика секретов

Редактирование или удаление поставщика секретов

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

Редактирование или удаление поставщика секретов в API7 Enterprise

Итог

Интеграция с внешними службами управления секретами, такими как HashiCorp Vault, повышает удобство ссылок на конфиденциальную информацию, хранящуюся внешне, в различных ресурсах API7 Enterprise. Эта интеграция снижает риски и затраты, связанные с ручным управлением такой информацией. В будущем мы планируем поддерживать больше типов служб управления секретами, чтобы удовлетворить растущие потребности пользователей, обеспечивая гибкость и безопасность в управлении конфиденциальной информацией.

Tags: