mirror of
https://github.com/gravitational/teleport.git
synced 2026-11-01 21:52:02 +08:00
* [Docs] Machine ID Host Certificate Support * general tech edits * broken link fix * typos/principal clarifications * typo/spacing fix * strideynet improvement * ptgott fixes * closing tab fix * some additional copy fixes * role fix * heading fix * clarify hosts involved * scope fixes/spelling * final-steps * afornuto copy edits * tech fixes, principal/openssh
162 lines
5.7 KiB
Plaintext
162 lines
5.7 KiB
Plaintext
---
|
|
title: Machine ID Configuration Reference
|
|
description: Configuration reference for Teleport Machine ID.
|
|
---
|
|
|
|
The following snippet shows full YAML configuration of the Machine ID client
|
|
`tbot`. Assuming the file is written to `tbot.yaml`, it can be used with
|
|
`tbot -c /etc/tbot.yaml`.
|
|
|
|
```yaml
|
|
# Debug enables verbose logging to stderr.
|
|
debug: true
|
|
|
|
# Address of the Teleport Auth Server (on-prem installs) or Teleport Cloud tenant.
|
|
auth_server: "auth.example.com:3025" # or "example.teleport.sh:443" for Teleport Cloud
|
|
|
|
# TTL of short-lived machine certificates.
|
|
certificate_ttl: "5m"
|
|
|
|
# Interval at which short-lived certificates are renewed; must be less than
|
|
# the certificate TTL.
|
|
renewal_interval: "1m"
|
|
|
|
# If set, quit after the first renewal.
|
|
oneshot: true
|
|
|
|
# Onboarding values are only used on first connect.
|
|
onboarding:
|
|
# Cluster join method. Can be "token" or "iam".
|
|
join_method: "token"
|
|
|
|
# Token used to join the cluster. (only required for join_method: token)
|
|
#
|
|
# This can also be an absolute path to a file containing the token.
|
|
# The token can live in a temporary file that's deleted after tbot is first launched,
|
|
# but if tbot has to re-authenticate with the Auth Service, it will fail.
|
|
#
|
|
# File path example:
|
|
# token: /var/lib/teleport/tokenjoin
|
|
token: "00000000000000000000000000000000"
|
|
|
|
# CA Path used to validate the identity of the Teleport Auth Server on first connect.
|
|
ca_path: "/path/to/ca.pem"
|
|
|
|
# CA Pins used to validate the identity of the Teleport Auth Server on first connect.
|
|
ca_pins:
|
|
- "(=presets.ca_pin=)"
|
|
- "(=presets.ca_pin=)"
|
|
|
|
# Storage defines where Machine ID internal data is stored.
|
|
storage:
|
|
# Directory to store internal bot data. Access to this directory should be
|
|
# limited.
|
|
directory: /var/lib/teleport/bot
|
|
|
|
# Alternatively, internal data can be stored in memory. "directory" and
|
|
# "memory" are mutually exclusive. Note that the bot will not be able to
|
|
# restart without a new token if data is only stored in memory.
|
|
memory: true
|
|
|
|
# Destinations specifies where short-lived certificates are stored.
|
|
destinations:
|
|
# Directory specifies a filesystem directory where short-lived certificates
|
|
# are stored.
|
|
- directory:
|
|
# Configure the path at which to store certificates and other
|
|
# artifacts.
|
|
path: /opt/machine-id
|
|
|
|
|
|
# Configure symlink attack prevention. Requires Linux 5.6+.
|
|
# Possible values:
|
|
# * try-secure (default): Attempt to securely read and write certificates
|
|
# without symlinks, but fall back (with a warning) to insecure read
|
|
# and write if the host doesn't support this.
|
|
# * secure: Attempt to securely read and write certificates, with a hard error
|
|
# if unsupported.
|
|
# * insecure: Quietly allow symlinks in paths.
|
|
symlinks: try-secure
|
|
# Configure ACL use. Requires Linux with a file system that supports ACLs.
|
|
# Possible values:
|
|
# * try (default on Linux): Attempt to use ACLs, warn at runtime if ACLs
|
|
# are configured but invalid.
|
|
# * off (default on non-Linux): Do not attempt to use ACLs.
|
|
# * required: Always use ACLs, produce a hard error at runtime if ACLs
|
|
# are invalid.
|
|
acls: try
|
|
# One or more roles to request for this destination directory from among
|
|
# the roles granted by `tctl bots add --roles=...`
|
|
# By default, all roles specified during `tctl bots add ...` are
|
|
# included. A subset of these may be specified here to write short-lived
|
|
# certificates with different roles to different directories.
|
|
roles: [a, b, c]
|
|
|
|
# An optional database request. The database must exist, and no other
|
|
# special certificate requests may be present for this destination, such
|
|
# as apps or Kubernetes clusters.
|
|
database:
|
|
# The name of the database server as it exists in Teleport.
|
|
service: example-server
|
|
|
|
# The database user to connect as.
|
|
username: alice
|
|
|
|
# The database on the database server to use.
|
|
database: example
|
|
|
|
# A list of configuration templates to generate and write to this
|
|
# destination.
|
|
configs:
|
|
# Requests an SSH host certificate. Requires a role granting the `create` verb on `host_cert` resources.
|
|
- ssh_host_cert:
|
|
principals: [my.machineid.domain.com]
|
|
# ssh_client generates known_hosts and an ssh_config that can be
|
|
# included.
|
|
- ssh_client
|
|
|
|
# The `mongo` template outputs specially-formatted certificates for
|
|
# MongoDB.
|
|
- mongo
|
|
|
|
# The `cockroach` template generates specially-named certificates
|
|
# for use with CockroachDB.
|
|
- cockroach
|
|
|
|
# The `tls` template generates tls.key, tls.crt, and tls.cas for apps
|
|
# with file naming requirements. The always-present `tlscert` is
|
|
# usually sufficient for most apps.
|
|
- tls
|
|
```
|
|
|
|
If no configuration file is provided, a simple configuration is used based
|
|
entirely on provided CLI flags. Given the following sample CLI from
|
|
`tctl bots add ...`:
|
|
|
|
```code
|
|
$ tbot start \
|
|
--destination-dir=./tbot-user \
|
|
--token=00000000000000000000000000000000 \
|
|
--ca-pin=(=presets.ca_pin=) \
|
|
--auth-server=auth.example.com:3025
|
|
```
|
|
|
|
... it uses a configuration equivalent to the following:
|
|
|
|
```yaml
|
|
auth_server: auth.example.com:3025
|
|
|
|
onboarding:
|
|
join_method: "token"
|
|
token: "(=presets.tokens.first=)"
|
|
ca_pins:
|
|
- "(=presets.ca_pin=)"
|
|
|
|
storage:
|
|
directory: /var/lib/teleport/bot
|
|
|
|
destinations:
|
|
- directory:
|
|
path: ./tbot-user
|
|
```
|