Skip to content
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

Added Machine ID documentation #10775

Merged
merged 2 commits into from
Mar 10, 2022
Merged

Added Machine ID documentation #10775

merged 2 commits into from
Mar 10, 2022

Conversation

russjones
Copy link
Contributor

@russjones russjones commented Mar 3, 2022

Added Machine ID documentation.

@russjones russjones marked this pull request as draft March 3, 2022 01:42
@github-actions github-actions bot requested a review from r0mant March 3, 2022 01:42
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
editor user:list,create,read,update,delete,...
```

The above output is from a fresh install of Teleport with the default roles, your cluster may have additional roles. In our example, let’s assume you want to give the bot `access` role to allow it to connect to SSH servers within your cluster.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Are we allowing the bot to connect to SSH servers, or we allowing the bot to issue certificates that allow other machines to connect to SSH servers within the cluster?

Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm, I think we are technically allowing the bot to issue certificates with a subset of its permissions that allow other machines (including the machine that the bot is running on) to connect to SSH servers within the cluster. I think this is likely better explained with a diagram.

docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/introduction.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/introduction.mdx Show resolved Hide resolved
## Getting started

<TileSet>
<Tile icon="database" title="Getting started" href="./getting-started.mdx">
Copy link
Collaborator

Choose a reason for hiding this comment

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

Don't forget to update the icon here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@xinding33 Can Machine ID get a unique icon? I think I am just going to use magic-wand for now?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, let me check with Michael on timeline.

docs/pages/machine-id/introduction.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/introduction.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Show resolved Hide resolved
docs/config.json Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Show resolved Hide resolved
Copy link
Contributor

@xinding33 xinding33 left a comment

Choose a reason for hiding this comment

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

Left some comments. Major theme: given that we ship multiple binaries that need to run in different places (e.g. tbot out to be run on the machine you want to provide an identity for an tctl out to be run on the Auth Server node), we should be more specific with where a binary should be downloaded and where a command should be run from.

docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
editor user:list,create,read,update,delete,...
```

The above output is from a fresh install of Teleport with the default roles, your cluster may have additional roles. In our example, let’s assume you want to give the bot `access` role to allow it to connect to SSH servers within your cluster.
Copy link
Contributor

Choose a reason for hiding this comment

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

Hmm, I think we are technically allowing the bot to issue certificates with a subset of its permissions that allow other machines (including the machine that the bot is running on) to connect to SSH servers within the cluster. I think this is likely better explained with a diagram.

docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
@russjones russjones marked this pull request as ready for review March 4, 2022 00:24
@russjones russjones force-pushed the rjones/machine-id-docs branch from f400b17 to ccfd4ee Compare March 4, 2022 00:35
@russjones russjones changed the title Added Machine ID docs. Added Machine ID documentation Mar 4, 2022
Copy link
Contributor

@xinding33 xinding33 left a comment

Choose a reason for hiding this comment

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

Just two comments but otherwise looks good to me! I might have some thoughts on additional changes once the page lands, but it's a bit hard to picture without the ability to really preview the page.

docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/config.json Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
@russjones russjones requested a review from ptgott March 5, 2022 01:10
docs/pages/machine-id/introduction.mdx Outdated Show resolved Hide resolved

# Machine ID

Machine ID is a fully automated Certificate Authority designed to
Copy link
Contributor

Choose a reason for hiding this comment

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

@russjones That wording sounds good to me, as does eventually editing our architecture guides to talk about Machine ID.

I also think it would be good to include one or two sentences here that mention architecture at a high level. Maybe the first paragraph could be something like,

Machine ID is a daemon that programmatically issues and 
renews short-lived certificates to any service account 
(e.g., a CI/CD server) by retrieving credentials from the 
Teleport Auth Service. This enables fine-grained role-based
access controls and audit.

docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/machine-id/getting-started.mdx Outdated Show resolved Hide resolved
@russjones russjones force-pushed the rjones/machine-id-docs branch from dc08681 to 0a35699 Compare March 9, 2022 02:02
@r0mant r0mant mentioned this pull request Mar 9, 2022
38 tasks
Some of the things you can do with Machine ID:

* Machines can retrieve short-lived SSH certificates for CI/CD pipelines.
* Machines can retrieve short-lived X.509 certificates for use with databases or applications.
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe a nitpick, but with app and database access still in the pipeline, this might be a little misleading.

Copy link
Contributor Author

@russjones russjones Mar 10, 2022

Choose a reason for hiding this comment

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

They should be ready by the time the marketing push starts. I can remove it, but I'm sure I'll forget to add it back in in a few weeks. Unless you have strong objections, I say let's leave it in?

Copy link
Contributor

Choose a reason for hiding this comment

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

Fair enough, that makes sense to me!

Copy link
Contributor

@xinding33 xinding33 left a comment

Choose a reason for hiding this comment

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

Looks great!

Comment on lines +236 to +241
## Next Steps

For the next steps, dive deeper into the topics relevant to your Machine ID use-case, for example:

* Check out configuration [guides](./guides.mdx).
* See [frequently asked questions](./faq.mdx).
Copy link
Contributor

Choose a reason for hiding this comment

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

Once they're done, I think we should link the Jenkins and Ansible guides in this section. @russjones what do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, will do.

Added Machine ID docs.

Co-authored-by: Zac Bergquist <[email protected]>
Co-authored-by: Roman Tkachenko <[email protected]>
Co-authored-by: Xin Ding <[email protected]>
Co-authored-by: Paul Gottschling <[email protected]>
@russjones russjones force-pushed the rjones/machine-id-docs branch from 44d37c9 to 9f96d24 Compare March 10, 2022 17:43
@russjones russjones merged commit 95e64b3 into master Mar 10, 2022
@russjones russjones deleted the rjones/machine-id-docs branch March 10, 2022 18:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants