You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/design/service_accounts.md
+7-7
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
#Service Accounts
2
2
3
-
## Motivation
3
+
## Motivation
4
4
5
5
Processes in Pods may need to call the Kubernetes API. For example:
6
6
- scheduler
@@ -20,7 +20,7 @@ They also may interact with services other than the Kubernetes API, such as:
20
20
## Design Overview
21
21
A service account binds together several things:
22
22
- a *name*, understood by users, and perhaps by peripheral systems, for an identity
23
-
- a *principal* that can be authenticated and (authorized)[../authorization.md]
23
+
- a *principal* that can be authenticated and [authorized](../authorization.md)
24
24
- a [security context](./security_contexts.md), which defines the Linux Capabilities, User IDs, Groups IDs, and other
25
25
capabilities and controls on interaction with the file system and OS.
26
26
- a set of [secrets](./secrets.md), which a container may use to
@@ -60,7 +60,7 @@ This includes a human running `kubectl` on her desktop and a container in a Pod
60
60
61
61
There is already a notion of a username in kubernetes, which is populated into a request context after authentication.
62
62
However, there is no API object representing a user. While this may evolve, it is expected that in mature installations,
63
-
the canonical storage of user identifiers will be handled by a system external to kubernetes.
63
+
the canonical storage of user identifiers will be handled by a system external to kubernetes.
64
64
65
65
Kubernetes does not dictate how to divide up the space of user identifier strings. User names can be
66
66
simple Unix-style short usernames, (e.g. `alice`), or may be qualified to allow for federated identity (
@@ -84,7 +84,7 @@ The distinction is useful for a number of reasons:
84
84
- A Human typically keeps credentials on a machine that is not part of the cluster and so not subject to automatic
85
85
management. A VM with a role/service-account can have its credentials automatically managed.
86
86
- the identity of a Pod cannot in general be mapped to a single human.
87
-
- If policy allows, it may be created by one human, and then updated by another, and another, until its behavior cannot be attributed to a single human.
87
+
- If policy allows, it may be created by one human, and then updated by another, and another, until its behavior cannot be attributed to a single human.
88
88
89
89
**TODO**: consider getting rid of separate serviceAccount object and just rolling its parts into the SecurityContext or
90
90
Pod Object.
@@ -106,7 +106,7 @@ might have some types that do not do anything on apiserver but just get pushed t
106
106
### Pods
107
107
The `PodSpec` is extended to have a `Pods.Spec.ServiceAccountUsername` field. If this is unset, then a
108
108
default value is chosen. If it is set, then the corresponding value of `Pods.Spec.SecurityContext` is set by the
109
-
Service Account Finalizer (see below).
109
+
Service Account Finalizer (see below).
110
110
111
111
TBD: how policy limits which users can make pods with which service accounts.
112
112
@@ -122,7 +122,7 @@ Service Account Finalizer is one place where this can happen (see below).
122
122
### Kubelet
123
123
124
124
The kubelet will treat as "not ready to run" (needing a finalizer to act on it) any Pod which has an empty
125
-
SecurityContext.
125
+
SecurityContext.
126
126
127
127
The kubelet will set a default, restrictive, security context for any pods created from non-Apiserver config
128
128
sources (http, file).
@@ -141,7 +141,7 @@ like this:
141
141
**TODO**: example of pod with explicit refs.
142
142
143
143
Another way is with the *Service Account Finalizer*, a plugin process which is optional, and which handles
144
-
business logic around service accounts.
144
+
business logic around service accounts.
145
145
146
146
The Service Account Finalizer watches Pods, Namespaces, and ServiceAccount definitions.
0 commit comments