API7 Enterprise v3.2.16: Интегрированные Secret Providers
October 10, 2024
В API7 Enterprise может храниться большое количество конфиденциальной информации, такой как SSL-сертификаты и приватные ключи, учетные данные для аутентификации потребителей (логины и пароли), а также данные, необходимые для подключения некоторых плагинов к внешним системам.
Концепция "Поставщиков секретов" (Secret Providers) была введена в API7 Enterprise версии 3.2.16. Теперь мы можем легко добавлять ресурсы поставщиков секретов для интеграции с внешними менеджерами секретов, такими как HashiCorp Vault, AWS Secrets Manager и GCP Secret Manager, и ссылаться на конфиденциальную информацию, хранящуюся внешне, с использованием переменных. Формат ссылки выглядит следующим образом:
$secret://$manager/$id/$secret_name/$key
Как использовать поставщиков секретов?
Добавление поставщика секретов
В меню группы шлюзов добавлена новая опция "Поставщик секретов". Нажмите кнопку, чтобы перейти на страницу списка поставщиков секретов. Затем нажмите кнопку "Добавить поставщика секретов" в правом верхнем углу страницы.
В появившемся окне заполните основную информацию о поставщике секретов, выберите тип службы управления секретами, например, HashiCorp Vault. Затем укажите адрес доступа к службе и токен аутентификации для вашей конфигурации HashiCorp Vault.
Просмотр поставщика секретов
После создания мы можем просмотреть конкретные детали конфигурации и пример переменной секрета на странице деталей поставщика секретов.
Формат переменной секрета: 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, что повышает безопасность.
Аналогично, при работе с неформальными страницами, такими как редактор плагинов, мы также можем напрямую вводить значение переменной Secret в виде строки в любое поле, поддерживающее ссылки на Secrets.

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

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

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