
Boundary consente la gestione degli accessi basata sull'identità per infrastrutture dinamiche.
Boundary è un proxy identity-aware che offre un modo semplice e sicuro per accedere a host e sistemi critici sulla tua rete.
Con Boundary puoi:
Boundary è progettato per essere facile da comprendere, altamente scalabile e resiliente. Può essere eseguito su cloud, on-prem, in enclave sicure e altro ancora, e non richiede l'installazione di un agente su ogni host finale, rendendolo adatto all'accesso a servizi gestiti/cloud e a flussi di lavoro basati su container, oltre che ai tradizionali sistemi host e servizi.
Per maggiori informazioni, fai riferimento a "Cos'è Boundary?" sul sito web di Boundary.
Boundary è composto da due componenti server:
Un'installazione reale di Boundary sarà probabilmente composta da uno o più controller affiancati da uno o più worker. Un singolo binario di Boundary può operare in una o in entrambe queste modalità.
Inoltre, Boundary fornisce un client Desktop e una CLI per consentire agli utenti finali di richiedere e stabilire sessioni autorizzate verso le risorse di una rete.
Boundary non richiede l'installazione di software sui tuoi host e servizi.
Boundary ha due dipendenze esterne:
Il database contiene la configurazione di Boundary e le informazioni sulle sessioni. I nodi controller devono essere in grado di accedere al database.
I valori che sono segreti (ad es. credenziali) sono crittografati nel database. Attualmente, PostgreSQL è supportato come database ed è stato testato con Postgres 12 e versioni successive.
Boundary utilizza solo estensioni comuni e sono supportate sia le istanze hosted che quelle self-managed. Nella maggior parte dei casi, tutto ciò che serve è un endpoint del database e le credenziali appropriate.
Boundary utilizza chiavi KMS per vari scopi, come proteggere i segreti, autenticare i worker, recuperare dati, crittografare i valori nella configurazione di Boundary e altro ancora. Boundary fa ampio uso della derivazione delle chiavi per evitare la proliferazione di queste chiavi di alto valore.
Puoi utilizzare qualsiasi KMS cloud o il Transit Secrets Engine di Vault per soddisfare il requisito KMS.
Eseguire Boundary in un contesto più permanente richiede alcuni passaggi aggiuntivi, come scrivere semplici file di configurazione per indicare ai nodi come raggiungere il proprio database e KMS. I passaggi seguenti, insieme alle informazioni extra necessarie per le installazioni permanenti, sono descritti in dettaglio nella nostra Guida all'installazione.
⚠️ Non usare il branch
mainse non per casi di sviluppo o test. Boundary 0.10 ha introdotto i rami di release che dovrebbero essere sicuri da seguire; tuttavia, le migrazioni inmainpotrebbero essere rinumerate se necessario. Il team di Boundary non sarà in grado di fornire assistenza se l'uso prolungato dimaindovesse causare rotture delle migrazioni o altri bug.
Scarica l'ultima release del binario del server e i client desktop appropriati dalla nostra pagina dei download
Boundary ha una modalità dev che puoi usare per i test. In modalità dev, puoi avviare sia un
controller che un worker con un singolo comando, e hanno le
seguenti proprietà:
Se soddisfi i seguenti requisiti locali, puoi metterti rapidamente in funzione con Boundary:
È sufficiente eseguire:
make install
Questo compilerà Boundary. (La prima volta che viene eseguito, recupererà e compilerà
gli asset della UI; richiederà qualche minuto in più.) Una volta completato, esegui Boundary in
modalità dev:
$GOPATH/bin/boundary dev
Nota che lo sviluppo potrebbe richiedere altri strumenti; per installare il set di strumenti nelle versioni usate dal team di Boundary, esegui:
make tools
In caso contrario, potresti incontrare errori durante l'esecuzione di make install. È importante
notare anche che l'uso di make tools installerà vari strumenti usati per lo sviluppo di Boundary
nella normale directory dei binari di Go; questo potrebbe sovrascrivere o avere la precedenza
su strumenti già installati sul sistema.
Avvia il binario del server con:
boundary dev
Questo avvierà un servizio Controller in ascolto su http://127.0.0.1:9200 per
le richieste API in arrivo e un servizio Worker in ascolto su http://127.0.0.1:9202
per le richieste di sessione in arrivo. Creerà inoltre varie risorse predefinite e
mostrerà varie informazioni utili, come nome utente e password
che possono essere usati per autenticarsi.
Per un semplice test di Boundary in modalità dev, in genere non è necessario
configurare alcuna risorsa! Ma è utile capire cosa ha fatto la modalità dev
per te, così puoi poi compiere ulteriori passi. Di default, la modalità dev creerà:
global per l'autenticazione iniziale, contenente un Metodo di autenticazione di tipo Password,
insieme a un Account per il login.global, e uno Scope di progetto all'interno
dell'organizzazione.127.0.0.1)22 (ad es. SSH)Puoi accedere alla UI web di Boundary o usare la sua API per modificare questi valori predefiniti, ad esempio se vuoi connetterti a un host diverso o se devi modificare la porta su cui connetterti.
Ora, facciamo una vera connessione al tuo demone SSH locale tramite Boundary:
dev, il comando sarebbe boundary authenticate password -auth-method-id ampw_1234567890 -login-name admin -password password. (Nota che se non includi il flag password ti verrà
chiesto di inserirla.)boundary connect ssh -target-id ttcp_1234567890. Se vuoi modificare
il nome utente, passa -username <name> al comando.Esplora le possibilità di configurazione del target per testare la limitazione (o l'aumento) del
numero di connessioni per sessione o l'impostazione di un limite di tempo massimo; prova ad annullare
una sessione attiva dalla pagina delle sessioni o tramite boundary sessions, crea i tuoi
comandi con boundary connect -exec, e così via.
Questo esempio è un modo semplice per iniziare, ma tralascia diversi passaggi chiave che potrebbero essere adottati in un contesto di produzione:
Nota bene: prendiamo molto seriamente la sicurezza di Boundary e la fiducia dei nostri utenti. Se ritieni di aver trovato un problema di sicurezza in Boundary, ti preghiamo di segnalarlo in modo responsabile contattandoci all'indirizzo [email protected].
Grazie per il tuo interesse a contribuire! Per favore, fai riferimento a CONTRIBUTING.md per le linee guida.