Канонический справочник для изменений, улучшений и исправлений ошибок в Boundary.
[::1]
).
С данной изменением, если предоставленный адрес является просто литералом IPv6, заключение адреса в квадратные скобки не является валидным.
Кроме того, входящий адрес, содержащий литерал IPv6, может быть изменён Boundary для соответствия стандарту RFC 5952.
(PR)Введение механизма мягкого удаления для пользователей в кэше клиента. (PR).
Динамический каталог хостов GCP: Добавление поддержки динамического каталога хостов для обнаружения экземпляров виртуальных машин GCP Compute Engine. (PR).
Область работы (worker domain) была переработана для создания ясных функций домена для операций работников, улучшения читаемости и поддерживаемости запросов работников, а также повышения производительности базы данных. (PR).
Добавлена поддержка сетей с двойным стеком для операций AWS. (PR)
Коммуникации между работниками и контроллерами были переработаны для улучшения производительности и надежности на больших масштабах. Работники старше версии v0.19.0 будут поддерживаться до выпуска v0.20.0 в соответствии с нашей политикой совместимости работников и контроллеров. (https://developer.hashicorp.com/boundary/docs/enterprise/supported-versions#control-plane-and-worker-compatibility)com/boundary/docs/enterprise/supported-versions#control-plane-and-worker-compatibility)).
Добавлено ограничение параллелизма на хеширование паролей для всех методов аутентификации пароля.
(PR). Это избегает рывкового использования памяти и процессора во время параллельных попыток аутентификации метода пароля. Количество параллельных операций хеширования можно задать новым параметром конфигурации concurrent_password_hash_workers
в разделе конфигурации контроллера или новой переменной окружения BOUNDARY_CONTROLLER_CONCURRENT_PASSWORD_HASH_WORKERS
. По умолчанию ограничение составляет 1.
ui: Улучшение фильтра рабочих процессов для целей, хранилищ учетных данных и хранилищ данных. (PR).### Исправления ошибок
Исправление ошибки при применении BOUNDARY_MAX_RETRIES для boundary cli. Ранее установка этой переменной окружения приводила к максимальному количеству попыток равному gst 2, независимо от заданного значения. (PR).
Исправление ошибки при парсинге IPv6 адресов. Ранее установка адреса цели или начального адреса upstream в файле конфигурации приводила к некорректному значению. (PR).
Исправление проблемы, при которой при запуске сессии всегда отображается ограничение подключений равное 0. (PR).
Исправление ошибки, при которой ключевое слово children
не применяло соответствующие разрешения для нескольких ресурсов.
(PR).
Исправление ошибки, при которой транзакции базы данных не использовали правильные функции чтения и записи и контекст. (PR).
Удаление избыточного подзапроса из обновления псевдонима. (PR).
children
не применяло соответствующие разрешения для нескольких ресурсов.
(PR).Плагины Boundary, обрабатывающие операции динамического каталога хостов (например, плагины
AWS
и Azure), теперь могут работать в рабочих процессах.
(PR)* Добавлена поддержка фильтра рабочих процессов для динамических каталогов хостов (только для Enterprise и HCP Boundary): Операторы теперь могут задать фильтр рабочих процессов при создании динамического каталога хостов. При задании всех запросов плагина будут отправляться соответствующему рабочему процессу для обработки. (PR)* Поддержка аутентификации AssumeRole
для динамических каталогов хостов AWS: Операторы теперь могут настроить динамические каталоги хостов AWS, используя подход аутентификации AssumeRole
от Amazon, предоставляя действительный Role ARN при создании каталога хостов. (PR и PR)
Улучшенная совместимость плагина хранения MinIO с другими службами за счет исключения заголовков контрольной суммы в PutObject
.
(PR)
ui: Добавлена поддержка UI для поиска и пагинации псевдонимов. (PR)
ui: Добавлена поддержка UI для фильтрации и пагинации записи сессий. (PR)
ui: Улучшена процедура выбора/отмены выбора разрешений в нескольких областях. (PR)
Предотвращено возникновение гонки данных в системе журналирования событий Boundary. (PR)
Обновлена иконка типа корзины хранения в представлении цели. (PR)
Разрешено пользователю повторную попытку аутентификации, если она находится в состоянии ожидания с OIDC. (PR)
controllers
из конфигурации рабочего процесса, которое было устаревшим с версии 0.9.0 для initial_upstreams
.
(PR)## 0.17.2 (2024/09/25)WithRecursive
и WithSkipCurlOutput
, вместо постоянного установки значения в true, несмотря на переданные значения. (PR)## 0.17.1 (2024/08/21)GetDownstreamWorkersTimeout
, которая
представляет период времени (как продолжительность) таймаута для вызова
GetDownstreamWorkers
в DownstreamWorkerTicker
. В настоящее время эта опция
не документирована и считается внутренней. (PR)GetDownstreamWorkersTimeout
, которая
представляет период времени (как продолжительность) таймаута для вызова
GetDownstreamWorkers
в DownstreamWorkerTicker
. В настоящее время эта опция
не документирована и считается внутренней. (PR)чтобы исправить проблему, при которой контрольная сумма файла устанавливается некорректно для каждой части загрузки, что приводит к её провалу. Это изменение исправляет загрузки файлов размером более 16 МБ и ограничивает размер загрузки до 5 ГБ. (PR) и (PR)
Исправлена проблема, при которой авторизация сессии возвращала статус 401
,
если псевдоним не существует или псевдоним не разрешается ни к чему. Теперь
возвращается статус 404
. (PR)### Безопасность
curl (корпоративная версия): Бинарный файл curl больше не включается в опубликованные образы контейнеров Docker для корпоративной версии Boundary для устранения уязвимости CVE-2024-7264. CVE-2024-7264
SBC (Storage Bucket Credential): В этом выпуске введена SBC, ресурс, представляющий учетные данные для аутентификации и авторизации с внешним объектным хранилищем. Существуют два типа SBC: управляемый секрет и переменная окружения. (PR), (PR) и (PR)
Состояние SBC: В этом выпуске введено состояние SBC, которое представляет возможность выполнения определенного действия рабочим с использованием объектного хранилища. Типы разрешений SBC (запись, чтение и удаление) представляют действия, необходимые для выполнения регулярных задач с внешним объектным хранилищем. Каждый тип разрешений имеет состояние разрешения (ок, ошибка, неизвестно).
Фильтрация рабочих SBC: Для протокол-осведомленных рабочих, требующих взаимодействия с внешним объектным хранилищем, рабочие будут фильтроваться по состоянию SBC в зависимости от действия и требуемого разрешения.
UI: Добавить поддержку множественного области разрешений для ролей (PR)
UI: Добавить поддержку тегов API для рабочих и улучшить фильтрацию рабочих для целей (PR)
Обновлено gRPC до версии 1.61.1 (PR)
(PR)
В списке ролей теперь содержится информация о диапазоне разрешений (PR)### Устаревшие/Измененные функции
Поле grant_scope_id
в ролях, которое было отмечено как устаревшее в версии 0.15.0, было удалено.
(PR)
boundary daemon
устарела в пользу новой команды boundary cache
. Поведение осталось прежним. Команда boundary search
осталась неизменной.
(PR)include_terminated
в запросе на получение сессий будет удалено в ближайшем релизе. После завершения процесса устаревания и удаления поля завершенные сессии будут возвращаться во всех ответах на запросы получения сессий, если они не будут исключены с помощью поля фильтра.
(PR)idle in transaction
.Если контроллер настроен на использование max_open_connections
, и подвергается достаточной нагрузке в виде запросов от рабочих процессов, взаимодействующих с сессиями, например, при авторизации новых соединений сессий, контроллер мог зависнуть после использования всех соединений с базой данных, оставив их в состоянии idle in transaction
. Это было вызвано комбинацией проблем, включая отсутствие тайм-аута запроса для запросов grpc от рабочих процессов к контроллеру и попыткой репозитория сессий использовать отдельное соединение с базой данных для получения kms.Wrapper после начала транзакции с базой данных. Исправления переместили эти операции kms за пределы транзакции и установили максимальное время запроса для запросов grpc на основе конфигурации прослушивателя кластера.
(PR и
PR)
boundary aliases create target -value example.boundary -destination-id ttcp_1234567890
и подключитесь к целевой цели с помощью псевдонима с помощью boundary connect example.boundary
.netbsd
. Пожалуйста, обратитесь к следующей
документации
для получения информации о создании корзины хранения.* ui: Добавить поддержку фильтрации и пагинации в UI
(PR)citext
, чтобы обеспечить уникальность псевдонимов в случае нечувствительности к регистру.coalesce
, который можно использовать для сравнения шаблона с несколькими возможными значениями, возвращая первое непустое значение. Например, это можно использовать в библиотеке учетных данных для разрешения значения имени пользователя, которое может быть составлено из имени или имени входа в зависимости от метода аутентификации, например {{ coalesce .Account.Name .Account.LoginName}}
(PR)## 0.15.2 (2024/03/11)Обновление Go версии до 1.21.8 для устранения (CVE-2024-24783, CVE-2023-45290, CVE-2023-45289, CVE-2024-24785, CVE-2024-24784)
Обновление Protobuf Go для устранения CVE-2024-24786
/v1/billing:monthly-active-users
и новый командный пункт boundary billing monthly-active-users
, который можно использовать для просмотра количества ежемесячно активных пользователей.kms
был удален. С версии 0.13.0, если значение use_deprecated_kms_auth_method
не было установлено в конфигурации worker, новый метод kms
уже использовался; теперь это просто недоступный вариант.В соответствии с примечаниями в Boundary 0.12.0 и 0.14.0, теперь это ошибка, если адрес на хосте или целевом узле содержит порт. С этой версии, это ограничение также затрагивает существующие адреса (не только создание/обновление через API), поэтому любые существующие адреса, содержащие порт, не смогут использоваться как часть запроса авторизации сессии целевого узла.
Поле grant_scope_id
в ролях теперь устарело в пользу поддержки нескольких областей разрешений.
В соответствии с примечанием в Boundary 0.13.1, поле id
в разрешениях изменилось на ids
, что позволяет включать несколько идентификаторов; существующие разрешения, отправленные в Boundary, продолжат работать, но разрешения, использующие "id", больше не могут быть добавлены или установлены на роли.
Все конечные точки списка, кроме workers, теперь возвращают первые 1000 элементов вместо всех элементов, если не указаны параметры. Количество возвращаемых элементов можно настроить через новое значение конфигурации контроллера max_page_size
. Административный интерфейс, командная строка и пакет API автоматически пагинируют результаты.* Множественные области разрешений в ролях: Роли теперь поддерживают множественные области разрешений, а также специальные значения this
, children
(только глобально/организация) для применения ко всем прямым потомкам области, и descendants
(только глобально) для применения ко всем потомкам области. Эти возможности используют новые действия add-grant-scopes
, set-grant-scopes
и remove-grant-scopes
для ролей. В настоящее время поле grant_scope_id
в ролях продолжает поддерживать установку одного разрешения, но эта возможность теперь устарела.
Политики (только для Enterprise и HCP Boundary): В этом выпуске введены Политики, ресурс Boundary, представляющий Политику Управления для применения. Первая реализация направлена на Политики Хранения, что позволяет администраторам автоматизировать процесс хранения и удаления записей сессий, обеспечивая, что они хранят только ту информацию, которая явно требуется с точки зрения безопасности/соответствия.
Новые универсальные команды read
, update
и delete
были добавлены. Эти команды позволяют работать с ресурсами, указывая их идентификатор напрямую (например, boundary update ttcp_1234567890
).Подтипы не требуются (например, эта команда эквивалентна boundary targets update tcp -id ttcp_1234567890
), и любые флаги, указанные после идентификатора, передаются соответствующему подкомандному типу. После ввода идентификатора поддерживается автозавершение.
(PR)
Параметр key_id
в библиотеках SSH-сертификатов теперь принимает использование шаблонных параметров
(PR)
Пагинация в конечных точках списка: Все конечные точки списка, кроме рабочих, теперь поддерживают пагинацию.
WithListToken
можно использовать для запроса списка обновленных и удаленных ресурсов относительно последнего полученного результата.max_page_size
для управления стандартным и максимальным размером страниц при пагинации.Новая команда search
была добавлена, позволяющая быстрый поиск целей или сессий. Использует клиентскую кэшированную систему, добавленную в этом выпуске. Клиентская кэшированная система автоматически запускается в фоновом режиме после успешного выполнения любого команды, которая взаимодействует с Boundary контроллером.Чтобы отключить автоматический запуск клиентского кэша, установите переменную окружения BOUNDARY_SKIP_CACHE_DAEMON
или передайте флаг -skip-cache-daemon
при выполнении команды, которая может его запустить. Команды daemon start
, daemon stop
, daemon status
и daemon add-token
были добавлены для управления кэшем. Кэш в настоящее время не работает с Boundary экземплярами, которые требуют использования клиентских сертификатов. ## 0. 14. 3 (2023/12/12)### Новые и улучшенные возможности
Добавлена возможность применения ограничений скорости на API контроллере. В этой версии ограничения скорости включены по умолчанию. Подробности о стандартных ограничениях скорости, настройке ограничений скорости и отключении ограничений скорости см. в упомянутом PR. (PR)
Добавлена поддержка OIDC prompts. Используя prompts, Relying Party (RP) может настраивать процесс аутентификации и авторизации в соответствии со своими специфическими требованиями и улучшать пользовательский опыт. [OIDC Authentication request] (https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest) сервер. (PR)
Обновлена зависимость go-kms-wrapping/extras/kms для возможности использования внешних обёрток без идентификатора ключа в конфигурации KMS. Примечание: это исправление позволяет использовать ключи GCP KMS вместе с Boundary, что перестало работать в версии v0.13.0. (PR)
Два параметра клиента Vault не использовались правильно при создании клиента Vault. (PR)
Параметр TLS Skip Verify
устанавливался только в том случае, если также был настроен параметр CA Cert
. Это исправление устанавливает параметр TLS Skip Verify
, независимо от других параметров.Параметр TLS Server Name
никогда не устанавливался. Плохо написанный код. Это исправление теперь устанавливает параметр на клиенте Vault, если параметр TLS Server Name
настроен в хранилище учетных данных Vault.### Безопасность
deps: Обновлено использование версии Go до v1.21.5. Это исправление направлено на устранение нескольких уязвимостей безопасности. Самое значительное для Boundary — исправление в net/http для ограничения избыточного объёма данных в формате chunked. См. https://groups.google.com/g/golang-announce/c/iLGK3x6yuN
Высокое потребление CPU: Проверка состояния GRPC-соединения в фоновом режиме вызывала высокое потребление процессора. Это было вызвано длительным циклом, который проверял изменения состояния GRPC-соединения между рабочим узлом и адресом соединения выше по иерархии. Цикл не корректно ожидал изменений состояния GRPC-соединения перед выполнением. Проблема была исправлена путем правильного обновления состояния, которое определяет, когда цикл проверки состояния GRPC-соединения должен запускаться. (PR)
Методы аутентификации LDAP: Исправлено кодирование клиента mTLS, что предотвратило Boundary от установки mTLS-соединений с сервером LDAP. (Issue, PR).## 0.14.1 (2023/10/17)### Безопасность
deps: Обновление версии Go до v1.21.3; gRPC до v1.58.3; golang.org/x/net до v0.17.0. Это сделано для устранения уязвимости безопасности в стеке HTTP, где злонамеренный HTTP/2 клиент, который быстро создает запросы и сразу же сбрасывает их, может вызвать чрезмерное потребление ресурсов сервера.
vault
был удален в пользу vault-generic
. Например, вместо команды
boundary credential-libraries create vault
теперь следует использовать
boundary credential-libraries create vault-generic
.-format=json
, теперь используют только поле status_code
.
Поле status
было удалено.application-credential-source
было удалено. Вместо него следует использовать поле brokered-credential-source
.
(PR, устаревший changelog).Исправлены ошибки в переводе слов "Yöntem" на "Метод".### Новые и Улучшенные CLI: Добавлена поддержка указания команды, которая будет выполнена на удаленном хосте при использовании подкоманды boundary connect ssh
.
(Задача,
Пулл-запрос).
maximum_page_size
и dereference_aliases
(Пулл-запрос).authenticate
с методом аутентификации паролем на Windows, когда пароль не вводится при вводе имени пользователя.
(PR)id
изменено на ids
(но id
всё ещё будет приниматься до версии 0.15.0). В поле ids
теперь можно указывать несколько идентификаторов через запятую (текстовый формат) или массив (JSON формат).(PR).
Окружение разработки: При запуске boundary dev
начальный метод аутентификации LDAP с идентификатором amldap_1234567890
теперь находится в состоянии public-active, поэтому он будет возвращён в ответе от boundary auth-methods list
.### Устаревшие/Изменённые возможности
Разрешения теперь могут принимать более одного идентификатора на строку разрешений (или запись в JSON) через параметр ids
. В версии 0.15.0 возможность добавления новых разрешений через параметр id
будет удалена.
PKI worker аутентификация: Запись аутентификации работника может быть сохранена более одного раза, если она соответствует существующей записи для данного ключа аутентификации работника. Исправляет краевый случай, когда работник пытался выполнить аутентификацию, и контроллер успешно сохранил запись аутентификации работника, но был отключен до того, как вернуть детали аутентификации работнику. (PR)
Управляемые LDAP группы: добавление/установка/удаление принципала из роли теперь работает правильно, когда это управляемая LDAP группа. (PR и PR)
Записи SSH-сессий (только для Enterprise и границы HCP): Цели SSH теперь могут быть настроены для записи сессий. Записи подписываются и хранятся в хранилище. Записи можно воспроизводить в административном интерфейсе.
Хранилища: В этом выпуске введены хранилища, ресурсы границы, представляющие корзину в внешнем объектном хранилище. Хранилища могут быть определены на глобальном или организационном уровне. При ассоциировании с целом SSH хранилище используется для хранения записей сессий. В этом выпуске поддерживается только AWS S3.
Формат файла BSR (Boundary Session Recording): BSR — это новая спецификация, определяющая иерархическую структуру файлов и двоичный формат файла. Содержимое BSR включает все данные, переданные между пользователем и целевым объектом в течение одной сессии, а также метаданные и сводную информацию. BSR также включает файлы контрольных сумм и подписей для криптографической проверки содержимого BSR, а также набор ключей, зашифрованных с помощью KMS для использования в проверке BSR. Формат BSR предназначен для расширяемости для поддержки различных протоколов. В этом выпуске BSR поддерживает протокол SSH. Он также поддерживает преобразование записи канала SSH в формат asciicast, который может воспроизводиться с помощью asciinema. * Чтобы узнать больше о новой функции, обратитесь к документации.
Рабочие KMS: Рабочие KMS теперь имеют функциональное равенство с рабочими PKI (они поддерживают многократное подключение и приватный доступ к Vault) и поддерживают отдельные KMS для аутентификации нижестоящих объектов в различных сетях. Подробнее см. документацию по конфигурации рабочих. (PR)
роли: Выполняется дополнительная проверка корректности выданных разрешений при подаче заявки (PR)
цели: Новый параметр default_client_port
позволяет указывать порт по умолчанию для использования на стороне клиента при подключении к цели, если он не переопределен клиентом через -listen-port
(PR)
cli/api/sdk: Добавлен новый тип метода аутентификации LDAP с поддержкой создания, чтения, обновления, удаления и перечисления (см. новые CLI-команды ldap
, доступные для операций CRUDL; см. примеры), а также возможность аутентификации с их помощью через SDK, CLI, административный интерфейс и десктопный клиент. (PR)
ui: Отображение внешних имен при перечислении динамических хостов (PR)
ui: Добавлена поддержка аутентификации через LDAP (PR)* Динамический каталог хостов: Теперь можно просматривать имя хоста AWS или Azure при перечислении хостов в CLI, административной консоли и десктопном клиенте. (PR)
Добавлена конфигурация для отчетности по лицензиям (только для Enterprise)### Устаревшие изменения* Введение нового варианта KMS для регистрации рабочих узлов (как описано ниже) требует опции для использования устаревшего поведения. Это рекомендуется только в том случае, если требуется совместимость с рабочими узлами версии до 0.13, использующими метод аутентификации KMS. Требование опции для использования устаревшего поведения устраняет некоторые потенциально запутанные ситуации при выборе между старым и новым механизмом. Для активации опции добавьте use_deprecated_kms_auth_method = true
в блок конфигурации worker
. Обратите внимание, что если рабочий узел версии 0.13+ использующий KMS подключается к контроллеру версии 0.13+ использующему KMS, переход на новый метод произойдет автоматически. Для возврата к старому методу после этого потребуется удаление рабочего узла и его повторное добавление с указанием поля конфигурации use_deprecated_kms_auth_method
.
При добавлении разрешений к ролям теперь выполняется дополнительная проверка валидности. Эта дополнительная проверка предназначена для отклонения разрешений, которые не соответствуют зарегистрированным форматам разрешений или для комбинаций идентификаторов и типов, которые фактически не могут использоваться вместе. Эти разрешения ранее принимались без ошибок, но никогда не приводили к выдаче разрешений, что вызывало путаницу.В результате попытки записи таких разрешений в роли могут привести к ошибке; сообщение об ошибке содержит подсказки для устранения проблемы.
WithAutomaticVersioning
для токенов аутентификации в Go SDK: эта опция неправильно генерировалась для ресурсов токенов аутентификации, которые не поддерживают версионирование. Это технически является разрывом совместимости, но это была бесполезная опция, которую не стоило использовать. Она была удалена.
Плагины: Введение службы плагина хранения привело к переименованию репозиториев плагинов Azure и AWS Host, чтобы исключить элемент host
из названия репозитория: - https://github.com/hashicorp/boundary-plugin-host-aws -> https://github.com/hashicorp/boundary-plugin-aws
Аналогично пакет plugins/host
был переименован в plugins/boundary
(PR1,
PR2,
PR3,
PR4).
цели: authorize-session
теперь работает правильно, когда используется имя цели как
идентификатор, и имя цели содержит одну или несколько черточек
(PR).
перечисление ресурсов: запросы API для перечисления ресурса (цели, сессии, пользователи, и т.д.) теперь правильно возвращают все ресурсы, на которые у вызывающего есть соответствующие права доступа (PR).
сессии: Исправлена ошибка, которая приводила к замедлению времени отклика при перечислении сессий с большим количеством подключений (PR).
ui: Исправлена ошибка client secret
для методов аутентификации OIDC
(PR).
ui: Исправлена ошибка при ссылке на Хост с экрана Хост-набора динамического каталога Хостов (PR).
открытого исходного кода версии 0.12.3; те же исправления будут включены в версию 0.13.0 OSS.### Исправления ошибок
boundary connect
.При использовании библиотеки учетных данных хранилища без заданного типа учетных данных, boundary
будет пытаться с наибольшими усилиями распарсить любые предоставленные учетные данные. Если учетные данные
успешно распарсились, они могут быть использованы подпроцессом, запущенным при использовании команд подкоманд connect
, например ssh
или psql
. Изменение подтипа библиотеки учетных данных хранилища приводило к тому, что этот падающий парсинг не работал. Обратите внимание, что если библиотека учетных данных имеет тип учетных данных, заданный с помощью -credential-type
при создании библиотеки учетных данных, учетные данные были правильно распарсированы. Этот падающий парсинг теперь исправлен, но для поддержки старых клиентов, библиотеки учетных данных необходимо будет создать заново с типом учетных данных. PR
vault-ssh-certificate
, подтип библиотеки квалификаций vault
будет переименован в vault-generic
, чтобы обозначить его как библиотеку квалификаций, которая может использоваться в обобщенном виде для выдачи квалификаций из хранилища. Существующие библиотеки квалификаций с подтипом vault
будут обновлены до vault-generic
. Подтип vault
все еще будет приниматься как валидный подтип в запросах API к конечным точкам библиотек квалификаций, но он устарел. Вместо этого следует использовать vault-generic
. Кроме того, команды boundary credential-libraries create vault
и boundary credential-libraries update vault
все еще будут функционировать, но они устарели. Вместо этого следует использовать boundary credential-libraries create vault-generic
и boundary credential-libraries update vault-generic
. Также обратите внимание, что любая библиотека квалификаций, созданная с использованием подтипа vault
, как через API, так и через устаревшие команды, будет иметь подтип vault-generic
. Устаревшие подтипы и команды будут удалены в версии boundary 0.14.0, после чего vault-generic
должен быть использован.* В версии Boundary 0.1.8 использование опции -format=json
с CLI предоставляло status_code
для успешных запросов API. Однако, в случае, когда возвращалась ошибка, JSON использовал status
вместо status_code
. Эта несоответствующая практика была исправлена, теперь status_code
используется в обоих случаях. Для случаев ошибок status
все еще будет заполняться, но он устарел и будет удален в версии 0.14.0.обходя необходимость использования каталогов хостов, наборов хостов и отдельных хостов. (PR)
worker_filter
целевого объекта было устаревшим
и заменено на фильтры работников для исходящего и входящего трафика. Фильтры работников для исходящего трафика
определяют, какие работники используются для доступа к целевым объектам. Фильтры работников для входящего трафика
(только для HCP Boundary) определяют, какие работники используются для подключения к клиенту для инициирования сессии.
(PR)SIGHUP
, отправленный родительскому процессу; некоторые системы инициализации, в частности dumb-init
, передавали бы их дочерним процессам, что приводило бы к завершению работы плагина (PR)-format=json
JSON был несогласован в отчетах о кодах состояния. В успешных случаях использовался status_code
, но в случае ошибок использовался status
. Теперь status_code
используется в обоих случаях. В случае ошибок status
всё ещё заполняется, см. вышеупомянутые устаревшие функции для более подробной информации. (PR)job_run
. (PR)Шаблонирование параметров Vault: В библиотеках квалификации vault
пути и любые POST-тела могут содержать параметры, использующие синтаксис шаблонов Go (аналогично Consul-Template). Поддерживаемые шаблонные параметры включают (учтите, что значения учетных записей привязаны к учетной записи, связанной с токеном, делающим запрос):
{{ .User.Id }}
: идентификатор пользователя{{ .User.Name }}
: имя пользователя (из ресурса пользователя){{ .User.FullName }}
: полное имя пользователя (из учетной записи, соответствующей основному методу аутентификации в области пользователя; это может не быть заполнено или может отличаться от имени учетной записи в шаблоне){{ .User.Email }}
: адрес электронной почты пользователя (такая же оговорка, как и для FullName
){{ .Account.Id }}
: идентификатор учетной записи{{ .Account.Name }}
: имя учетной записи (из ресурса учетной записи){{ .Account.LoginName }}
: имя входа учетной записи (если используется этим типом учетной записи){{ .Account.Subject }}
: субъект учетной записи (если используется этим типом учетной записи){{ .Account.Email }}
: адрес электронной почты учетной записи (если используется этим типом учетной записи) Кроме того, в настоящее время существует одна функция, которая удаляет оставшуюся часть строки после указанной подстроки; это полезно для извлечения имени пользователя/учетной записи из адреса электронной почты. В следующем примере используется адрес электронной почты учетной записи, который может быть любым другим параметром: * {{ truncateFrom .Account.Email "@" }}
: это преобразует foo@example.com
в foo
Управление жизненным циклом ключей на уровне области: Теперь можно управлять жизненным циклом как ключей шифрования данных (KEKs), так и ключей данных (DEKs) с помощью новой функциональности вращения ключей и уничтожения ключей. Дополнительную информацию о новой функции можно найти в документации.
Уведомление об обновлении: Если ключ шифрования данных (DEK) для цели базы данных в области уничтожен, вам необходимо использовать API для отмены любых сессий, предшествующих обновлению. (PR)
Сессия: Количество полученных и переданных байтов в сессии теперь записывается и сохраняется. (PR)### Исправленные ошибки* accounts: Удаленные учетные записи аутентификации все еще отображались как связанные с пользователем при чтении данных пользователя (PR)
sessions: Исправлено отсутствие случайного порядка рабочих процессов при возврате клиентам на этапе authorize-session
, что могло привести к тому, что один рабочий процесс нес большую часть сессий
(PR)
workers: В некоторых условиях ошибки при отправке статуса контроллерам могли выводиться в stdout вместе с сообщением о том, что события не были успешно отправлены в журнал событий (PR)
workers: Исправлено панирование, которое могло произойти в определенных условиях (PR)
sessions: Исправлено панирование в контроллере при удалении рабочего процесса во время активных сессий (PR)
sessions: Исправлено панирование в рабочем процессе при удалении пользователя с активной сессией (PR)
sessions: Исправлено поведение, при котором чтение сессии после удаления связанного проекта приводило к ошибке (PR)
config: Исправлено поведение, при котором поставка нескольких блоков KMS с одинаковым назначением приводила к игнорированию всех, кроме последнего блока (PR)### Устаревшие/Измененные функции
Для стандартизации формата шаблонов, шаблоны в разрешениях теперь документируются с использованием нового стиля написания и формата; однако, предыдущий стиль продолжит работать.
worker_filter
при конфигурировании хранилища учетных данных Vault.json
в хранилищах учетных данных static
, что позволяет отправлять общий объект JSON в Boundary для использования в рабочих процессах посредничества учетных данных
(PR)SIGINT
или SIGTERM
(PR)add-host-sets
, remove-host-sets
и set-host-sets
для целей были устаревшими в пользу add-host-sources
, remove-host-sources
и set-host-sources
. Оригинально эти действия и вызовы API должны были быть
удалены в версии 0.6, но это было отложено, чтобы дать дополнительное время
клиентам для перехода. Теперь переход полностью завершен. Миграция базы
данных изменит любые разрешения в ролях на новые действия. Та же самая
замена была сделана для add-/remove-/set-credential-libraries
на
add-/remove-/set-credential-sources
, хотя эти действия были бы в строках
разрешений только в очень редких обстоятельствах, так как действия -sources
заменили действия -libraries
очень быстро.
(PR)разрешений из разрешений, если единственное разрешение было ограничено только набором "сам" действий и это было последним разрешением, которое было распознано (что было бы случайным в зависимости от многих факторов), общее множество разрешений было бы помечено как "только сам". Это приводило к тому, что сгенерированные разрешения были бы более ограничительными, чем следовало бы на основе разрешений. Это затрагивает только конечную точку списка сессий. Это приводило бы к тому, что пользователи, которым было предоставлено разрешение на просмотр сессий других пользователей, не могли бы видеть эти сессии в результатах списка (PR).## 0.10.4 (2022/09/13)
SIGHUP
: Рабочие теперь будут перечитывать значение initial_upstreams
из файла конфигурации при получении сигнала SIGHUP
. Это позволяет рабочим переподключаться к контроллерам, если полный набор контроллеров был изменен одновременно, без необходимости перезапуска рабочих. (PR)SIGHUP
: Контроллеры теперь будут перечитывать значение URL базы данных из файла конфигурации при получении сигнала SIGHUP
.Это особенно полезно для обновления учетных данных базы данных и сигнализации контроллеру использовать новые учетные данные без необходимости перезапуска. (PR)workers:create:worker-led
(например, через boundary workers create worker-led
) с недействительным токеном (Пулл-реквест)Исправлено: "vault: Корректное обработывание хранилищ и библиотек Vault, связанных с истекшим токеном Vault" → "vault: Корректное обработывание хранилищ и библиотек Vault, связанных с истёкшим токеном Vault"## 0.10.3 (2022/08/30)
project_id
для установленного плагина хоста
(Проблема,
Пулл-реквест).filter
не отправляется в админской UI
(PR).-attr
или -secret
, содержащих двоеточия
(PR).ssh
Тип цели с внедрением учетных данных (только для границы HCP): Граница приобрела новый тип цели ssh
. Используя этот тип, учетные данные в виде имени пользователя/пароля или приватного ключа SSH могут быть получены из библиотек учетных данных vault
или статических учетных данных и внедрены в сессию SSH между клиентом и конечным хостом. Это позволяет пользователям безопасно подключаться по SSH к удаленным хостам, никогда не владея действительными учетными данными для этого целевого хоста.ssh_private_key
, который позволяет отправлять имя пользователя/приватный ключ (и опциональный пароль) в Boundary для использования с внедрением учетных данных или рабочими процессами посредничества.boundary connect ssh
: мы расширили поддержку в помощнике boundary connect ssh
для посредничества учетных данных типа ssh_private_key
; команда автоматически передаст учетные данные в процесс ssh
(PR).boundary authenticate
, boundary accounts
: Включает использование синтаксиса env://
и file://
для указания местоположения пароля (PR).### Исправления ошибок* cli: Устранение проблем с очисткой плагинов после выхода из boundary dev
, boundary server
и boundary database init
(Проблема,
Пулл-запрос).boundary accounts change-password
: Исправление запроса подтверждения текущего пароля вместо нового
(Пулл-запрос)-token
в CLI: Передача токена таким образом может раскрыть его любому пользователю или службе, которая может просмотреть информацию о процессах. Этот флаг теперь должен ссылаться на файл на диске или переменную окружения.Прямое использование переменной окружения BOUNDARY_TOKEN
также устарело, так как она может появиться в информации о среде; формат env://
, поддерживаемый флагом -token
, заставляет процесс Boundary читать его вместо оболочки, что безопаснее.
(Пулл-запрос)-password
в CLI: То же изменение, выполненное выше для -token
, также применено к -password
или, для поддерживаемых типов ресурсов, -current-password
и -new-password
.
(Пулл-запрос)## 0.9.1 (2022/07/06)azure
плагин-хост: Поддержка нескольких MSI-идентификаторов
(Пулл-запрос)canceling
в завершенное состояние.
(PR).execution_dir
теперь учитывается для плагинов kms
(PR).Если определенное имя контроллера в конфигурационном файле содержит менее 10 символов, могут возникнуть ошибки при запуске, связанные с регистрацией задач. Это регрессия в данной версии и будет исправлено в следующей.### Новые и улучшенные возможности
Работники PKI: В этом выпуске введен новый тип работников pki
, который аутентифицируется в Boundary с помощью нового метода на основе сертификатов, что позволяет развертывать работников без использования общего KMS.
Креденты: В этом выпуске введен новый тип хранилища для ключей static
, которое просто принимает ключи, предоставленные пользователем, и хранит их (зашифрованными) напрямую в Boundary. В настоящее время хранилище ключей static
может хранить ключи типа username_password
. Эти ключи могут выступать в качестве источников ключей для целей, аналогично хранилищу ключей vault
, и таким образом могут быть предоставлены пользователям в момент авторизации сессии. (PR)
Интеграция boundary connect
для предоставления ключей: мы расширили интеграцию в помощники boundary connect
. В помощник ssh
добавлен новый стиль sshpass
, при использовании которого, если ключ содержит имя пользователя/пароль и sshpass
установлен, команда автоматически передаст ключи в процесс ssh
. Кроме того, по умолчанию помощник ssh
теперь использует имя пользователя из предоставленных ключей. (PR).
Контроллер: Улучшение времени отклика при перечислении сессий. Это также создает новый периодический процесс, который будет удалять завершенные сессии через час. См. раздел Deprecations/Changes для дополнительных деталей. (PR)com/hashicorp/boundary/pull/2160)).
фильтрация событий: Изменение фильтров событий для использования строчной буквы и змеиного стиля для элементов данных, как это делается в остальной части фильтров Boundary.
ui: Использование флага include_terminated
для перечисления сессий. (PR).
ui: Добавление руководства по быстрой настройке. (PR). ### Исправления ошибок* Параметр конфигурации execution_dir
плагина теперь уважается.
(PR).
ui: Исправление страницы пользователей, которая некорректно обновляет поля. (PR).
библиотек учетных данных
в отношении ресурсов Цели.Поля библиотеки
и действия были устаревшими в Boundary 0.5.0,
пожалуйста, используйте источники учетных данных
вместо них. См. изменение,
указанное выше, для дополнительных сведений (PR).
user_password
переименован в
username_password
, чтобы устранить любую неоднозначность относительно типа учетных данных.
Все существующие библиотеки учетных данных типа user_password
будут перенесены в
username_password
(PR).cancel_session()
для проверки завершенного состояния (Issue, PR)event.newError: missing error: invalid параметр
и обработка отмены сессии без TOFU-токенаwh_network_address_group
(которая теперь ссылается на wh_host_dimension
), wh_network_address_dimension
, и wh_network_address_group_membership
.
(PR)В новых областях, если создание по умолчанию ролей не отключено, роли теперь будут содержать разрешение для перечисления целей. Это всё ещё будет подчиняться правилам видимости перечисления, поэтому будут возвращены только те цели, на которые пользователь имеет разрешение на какое-либо действие (например, authorize-session
).### Новые и улучшенные возможности
конфигурация: Поле description
для работников теперь поддерживает установку из переменных окружения или файла на диске
(PR)
конфигурация: Поле max_open_connections
для базы данных в контроллерах теперь поддерживает установку из переменных окружения или файла на диске
(PR)
конфигурация: Поле execution_dir
для плагинов теперь поддерживает установку из переменных окружения или файла на диске
(PR)
конфигурация: Добавлена поддержка чтения конфигурации работников из переменных окружения и файлов (PR)
конфигурация: Поле description
для контроллеров теперь поддерживает установку из переменных окружения или файла на диске
(PR)
конфигурация: Добавлена поддержка чтения тегов работников из переменных окружения и файлов (PR)
конфигурация: Добавлена поддержка шаблонов go-sockaddr для адресов Worker и Controller (PR)
контроллеры/работники: Добавлен IP-адрес клиента в информацию входящего запроса, которая включается в события Boundary (PR)
хост: Каталоги хостов на основе плагинов теперь планируют обновления для всех своих наборов хостов при обновлении их атрибутов (PR)* области: По умолчанию роли в новых областях теперь содержат разрешение на просмотр целей (PR)
плагины/aws: Хосты на основе плагина AWS теперь включают DNS-имена в дополнение к уже предоставляемым IP-адресам
worker-auth
(PR)h2
), что могло привести к отсутствию общих шифровых наборов между Boundary API слушателем и этими клиентами. (PR)*
) действий разрешений. Если затронуто, пожалуйста, обновите действия разрешений
следующим образом:set-host-sets
-> set-hosts
add-host-sets
-> add-hosts
remove-host-sets
-> remove-hosts
(PR).auth-methods/<id>:authenticate:login
, которое было
устаревшим в Boundary 0.2.0, пожалуйста, используйте
auth-methods/<id>:authenticate
вместо.
(PR).credential
внутри действия auth-methods/<id>:authenticate
.
Это поле было устаревшим в Boundary 0.2.0, пожалуйста, используйте
attributes
вместо.
(PR).credential-store
, credential-library
и
managed-group
не принимались как конкретные значения типа в строках разрешений.
Также, исправление отсутствия отображения действий разрешений credential-store
в выводе области проекта. (PR)sessions
при чтении
области (PR)u_anon
) без токена, когда перечисление началось в области, где у пользователя нет соответствующих прав
(PR)type=<type>;output_fields=<fields>
без указания действия. В некоторых путях выполнения этот формат мог вызвать ошибку при валидации, хотя в коде ACL он обрабатывается правильно.
(PR)boundary targets authorize-session
(Issue,
PR)wh_user_dimension
добавлено четыре новых столбца:
auth_method_external_id
, auth_account_external_id
,
auth_account_full_name
и auth_account_email
.
(PR)hclog-text
.(PR)
principals
с ролями, где идентификаторы принципалов могут быть пользователями, группами и управляемыми группами, а не разделяться на отдельные поля и флаги. Это должно привести к более удобному пользовательскому интерфейсу по сравнению с отдельными флагами и полями. В этом выпуске 0.5 Boundary CLI получил параллельные флаги application-credential-source
к существующим флагам application-credential-library
, а также команды boundary targets add/remove/set-credential-sources
, которые аналогичны командам boundary targets add/remove/set-credential-libraries
.Эта параллельность распространяется на действия API и систему разрешений. В версии 0.6 будут удалены версии команд, флагов и действий с термином library.read
для учетной записи типа oidc
в выводе предоставляются оригинальный токен и утверждения userinfo. Это может значительно облегчить написание фильтров для создания управляемых групп.
(PR)error
, system
, observation
и audit
. Все события эмитируются в виде cloudevents, и мы поддерживаем как формат cloudevents-json
, так и кастомный формат cloudevents-text
Boundary. Примечания:
"-log-format json"
, так и "-event-format cloudevents-json"
при запуске Boundary.BOUNDARY_DEVELOPER_ENABLE_EVENTS
равна true.Мы ожидаем много изменений для событий аудита перед их общим использованием, включая данные, которые будут включены, и различные опции для сокрытия/шифрования этих данных. PRs:
hclog json, text форматы,
логовые адаптеры,
ненужные зависимости логов,
обновление eventlogger,
переход с hclog на события,
фильтрация событий,
cloudevents node,
системные события,
переход ошибок в события,
интеграция событий в серверы,
имя пакета событий,
события с использованием ctx,
добавление eventer,
и базовых типов событий
kms
в отдельных блоках (а также сообщения об ошибках)Хранилища учетных данных: В этом выпуске введены Хранилища учетных данных, с первым реализованным решением для Vault. Можно создать хранилище учетных данных, которое принимает периодический токен Vault (который будет поддерживать обновление) и информацию о подключении, позволяющую ему отправлять запросы к Vault.
Библиотеки учетных данных: В этом выпуске введены Библиотеки учетных данных, с первым
реализованным решением для Vault. Библиотеки учетных данных описывают, как отправлять запрос
для получения учетных данных из хранилища учетных данных. Первая библиотека учетных данных —
это тип generic
, который принимает пользовательский запрос для отправки в Vault, и поэтому
может работать для любого типа секретного движка Vault. Когда библиотека учетных данных
используется для получения учетных данных, если учетные данные содержат лицензию, Boundary
будет поддерживать обновление учетных данных, и аннулировать учетные данные, когда завершится
сессия, которая их запросила.
Брокер учетных данных: Библиотеки учетных данных могут быть подключены к целевым объектам; когда сессия авторизована против этого целевого объекта, учетные данные будут извлечены из библиотеки и затем переданы клиенту. Клиент может использовать эту информацию для подключения. что позволяет им получать выгоду от динамического генерирования учетных данных из Vault, но без необходимости иметь свой собственный вход в систему Vault или токен (см. ПРИМЕЧАНИЕ ниже).
Интеграция boundary connect
с брокером учетных данных: Кроме того, мы начали интеграцию
в boundary connect
помощники, начиная с этого выпуска с помощником для Postgres; если учетные
данные содержат имя пользователя/пароль и boundary connect postgres
является используемым
помощником, команда автоматически передаст учетные данные в процесс psql
.
Рабочий процесс теперь закроет любые существующие прокси-соединения, которые он обрабатывает, когда не может отправить запрос статуса контроллеру. Время ожидания для этой функции составляет 15 секунд. ЗАМЕЧАНИЕ: При использовании посредничества учетных данных помните, что если пользователь может подключиться напрямую к конечному ресурсу, он может использовать посредническое имя пользователя и пароль через это прямое подключение, чтобы обойти Boundary. Это не отличается от обычного поведения Boundary (если пользователь может подключаться напрямую, он может обойти Boundary), но стоит повторить.### Исправления ошибок
планировщик: удаляет ограничение на длину имени контроллера в базе данных Postgres, вызывающее ошибку при попытке планировщика запустить задачи (Проблема, Пулл-запрос).
Docker: обновляет скрипт точки входа для обработки большего количества подкоманд Boundary для улучшения пользовательского опыта
password
: Когда метод аутентификации oidc
был введен, учетным записям был присвоен префикс acctoidc
. К сожалению, учетные записи в методе password
использовали префикс apw
... ой, ошибка. Мы стандартизировались на префикс acct
и обновили метод password
, чтобы генерировать новые идентификаторы с префиксом acctpw
. Предыдущие идентификаторы продолжат работать.boundary dev
теперь распространяются на учетные записи, созданные в методах аутентификации password
и oidc
.cors_enabled
для прослушки изменяется так, чтобы он был эквивалентен значению параметра cors_allowed_origins
равному *
; то есть, принимать все источники. Это позволяет Boundary по умолчанию иметь админ-интерфейс и клиент-приложение рабочего стола, работающие без дальнейшего указания источников оператором. Это затрагивает только поведение по умолчанию; если cors_enabled
явно установлено в true
, поведение будет таким же, как и раньше. Это изменение было внесено в версии v0.2.1 из-за обнаруженной в версии v0.2.0 ошибки, которая приводила к тому, что все источники всегда принимались, но исправление этой ошибки выявило, что поведение по умолчанию затрудняет настройку для пользователей, чтобы они могли быстро запустить систему.Если операция cancel
выполняется для сессии, уже находящейся в состоянии отмены или завершения, будет возвращен код 200
и информация о сессии вместо ошибки.### Новые и улучшенные функции
сессии: Возвращать код 200
и информацию о сессии при отмене уже отмененной или завершенной сессии
(PR)
cors_enabled
на *
. (PR)## 0.2.2 (2021/05/17)aud
в виде строки или массива строк, Boundary будет правильно парсить JSON утверждений.
(Issue, PR)terminated
, так как соединения не правильно помечаются как закрытые.
(Issue 1, Issue 2, PR)json
команда больше не будет выводить уведомление о том, что она открывает ваш браузер.
(Issue, PR)delete
теперь возвращают статус-код 204
и пустое тело при успешном выполнении. Ранее это было невозможно из-за технического ограничения, которое было решено.* При использовании команды delete
в командной строке (CLI) теперь отображается успешное выполнение или обработка ошибки 404
, так же как и других ошибок 404
. Это означает, что статус-код будет ненулевым, а также будет отображаться сообщение об ошибке. Это делает действия delete
похожими на другие команды, которые передают ошибки в CLI. В случае использования опции -format json
, проверка того, была ли ошибка 404
или что-то другое, становится относительно простой, особенно при проверке соответствия статус-кода, возвращаемого API, (1
).При выводе данных из CLI в формате JSON, информация о ресурсах под ключами item
или items
(в зависимости от действия) теперь точно соответствует JSON, отправляемому контроллером, а не Go SDK-представлению, которое могло бы включать дополнительные поля или поля с типами, специфичными для Go. Это включает в себя действия delete
, которые ранее показывали объект, указывающий на существование, но теперь при успешном выполнении не показывают item
или ошибку API 404
.* Права доступа в новых ролях по умолчанию для области теперь обновлены для поддержки действий list
, read:self
и delete:self
для ресурсов auth-token
. Это позволяет пользователю просматривать и управлять своими собственными токенами аутентификации. (Так же, как и для других ресурсов, list
будет по-прежнему ограничен возвратом токенов, на которых пользователь имеет разрешение на выполнение действий, поэтому предоставление этой возможности автоматически не дает пользователю возможность просмотра токенов аутентификации других пользователей.)### Новые и улучшенные возможности* права доступа: Улучшение работы, проделанной в версии 0.2.0, для ограничения полей, возвращаемых при перечислении как анонимного пользователя. Теперь разрешения поддерживают новую секцию output_fields
. Эта секция принимает набор значений, разделенных запятыми (или в формате JSON, массив), которые соответствуют полям JSON, возвращаемым от API-запроса (для перечисления, это будет применяться к каждому ресурсу под полем items
). Если указаны для определенного ID или типа ресурса (и ограниченные к конкретным действиям, если они указаны), будут возвращены только указанные значения. Если не указаны output_fields
, используются значения по умолчанию. Для аутентифицированных пользователей значения по умолчанию включают все поля; для u_anon
значения по умолчанию включают поля, полезные для навигации и аутентификации в системе. В обоих случаях это значение может быть переопределено. Дополнительную информацию см. в документации по правам доступа.
cli/api/sdk: Добавлена поддержка запроса дополнительных значений области претензий OIDC от OIDC-провайдера при выполнении запроса аутентификации. (PR).
По умолчанию, Boundary запрашивает только значение области претензий "openid". Многие провайдеры, такие как Okta и Auth0, не возвращают стандартные претензии email и name при запросе стандартной области претензий (openid). Boundary использует стандартные претензии email и name для заполнения атрибутов Email
и FullName
OIDC-аккаунта. Если вы хотите заполнить эти атрибуты аккаунта, вам потребуется обратиться к документации вашего OIDC-провайдера для получения информации о том, какие области претензий требуются для возврата этих претензий в процессе аутентификации.
Boundary теперь предоставляет новый параметр метода аутентификации OIDC claims_scopes
, который позволяет добавлять несколько дополнительных значений области претензий к конфигурации метода аутентификации OIDC. Дополнительную информацию о значениях области претензий см. в документации OIDC. * cli: Соответствие формату вывода JSON с форматом JSON API по сети
(PR)
api: Возврат 204
вместо пустого объекта при успешных операциях delete
(PR)
actions: Новое действие no-op
позволяет выдавать разрешение на субъекту без передачи какого-либо действительного результата. Поскольку ресурсы не появляются в результатах списков, если у субъекта нет действий, разрешенных на этом ресурсе, это можно использовать для разрешения субъектам видеть значения в результатах списков без передачи read
или других возможностей для ресурсов. По умолчанию разрешения области были обновлены для передачи no-op,list
вместо read,list
.
(PR)
cli/api/sdk: Ресурсы пользователей имеют новые атрибуты для:
cli: Поддержка чтения и удаления токена пользователя через новые действия read:self
и delete:self
на токенах аутентификации. Если не указан идентификатор токена, будет использоваться сохраненный идентификатор токена (после запроса), или можно установить значение параметра -id
как "self"
, чтобы активировать это поведение без запроса. (PR)
cli: Новый командный запрос logout
удаляет текущий токен в Boundary и удаляет его из локального хранилища учетных данных, уважая параметр -token-name
(PR)
конфиг: Поле name
для рабочих и контроллеров теперь поддерживает установку из переменных окружения или файла на диске (PR)### Исправления ошибок
cors: Исправление для разрешения всех источников по умолчанию (PR)
cli: Теперь выполнение boundary database migrate
на незавершенной базе данных
является ошибкой. Используйте boundary database init
вместо этого.
(PR)
cli: Верно уважает флаг -format
при выполнении boundary database init
(PR)
По умолчанию, поддержка CORS разрешает все источники. Это связано с ошибкой
в обработке набора разрешенных источников, в сочетании с изменениями поведения
CORS для автоматического включения источника Desktop Client. Это будет исправлено
в версии 0.2.1. В то же время, это можно обойти, либо явно отключив CORS с
помощью cors_enabled = false
в блоке конфигурации listener
с назначением
api
; либо установив поле cors_allowed_origins
со значениями, отличными от
serve://boundary
(включая значения, которые не соответствуют никакому реальному
источнику).### Устаревшие/Изменения* Действие auth-methods/<id>:authenticate:login
устарело и будет удалено в ближайших релизах. (Да, это было сделано с целью устареть действие authenticate
; извините за изменение! ) Чтобы лучше поддерживать будущие методы аутентификации, а также потенциальные плагины, вместо определения пользовательских действий в пути URL, действие authenticate
будет принимать как карту параметров, так и параметр command
, который указывает на тип команды. Это позволяет рабочим процессам, требующим нескольких шагов, таких как OIDC, не требовать пользовательских поддействий. Кроме того, карта credentials
в действии authenticate
была переименована в attributes
, чтобы лучше соответствовать другим типам ресурсов. credentials
всё ещё работает в настоящее время, но будет удалена в ближайших релизах. Наконец, в Go SDK функция Authenticate
теперь требует передачи значения command
.
В связи с вышеуказанной изменением, выходные данные вызова API auth-methods/<id>:authenticate
будут возвращать значение command
и карту атрибутов, зависящих от данного значения command
. С точки зрения SDK, выходные данные функции Authenticate
возвращают карту, из которой можно легко распаковать конкретный тип (см. обновлённое действие authenticate password
для примера).* Анонимный список методов аутентификации: При перечислении методов аутентификации и областей без аутентификации (то есть, как анонимного пользователя u_anon
), теперь выводится только информация, необходимая для навигации к методу аутентификации и аутентификации к нему. Обеспечение доступа к списку для u_anon
к другим типам ресурсов в настоящее время не фильтрует никакую информацию. ### Новые и улучшенные возможности* cli/api/sdk: Добавлен новый тип метода аутентификации OIDC с поддержкой создания, чтения, обновления, удаления и перечисления (см. новые подкоманды oidc
CLI, доступные для операций CRUDL за примерами), а также возможность аутентификации с его помощью через SDK, CLI, административный интерфейс и десктопный клиент.
(PR)
сервер: При выполнении рекурсивного перечисления теперь не требуется разрешение на действие list
для вызывающего пользователя. Вместо этого заданный диапазон действует как начальная точка (так что будут показаны только результаты в пределах этого диапазона), и разрешение на действие list
оценивается для каждого диапазона.
(PR)
инициализация базы данных: Если база данных уже инициализирована, возвращается код выхода 0. Это соответствует работе команды database migrate
.
(PR)
json
(Issue,
PR)cli: При аутентификации, изменении пароля или выполнении нескольких других конкретных действий в командной строке, если формат вывода указан как json
, команда завершит работу с ошибкой (после выполнения API-запроса). Это связано с существующей ошибкой, которая была обнаружена из-за изменений в формате JSON, описанных в разделе "Изменения" ниже. Хотя большинство наших тестов уровня CLI работают с выводом в формате json
, поскольку наши тесты уровня CLI используют вспомогательную функцию токена во время выполнения, тест аутентификации использовал обычный табличный вывод, так как вывод был проигнорирован в любом случае. В результате наши тесты уровня CLI не обнаружили эту ошибку. Приносим извинения, и мы исправим это в следующем выпуске.
Изначально созданные области: Начиная с версии 0.1.6, при создании начальных областей при выполнении команды boundary database init
связанные с ними роли администратора не создаются. Ожидаемое поведение заключается в том, чтобы иметь роль, которая предоставляет автоматически созданному администратору разрешение "id=*;type=*;actions=*"
для каждой автоматически сгенерированной области.Чтобы установить ваши данные в ожидаемое состояние, вы можете добавить роль для пользователя-администратора в сгенерированных областях. Описание шагов для выполнения этого можно найти в этом gist. Это будет исправлено в следующем выпуске. ### Изменения/Устаревание* sdk (библиотека API на Go): Несколько функций сменили местоположение. В частности, вместо ResponseMap()
и ResponseBody()
ресурсы теперь просто выставляют Response()
. Этот более высокий уровень объекта ответа содержит карту и тело, а также выставляет StatusCode()
вместо отдельных ресурсов.
(PR)
cli: В формате вывода json
элемент ресурса теперь является объектом под ключом верхнего уровня item
; список элементов ресурсов теперь является списком объектов под ключом верхнего уровня items
. Это сохраняет верхний уровень для внесения других полезных данных позже (и HTTP-код состояния теперь включается).
(PR)
cli: В формате вывода json
ошибки теперь сериализуются как JSON-объект с ключом error
, а не выводятся как обычный текст.
(PR)
cli: Все ошибки, включая ошибки API, теперь записываются в stderr
. Ранее при использовании по умолчанию формата таблицы ошибки API записывались в stdout
.
(PR)
cli: Коды возврата ошибок были стандартизированы для всех команд CLI. Код ошибки 1
указывает на ошибку, сгенерированную реальным контроллером API; код ошибки 2
указывает на ошибку, возникшую из-за логики команды CLI; и код ошибки 3
указывает на ошибку, возникшую из-за ввода пользователя в команду.
(PR)(Иногда есть некоторые нюансы, действительно ли ошибка вызвана вводом пользователя или нет, но мы стремимся быть последовательными.)
(PR)### Новые и Улучшенные* фильтрация списка: Теперь список поддерживает фильтрацию результатов перед их возвратом пользователю. Фильтрация происходит на стороне сервера и использует булевые выражения по отношению к JSON-представлению возвращаемых элементов. Подробнее см. документацию. (PR 1) (PR 2) (PR 3)
сервер: Официально поддерживается перезагрузка параметров TLS при получении сигнала SIGHUP
. (Вероятно, это работало раньше, но не было полностью протестировано.) (PR)
сервер: При получении сигнала SIGHUP
, теги рабочих процессов будут перепарсены и использованы новые значения. (PR)
сервер: В дополнение к существующему параметру конфигурации прослушивателя tls_min_version
, теперь поддерживается параметр tls_max_version
. Обычно этот параметр следует оставить пустым, но он может быть полезен в ситуациях, например, когда балансировщик нагрузки имеет поврежденную поддержку TLS 1.3 или не поддерживает TLS 1.3 и флагирует его как недопустимое значение.## 0.1.7 (2021/02/16)Примечание: Этот выпуск исправляет проблему обновления, затрагивающую пользователей на PostgreSQL 11 при обновлении до версий 0.1.5 или 0.1.6, а также вносит изменения в среду разработки boundary dev
. В остальном выпуск идентичен версии 0.1.6; для получения дополнительной информации см. запись о версии 0.1.6.### Изменения/Отмены
boundary dev
теперь по умолчанию использует Postgres 11 вместо Postgres 12.
auth-methods/<id>:authenticate
отменено и будет удалено в нескольких выпусках. Вместо этого каждый метод аутентификации определит свои собственные действия, которые будут допустимы. Это необходимо для поддержки многоэтапных схем аутентификации в предстоящих выпусках. Для метода аутентификации password
новое действие — auth-methods/<id>:authenticate:login
.id=<some_id>;actions=<some_actions>
, где одно из действий — create
или list
. По определению этот формат работает только с отдельными ресурсами, поэтому create
и list
никогда не будут работать.type=<some_type>;actions=<some_actions>
, где одно из действий не create
или list
. Этот формат работает только с коллекциями, поэтому назначение дополнительных действий таким образом никогда не будет работать.boundary server
с значением cors_allowed_origins
равным serve://boundary
. Его можно отключить, установив cors_enabled = false
, или если вы хотите изменить параметры, установите cors_enabled = true
и другие связанные значения конфигурации.### Новые и улучшенные функции* сервер: При запуске в режиме одиночного сервера и отсутствии указания controllers
в блоке worker
, использовать public_cluster_addr
, если он указан
(PR)controller
параметр public_cluster_addr
теперь может быть указан как file://
или env://
URL для чтения значения из файла или переменной окружения
(PR)read
в стандартное разрешение области
(PR)controller
параметр public_cluster_addr
теперь может быть указан как file://
или env://
URL для чтения значения из файла или переменной окружения
(PR)read:self
и cancel:self
и включить их по умолчанию (в новых областях проектов) для всех сессий. Это позволяет пользователю читать или отменять любую сессию, связанную с их идентификатором пользователя. Действия read
и cancel
по-прежнему доступны для выполнения этих действий на сессиях, связанных с другими пользователями.### Исправления ошибок* api: Исправление ошибки nil pointer panic, которое могло возникнуть при использовании TLS
(Задача,
Пулл-запрос)ЗАМЕЧАНИЕ: Эта версия требует миграции базы данных через новую команду boundary database migrate
.
boundary connect
. Это сделано для укрепления защиты, а не для решения конкретной проблемы. Подробнее см. блог Go. (Пулл-запрос)list
. В результате scope list
, который используется интерфейсом для заполнения выпадающего списка области входа, будет пустым, если роль, предоставляющая пользователю u_anon
разрешение на list
, не будет обновлена для включения действия read
.database migrate
, которая обновляет схему базы данных до версии, поддерживаемой бинарным файлом boundary
(Пулл-запрос).### Исправления ошибок* controller/db: Правильная проверка завершения успешной инициализации базы данных при запуске контроллера или при выполнении команды database init
(Проблема)
(Внесение изменений)output-curl-string
с командами update
или add-/remove-/set-
и автоматическое управление версиями (то есть, флаг -version
не указан), теперь будет отображаться окончательный вызов вместо GET
, который получает текущую версию
(Проблема)
(Внесение изменений)database init
при отсутствии блока конфигурации контроллера
(Проблема)
(Внесение изменений)-1
. Это делает проще для людей начать понимать Boundary, не сталкиваясь с проблемами, связанными с некоторыми программами/протоколами, которые требуют нескольких соединений, что может быть сложно для новых пользователей.
(Внесение изменений)### Новые и улучшенные возможностиkube
для boundary connect
, который делает легким использование команд kubectl
через Boundary, включая использование kubectl proxy
(PR)hashicorp/boundary
(Изменение)0.0.0.0
без указания порта слушался только IPv4-authz-token
в команде boundary connect
(Изменение)## 0.1.1 (2020/10/22)Примечание: помимо изменений, отмеченных ниже в этом разделе, обратите внимание, что в настоящее время имена ресурсов чувствительны к регистру, но в будущем обновлении они станут регистронезависимыми, но нечувствительными к регистру для сравнений (например, при использовании их для доступа к целевым объектам).
none
для параметра -token-name
было отменено в пользу указания none
для нового параметра -keyring-type
.pass
теперь является по умолчанию типом хранилища ключей на платформах, отличных от Windows и macOS. Подробнее см. страницу документации CLI.-keyring-type
и тип keyring pass
для хранения токенов(Задача) (Пулл-реквест)
connect: Разрешить использование -target-name
вместе с либо -target-scope-id
, либо -target-scope-name
для подключения к целевым узлам, вместо использования ID целевого узла
(Пулл-реквест)
controller: Разрешить прослушивание API/Cluster через Unix доменные сокеты (Задача) (Пулл-реквест)
ui: Разрешить создание и назначение хоста к набору хостов напрямую из представления набора хостов (Задача) (Пулл-реквест)### Исправленные ошибки
cli: Исправление инициализации базы данных при использовании локали, отличной от английской (Задача) (Пулл-реквест)
cli: Исправление тире в выводе справки для ресурсов с составными именами (Задача) (Пулл-реквест)
controller: Разрешение подключения к Postgres при использовании удаленного Docker в режиме разработки (Задача) (Пулл-реквест)
controller, worker: Исправление прослушивания IPv6 адресов (Задача) (Пулл-реквест)
worker: Исправление установки адреса контроллера для работника в режиме разработки (Задача) (Пулл-реквест)
v0.1.0 — это первая версия Boundary. В связи с этим нет изменений, улучшений или исправлений ошибок по сравнению с предыдущими версиями.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )