mirror of
https://github.com/pomerium/pomerium.git
synced 2025-05-07 14:26:01 +02:00
* install VuePress Plugin Tabs https://www.npmjs.com/package/vuepress-plugin-tabs * init Enterprise documentation section * replace Vuepress tab plugin now using https://github.com/superbiger/vuepress-plugin-tabs * init Enterprise Quickstart * block of enterprise doc updates * Helm Quickstart Update (#2380) * removed/fixed redundant or incorrect config And some small copy edits * Update docs/docs/quick-start/helm.md Co-authored-by: Travis Groth <travisgroth@users.noreply.github.com> Co-authored-by: Travis Groth <travisgroth@users.noreply.github.com> * init console with helm doc * squash me * codeblock fix * init about page * updates to Enterprise section * consolidate on Postgres * WIP helm updates * update and align OS and Enterprise helm docs * Enterprise settings docs (#2397) * init console-specific reference docs files * remove shortdoc for name * init Enterprise Reference doc * expanding Enterprise Reference * init JS script for reference subpages When reviewing please remember that I'm not a developer, be kind * update script and apply * remove errant dep * document script and expand for CLI help output * import pomerium-console_serve.yaml In future iterations, this file should be sourced at build time as an artifact from the pomerium-console repo * init new output file * update script call and output * fix anchor links * BROKEN - import content from settings.yaml when dupe is true * filtering WiP * fix dupe script, more content * replace if dupe with if not docs * squash me * squash me! * add docs about PPL (#2404) * squash meeeeee * Update docs/enterprise/install/quickstart.md Co-authored-by: Travis Groth <travisgroth@users.noreply.github.com> * symlink img dir from docs/reference * squash mee * update install reqs * Fixed links throughout * Update docs/enterprise/install/quickstart.md Co-authored-by: Travis Groth <travisgroth@users.noreply.github.com> * Update docs/enterprise/install/quickstart.md Co-authored-by: Travis Groth <travisgroth@users.noreply.github.com> * remove internal note * - format python with black - format js with prettier Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com> * optimize images with imageOptim Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com> * run prettier on config.js Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com> * concepts.md Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com> * update concepts Signed-off-by: Bobby DeSimone <bobbydesimone@gmail.com> * copy edits * typo * symlink img dir from docs/reference * modify TLS section in quick-start * rm whitespace * add common links postamble * block of updates * block of updates * updates with @travisgroth * turtles all the way down * more content * import all the things * fill out reports * fill out reports * fix file extension * fix links * crosslink PPL ref * document embedded prometheus * expand example * update reqs * document non-directory users * typo fix * update metrics_address * fix broken links in example configs * update examples for route syntax * replaced required with deprecated Note that I didn't link to the route reference because I'm unsure what link formats are accepted when this file is used elsewhere. The warning block below includes a link. * update enterprise/about * Update docs/enterprise/console-settings.yaml Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * Update docs/enterprise/console-settings.yaml Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * Update docs/enterprise/concepts.md Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * Update docs/enterprise/concepts.md Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> Co-authored-by: Travis Groth <travisgroth@users.noreply.github.com> * Update docs/enterprise/concepts.md Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * remove commented config lines * update non-domain user section in concepts * Update docs/enterprise/concepts.md Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * Update docs/enterprise/concepts.md Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * Update docs/enterprise/about.md Co-authored-by: Travis Groth <travisgroth@users.noreply.github.com> * Update docs/enterprise/concepts.md Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * Update docs/enterprise/concepts.md Co-authored-by: bobby <1544881+desimone@users.noreply.github.com> * add console route to OSS conf * update enterprise settings copy from source file * Update docs/enterprise/concepts.md * Update reports reference * merge conflict resolution * update sourced doc content, fix whitespace Co-authored-by: Travis Groth <travisgroth@users.noreply.github.com> Co-authored-by: Caleb Doxsey <cdoxsey@pomerium.com> Co-authored-by: Bobby DeSimone <bobbydesimone@gmail.com> Co-authored-by: bobby <1544881+desimone@users.noreply.github.com>
182 lines
6.4 KiB
Markdown
182 lines
6.4 KiB
Markdown
---
|
|
title: Quickstart
|
|
sidebarDepth: 1
|
|
description: Demo Pomerium Enterprise
|
|
---
|
|
|
|
# Pomerium Enterprise Quickstart
|
|
|
|
## Before You Begin
|
|
|
|
This document assumes:
|
|
|
|
- A non-containerized environment, either your local computer or a virtual machine (**vm**). While Pomerium is designed to scale with your production environment, we'll leave containerization and infrastructure as code (**IaC**) out for now, to focus on learning how Pomerium Enterprise works.
|
|
- `root` or `sudo` privileges on the host.
|
|
- You already have the open-source Pomerium base installed. If not, follow [this doc](/docs/install/binary.md) before you continue.
|
|
- While an existing route is not required, we suggest implementing one test route to validate your identity provider (**IdP**) configuration.
|
|
- Pomerium Enterprise requires a relational database. PostgreSQL 9+ is supported.
|
|
- Securing the database connection with TLS may not be required, especially for a local installation, but is strongly recommended for production deployments. Therefor, this guide will assume a TLS-secured database connection.
|
|
- A supported data broker backend. Currently we support Redis.
|
|
- As with the database, TLS encryption is strongly recommended for production deployments.
|
|
|
|
## Requirements
|
|
|
|
- The Pomerium Enterprise Console requires Linux amd64/x86_64. It can manage Pomerium instances on other platforms, however.
|
|
- Each Console instance should have at least:
|
|
- 4 vCPUs
|
|
- 8G RAM
|
|
- 100G of disk wherever logs are stored
|
|
- Each Postgres instance should have at least:
|
|
- 4 vCPUs
|
|
- 8G RAM
|
|
- 20G for data files
|
|
- Each Redis instance should have at least:
|
|
- 2 vCPUs
|
|
- 4G RAM
|
|
- 20G for data files
|
|
|
|
## Install Pomerium Enterprise Console
|
|
|
|
Pomerium publishes standard OS packages for RPM and DEB based systems. The repositories require authentication via username and access key. These credentials will be issued to you during the onboarding process.
|
|
|
|
:::: tabs
|
|
|
|
::: tab deb
|
|
|
|
1. To automatically configure the repository for Debian and Ubuntu distributions, run the following command replacing `[access-key]`:
|
|
|
|
```bash
|
|
curl -1sLf \
|
|
'https://dl.cloudsmith.io/[access-key]/pomerium/enterprise/setup.deb.sh' \
|
|
| sudo -E bash
|
|
```
|
|
|
|
Or to manually configure, you can manually import the apt key, then create a new `.list` file in `/etc/apt/source.list.d`. Make sure to replace the distro and version:
|
|
|
|
```bash
|
|
curl -1sLf 'https://dl.cloudsmith.io/[access-key]/pomerium/enterprise/gpg.B1D0324399CB9BC3.key' | apt-key add -
|
|
|
|
echo "deb https://dl.cloudsmith.io/[access-key]/pomerium/enterprise/deb/debian buster main" | sudo tee /apt/sources.list.d/pomerium-console.list
|
|
```
|
|
|
|
1. Update `apt` and install the Pomerium Enterprise Console:
|
|
|
|
```bash
|
|
sudo apt update; sudo apt install pomerium-console
|
|
```
|
|
|
|
:::
|
|
|
|
|
|
::: tab yum
|
|
|
|
1. To automatically configure the repository for RHEL based distributions, run the following command replacing `[access-key]`:
|
|
|
|
```bash
|
|
curl -1sLf \
|
|
'https://dl.cloudsmith.io/[access-key]/pomerium/enterprise/setup.rpm.sh' \
|
|
| sudo -E bash
|
|
```
|
|
|
|
Or to manually configure:
|
|
|
|
```bash
|
|
yum install yum-utils pygpgme
|
|
rpm --import 'https://dl.cloudsmith.io/[access-key]/pomerium/enterprise/gpg.B1D0324399CB9BC3.key'
|
|
curl -1sLf 'https://dl.cloudsmith.io/[access-key]/pomerium/enterprise/config.rpm.txt?distro=el&codename=8' > /tmp/pomerium-enterprise.repo
|
|
yum-config-manager --add-repo '/tmp/pomerium-enterprise.repo'
|
|
yum -q makecache -y --disablerepo='*' --enablerepo='pomerium-enterprise'
|
|
```
|
|
|
|
1. Update refresh and install:
|
|
|
|
```bash
|
|
yum -y install pomerium-console
|
|
```
|
|
|
|
:::
|
|
|
|
::::
|
|
|
|
### System Service
|
|
|
|
Once the package is installed, enable and start the system service:
|
|
|
|
```bash
|
|
sudo systemctl enable --now pomerium-console
|
|
```
|
|
|
|
## Initial Configuration
|
|
|
|
Like the open-source Pomerium base, Pomerium Enterprise Console is configured through a single config file, located at `/etc/pomerium-console/config.yaml`.
|
|
|
|
### External Services
|
|
|
|
First configure the Console to communicate with the database and databroker service:
|
|
|
|
```yaml
|
|
database_url: pg://user:pass@dbhost.internal.mydomain.com/pomerium?sslmode=require
|
|
databroker_service_url: https://pomerium-cache.internal.mydomain.com
|
|
shared_secret: XXXXXXXXXXXXXXXXXXX
|
|
database_encryption_key: YYYYYYYYYYYYYYYYYYYYYY
|
|
```
|
|
|
|
For database uri options (especially TLS settings) see the [PostgreSQL SSL Support](https://www.postgresql.org/docs/9.1/libpq-ssl.html) documentation.
|
|
|
|
### Administrators
|
|
|
|
As a first-time setup step, you must also configure at least one administrator for console access. This user (or users) can then configure additional administrators in the console UI.
|
|
|
|
```yaml
|
|
administrators: you@mydomain.com
|
|
```
|
|
|
|
Once you have set permissions in the console UI, you should remove this configuration.
|
|
|
|
### TLS
|
|
|
|
If your open-source Pomerium installation is already configured to use TLS to secure back-end communication, you can do the same for the Pomerium Enterprise Console by providing it a certificate, key, and optional custom CA file to validate the `databroker_service_url` connection:
|
|
|
|
```yaml
|
|
tls_ca_file: /etc/pomerium-console/ca.pem
|
|
tls_cert_file: /etc/pomerium-console/cert.pem
|
|
tls_key_file: /etc/pomerium-console/key.pem
|
|
```
|
|
|
|
For proof-of-concept installations in the same local system, this is not required.
|
|
|
|
Once complete, your `/etc/pomerium-console/config.yaml` file should look something like this:
|
|
|
|
```yaml
|
|
database_url: pg://user:pass@dbhost.internal.mydomain.com/pomerium?sslmode=require
|
|
databroker_service_url: https://pomerium-cache.internal.mydomain.com
|
|
shared_secret: XXXXXXXXXXXXXXXXXXX
|
|
database_encryption_key: YYYYYYYYYYYYYYYYYYYYYY
|
|
|
|
# change / remove this after initial setup
|
|
administrators: you@mydomain.com
|
|
|
|
tls_ca_file: /etc/pomerium-console/ca.pem
|
|
tls_cert_file: /etc/pomerium-console/cert.pem
|
|
tls_key_file: /etc/pomerium-console/key.pem
|
|
```
|
|
|
|
### Update Pomerium
|
|
|
|
Open your Pomerium config file, `/etc/pomerium/config.yaml`. Add a list item in the `routes` block for the Enterprise Console:
|
|
|
|
```yaml
|
|
routes:
|
|
- from: https://console.localhost.pomerium.com
|
|
to: https://pomerium-console.pomerium.svc.cluster.local
|
|
policy:
|
|
- allow:
|
|
or:
|
|
- domain:
|
|
is: companydomain.com
|
|
pass_identity_headers: true
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
The Pomerium Enterprise Console assumes access to a [Prometheus](https://prometheus.io/) data store for metrics. See [Prometheus Metrics](/enterprise/prometheus.md) to learn how to configure access.
|