
Boundary enables identity-based access management for dynamic infrastructure.
Boundary é um proxy ciente de identidade que fornece uma maneira simples e segura de acessar hosts e sistemas críticos na sua rede.
Com o Boundary, você pode:
Boundary foi projetado para ser simples de entender, altamente escalável e resiliente. Ele pode ser executado em nuvens, on-prem, enclaves seguros e muito mais, e não requer que um agente seja instalado em cada host final, tornando-o adequado para acesso a serviços gerenciados/em nuvem e fluxos de trabalho baseados em contêineres, além de sistemas e serviços host tradicionais.
Para obter mais informações, consulte "O que é Boundary?" no site do Boundary.
O Boundary consiste em dois componentes de servidor:
Uma instalação do Boundary no mundo real provavelmente consistirá em um ou mais controladores emparelhados com um ou mais workers. Um único binário do Boundary pode atuar em qualquer um, ou em ambos, desses dois modos.
Além disso, o Boundary fornece um cliente Desktop e CLI para que os usuários finais solicitem e estabeleçam sessões autorizadas a recursos em uma rede.
O Boundary não requer que software seja instalado em seus hosts e serviços.
O Boundary tem duas dependências externas:
O banco de dados contém as informações de configuração e sessão do Boundary. Os nós do controller devem ser capazes de acessar o banco de dados.
Valores que são segredos (por exemplo, credenciais) são criptografados no banco de dados. Atualmente, o PostgreSQL é suportado como banco de dados e foi testado com Postgres 12 e superior.
O Boundary usa apenas extensões comuns, e tanto instâncias hospedadas quanto autogerenciadas são suportadas. Na maioria dos casos, tudo o que você precisa é de um endpoint de banco de dados e das credenciais apropriadas.
O Boundary usa chaves KMS para vários fins, como proteger segredos, autenticar workers, recuperar dados, criptografar valores na configuração do Boundary e muito mais. O Boundary usa derivação de chave extensivamente para evitar a proliferação de chaves de alto valor.
Você pode usar qualquer KMS em nuvem ou o Transit Secrets Engine do Vault para atender ao requisito de KMS.
Executar o Boundary em um contexto mais permanente requer algumas etapas adicionais, como escrever alguns arquivos de configuração simples para informar aos nós como acessar seu banco de dados e KMS. As etapas abaixo, juntamente com as informações extras necessárias para instalações permanentes, estão detalhadas em nosso Guia de Instalação.
⚠️ Não use o branch
mainexceto para casos de desenvolvimento ou teste. O Boundary 0.10 introduziu branches de release que devem ser seguros para acompanhar; no entanto, as migrações emmainpodem ser renumeradas se necessário. A equipe do Boundary não poderá fornecer assistência se a execução demaina longo prazo resultar em quebras de migração ou outros bugs.
Baixe a versão mais recente do binário do servidor e o(s) cliente(s) desktop apropriado(s) em nossa página de downloads
O Boundary tem um modo dev que você pode usar para testes. No modo dev, você pode iniciar tanto um
controller quanto um worker com um único comando, e eles têm as
seguintes propriedades:
Se você atender aos seguintes requisitos locais, poderá começar a usar o Boundary rapidamente:
Basta executar:
make install
Isso compilará o Boundary. (Na primeira vez em que for executado, ele buscará e compilará
os assets da UI; o que levará alguns minutos extras.) Após a conclusão, execute o Boundary no
modo dev:
$GOPATH/bin/boundary dev
Observe que o desenvolvimento pode exigir outras ferramentas; para instalar o conjunto de ferramentas nas versões usadas pela equipe do Boundary, execute:
make tools
Sem fazer isso, você pode encontrar erros ao executar make install. Também é importante
observar que usar make tools instalará várias ferramentas usadas para o desenvolvimento
do Boundary no diretório normal de binários do Go; isso pode sobrescrever ou ter precedência
sobre ferramentas que já estejam instaladas no sistema.
Inicie o binário do servidor com:
boundary dev
Isso iniciará um serviço Controller escutando em http://127.0.0.1:9200 para
solicitações de API recebidas e um serviço Worker escutando em http://127.0.0.1:9202
para solicitações de sessão recebidas. Também criará vários recursos padrão e
exibirá várias informações úteis, como um nome de usuário e senha
que podem ser usados para autenticar.
Para um teste simples do Boundary no modo dev, você geralmente não precisa
configurar nenhum recurso! Mas é útil entender o que o modo dev
fez por você para que possa dar os próximos passos. Por padrão, o modo dev criará:
global para autenticação inicial, contendo um Método de
Autenticação do tipo Senha, juntamente com uma Conta para login.global, e um Escopo de projeto dentro da
organização.127.0.0.1)22 (por exemplo, SSH)Você pode entrar na interface web do Boundary ou usar sua API para alterar esses valores padrão, por exemplo, se quiser se conectar a um host diferente ou precisar modificar a porta na qual se conectar.
Em seguida, vamos realmente fazer uma conexão com o daemon SSH local através do Boundary:
dev, isso seria boundary authenticate password -auth-method-id ampw_1234567890 -login-name admin -password password. (Observe que se você não incluir a flag password, será
solicitado que a forneça.)boundary connect ssh -target-id ttcp_1234567890. Se quiser ajustar
o nome de usuário, passe -username <nome> para o comando.Explore as possibilidades de configuração de alvo para testar a limitação (ou o aumento) do
número de conexões por sessão ou a definição de um limite máximo de tempo; tente cancelar
uma sessão ativa na página de sessões ou via boundary sessions, crie seus
próprios comandos com boundary connect -exec e assim por diante.
Este exemplo é uma maneira simples de começar, mas omite várias etapas importantes que podem ser adotadas em um contexto de produção:
Observe: Levamos a segurança do Boundary e a confiança de nossos usuários muito a sério. Se você acredita ter encontrado um problema de segurança no Boundary, divulgue-o de forma responsável entrando em contato conosco pelo e-mail [email protected].
Obrigado pelo seu interesse em contribuir! Consulte CONTRIBUTING.md para obter orientações.