@@ -314,13 +314,13 @@ Admission controllers can help to improve the security of the cluster. However,
314
314
they can present risks themselves as they extend the API server and
315
315
[ should be properly secured] ( /blog/2022/01/19/secure-your-admission-controllers-and-webhooks/ ) .
316
316
317
- The following list present a number of admission controllers that could be
317
+ The following lists present a number of admission controllers that could be
318
318
considered to enhance the security posture of your cluster and application. It
319
- includes controllers that may be referenced in other parts of this document:
319
+ includes controllers that may be referenced in other parts of this document.
320
320
321
- [ ` AlwaysPullImages ` ] ( /docs/reference/access-authn-authz/ admission- controllers/#alwayspullimages )
322
- : Enforces the usage of the latest version of a tagged image and ensures that the deployer
323
- has permissions to use the image.
321
+ This first group of admission controllers includes plugins
322
+ [ enabled by default ] ( /docs/reference/access-authn-authz/admission-controllers/#which-plugins-are-enabled-by-default ) ,
323
+ consider to leave them enabled unless you know what you are doing:
324
324
325
325
[ ` CertificateApproval ` ] ( /docs/reference/access-authn-authz/admission-controllers/#certificateapproval )
326
326
: Performs additional authorization checks to ensure the approving user has
@@ -334,47 +334,59 @@ permission to sign certificate requests.
334
334
: Rejects any certificate request that specifies a 'group' (or 'organization
335
335
attribute') of ` system:masters ` .
336
336
337
- [ ` DenyServiceExternalIPs ` ] ( /docs/reference/access-authn-authz/admission-controllers/#denyserviceexternalips )
338
- : Rejects all net-new usage of the ` Service.spec.externalIPs ` field. This is a mitigation for
339
- [ CVE-2020 -8554: Man in the middle using LoadBalancer or ExternalIPs] ( https://github.com/kubernetes/kubernetes/issues/97076 ) .
340
-
341
- [ ` EventRateLimit ` ] ( /docs/reference/access-authn-authz/admission-controllers/#eventratelimit )
342
- : Rate limits adding new Events to the API server.
343
-
344
- [ ` ImagePolicyWebhook ` ] ( /docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook )
345
- : Allows enforcing additional controls for images through webhooks.
337
+ [ ` LimitRanger ` ] ( /docs/reference/access-authn-authz/admission-controllers/#limitranger )
338
+ : Enforce the LimitRange API constraints.
346
339
347
340
[ ` MutatingAdmissionWebhook ` ] ( /docs/reference/access-authn-authz/admission-controllers/#mutatingadmissionwebhook )
348
341
: Allows the use of custom controllers through webhooks, these controllers may
349
342
mutate requests that it reviews.
350
343
344
+ [ ` PodSecurity ` ] ( /docs/reference/access-authn-authz/admission-controllers/#podsecurity )
345
+ : Replacement for Pod Security Policy, restricts security contexts of deployed
346
+ Pods.
347
+
348
+ [ ` ResourceQuota ` ] ( /docs/reference/access-authn-authz/admission-controllers/#resourcequota )
349
+ : Enforces resource quotas to prevent over-usage of resources.
350
+
351
+ [ ` ValidatingAdmissionWebhook ` ] ( /docs/reference/access-authn-authz/admission-controllers/#validatingadmissionwebhook )
352
+ : Allows the use of custom controllers through webhooks, these controllers do
353
+ not mutate requests that it reviews.
354
+
355
+ The second group includes plugin that are not enabled by default but in general
356
+ availability state and recommended to improve your security posture:
357
+
358
+ [ ` DenyServiceExternalIPs ` ] ( /docs/reference/access-authn-authz/admission-controllers/#denyserviceexternalips )
359
+ : Rejects all net-new usage of the ` Service.spec.externalIPs ` field. This is a mitigation for
360
+ [ CVE-2020 -8554: Man in the middle using LoadBalancer or ExternalIPs] ( https://github.com/kubernetes/kubernetes/issues/97076 ) .
361
+
351
362
[ ` NodeRestriction ` ] ( /docs/reference/access-authn-authz/admission-controllers/#noderestriction )
352
363
: Restricts kubelet's permissions to only modify the pods API resources they own
353
364
or the node API ressource that represent themselves. It also prevents kubelet
354
365
from using the ` node-restriction.kubernetes.io/ ` annotation, which can be used
355
366
by an attacker with access to the kubelet's credentials to influence pod
356
367
placement to the controlled node.
357
368
358
- [ ` PodNodeSelector ` ] ( /docs/reference/access-authn-authz/admission-controllers/#podnodeselector )
359
- : Allows controls of node selectors within namespaces and cluster-wide.
369
+ The third group includes plugins that are not enabled by default but could be
370
+ considered for certain use cases:
360
371
361
- [ ` PodSecurity ` ] ( /docs/reference/access-authn-authz/admission-controllers/#podsecurity )
362
- : Replacement for Pod Security Policy, restricts security contexts of deployed
363
- Pods .
372
+ [ ` AlwaysPullImages ` ] ( /docs/reference/access-authn-authz/admission-controllers/#alwayspullimages )
373
+ : Enforces the usage of the latest version of a tagged image and ensures that the deployer
374
+ has permissions to use the image .
364
375
365
- [ ` PodTolerationRestriction ` ] ( /docs/reference/access-authn-authz/admission-controllers/#podtolerationrestriction )
366
- : Allows control of pod tolerations permitted for pods within a namespace .
376
+ [ ` ImagePolicyWebhook ` ] ( /docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook )
377
+ : Allows enforcing additional controls for images through webhooks .
367
378
368
- [ ` ResourceQuota ` ] ( /docs/reference/access-authn-authz/admission-controllers/#resourcequota )
369
- : Enforces resource quotas to prevent over-usage of resources.
379
+ <!-- The fourth group includes plugins that are not enabled by default, still in
380
+ alpha state but could be considered for certain use cases:
370
381
371
- [ ` ValidatingAdmissionWebhook ` ] ( /docs/reference/access-authn-authz/admission-controllers/#validatingadmissionwebhook )
372
- : Allows the use of custom controllers through webhooks, these controllers do
373
- not mutate requests that it reviews.
382
+ [`EventRateLimit`](/docs/reference/access-authn-authz/admission-controllers/#eventratelimit)
383
+ : Rate limits adding new Events to the API server.
374
384
375
- {{< note >}}
376
- Many of these admission controllers are [ enabled by default] ( /docs/reference/access-authn-authz/admission-controllers/#which-plugins-are-enabled-by-default ) by the API server.
377
- {{< /note >}}
385
+ [`PodNodeSelector`](/docs/reference/access-authn-authz/admission-controllers/#podnodeselector)
386
+ : Allows controls of node selectors within namespaces and cluster-wide.
387
+
388
+ [`PodTolerationRestriction`](/docs/reference/access-authn-authz/admission-controllers/#podtolerationrestriction)
389
+ : Allows control of pod tolerations permitted for pods within a namespace. -->
378
390
379
391
## What's next
380
392
0 commit comments