-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CA rotation #1860
Labels
Comments
klizhentas
added a commit
that referenced
this issue
Apr 8, 2018
klizhentas
added a commit
that referenced
this issue
Apr 22, 2018
klizhentas
added a commit
that referenced
this issue
Apr 24, 2018
klizhentas
added a commit
that referenced
this issue
Apr 30, 2018
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
klizhentas
added a commit
that referenced
this issue
May 1, 2018
Cluster certificate authority rotation, implements #1860
@kontsevoy I converted this to doc ticket and moved it out of 2.6.0 milestone, so you can take care of it on your own schedule. |
@klizhentas I have documented the high-level commands but we're leaving "phases" undocumented for now. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
Currently it is only possible to "hard-revoke" teleport CA authority by wiping out data. There should be a way to gracefully rotate user and host certificate authorities.
Proposal
Automatic rotation
The most simple way to rotate certificate authorities, both user and host should be as easy as:
This will trigger 48 hour rotation process - new user and host CA will be effective immediately and old user and host CA will be deprecated in 48 hours.
The ttl can be adjusted by using
--grace-period
flag, and type of authority to rotate can be selected using--type
flag:This rotation will be respected by trusted clusters as well.
Manual rotation
Start manual rotation:
Make sure all components have updated to
update_clients
phase by looking at the rotation status:Move to the next phase:
Wrap up the phase:
Rolling back:
In case if something went wrong, rollback is possible from phases
update_clients
andupdate_servers
In this mode, old CA and new CA are both trusted, but all components will re-register with old CA credentials
From rollback phase, it is possible to go to standby to revert to old cert authority
Forced rotation
Sometimes it is necessary to force-rotate user or host CA
Rotation status
Rotation status can be queried at:
With debug flag, status will print status of remote clusters as well:
More low-level docs are here:
https://github.com/gravitational/teleport/blob/master/lib/auth/rotate.go#L126
The text was updated successfully, but these errors were encountered: