Kubectl auth: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 22: Line 22:


=Usage Examples=
=Usage Examples=
Namespaces:
<syntaxhighlight lang='yaml'>
kubectl --as system:serviceaccount:test-ns:default auth can-i get ns
</syntaxhighlight>
Namespace:
<syntaxhighlight lang='yaml'>
kubectl --as system:serviceaccount:test-ns:default auth can-i get ns/some-namespace
</syntaxhighlight>


Also see: {{Internal|Kubernetes_Security_Operations#Authorization_Check|Authorization checks}}
Also see: {{Internal|Kubernetes_Security_Operations#Authorization_Check|Authorization checks}}

Revision as of 21:03, 3 November 2020

Internal

Overview

kubectl auth inspects authorization.

It can check whether an action is allowed with:

kubectl auth can-i <verb> [<type>|<type>/<name>|<non-resource-url>

The verb is a logical Kubernetes API verb: "get", "list", "watch", "delete", etc. Type is a kubernetes resource. The name is the name of a particular resource.

It could also reconcile rules for RBAC Role, RoleBinding, ClusterRole, and ClusterRole binding objects.

The identity used to perform the call can be changed via the --as kubectl option:

kubectl --as system:serviceaccount:blue:blue-sa auth can-i get pod my-pod

Usage Examples

Namespaces:

kubectl --as system:serviceaccount:test-ns:default auth can-i get ns

Namespace:

kubectl --as system:serviceaccount:test-ns:default auth can-i get ns/some-namespace

Also see:

Authorization checks