LoginSignup
0
0

More than 3 years have passed since last update.

[k8s]ServiceAccount や User を作って Role の権限を kubectl auth を使って確認する。

Last updated at Posted at 2020-10-13

検証した時のメモです。

環境

alias | grep kubectl
k=kubectl

k version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.8", GitCommit:"9f2892aab98fe339f3bd70e3c470144299398ace", GitTreeState:"clean", BuildDate:"2020-08-13T16:12:48Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.13-eks-2ba888", GitCommit:"2ba888155c7f8093a1bc06e3336333fbdb27b3da", GitTreeState:"clean", BuildDate:"2020-07-17T18:48:53Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

確認方法

kubectl auth can-i コマンドを使って権限のチェックを行う。
また、--as オプションを指定することで確認したい ServiceAccount や User の指定が出来るのでこれも使ってみる。

ServiceAccount を作ってテストする時

以下では sa-pod-reader という ServiceAccount を作り、確認をする
--as で指定する時は system:serviceaccount:<namespace><service_account_name> という形式で指定する。

Referring to subjects

system:serviceaccount: (singular) is the prefix for service account usernames.

# service account 作成
k create sa sa-pod-reader

# role 作成
kubectl create role pod-reader --verb=get --verb=list --resource=pods

# rolebinding 作成
kubectl create rolebinding binding-sa-pod-reader --role=pod-reader --serviceaccount=default:sa-pod-reader

# pod の get は可能
k auth can-i get po --as system:serviceaccount:default:sa-pod-reader
yes

# pod の作成は不可
k auth can-i create po --as system:serviceaccount:default:sa-pod-reader
no

User を作ってテストする時

以下では john という ユーザーを作り、確認をする。
作成する Role などの情報は以下から抜粋

Normal User

kubectl create role developer --verb=create --verb=get --verb=list --verb=update --verb=delete --resource=pods

kubectl create rolebinding developer-binding-john --role=developer --user=john

確認。

# pod の get は出来る
k auth can-i get po --as john
yes

# deployment の権限はない
k auth can-i get deployment --as john
no
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0