
Boundary enables identity-based access management for dynamic infrastructure.
Boundary — это прокси с учётом идентификации, который обеспечивает простой и безопасный способ доступа к хостам и критически важным системам в вашей сети.
С помощью Boundary вы можете:
Boundary спроектирован так, чтобы его было просто понять, он хорошо масштабируется и отказоустойчив. Он может работать в облаках, on-prem, защищённых анклавах и т.д., и не требует установки агента на каждом конечном хосте, что делает его подходящим для доступа к управляемым/облачным сервисам и контейнерным рабочим процессам в дополнение к традиционным хост-системам и сервисам.
Для получения дополнительной информации обратитесь к разделу «What is Boundary?» на сайте Boundary.
Boundary состоит из двух серверных компонентов:
В реальной установке Boundary, скорее всего, будет один или несколько контроллеров, работающих вместе с одним или несколькими рабочими узлами. Один бинарный файл Boundary может действовать в любом из этих двух режимов или в обоих одновременно.
Кроме того, Boundary предоставляет Desktop-клиент и CLI для конечных пользователей, чтобы запрашивать и устанавливать авторизованные сеансы с ресурсами в сети.
Boundary не требует установки программного обеспечения на ваших хостах и сервисах.
Boundary имеет две внешние зависимости:
База данных содержит конфигурацию Boundary и информацию о сеансах. Узлы контроллера должны иметь доступ к базе данных.
Значения, являющиеся секретами (например, учётные данные), шифруются в базе данных. В настоящее время в качестве базы данных поддерживается PostgreSQL; она протестирована с Postgres 12 и выше.
Boundary использует только распространённые расширения, и поддерживаются как размещённые, так и самостоятельно управляемые экземпляры. В большинстве случаев всё, что вам нужно, — это конечная точка базы данных и соответствующие учётные данные.
Boundary использует ключи KMS для различных целей, таких как защита секретов, аутентификация рабочих узлов, восстановление данных, шифрование значений в конфигурации Boundary и другое. Boundary широко использует деривацию ключей, чтобы избежать расползания этих высокоценных ключей.
Вы можете использовать любой облачный KMS или Vault's Transit Secrets Engine для удовлетворения требования KMS.
Запуск Boundary в более постоянном контексте требует нескольких дополнительных шагов, таких как написание простых файлов конфигурации, чтобы сообщить узлам, как подключиться к их базе данных и KMS. Шаги ниже, а также дополнительная информация, необходимая для постоянных установок, подробно описаны в нашем Installation Guide.
⚠️ Не используйте ветку
mainкроме случаев разработки или тестирования. Boundary 0.10 представил ветки релизов, за которыми безопасно следить, однако миграции вmainмогут быть перенумерованы при необходимости. Команда Boundary не сможет оказать помощь, если длительное использованиеmainприведёт к поломкам миграций или другим ошибкам.
Download the latest release of the server binary and appropriate desktop client(s) from our downloads page
У Boundary есть режим dev, который вы можете использовать для тестирования. В режиме dev вы можете запустить и
контроллер, и рабочий узел одной командой, и они обладают
следующими свойствами:
Если вы соответствуете следующим локальным требованиям, вы можете быстро приступить к работе с Boundary:
Просто выполните:
make install
Это соберёт Boundary. (При первом запуске будут загружены и скомпилированы
UI-ресурсы; это займёт несколько дополнительных минут.) После завершения запустите Boundary в
режиме dev:
$GOPATH/bin/boundary dev
Обратите внимание, что для разработки могут потребоваться другие инструменты; чтобы установить набор инструментов в версиях, используемых командой Boundary, выполните:
make tools
В противном случае вы можете столкнуться с ошибками при выполнении make install. Также важно
отметить, что использование make tools установит различные инструменты, используемые для разработки Boundary,
в обычный каталог Go-бинарей; это может перезаписать или получить приоритет над инструментами,
которые уже могут быть установлены в системе.
Запустите серверный бинарный файл командой:
boundary dev
Это запустит сервис Controller, прослушивающий http://127.0.0.1:9200 для
входящих API-запросов, и сервис Worker, прослушивающий http://127.0.0.1:9202
для входящих запросов на сеансы. Также будут созданы различные ресурсы по умолчанию и
отображена различная полезная информация, такая как имя для входа и пароль,
которые можно использовать для аутентификации.
Для простого теста Boundary в режиме dev вам, как правило, не нужно
настраивать вообще никакие ресурсы! Но полезно понять, что режим dev
сделал для вас, чтобы затем сделать следующие шаги. По умолчанию режим dev создаст:
global для начальной аутентификации, содержащую метод аутентификации
типа Password, а также учётную запись для входа.global и проектную область внутри
организации.127.0.0.1)22 (например, SSH)Вы можете зайти в веб-интерфейс Boundary или использовать его API, чтобы изменить эти значения по умолчанию, например, если вы хотите подключиться к другому хосту или вам нужно изменить порт для подключения.
Теперь давайте фактически установим соединение с вашим локальным SSH-демоном через Boundary:
dev, это будет boundary authenticate password -auth-method-id ampw_1234567890 -login-name admin -password password. (Обратите внимание, что если вы не укажете флаг password, вас
попросят ввести его.)boundary connect ssh -target-id ttcp_1234567890. Если вы хотите изменить
имя пользователя, передайте -username <name> в команду.Изучите возможности настройки цели, чтобы протестировать ограничение (или увеличение) числа
подключений на сеанс или установку максимального лимита времени; попробуйте отменить
активный сеанс со страницы сеансов или через boundary sessions, создайте свои
собственные команды с помощью boundary connect -exec и так далее.
Этот пример — простой способ начать работу, но он опускает несколько ключевых шагов, которые могут быть предприняты в производственном контексте:
Обратите внимание: Мы очень серьёзно относимся к безопасности Boundary и доверию наших пользователей. Если вы считаете, что нашли проблему безопасности в Boundary, пожалуйста, ответственно раскройте её, связавшись с нами по адресу [email protected].
Благодарим вас за интерес к участию в разработке! Пожалуйста, обратитесь к CONTRIBUTING.md за руководством.