From d1e784efa90995c8ee3e6473aa256769fbf36d2e Mon Sep 17 00:00:00 2001 From: Alex Fornuto Date: Fri, 25 Feb 2022 09:38:35 -0600 Subject: [PATCH] DOCS: Standardize Reference image paths in Enterprise Docs (#3080) * copy enterprise reference image to core reference img dir * standardize reference image path * link fixes --- docs/docs/topics/device-identity.md | 2 +- docs/enterprise/console-settings.yaml | 30 +++++++++--------- docs/enterprise/reference/configure.md | 12 +++---- docs/enterprise/reference/manage.md | 21 ++++++------ docs/enterprise/reference/reports.md | 10 +++--- docs/guides/enroll-device.md | 2 +- .../img/add-service-account.png | Bin .../img/console-devices.png | Bin .../create-impersonated-service-account.png | Bin .../img/create-service-account.png | Bin .../img/deployment-diff.png | Bin .../img/events-fullpage.png | Bin .../img/example-policy-editor.png | Bin .../img/example-policy-single-user.png | Bin docs/reference/img/new-enrollment.png | Bin 0 -> 21017 bytes .../img/runtime-fullpage.png | Bin .../img/service-account-jwt.png | Bin .../img/service-account-policy.png | Bin .../img/sessions-fullpage.png | Bin .../img/traffic-fullpage.png | Bin .../{enterprise => reference}/img/user-id.png | Bin 21 files changed, 39 insertions(+), 38 deletions(-) rename docs/{enterprise => reference}/img/add-service-account.png (100%) rename docs/{enterprise => reference}/img/console-devices.png (100%) rename docs/{enterprise => reference}/img/create-impersonated-service-account.png (100%) rename docs/{enterprise => reference}/img/create-service-account.png (100%) rename docs/{enterprise => reference}/img/deployment-diff.png (100%) rename docs/{enterprise => reference}/img/events-fullpage.png (100%) rename docs/{enterprise => reference}/img/example-policy-editor.png (100%) rename docs/{enterprise => reference}/img/example-policy-single-user.png (100%) create mode 100644 docs/reference/img/new-enrollment.png rename docs/{enterprise => reference}/img/runtime-fullpage.png (100%) rename docs/{enterprise => reference}/img/service-account-jwt.png (100%) rename docs/{enterprise => reference}/img/service-account-policy.png (100%) rename docs/{enterprise => reference}/img/sessions-fullpage.png (100%) rename docs/{enterprise => reference}/img/traffic-fullpage.png (100%) rename docs/{enterprise => reference}/img/user-id.png (100%) diff --git a/docs/docs/topics/device-identity.md b/docs/docs/topics/device-identity.md index 91ea17bb2..7f5ad7566 100644 --- a/docs/docs/topics/device-identity.md +++ b/docs/docs/topics/device-identity.md @@ -13,7 +13,7 @@ One of the core components of the zero trust security model is **device identity The history of IT security has, until recently, mostly focused on user identity verification. In this model, access to a service is granted only after verifying a user's identity and authorization to that service. This was usually sufficient in scenarios where the user's access was physically limited to trusted devices in trusted physical and network spaces; a PC sitting in an office in the company headquarters on a local network, for example. -Hardware-backed device identity is becoming more widely discussed as more products begin to implement or require it across all tech industries. For example, Windows 11 generated a lot of news by [requiring TPM 2.0][win11-reqs], and Apple is taking steps to [eliminate passwords][apple-passkeys]: +Hardware-backed device identity is becoming more widely discussed as more products begin to implement or require it across all tech industries. For example, Windows 11 generated a lot of news by [requiring TPM 2.0][win11-reqs], and Apple is taking steps to [eliminate passwords][apple-passkeys] : | ![Verge Article Header and Apple Video Page](./img/verge-apple.png) | |:--| diff --git a/docs/enterprise/console-settings.yaml b/docs/enterprise/console-settings.yaml index 78d48a0b8..da95e2fbe 100644 --- a/docs/enterprise/console-settings.yaml +++ b/docs/enterprise/console-settings.yaml @@ -5,22 +5,22 @@ settings: doc: | View the traffic running through Pomerium. Filter by [Route][route-concept] name, or date range. - ![The Traffic page in Pomerium Enterprise](../img/traffic-fullpage.png) + ![The Traffic page in Pomerium Enterprise](./img/traffic-fullpage.png) - name: "Runtime" doc: | Monitor how many system resources Pomerium is consuming. Filter by date range, service, and instance. - ![The Runtime Info page in Pomerium Enterprise](../img/runtime-fullpage.png) + ![The Runtime Info page in Pomerium Enterprise](./img/runtime-fullpage.png) - name: "Sessions" doc: | View active Sessions. From here you can revoke sessions, filter by session or user information, or revoke one or multiple sessions. You can also export the data. - ![The Sessions page in Pomerium Enterprise](../img/sessions-fullpage.png) + ![The Sessions page in Pomerium Enterprise](./img/sessions-fullpage.png) - name: "Events" doc: | The events page displays the log output of Envoy as it process changes from Pomerium and applies updates to the underlying services. - ![The Events page in Pomerium Enterprise](../img/events-fullpage.png) + ![The Events page in Pomerium Enterprise](./img/events-fullpage.png) The most common updates are to Pomerium Proxy services, which are updated every time a Route or Policy is created or updated. @@ -31,7 +31,7 @@ settings: The default view shows all changes made through Pomerium Enterprise. Use the **COMPARE** button next to an entry to filter to only changes that affected that resource. Select two versions of that resource, then **DIFF** to see what changed: - ![A screenshot showing the diff of a change to a route, adding a policy](../img/deployment-diff.png) + ![A screenshot showing the diff of a change to a route, adding a policy](./img/deployment-diff.png) - name: "Manage" settings: - name: "Routes" @@ -98,13 +98,13 @@ settings: From the **BUILDER** tab, users can add allow or deny blocks to a policy, containing and/or/not/nor logic to allow or deny sets of users and groups. - ![A policy being constructed in Pomerium Enterprise allowing a single user access](../img/example-policy-single-user.png) + ![A policy being constructed in Pomerium Enterprise allowing a single user access](./img/example-policy-single-user.png) ### Pomerium Policy Language From the **EDITOR** tab users can write policies in Pomerium Policy Language (**PPL**), a YAML-based notation. - ![A policy as viewed from the editor tab](../img/example-policy-editor.png) + ![A policy as viewed from the editor tab](./img/example-policy-editor.png) PPL documents contain one or more rules. Each rule has a corresponding action and one or more logical operators. Each logical operator contains criteria and each criterion has a name and corresponding data. @@ -186,13 +186,13 @@ settings: Displays the currently enrolled devices for each user, along with their current approval status. Administrators can inspect, approve, or delete registered devices from this table. - ![List of user devices](../img/console-devices.png) + ![List of user devices](./img/console-devices.png) - name: "New Enrollment" doc: | The **New Enrollment** button allows administrators to create a custom link for a specific user to use to register a new device, which will automatically be approved. This scheme is known as [Trust on First Use (TOFU)](https://en.wikipedia.org/wiki/Trust_on_first_use). - ![Example device enrollment](../img/new-enrollment.png) + ![Example device enrollment](./img/new-enrollment.png) settings: - name: "Search Users" doc: "New Enrollment URLs are only valid for the specified user." @@ -264,7 +264,7 @@ settings: 1. From the main menu, select **Service Accounts** under **CONFIGURE**. Click the **+ ADD SERVICE ACCOUNT** button: - ![An empty Service Accounts page](../img/add-service-account.png) + ![An empty Service Accounts page](./img/add-service-account.png) 1. Service accounts can be unique and exist only for Pomerium, or impersonate directory users from your IdP. @@ -272,30 +272,30 @@ settings: :::: tab Unique Give the user a unique ID. Consider referencing the Namespace you're creating it under, for easier reference later. Optionally set an expiration date: - ![Adding a unique service account](../img/create-service-account.png) + ![Adding a unique service account](./img/create-service-account.png) The user ID set here corresponds to the `User` criteria when editing a policy. :::: :::: tab Impersonated You can find your User ID by going to the special endpoint `/.pomerium`, or selecting **Logout** under your user in the upper right hand corner (this will not immediately log you out): - ![Session Details](../img/user-id.png) + ![Session Details](./img/user-id.png) Copy the User ID and paste it into the **User ID** field in the **Add Service Account** modal. The lookahead search should show you the user name You can also optionally set an expiration date: - ![Adding an impersonated service account](../img/create-impersonated-service-account.png) + ![Adding an impersonated service account](./img/create-impersonated-service-account.png) :::: ::::: 1. After you click **Submit**, the modal presents the JSON web token (**JWT**) for the service account. Temporarily save it somewhere secure, as you will not be able to view it again: - ![Service Account Added](../img/service-account-jwt.png) + ![Service Account Added](./img/service-account-jwt.png) This JWT must be added to your application configuration to enable direct communication. 1. Edit or create policies to give the service account access to the internal service: - ![An example policy for a service account](../img/service-account-policy.png) + ![An example policy for a service account](./img/service-account-policy.png) - name: "Namespaces" keys: ["namespace"] doc: | diff --git a/docs/enterprise/reference/configure.md b/docs/enterprise/reference/configure.md index aa72155f1..463619af9 100644 --- a/docs/enterprise/reference/configure.md +++ b/docs/enterprise/reference/configure.md @@ -180,7 +180,7 @@ Before you begin, confirm you are in the correct Namespace. A service account ca 1. From the main menu, select **Service Accounts** under **CONFIGURE**. Click the **+ ADD SERVICE ACCOUNT** button: - ![An empty Service Accounts page](../img/add-service-account.png) + ![An empty Service Accounts page](./img/add-service-account.png) 1. Service accounts can be unique and exist only for Pomerium, or impersonate directory users from your IdP. @@ -188,30 +188,30 @@ Before you begin, confirm you are in the correct Namespace. A service account ca :::: tab Unique Give the user a unique ID. Consider referencing the Namespace you're creating it under, for easier reference later. Optionally set an expiration date: - ![Adding a unique service account](../img/create-service-account.png) + ![Adding a unique service account](./img/create-service-account.png) The user ID set here corresponds to the `User` criteria when editing a policy. :::: :::: tab Impersonated You can find your User ID by going to the special endpoint `/.pomerium`, or selecting **Logout** under your user in the upper right hand corner (this will not immediately log you out): - ![Session Details](../img/user-id.png) + ![Session Details](./img/user-id.png) Copy the User ID and paste it into the **User ID** field in the **Add Service Account** modal. The lookahead search should show you the user name You can also optionally set an expiration date: - ![Adding an impersonated service account](../img/create-impersonated-service-account.png) + ![Adding an impersonated service account](./img/create-impersonated-service-account.png) :::: ::::: 1. After you click **Submit**, the modal presents the JSON web token (**JWT**) for the service account. Temporarily save it somewhere secure, as you will not be able to view it again: - ![Service Account Added](../img/service-account-jwt.png) + ![Service Account Added](./img/service-account-jwt.png) This JWT must be added to your application configuration to enable direct communication. 1. Edit or create policies to give the service account access to the internal service: - ![An example policy for a service account](../img/service-account-policy.png) + ![An example policy for a service account](./img/service-account-policy.png) ## Namespaces diff --git a/docs/enterprise/reference/manage.md b/docs/enterprise/reference/manage.md index bf7248c24..02ff06708 100644 --- a/docs/enterprise/reference/manage.md +++ b/docs/enterprise/reference/manage.md @@ -185,13 +185,14 @@ of the connection using `timeout` value (i.e. to 1 day). #### Host Headers -The `host` header can be preserved via the `preserve_host_header` setting or customized via 3 mutually exclusive options: +The `host` header can be preserved via the `preserve_host_header` setting or customized via three mutually exclusive options: + +1. `preserve_host_header` will, when enabled, this option will pass the host header from the incoming request to the proxied host, instead of the destination hostname. It's an optional parameter of type `bool` that defaults to `false`. -1. `preserve_host_header` when enabled, this option will pass the host header from the incoming request to the proxied host, instead of the destination hostname. It's an optional parameter of type `bool` that defaults to `false`. See [ProxyPreserveHost](http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypreservehost). -2. `host_rewrite` which will rewrite the host to a new literal value. -3. `host_rewrite_header` which will rewrite the host to match an incoming header value. -4. `host_path_regex_rewrite_pattern`, `host_path_regex_rewrite_substitution` which will rewrite the host according to a regex matching the path. For example with the following config: +2. `host_rewrite`, which will rewrite the host to a new literal value. +3. `host_rewrite_header`, which will rewrite the host to match an incoming header value. +4. `host_path_regex_rewrite_pattern` & `host_path_regex_rewrite_substitution`, which will rewrite the host according to a regex matching the path. For example with the following config: ```yaml host_path_regex_rewrite_pattern: "^/(.+)/.+$" @@ -200,7 +201,7 @@ The `host` header can be preserved via the `preserve_host_header` setting or cus Would rewrite the host header to `example.com` given the path `/example.com/some/path`. -The 2nd, 3rd and 4th options correspond to the envoy route action host related options, which can be found [here](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto.html#config-route-v3-routeaction). +The 2nd, 3rd and 4th options correspond to the Envoy route action host related options, which can be found [here](https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto.html#config-route-v3-routeaction). #### Set Request Headers @@ -289,13 +290,13 @@ Policies can be constructed three ways: From the **BUILDER** tab, users can add allow or deny blocks to a policy, containing and/or/not/nor logic to allow or deny sets of users and groups. -![A policy being constructed in Pomerium Enterprise allowing a single user access](../img/example-policy-single-user.png) +![A policy being constructed in Pomerium Enterprise allowing a single user access](./img/example-policy-single-user.png) ### Pomerium Policy Language From the **EDITOR** tab users can write policies in Pomerium Policy Language (**PPL**), a YAML-based notation. -![A policy as viewed from the editor tab](../img/example-policy-editor.png) +![A policy as viewed from the editor tab](./img/example-policy-editor.png) PPL documents contain one or more rules. Each rule has a corresponding action and one or more logical operators. Each logical operator contains criteria and each criterion has a name and corresponding data. @@ -407,7 +408,7 @@ Device enrollment let's you create [policies](/docs/topics/ppl.md#device-matcher Displays the currently enrolled devices for each user, along with their current approval status. Administrators can inspect, approve, or delete registered devices from this table. -![List of user devices](../img/console-devices.png) +![List of user devices](./img/console-devices.png) ### New Enrollment @@ -415,7 +416,7 @@ Administrators can inspect, approve, or delete registered devices from this tabl The **New Enrollment** button allows administrators to create a custom link for a specific user to use to register a new device, which will automatically be approved. This scheme is known as [Trust on First Use (TOFU)](https://en.wikipedia.org/wiki/Trust_on_first_use). -![Example device enrollment](../img/new-enrollment.png) +![Example device enrollment](./img/new-enrollment.png) #### Search Users diff --git a/docs/enterprise/reference/reports.md b/docs/enterprise/reference/reports.md index 0913a4533..27a4e5c8e 100644 --- a/docs/enterprise/reference/reports.md +++ b/docs/enterprise/reference/reports.md @@ -13,28 +13,28 @@ meta: View the traffic running through Pomerium. Filter by [Route][route-concept] name, or date range. -![The Traffic page in Pomerium Enterprise](../img/traffic-fullpage.png) +![The Traffic page in Pomerium Enterprise](./img/traffic-fullpage.png) ## Runtime Monitor how many system resources Pomerium is consuming. Filter by date range, service, and instance. -![The Runtime Info page in Pomerium Enterprise](../img/runtime-fullpage.png) +![The Runtime Info page in Pomerium Enterprise](./img/runtime-fullpage.png) ## Sessions View active Sessions. From here you can revoke sessions, filter by session or user information, or revoke one or multiple sessions. You can also export the data. -![The Sessions page in Pomerium Enterprise](../img/sessions-fullpage.png) +![The Sessions page in Pomerium Enterprise](./img/sessions-fullpage.png) ## Events The events page displays the log output of Envoy as it process changes from Pomerium and applies updates to the underlying services. -![The Events page in Pomerium Enterprise](../img/events-fullpage.png) +![The Events page in Pomerium Enterprise](./img/events-fullpage.png) The most common updates are to Pomerium Proxy services, which are updated every time a Route or Policy is created or updated. @@ -47,7 +47,7 @@ From the **Deployment History** page administrators can review changes made to t The default view shows all changes made through Pomerium Enterprise. Use the **COMPARE** button next to an entry to filter to only changes that affected that resource. Select two versions of that resource, then **DIFF** to see what changed: -![A screenshot showing the diff of a change to a route, adding a policy](../img/deployment-diff.png) +![A screenshot showing the diff of a change to a route, adding a policy](./img/deployment-diff.png) [route-concept]: /enterprise/concepts.md#routes diff --git a/docs/guides/enroll-device.md b/docs/guides/enroll-device.md index 6a3cfc9ab..48bdf4bb1 100644 --- a/docs/guides/enroll-device.md +++ b/docs/guides/enroll-device.md @@ -14,7 +14,7 @@ description: >- If a Pomerium route is configured to [require device authentication](/docs/topics/ppl.md#device-matcher), then the user must register a [trusted execution environment](/docs/topics/device-identity.md#authenticated-device-types) (**TEE**) device before accessing the route. Registration is easy, but different depending on the device being used to provide ID. -This guide covers enrollment of a device by a user. This is available for both open-source Pomerium and [Pomerium Enterprise](/enterprise) installations. However, Enterprise users may also receive registration links [generated by their administrators](/guides/admin-enroll-device.md), which will mark the newly enrolled device as approved in the Pomerium Enterprise Console. +This guide covers enrollment of a device by a user. This is available for both open-source Pomerium and [Pomerium Enterprise](/enterprise/readme.md) installations. However, Enterprise users may also receive registration links [generated by their administrators](/guides/admin-enroll-device.md), which will mark the newly enrolled device as approved in the Pomerium Enterprise Console. 1. Users are prompted to register a new device when accessing a route that requires device authentication: diff --git a/docs/enterprise/img/add-service-account.png b/docs/reference/img/add-service-account.png similarity index 100% rename from docs/enterprise/img/add-service-account.png rename to docs/reference/img/add-service-account.png diff --git a/docs/enterprise/img/console-devices.png b/docs/reference/img/console-devices.png similarity index 100% rename from docs/enterprise/img/console-devices.png rename to docs/reference/img/console-devices.png diff --git a/docs/enterprise/img/create-impersonated-service-account.png b/docs/reference/img/create-impersonated-service-account.png similarity index 100% rename from docs/enterprise/img/create-impersonated-service-account.png rename to docs/reference/img/create-impersonated-service-account.png diff --git a/docs/enterprise/img/create-service-account.png b/docs/reference/img/create-service-account.png similarity index 100% rename from docs/enterprise/img/create-service-account.png rename to docs/reference/img/create-service-account.png diff --git a/docs/enterprise/img/deployment-diff.png b/docs/reference/img/deployment-diff.png similarity index 100% rename from docs/enterprise/img/deployment-diff.png rename to docs/reference/img/deployment-diff.png diff --git a/docs/enterprise/img/events-fullpage.png b/docs/reference/img/events-fullpage.png similarity index 100% rename from docs/enterprise/img/events-fullpage.png rename to docs/reference/img/events-fullpage.png diff --git a/docs/enterprise/img/example-policy-editor.png b/docs/reference/img/example-policy-editor.png similarity index 100% rename from docs/enterprise/img/example-policy-editor.png rename to docs/reference/img/example-policy-editor.png diff --git a/docs/enterprise/img/example-policy-single-user.png b/docs/reference/img/example-policy-single-user.png similarity index 100% rename from docs/enterprise/img/example-policy-single-user.png rename to docs/reference/img/example-policy-single-user.png diff --git a/docs/reference/img/new-enrollment.png b/docs/reference/img/new-enrollment.png new file mode 100644 index 0000000000000000000000000000000000000000..99de9ce65dcce97ed0243469f78a96eddab7ef04 GIT binary patch literal 21017 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%0AkQW;4 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 OcU(prUV5%=8~P6|B~c*& literal 0 HcmV?d00001 diff --git a/docs/enterprise/img/runtime-fullpage.png b/docs/reference/img/runtime-fullpage.png similarity index 100% rename from docs/enterprise/img/runtime-fullpage.png rename to docs/reference/img/runtime-fullpage.png diff --git a/docs/enterprise/img/service-account-jwt.png b/docs/reference/img/service-account-jwt.png similarity index 100% rename from docs/enterprise/img/service-account-jwt.png rename to docs/reference/img/service-account-jwt.png diff --git a/docs/enterprise/img/service-account-policy.png b/docs/reference/img/service-account-policy.png similarity index 100% rename from docs/enterprise/img/service-account-policy.png rename to docs/reference/img/service-account-policy.png diff --git a/docs/enterprise/img/sessions-fullpage.png b/docs/reference/img/sessions-fullpage.png similarity index 100% rename from docs/enterprise/img/sessions-fullpage.png rename to docs/reference/img/sessions-fullpage.png diff --git a/docs/enterprise/img/traffic-fullpage.png b/docs/reference/img/traffic-fullpage.png similarity index 100% rename from docs/enterprise/img/traffic-fullpage.png rename to docs/reference/img/traffic-fullpage.png diff --git a/docs/enterprise/img/user-id.png b/docs/reference/img/user-id.png similarity index 100% rename from docs/enterprise/img/user-id.png rename to docs/reference/img/user-id.png