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: content/en/docs/concepts/cluster-administration/_index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,7 +51,7 @@ Before choosing a guide, here are some considerations:
51
51
52
52
*[Kubernetes Container Environment](/docs/concepts/containers/container-environment/) describes the environment for Kubelet managed containers on a Kubernetes node.
53
53
54
-
*[Controlling Access to the Kubernetes API](/docs/reference/access-authn-authz/controlling-access/) describes how to set up permissions for users and service accounts.
54
+
*[Controlling Access to the Kubernetes API](/docs/concepts/security/controlling-access) describes how Kubernetes implements access control for its own API.
55
55
56
56
*[Authenticating](/docs/reference/access-authn-authz/authentication/) explains authentication in Kubernetes, including the various authentication options.
Copy file name to clipboardExpand all lines: content/en/docs/concepts/extend-kubernetes/_index.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -130,7 +130,7 @@ Adding an API does not directly let you affect the behavior of existing APIs (e.
130
130
131
131
### API Access Extensions
132
132
133
-
When a request reaches the Kubernetes API Server, it is first Authenticated, then Authorized, then subject to various types of Admission Control. See [Controlling Access to the Kubernetes API](/docs/reference/access-authn-authz/controlling-access/) for more on this flow.
133
+
When a request reaches the Kubernetes API Server, it is first Authenticated, then Authorized, then subject to various types of Admission Control. See [Controlling Access to the Kubernetes API](/docs/concepts/security/controlling-access/) for more on this flow.
Copy file name to clipboardExpand all lines: content/en/docs/concepts/extend-kubernetes/api-extension/custom-resources.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ methods for adding custom resources and how to choose between them.
16
16
<!-- body -->
17
17
## Custom resources
18
18
19
-
A *resource* is an endpoint in the [Kubernetes API](/docs/reference/using-api/api-overview/) that stores a collection of
19
+
A *resource* is an endpoint in the [Kubernetes API](/docs/concepts/overview/kubernetes-api/) that stores a collection of
20
20
[API objects](/docs/concepts/overview/working-with-objects/kubernetes-objects/) of a certain kind; for example, the built-in *pods* resource contains a collection of Pod objects.
21
21
22
22
A *custom resource* is an extension of the Kubernetes API that is not necessarily available in a default
Copy file name to clipboardExpand all lines: content/en/docs/concepts/extend-kubernetes/extend-cluster.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,7 +131,7 @@ Adding an API does not directly let you affect the behavior of existing APIs (e.
131
131
132
132
### API Access Extensions
133
133
134
-
When a request reaches the Kubernetes API Server, it is first Authenticated, then Authorized, then subject to various types of Admission Control. See [Controlling Access to the Kubernetes API](/docs/reference/access-authn-authz/controlling-access/) for more on this flow.
134
+
When a request reaches the Kubernetes API Server, it is first Authenticated, then Authorized, then subject to various types of Admission Control. See [Controlling Access to the Kubernetes API](/docs/concepts/security/controlling-access/) for more on this flow.
The input to the authentication step is the entire HTTP request, however, it typically
45
+
The input to the authentication step is the entire HTTP request; however, it typically
44
46
just examines the headers and/or client certificate.
45
47
46
-
Authentication modules include Client Certificates, Password, and Plain Tokens,
47
-
Bootstrap Tokens, and JWT Tokens (used for service accounts).
48
+
Authentication modules include client certificates, password, and plain tokens,
49
+
bootstrap tokens, and JSON Web Tokens (used for service accounts).
48
50
49
51
Multiple authentication modules can be specified, in which case each one is tried in sequence,
50
52
until one of them succeeds.
51
53
52
-
On GCE, Client Certificates, Password, Plain Tokens, and JWT Tokens are all enabled.
53
-
54
54
If the request cannot be authenticated, it is rejected with HTTP status code 401.
55
55
Otherwise, the user is authenticated as a specific `username`, and the user name
56
56
is available to subsequent steps to use in their decisions. Some authenticators
57
57
also provide the group memberships of the user, while other authenticators
58
58
do not.
59
59
60
-
While Kubernetes uses `usernames` for access control decisions and in request logging,
61
-
it does not have a `user` object nor does it store usernames or other information about
62
-
users in its object store.
60
+
While Kubernetes uses usernames for access control decisions and in request logging,
61
+
it does not have a `User` object nor does it store usernames or other information about
62
+
users in its API.
63
63
64
64
## Authorization
65
65
@@ -101,43 +101,43 @@ If Bob makes a request to write (`create` or `update`) to the objects in the `pr
101
101
102
102
Kubernetes authorization requires that you use common REST attributes to interact with existing organization-wide or cloud-provider-wide access control systems. It is important to use REST formatting because these control systems might interact with other APIs besides the Kubernetes API.
103
103
104
-
Kubernetes supports multiple authorization modules, such as ABAC mode, RBAC Mode, and Webhook mode. When an administrator creates a cluster, they configured the authorization modules that should be used in the API server. If more than one authorization modules are configured, Kubernetes checks each module, and if any module authorizes the request, then the request can proceed. If all of the modules deny the request, then the request is denied (HTTP status code 403).
104
+
Kubernetes supports multiple authorization modules, such as ABAC mode, RBAC Mode, and Webhook mode. When an administrator creates a cluster, they configure the authorization modules that should be used in the API server. If more than one authorization modules are configured, Kubernetes checks each module, and if any module authorizes the request, then the request can proceed. If all of the modules deny the request, then the request is denied (HTTP status code 403).
105
105
106
-
To learn more about Kubernetes authorization, including details about creating policies using the supported authorization modules, see [Authorization Overview](/docs/reference/access-authn-authz/authorization/).
106
+
To learn more about Kubernetes authorization, including details about creating policies using the supported authorization modules, see [Authorization](/docs/reference/access-authn-authz/authorization/).
107
107
108
108
109
-
## Admission Control
109
+
## Admission control
110
110
111
-
Admission Control Modules are software modules that can modify or reject requests.
112
-
In addition to the attributes available to Authorization Modules, Admission
113
-
Control Modules can access the contents of the object that is being created or modified.
111
+
Admission Control modules are software modules that can modify or reject requests.
112
+
In addition to the attributes available to Authorization modules, Admission
113
+
Control modules can access the contents of the object that is being created or modified.
114
114
115
115
Admission controllers act on requests that create, modify, delete, or connect to (proxy) an object.
116
116
Admission controllers do not act on requests that merely read objects.
117
117
When multiple admission controllers are configured, they are called in order.
118
118
119
119
This is shown as step **3** in the diagram.
120
120
121
-
Unlike Authentication and Authorization Modules, if any admission controller module
121
+
Unlike Authentication and Authorization modules, if any admission controller module
122
122
rejects, then the request is immediately rejected.
123
123
124
124
In addition to rejecting objects, admission controllers can also set complex defaults for
125
125
fields.
126
126
127
-
The available Admission Control Modules are described [here](/docs/reference/access-authn-authz/admission-controllers/).
127
+
The available Admission Control modules are described in [Admission Controllers](/docs/reference/access-authn-authz/admission-controllers/).
128
128
129
129
Once a request passes all admission controllers, it is validated using the validation routines
130
130
for the corresponding API object, and then written to the object store (shown as step **4**).
131
131
132
132
133
-
## API Server Ports and IPs
133
+
## API server ports and IPs
134
134
135
135
The previous discussion applies to requests sent to the secure port of the API server
136
136
(the typical case). The API server can actually serve on 2 ports:
137
137
138
138
By default the Kubernetes API server serves HTTP on 2 ports:
139
139
140
-
1.`Localhost Port`:
140
+
1.`localhost` port:
141
141
142
142
- is intended for testing and bootstrap, and for other components of the master node
143
143
(scheduler, controller-manager) to talk to the API
@@ -148,7 +148,7 @@ By default the Kubernetes API server serves HTTP on 2 ports:
148
148
- request handled by admission control module(s).
149
149
- protected by need to have host access
150
150
151
-
2.`Secure Port`:
151
+
2.“Secure port”:
152
152
153
153
- use whenever possible
154
154
- uses TLS. Set cert with `--tls-cert-file` and key with `--tls-private-key-file` flag.
@@ -158,8 +158,27 @@ By default the Kubernetes API server serves HTTP on 2 ports:
158
158
- request handled by admission control module(s).
159
159
- authentication and authorization modules run.
160
160
161
-
When the cluster is created by `kube-up.sh`, on Google Compute Engine (GCE),
162
-
and on several other cloud providers, the API server serves on port 443. On
163
-
GCE, a firewall rule is configured on the project to allow external HTTPS
164
-
access to the API. Other cluster setup methods vary.
165
-
161
+
## {{% heading "whatsnext" %}}
162
+
163
+
Read more documentation on authentication, authorization and API access control:
Application secrets management (and encrypting them in etcd at rest) | https://kubernetes.io/docs/concepts/configuration/secret/ <br> https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/
108
108
Pod Security Policies | https://kubernetes.io/docs/concepts/policy/pod-security-policy/
109
109
Quality of Service (and Cluster resource management) | https://kubernetes.io/docs/tasks/configure-pod-container/quality-service-pod/
@@ -147,8 +147,8 @@ Learn about related Kubernetes security topics:
0 commit comments