teleport/lib/services
Sasha Klizhentas 3e144cb900 Teleport certificate authority rotation.
This commit implements #1860

During the the rotation procedure issuing TLS and SSH
certificate authorities are re-generated and all internal
components of the cluster re-register to get new
credentials.

The rotation procedure is based on a distributed
state machine algorithm - certificate authorities have
explicit rotation state and all parts of the cluster sync
local state machines by following transitions between phases.

Operator can launch CA rotation in auto or manual modes.

In manual mode operator moves cluster bewtween rotation states
and watches the states of the components to sync.

In auto mode state transitions are happening automatically
on a specified schedule.

The design documentation is embedded in the code:

lib/auth/rotate.go
2018-04-30 12:58:57 -07:00
..
local Teleport certificate authority rotation. 2018-04-30 12:58:57 -07:00
suite Teleport certificate authority rotation. 2018-04-30 12:58:57 -07:00
authentication.go Github connector 2017-12-14 13:41:38 -08:00
authority.go Teleport certificate authority rotation. 2018-04-30 12:58:57 -07:00
clusterconfig.go External events and sessions storage. 2018-03-15 12:42:43 -07:00
clustername.go Correct various typos 2017-10-20 10:20:26 +02:00
configuration.go Added services.ClusterConfig resource which controls where (and if) a 2017-10-25 21:09:21 +00:00
doc.go moving code around and splitting interfaces 2016-04-04 17:09:00 -07:00
github.go Use Github username instead of email 2017-12-14 18:07:20 -08:00
github_test.go Github connector 2017-12-14 13:41:38 -08:00
identity.go Fix typos and some review comments 2017-12-14 17:19:57 -08:00
map_test.go fix tests 2017-05-19 10:06:48 -07:00
migrations_test.go Added cert_format to role as well as tsh to control how a certificate is 2018-01-09 14:57:35 -08:00
namespace.go Mutual TLS Auth server and clients. 2017-12-27 11:37:19 -08:00
oidc.go Audit log contains login failures. 2018-01-15 18:11:08 -08:00
oidc_test.go Removed namespaces and expires from user interface. 2017-08-30 18:11:13 +00:00
parser.go Teleport certificate authority rotation. 2018-04-30 12:58:57 -07:00
presence.go Enforce trusted cluster resource name, fixes #1543 2018-01-11 14:13:30 -08:00
provisioning.go Re-factored cluster configuration. 2017-08-07 17:20:16 -07:00
remotecluster.go Add support for remote_cluster, implements #1526 2017-12-28 17:48:30 -08:00
resource.go Teleport certificate authority rotation. 2018-04-30 12:58:57 -07:00
role.go Teleport certificate authority rotation. 2018-04-30 12:58:57 -07:00
role_test.go Added cert_format to role as well as tsh to control how a certificate is 2018-01-09 14:57:35 -08:00
saml.go Audit log contains login failures. 2018-01-15 18:11:08 -08:00
saml_test.go switch from client-go to apimachinery release-1.7 2017-08-28 18:25:39 -07:00
server.go Teleport certificate authority rotation. 2018-04-30 12:58:57 -07:00
session.go Mutual TLS Auth server and clients. 2017-12-27 11:37:19 -08:00
statictokens.go Correct various typos 2017-10-20 10:20:26 +02:00
trust.go Teleport certificate authority rotation. 2018-04-30 12:58:57 -07:00
trustedcluster.go Join address for web, reverse tunnel, fixes #1544 2018-01-05 16:20:56 -08:00
tunnel.go Fix trusted cluster migrations. 2018-02-19 11:20:10 -08:00
tunnelconn.go Add support for remote_cluster, implements #1526 2017-12-28 17:48:30 -08:00
user.go Fix typos and some review comments 2017-12-14 17:19:57 -08:00
users_test.go Added support for role variables. 2017-07-24 22:06:07 +00:00