dcb609b831 [Website] Public Launch Assembly (#438)
* Reduce hero size for placeholder

* Clean up Sticky Footer

- Increase the specificity of the selector to prevent any accidental
collisions
- Account for the meganav that exists

* [Website] Add Boundary Features section to homepage (#436)

* Install and implement ProductFeaturesList

* Add images and content

* Inline the product features

* [Website] Add use cases section (#445)

* Commit to illustrate UseCases error

* update react image

* Add in content from design

* Tweaks

* Apply handy edits

Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

Co-authored-by: Jeff Escalante <jescalan@users.noreply.github.com>
Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

* [Website] Add SectionBreakCta component (#452)

* Create implement barebones component

* Build structure/add content

* Get CSS up to spec

- Typography
- spacing
- Layout
- box-shadow
- Accent line

* Mobile treatment

* Update URL

* Add a break-section to give bg on page

* Change link to outbound

Design is incorrect for this link

Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

* Reduce CSS selectors

Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

* [Website] Add branded CTA section (#450)

* Create skeleton for component

* Bring in line with CallToAction styles

* Set up background

* Typography and layout (and mobile)

* Button polish

* Changes to prep for updates

These will keep the homepage ready for component updates 
and the upcoming docs and download pages.

Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

* Address feedback

- Reduce button hackiness
- Adjust pattern position on mobile to not overlap button

Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

* Upgrade button, minor tweaks to BrandedCTA (#481)

* Updates dependencies

* [Website] Homepage hero updates (#503)

* Adjustments to align and lay out left side

* Implement hero background

* Adjust hero URLs

* Implement mobile hero pattern/tweaks

* Add video!

* Mobile tweaks

* Remove mobile bg

* Center the text/buttons on mobile

* Remove mobile hero pattern

* Address visual nits

* Adjust interface for video

* [Website] Add "How it works" section (#483)

* Create skeleton and implement component

* Add sections

* Add CSS and adjust structure

* Remove sections ternary

* Change nomenclature for clarity

* Mobile tweaks

* Tweaks inspired by HCP

* Create LogoList component skeleton

* Implement LogoList on main component

- Shift footertext responsibility to it
- Assume logos will be passed in, because it doesn't render otherwise
  anyway with the right checks

* Implement some logos/restructure LogoList

* CSS adjustments to logolist/section layout

* Show example for too many integrations

* Remove cutoff logic

* Add SVGs for diagram stack

* Combine SVGs into a component

This is necessary to act on various parts of the image independently.

* Fully combine SVG and remove unneeded CSS

* Further CSS cleanup

* Implement stickyness

* Set up active example checks for graphic

* Implement reactivity

- Apply styles based on inactivity or activity, whichever fits best
  per-element
- Add expected state to the general HowItWorks component, where it will
  be managed and passed into the diagram
- Make icon and arrow spacers use the same spacer class

* CSS tweaks for design/organization

* Implement scroll-to-animate functionality!

* Fill out icons for integrations

* Feature updates

- Move LogoList into folder
- Give descriptions some margin

* Mobile treatment tweaks

* Import logic from the cloud-platform page on .com

This fixes a bug in which the in-view example would not update in an
expected manner.

* Remove max-width adjustment on UL

* Fix need for height on the graphic

* Padding/margin tweaks

* Minor CSS tweaks

* Final padding adjustments

* Plugging in proper content into the landing page (#545)

* Misc content updates to align with copy doc

* Plug in feature SVGs

* Move use cases up

* Remove the MegaNav - to be replaced soon

* Updates the nav

* Add footer content, security page

* Remove react-mega-nav from styles

* Downloads Page (#541)

* [Website] Add use cases section (#445)

* Commit to illustrate UseCases error

* update react image

* Add in content from design

* Tweaks

* Apply handy edits

Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

Co-authored-by: Jeff Escalante <jescalan@users.noreply.github.com>
Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

* Port new downloader page to Boundary

* update placeholder data

* missing css property

* Fix the weird rebase

* Fix padding

Co-authored-by: Noel Quiles <3746694+EnMod@users.noreply.github.com>
Co-authored-by: Jeff Escalante <jescalan@users.noreply.github.com>
Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

* [Website] Add alert banner (#557)

* Bring over waypoint's implementation

* Prove that it works/theme to boundary

* revert to hidden for now

* [Website] README polish (#558)

* Adjust readme for boundary

* Correct URL in first paragraph

* [Website] Add community page (#555)

* Just import files from Consul

* Revert CSS paradigm for VerticalBlockList

* Adds community to the nav

Co-authored-by: Brandon Romano <BrandonRRomano@gmail.com>

* A few small content / bug tweaks (#563)

* adds HashiStackMenu

* Fix platform agnostic copy

* Reduce padding between sections

* Fix Subnav indicator for docs page

* Fix features padding

* Adds Favicon

* Update how it works content

* Adds share image

* Updates use cases

* Styling to community page

* Remove some color overrides

* Add SVGO option to nextconfig (#565)

* Add press kit to footer (#567)

* Plug in proper link for onboard users

* Plug in proper video URL (#584)

* Bump HSM version (#582)

* Downloads Page Content (#585)

* Wire up Boundary Downloads content

* Plug in remaining downloads content

* Download via Product slug

* Tweak with transition timing (#587)

* Plug in proper logo into the downloads page (#589)

* Content tweaks (#590)

* Remove border top from footer (#591)

* More content tweaks (#608)

* Updates the hero to support UI/CLI previews (#609)

* Updates the hero to support UI/CLI previews

* Updates video

* More content tweaks (#634)

* Plugs in light theme UI video

* Update infra as code feature

* Remove Auth (#636)

* Remove auth-related files

* Remove auth-related config

* Remove auth provider and next-auth pkgs

* Remove *env.local from gitignore

* Swtich og:image to have a www subdomain

Co-authored-by: Noel Quiles <3746694+EnMod@users.noreply.github.com>

* Elevate prop destructuring to function call

Co-authored-by: Jeff Escalante <jescalan@users.noreply.github.com>

* Update website/pages/community/index.jsx

Co-authored-by: Jeff Escalante <jescalan@users.noreply.github.com>

Co-authored-by: Noel Quiles <3746694+EnMod@users.noreply.github.com>
Co-authored-by: Jeff Escalante <jescalan@users.noreply.github.com>
Co-authored-by: Zack Tanner <zacktanner@gmail.com>
Co-authored-by: Jimmy Merritello <7191639+jmfury@users.noreply.github.com>
2020-10-12 15:56:27 -07:00
2020-10-09 22:02:21 +01:00
2020-10-07 21:37:30 -04:00
2020-09-25 17:09:07 -04:00
2020-09-08 23:57:26 -04:00
2020-10-09 19:35:04 -04:00
2020-10-07 14:15:32 -04:00
2020-09-16 10:12:26 -04:00
2020-10-09 19:35:04 -04:00
2020-10-12 13:33:17 -04:00
2020-10-09 19:35:04 -04:00
2020-03-04 12:51:46 -05:00

Boundary

Please note: We take Boundary's security and our users' trust very seriously. If you believe you have found a security issue in Boundary, please responsibly disclose by contacting us at security@hashicorp.com.


Boundary is a tool for controlling access to networked resources in the SDP model. It is designed to be straightforward to understand, highly scalable, and resilient. It can run in clouds, on-prem, secure enclaves and more, and does not require an agent to be installed on every end host.

Unlike firewalls, Boundary performs per-access authentication and authorization checks, allowing for much higher level mappings of users to services or hosts than at network layers. Although complementary to secrets managers (like HashiCorp's own Vault), Boundary fills a different niche, allowing the credential that is eventually used to be hidden entirely from the user.

Getting Started

Boundary consists of two server components: Controllers, which serve the API and coordinate session requests; and Workers, which perform the actual session handling. A normal Boundary installation will consist of one or more Controllers paired with one or more Workers. A single Boundary binary can act in either of these two modes.

Additionally, Boundary provides a client that provides access to request and connect to authorized sessions.

Boundary does not require software to be installed on the endpoint hosts and services.

Requirements

Boundary has two external dependencies: a SQL database, and one or more KMSes. Both are readily available from cloud vendors, but can be satisfied by on-premise technologies as well.

  • The database contains Boundary's configuration and session information and must be accessible by Controller nodes. Values that are secrets (such as credentials) are encrypted in the database. Currently, PostgreSQL is supported as a database and has been tested with Postgres 11 and above. Boundary uses only common extensions and both hosted and self-run instances are supported. In most instances all that is needed is a database endpoint and appropriate credentials.

  • Any cloud KMS or Vault's Transit Secrets Engine can be used to satisfy the KMS requirement. Currently, two keys within the KMS are required: one for authenticating other cluster components, which must be accessible by both Controllers and Workers; and one for encrypting secret values in the database, which need only be accessible to Controllers. These keys can be changed over time (so long as the original key remains available for any decryption needs), and key derivation is used extensively to avoid key sprawl of these high-value keys. If available, other keys can be used for other purposes, such as recovery functionality and encryption of sensitive values in Boundary's config file.

Boundary has a dev mode that can be used for testing. In this mode both a Controller and Worker are started with a single command, and they have the following properties:

  • The Controller will start a PostgreSQL Docker container to use as storage. This container will be shut down and removed (if possible) when the Controller is (gracefully) shut down.
  • The Controller will use an internal KMS with ephemeral keys

Trying out Boundary

Running Boundary in a more permanent context requires a few more steps, such as writing some simple configuration files to tell the nodes how to reach their database and KMS. The steps below, along with the extra information needed for permanent installations, are detailed in our [Installation Guide].

Build and Start Boundary in Dev Mode

If you have the following requirements met locally:

  • Golang v1.14 or greater
  • Docker

You can get up and running with Boundary quickly. Simply run:

make dev

This will build Boundary. (The first time this is run it will fetch and compile UI assets; which will take a few extra minutes.) Once complete, run Boundary in dev mode:

./$GOPATH/bin/boundary dev

Specify a UI Commitish at Build Time

By default the UI will be built from a preselected commit ID from the UI repo. A different commitish from which to build UI assets may be specified via the UI_COMMITISH environment variable. For example:

UI_COMMITISH=feature-branch make build-ui

will update your local UI assets.

UI Build Troubleshooting

UI assets are built within a Docker container. If you encounter issues with this build step, trying increasing memory and swap available to Docker.

UI Development

It would be impractical to rebuild the binary on every change when actively developing the UI. To make UI development more convenient, the binary supports a passthrough directory. This is an arbitrary local directory from which UI assets are served. Note this option is only available in dev mode. For example:

BOUNDARY_DEV_PASSTHROUGH_DIRECTORY=/boundary-ui/ui/core/dist ~/go/bin/boundary dev

Download and Run from Release Page

Download the latest release of the server binary and appropriate desktop client(s) from our [releases page]

Start Boundary

Start the server binary with:

boundary dev

This will start a Controller service listening on http://127.0.0.1:9200 for incoming API requests and a Worker service listening on http://127.0.0.1:9202 for incoming session requests. It will also create various default resources and display various useful pieces of information, such as a login name and password that can be used to authenticate.

Configuring Resources

For a simple test of Boundary in dev mode you don't generally need to configure any resources at all! But it's useful to understand what dev mode did for you so you can then take further steps. By default, dev mode will create:

  • The global Scope for initial authentication, containing a Password-type Auth Method, along with an Account for login.
  • An organization Scope under global, and a project Scope inside the organization.
  • A Host Catalog with a default Host Set, which itself contains a Host with the address of the the local machine (127.0.0.1)
  • A Target mapping the Host Set to a set of connection parameters, with a default port of 22 (e.g. SSH)

You can of course go into Boundary's web UI or use its API to change these default values, for instance if you want to connect to a different host or need to modify the port on which to to connect.

Making the Connection

Next, let's actually make a connection to your local SSH daemon via Boundary:

  1. Authenticate to Boundary; using default dev values, this would be boundary authenticate password -auth-method-id ampw_1234567890 -login-name admin -password password. (Note that if you do not include the password flag you will be prompted for it.)
  2. Run boundary connect ssh -target-id ttcp_1234567890. If you want to adjust the username, pass -username <name> to the command.

A lot more is possible with Boundary, even at this early stage. Check out the possibilities for target configuration to test out limiting (or increasing) the number of connections per session or setting a maximum time limit; try canceling an active session from the sessions page or via boundary sessions, make your own commands with boundary connect -exec, and so on.

Going Further

This example is a simple way to get started but omits several key steps that could be taken in a production context:

  • Using a firewall or other means to restrict the set of hosts allowed to connect to a local service to only Boundary Worker nodes, thereby making Boundary the only means of ingress to a host
  • Using the Boundary Terraform provider to easily integrate Boundary with your existing code-based infrastructure
  • Pointing a BI tool (PowerBI, Tableau, etc.) at Boundary's session warehouse to generate insights and look for anomalies with respect to session access

There are many, many more things that Boundary will do in the future in terms of integrations, features, and more. We have a long roadmap planned out, so stay tuned for information about new features and capabilities!

S
Description
Community-maintained fork of HashiCorp Boundary Community Edition (BSL 1.1). Not affiliated with HashiCorp or IBM.
Readme
235 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 90.2%
PLpgSQL 7%
HCL 1.8%
Shell 0.7%
MDX 0.1%