Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 28 additions & 6 deletions docs/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -345,23 +345,35 @@
"slug": "/access-controls/device-trust/",
"forScopes": [
"enterprise",
"cloud"
"cloud",
"team"
],
"entries": [
{
"title": "Set Up Device Trust",
"title": "Getting Started",
"slug": "/access-controls/device-trust/guide/",
"forScopes": [
"enterprise",
"cloud"
"cloud",
"team"
]
},
{
"title": "Set Up Auto-Enrollment",
"slug": "/access-controls/device-trust/auto-enrollment/",
Comment thread
flyinghermit marked this conversation as resolved.
"title": "Manage Trusted Devices",
"slug": "/access-controls/device-trust/device-management/",
"forScopes": [
"enterprise",
"cloud"
"cloud",
"team"
]
},
{
"title": "Enforce Device Trust",
"slug": "/access-controls/device-trust/enforcing-device-trust/",
"forScopes": [
"enterprise",
"cloud",
"team"
]
},
{
Expand Down Expand Up @@ -1551,6 +1563,11 @@
}
],
"variables": {
"clusterDefaults": {
"clusterName": "teleport.example.com",
"username": "myuser",
"nodeIP": "ip-172-31-35-170"
},
"ansible": {
"min_version": "2.9.6"
},
Expand Down Expand Up @@ -2659,6 +2676,11 @@
"destination": "/access-controls/device-trust/guide/",
"permanent": true
},
{
"source": "/access-controls/device-trust/auto-enrollment/",
"destination": "/access-controls/device-trust/device-management/",
"permanent": true
},
{
"source": "/management/guides/teleport-operator/",
"destination": "/management/dynamic-resources/teleport-operator/",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
88 changes: 77 additions & 11 deletions docs/pages/access-controls/device-trust.mdx
Original file line number Diff line number Diff line change
@@ -1,31 +1,97 @@
---
title: Device Trust (Preview)
description: Use and enforce trusted devices with Teleport
description: Teleport Device Trust Concepts
Comment thread
flyinghermit marked this conversation as resolved.
layout: tocless-doc
videoBanner: gBQyj_X1LVw
---

<Admonition type="warning">
Device Trust is currently in Preview mode.
Device Trust is currently in Preview mode and supports following components:

- User devices: macOS and Windows.
- Teleport client: `tsh` and Teleport connect.
- Resources: SSH, Database and Kubernetes.

Support for other operating systems, access from Web UI and application
access is planned for upcoming Teleport versions.
</Admonition>

## Concepts

Device Trust allows Teleport admins to enforce the use of trusted devices.
Resources protected by the device mode "required" will enforce the use of a
trusted device, in addition to establishing the user's identity and enforcing
the necessary roles. Furthermore, users using a trusted device leave audit
trails that include the device's information.

The device trust preview works on macOS and Windows devices and supports the
following Teleport features:
Device Trust requires two of the following steps to have been configured:

- Trusted device registered and enrolled with Teleport.
- Device enforcement mode configured via either a role or a cluster-wide config.

Categorically, we define these two requirements as Trusted Device management
and Device Trust enforcement.
Comment on lines +32 to +33
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we either say "Trusted Device management/enforcement" or "Device Trust management/enforcement", so there's less difference between terms?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hear you on this one. Between "Trusted Device management/enforcement" and "Device Trust management/enforcement", I prefer the first one as it is close to how device trust works(enrolling trusted devices, enforcing trusted device access).

Though the Device Trust Enforcement also aligns with the configuration semantics as the rule to enforce device is device_trust_mode: required and not trusted_device: required. That said, I am open to suggestions here.

Also tagging @zmb3 for more suggestions.


## Trusted Device management

Device management is divided into two separate phases: inventory management and
device enrollment.

**Inventory management** is performed by a device admin. In this step, devices
are registered or removed from Teleport. For example, this happens when the IT
department of your company acquires new devices, or retires devices from use.

Inventory management can be manually operated using `tctl` or automatically synced
with a Mobile Device Management (MDM) solution such as Jamf Pro.

**Device enrollment** is performed either by a device admin or by the end-user,
at your discretion. This is the step that creates the Secure Enclave private key
in the device and registers its public key counterpart with the Teleport Auth
Server. Enrollment has to run on the actual device that you want to enroll. For
example, this happens when a user gets a new device for the first time, or when
IT prepares a new device for a user. Enrollment only needs to happen once per
user/device combination.

Enrollment exchanges an enrollment token, created by a
device admin, for the opportunity to enroll the corresponding device.

### How trust is established with the device

Device Trust leverages dedicated secure hardware in devices to store device credentials
and perform device challenges. The specific implementation varies between types of devices.

On macOS devices, Device Trust uses the Secure Enclave in order to store a
device private key. That key is used to solve device challenges issued by the
Teleport Auth Service, proving the identity of the trusted device.

On Windows devices, a Trusted Platform Module (TPM) is used to perform an
attestation as to the state of the device. This attestation is signed by a
private key that is also protected by the TPM.

The signed attestation ensures that the Teleport Auth Service knows both the state
of the device and that the request has come from the device.

That said, a device is as "trustworthy" as the enrollment process. If enrollment operator
enrolls a malicious device to Teleport, establishing trust with Secure Enclave or TPM is
already defeated at this point. The more trusted the enrollment environment and operator,
the better the ongoing guarantees that the device itself is trustworthy.

## Device Trust enforcement

Enforcing Device Trust means configuring Teleport with device trust mode, i.e. applying
`device_trust_mode: required` rule, which tells Teleport Auth Service to only allow access
Comment thread
flyinghermit marked this conversation as resolved.
with a trusted and an authenticated device, in addition to establishing the user's identity and enforcing
the necessary roles.

- SSH access enforcement
- Database access enforcement
- Kubernetes access enforcement
Teleport supports two methods for device enforcement: Role-based
enforcement and Cluster-wide enforcement.

Support for other operating systems and access features is planned for upcoming
Teleport versions.
- **Role-based enforcement** can be used to enforce Device Trust at role level, using RBAC.
- **Cluster-wide enforcement** can be used to enforce Device Trust at cluster level.

## Guides

- [Set Up Device Trust](./device-trust/guide.mdx)
- [Set Up Auto-Enrollment](./device-trust/auto-enrollment.mdx)
- [Getting Started with Device Trust](./device-trust/guide.mdx)
- [Device Management](./device-trust/device-management.mdx)
- [Enforcing Device Trust](./device-trust/enforcing-device-trust.mdx)
- [Jamf Pro Integration](./device-trust/jamf-integration.mdx)
88 changes: 0 additions & 88 deletions docs/pages/access-controls/device-trust/auto-enrollment.mdx

This file was deleted.

Loading