Files
teleport/docs/pages/includes/config-reference/auth-service.yaml
T
Paul GottschlingandAlex Fornuto da0e53ecdb Reorganize the config reference (#21594)
* Reorganize the config reference

Closes #11253

This change breaks up the config reference by moving each Teleport
service's configuration settings into a separate YAML snippet, and
organizing each YAML snippet into a `TabItem` within a `Tabs` with
`dropdownView` enabled. When Teleport Enterprise Cloud doesn't support a
service, this change adds a `Notice` with a message about Teleport
Enterprise Cloud in the relevant `TabItem`.

I thought this approach would be cleaner than alternatives:

- **Including an H2 for each service:** With this approach, the
  configuration reference would be even longer than it is now. With the
  approach I'm proposing, readers would navigate to "Reference
  configurations", then choose a service from a dropdown menu: much less
  scrolling for slightly more clicking.

- **Including another set of `TabItem`s for Teleport editions:** I
  thought about adding a `Tabs` with a dropdown option for each Teleport
  edition and a horizontal `TabItem` for each service, but this would
  require horizontal scrolling and doesn't scale very well.

- **Including horizontal tabs for each Teleport edition**, with an inner
  dropdown menu for each Teleport service: There is currently no way to
  do this without multiple `Tabs` components, which gets messy quickly.

**Note** that this change does not attempt to copy-edit comments/example
values within the configuration snippets. The scope of this change is
limited only to reorganization.

* Respond to PR feedback

* Update docs/pages/includes/config-reference/instance-wide.yaml

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>

* Respond to PR feedback

Use headings instead of `TabItem`s to split up sections of the config
reference.

---------

Co-authored-by: Alex Fornuto <alex.fornuto@goteleport.com>
2023-02-24 22:12:38 +00:00

368 lines
16 KiB
YAML

teleport:
# Configuration for the storage back-end used for the cluster state and the
# audit log. Several back-end types are supported.
# See the "Storage backends" (https://goteleport.com/docs/setup/reference/backends)
# section of the documentation to learn how to configure
# DynamoDB, S3, etcd, and other highly available back-ends.
storage:
# By default teleport uses a SQLite database in the `data_dir`
# directory on a local filesystem
type: sqlite
# List of locations where the audit log events will be stored. By
# default, they are stored in `/var/lib/teleport/log`.
#
# When specifying multiple destinations like this, make sure that
# highly-available storage methods (like DynamoDB or Firestore) are
# specified first, as this is what the Teleport Web UI uses as its
# source of events to display.
audit_events_uri:
- 'dynamodb://events_table_name'
- 'firestore://events_table_name'
- 'file:///var/lib/teleport/log'
- 'stdout://'
# Use this setting to configure teleport to store the recorded sessions
# in an AWS S3 bucket or use GCP Storage with 'gs://'.
# See the S3 section on "Storage backends" for more information
# (https://goteleport.com/docs/setup/reference/backends/#s3).
audit_sessions_uri: 's3://example.com/path/to/bucket?region=us-east-1'
# SQLite-specific section:
# The default path is the `backend` directory in the `data_dir`
path: /var/lib/teleport/backend/
# SQLite's `synchronous` pragma, can be set to `"OFF"` for improved
# write performance in exchange for reliability against system crashes
# (see https://www.sqlite.org/pragma.html#pragma_synchronous).
sync: FULL
# SQLite's `journal_mode` pragma, by default it doesn't change the mode from
# the SQLite default (DELETE unless the database file is using WAL mode).
# For improved performance without sacrificing reliability it's possible to
# set `journal` to `WAL` and `sync` to `NORMAL`, but only when using a filesystem
# that supports locks (see https://www.sqlite.org/pragma.html#pragma_journal_mode).
#journal: DELETE
# DynamoDB-specific section:
# continuous_backups is used to enable continuous backups.
continuous_backups: [true|false]
# auto_scaling is used to enable (and define settings for) auto
# scaling.
# default: false
auto_scaling: [true|false]
# By default, Teleport stores stores audit events with an AWS TTL of 1 year.
# This value can be configured as shown below. If set to 0 seconds, TTL is disabled.
audit_retention_period: 365d
# minimum/maximum read capacity in units
read_min_capacity: int
read_max_capacity: int
read_target_value: float
# minimum/maximum write capacity in units
write_min_capacity: int
write_max_capacity: int
write_target_value: float
# Cipher algorithms that the server supports. This section only needs to be
# set if you want to override the defaults.
ciphers:
- aes128-ctr
- aes192-ctr
- aes256-ctr
- aes128-gcm@openssh.com
- chacha20-poly1305@openssh.com
# Key exchange algorithms that the server supports. This section only needs
# to be set if you want to override the defaults.
kex_algos:
- curve25519-sha256@libssh.org
- ecdh-sha2-nistp256
- ecdh-sha2-nistp384
- ecdh-sha2-nistp521
# Message authentication code (MAC) algorithms that the server supports.
# This section only needs to be set if you want to override the defaults.
mac_algos:
- hmac-sha2-256-etm@openssh.com
- hmac-sha2-256
# List of the supported ciphersuites. If this section is not specified,
# only the default ciphersuites are enabled.
ciphersuites:
- tls-ecdhe-rsa-with-aes-128-gcm-sha256
- tls-ecdhe-ecdsa-with-aes-128-gcm-sha256
- tls-ecdhe-rsa-with-aes-256-gcm-sha384
- tls-ecdhe-ecdsa-with-aes-256-gcm-sha384
- tls-ecdhe-rsa-with-chacha20-poly1305
- tls-ecdhe-ecdsa-with-chacha20-poly1305
# This section configures the 'auth service':
auth_service:
# Turns 'auth' role on. Default is 'yes'
enabled: yes
# A cluster name is used as part of a signature in certificates
# generated by this CA.
#
# We strongly recommend explicitly setting it to something meaningful as it
# becomes important when configuring trust between multiple clusters.
#
# By default an automatically generated name is used (not recommended)
#
# IMPORTANT: if you change cluster_name, it will invalidate all generated
# certificates and keys (may need to wipe out /var/lib/teleport directory)
cluster_name: "main"
# ProxyProtocol enables support for HAProxy proxy protocol version 1 when it
# is turned 'on'. Verify whether the service is in front of a trusted load
# balancer.
# The default value is 'on'.
proxy_protocol: on
authentication:
# default authentication type. possible values are 'local' and 'github'
# for OSS, plus 'oidc' and 'saml' for Enterprise.
# Only local authentication (Teleport's own user DB) & GitHub is
# supported in the open source version
type: local
# Sets whether local auth is enabled alongside any other authentication
# type. Default is true. local_auth must be 'false' for FedRAMP / FIPS.
# (https://goteleport.com/docs/enterprise/ssh-kubernetes-fedramp/)
#local_auth: true
# second_factor can be 'off', 'on', 'optional', 'otp' or 'webauthn'.
# - 'on' requires either otp or webauthn second factor.
# - 'optional' allows otp and webauthn second factor.
# - 'otp' and 'webauthn' require the corresponding second factor.
second_factor: otp
# Sets whether passwordless authorization is allowed.
# Passwordless requires WebAuthn.
# Defaults to "true".
#passwordless: true
# Sets the authenticator connector for SSO (Enterprise) or the default
# connector for "local" authentication.
# See SSO for Enterprise (https://goteleport.com/docs/enterprise/sso/).
# See Passwordless for local
# (http://goteleport.com/docs/access-controls/guides/passwordless/#optional-enable-passwordless-by-default).
# Defaults to "local".
#connector_name: local
# this section is used if second_factor is set to 'on', 'optional' or
# 'webauthn'.
webauthn:
# public domain of the Teleport proxy, *excluding* protocol
# (`https://`) and port number.
#
# IMPORTANT: rp_id must never change in the lifetime of the cluster,
# because it's recorded in the registration data on the second factor
# authenticator. If the rp_id changes, all existing authenticator
# registrations will become invalid and all users who use WebAuthn as
# the second factor will need to re-register.
rp_id: "localhost"
# optional allow list of certificate authorities (as local file paths
# or in-line PEM certificate string) for [device verification](
# https://developers.yubico.com/WebAuthn/WebAuthn_Developer_Guide/Attestation.html).
# This field allows you to restrict which device models and vendors
# you trust.
# Devices outside of the list will be rejected during registration.
# By default all devices are allowed.
# If you must use attestation, consider using
# `attestation_denied_cas` to forbid troublesome devices instead.
attestation_allowed_cas:
- /path/to/allowed_ca.pem
- |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
# optional deny list of certificate authorities (as local file paths
# or in-line PEM certificate string) for [device verification](
# https://developers.yubico.com/WebAuthn/WebAuthn_Developer_Guide/Attestation.html).
# This field allows you to forbid specific device models and vendors,
# while allowing all others (provided they clear
# `attestation_allowed_cas` as well).
# Devices within this list will be rejected during registration. By
# default no devices are forbidden.
attestation_denied_cas:
- /path/to/denied_ca.pem
- |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
# if set to true, disables WebAuthn. Allows a fallback to U2F for
# second factor modes 'on' and 'optional'.
disabled: false
# the U2F section is kept for legacy purposes and to support existing
# U2F registrations.
u2f:
# app ID used by U2F registrations.
# Keep it in your config to avoid having to re-register U2F devices.
app_id: https://localhost:3080
# Locking mode determines how to apply lock views locally available to
# a Teleport component; can be strict or best_effort.
# See the "Locking mode" section for more details
# (https://goteleport.com/docs/access-controls/guides/locking/#locking-mode).
locking_mode: best_effort
# Device Trust configures Teleport's behavior in regards to trusted
# devices.
# Device Trust is a Teleport Enterprise feature.
# (https://goteleport.com/docs/access-controls/guides/device-trust/)
device_trust:
# 'mode' is the cluster-wide device trust mode.
# The following values are supported:
# - 'off' - disables device trust. Device authentication is not
# performed and device-aware audit logs are absent.
# - 'optional' - enables device authentication and device-aware audit,
# but doesn't require a trusted device to access resources.
# - 'required' - enables device authentication and device-aware audit.
# Additionally, it requires a trusted device for all SSH, Database
# and Kubernetes connections.
mode: optional # always "off" for OSS
# IP and the port to bind to. Other Teleport Nodes will be connecting to
# this port (AKA "Auth API" or "Cluster API") to validate client
# certificates
listen_addr: 0.0.0.0:3025
# The optional DNS name for the auth server if located behind a load
# balancer.
public_addr: auth.example.com:3025
# Pre-defined tokens for adding new nodes to a cluster. Each token specifies
# the role a new node will be allowed to assume. The more secure way to
# add nodes is to use `tctl nodes add --ttl` command to generate auto-expiring
# tokens.
#
# We recommend to use tools like `pwgen` to generate sufficiently random
# tokens of 32+ byte length.
tokens:
- "proxy,node:xxxxx"
- "auth:yyyy"
# Optional setting for configuring session recording. Possible values are:
# "node" : (default) sessions will be recorded on the node
# and periodically cleaned up after they are uploaded
# to the storage service.
# "node-sync" : session recordings will be streamed from
# node -> auth -> storage service without being stored on
# disk at all.
# "proxy" : sessions will be recorded on the proxy and periodically
# cleaned up after they are uploaded to the storage service.
# "proxy-sync : session recordings will be streamed from
# proxy -> auth -> storage service without being stored on
# disk at all.
# "off" : session recording is turned off
#
session_recording: "node"
# This setting determines if a Teleport proxy performs strict host key
# checks.
# Only applicable if session_recording=proxy, see "Recording Proxy Mode"
# for details
# (https://goteleport.com/docs/architecture/proxy/#recording-proxy-mode).
proxy_checks_host_keys: yes
# Determines if sessions to cluster resources are forcefully terminated after
# no activity from a client (idle client).
# Examples: "30m", "1h" or "1h30m"
client_idle_timeout: never
# Send a custom message to the client when they are disconnected due to
# inactivity. The empty string indicates that no message will be sent.
# (Currently only supported for Server Access connections)
client_idle_timeout_message: ""
# Sets an idle timeout for the Web UI. The default is 10m.
web_idle_timeout: 10m
# Determines if the clients will be forcefully disconnected when their
# certificates expire in the middle of an active session. (default is 'no')
disconnect_expired_cert: no
# Determines the interval at which Teleport will send keep-alive messages.
# The default is set to 5 minutes (300 seconds) to stay lower than the
# common load balancer timeout of 350 seconds.
# keep_alive_count_max is the number of missed keep-alive messages before
# the server tears down the connection to the client.
keep_alive_interval: 5m
keep_alive_count_max: 3
# Determines the internal session control timeout cluster-wide. This value
# will be used with enterprise max_connections and max_sessions. It's
# unlikely that you'll need to change this.
# session_control_timeout: 2m
# Determines the routing strategy used to connect to nodes. Can be
# 'unambiguous_match' (default), or 'most_recent'.
routing_strategy: unambiguous_match
# License file to start auth server with. Note that this setting is ignored
# in the Teleport Open-Source Edition and is required only for Teleport Pro, Business
# and Enterprise subscription plans.
#
# The path can be either absolute or relative to the configured `data_dir`
# and should point to the license file obtained from Teleport Download
# Portal.
#
# If not set, by default Teleport will look for the `license.pem` file in
# the configured `data_dir` .
license_file: /var/lib/teleport/license.pem
# Configures a banner message to be displayed to a user logging into the
# cluster, which must be acknowledged before the user is allowed to log in.
# Note that will be shown *before* login, so should not contain any
# confidential information.
# Defaults to the empty string, implying no message or acknowledgment is
# required.
message_of_the_day: ""
# Indicates to the clients whether the cluster is running in TLS routing
# mode with all protocols multiplexed on the proxy's web_listen_addr.
#
# Possible values are:
#
# "multiplex": clients will be connecting to Teleport proxy's web listener
# in TLS routing mode.
# "separate": clients will be connecting to Teleport proxy's individual
# listeners: tunnel_listen_addr, mysql_listen_addr, etc.
#
# See "TLS Routing" in Architecture section for additional information.
proxy_listener_mode: multiplex
# Determines the strategy that the cluster uses for connecting clients to
# agents through the Teleport Proxy Service.
tunnel_strategy:
# Possible tunnel strategy types are:
#
# "agent_mesh": The default behavior, where agents will connect to every
# Teleport Proxy Service instance.
# "proxy_peering": Agents will connect to a subset of Proxy Service instances
# and clients will be routed between Proxy Service instances
# for end-to-end connectivity.
type: proxy_peering
# The number of reverse tunnel connections agents will attempt to create.
# This field is only available when using the "proxy_peering" tunnel
# strategy type. For high availability we recommend setting this value to
# 2 or more.
agent_connection_count: 1
# Tells tsh to load the CAs of all clusters when trying to ssh into a Teleport Node,
# instead of just the CA for the current cluster. This may be useful for
# users that want to log in to a root cluster and then "tsh ssh" into a node
# in a leaf cluster. Defaults to false.
load_all_cas: false