Skip to content

Commit d91ba9d

Browse files
committed
docs: update GitHub auth method docs and security model
Provide changes based on recent audit feedback: describe risks of third party authentication systems and plugins.
1 parent 61b00c2 commit d91ba9d

File tree

3 files changed

+31
-9
lines changed

3 files changed

+31
-9
lines changed

website/content/docs/auth/github.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ operators or developers using Vault directly via the CLI.
1212

1313
~> **IMPORTANT NOTE:** Vault does not support an OAuth workflow to generate
1414
GitHub tokens, so does not act as a GitHub application. As a result, this method
15-
uses personal access tokens. An important consequence is that any valid GitHub
16-
access token with the `read:org` scope for any user belonging to the Vault-configured
17-
organization can be used for authentication. If such a
15+
uses personal access tokens. If the risks below are unacceptable to you, consider
16+
using a different authentication method.
17+
18+
~> Any valid GitHub access token with the `read:org` scope for any user belonging
19+
to the Vault-configured organization can be used for authentication. If such a
1820
token is stolen from a third party service, and the attacker is able to make
1921
network calls to Vault, they will be able to log in as the user that generated
20-
the access token. When using this method it is a good idea to ensure that access
21-
to Vault is restricted at a network level rather than public. If these risks are
22-
unacceptable to you, you should use a different method.
22+
the access token.
2323

2424
## Authentication
2525

website/content/docs/auth/index.mdx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ description: Auth methods are mountable methods that perform authentication for
77
# Auth Methods
88

99
Auth methods are the components in Vault that perform authentication and are
10-
responsible for assigning identity and a set of policies to a user.
10+
responsible for assigning identity and a set of policies to a user. In all cases,
11+
Vault will enforce authentication as part of the request processing. In most cases,
12+
Vault will delegate the authentication administration and decision to the relevant configured
13+
external auth method (e.g., Amazon Web Services, GitHub, Google Cloud Platform, Kubernetes, Microsoft
14+
Azure, Okta ...).
1115

1216
Having multiple auth methods enables you to use an auth method that makes the
1317
most sense for your use case of Vault and your organization.
@@ -42,3 +46,11 @@ $ vault auth enable -path=my-login userpass
4246

4347
When an auth method is disabled, all users authenticated via that method are
4448
automatically logged out.
49+
50+
## External Auth Method Considerations
51+
52+
When using an external auth method (e.g., GitHub), Vault will call the external service
53+
at the time of authentication and for any subsequent token renewals. This means that issued tokens
54+
are valid for their entire duration, and are not invalidated until a renewal or user re-authentication
55+
occurs. Operators should ensure appropriate [token TTLs](/docs/concepts/tokens#the-general-case)
56+
are set when using these auth methods.

website/content/docs/internals/security.mdx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@ The following are not parts of the Vault threat model:
6060
to inspect the memory state of a running Vault instance then the confidentiality
6161
of data may be compromised.
6262

63+
- Protecting against flaws in external systems or services used by Vault.
64+
Some authentication methods or secrets engines delegate sensitive operations to
65+
systems external to Vault. If an attacker can compromise credentials or otherwise
66+
exploit a vulnerability in these external systems, then the confidentiality or
67+
integrity of data may be compromised.
68+
69+
- Protecting against malicious plugins or code execution on the underlying host.
70+
If an attacker can gain code execution or write privileges to the underlying host,
71+
then the confidentiality or the integrity of data may be compromised.
72+
6373
# External Threat Overview
6474

6575
Given the architecture of Vault, there are 3 distinct systems we are concerned
@@ -128,8 +138,8 @@ notion of "sudo" privilege. As part of a policy, users may be granted "sudo"
128138
privileges to certain paths, so that they can still perform security sensitive
129139
operations without being granted global root access to Vault.
130140

131-
Lastly, Vault supports using a [Two-man
132-
rule](https://en.wikipedia.org/wiki/Two-man_rule) for unsealing using [Shamir's
141+
Lastly, Vault supports using a [Two-person
142+
rule](https://en.wikipedia.org/wiki/Two-person_rule) for unsealing using [Shamir's
133143
Secret Sharing
134144
technique](https://en.wikipedia.org/wiki/Shamir's_Secret_Sharing). When Vault
135145
is started, it starts in a _sealed_ state. This means that the encryption key

0 commit comments

Comments
 (0)