- クラウド技術
Kubernetesのダッシュボードでポッドのログを見るだけのユーザー作成方法
- #Kubernetes
目的
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
Kubernetesのダッシュボードではリソースの削除、作成等
権限があれば何でも出来てしまうため権限を絞った
ログ読み取り専用ユーザーを作成する。
前提
・kubernetesが作成済みであること
・kubectlコマンドが実行可能であること
・Kubernetesダッシュボードが作成済みであること
今回はNAMESPACE単位に権限を設定する。
対象NAMESPACE:smltfw
Roleを作成する
①kubectlコマンドが実行可能な端末にSSHでログインして、Roleファイルを作成する
作成ファイル:smallit-user-role.yaml
1 2 3 4 5 6 7 8 9 |
kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: smltfw name: smltfw-role rules: - apiGroups: [""] resources: ["pods","pods/log"] verbs: ["get", "list"] |
設定値の説明
resources:
ここには操作対象のリソースを記入する。今回はポッドとポッドログをみたいので「”pods”,”pods/log”」を指定する。
verbs:
ここには操作権限を指定する。今回は読み取りだけなので「”get”, “list”」を指定する。他にも以下が存在している。get, list, create, update, patch, watch, delete
【参考URL】
https://kubernetes.io/docs/reference/access-authn-authz/authorization/
②kubectlコマンドでデプロイする
1 |
1kubectl apply -f smallit-user-role.yaml |
③kubectlコマンドで正常にデプロイされたことを確認する。
1 |
1kubectl get role -n smltfw |
ServiceAccountを作成する
①kubectlコマンドが実行可能な端末にSSHでログインして、ServiceAccountファイルを作成する
作成ファイル:smallit-user-serviceaccount.yaml
1 2 3 4 5 |
apiVersion: v1 kind: ServiceAccount metadata: name: smallit-user namespace: smltfw |
②kubectlコマンドでデプロイする
1 |
1kubectl apply -f smallit-user-serviceaccount.yaml |
③kubectlコマンドで正常にデプロイされたことを確認する。
1 |
1kubectl get serviceaccount -n smltfw |
defaultは元から存在するユーザー
RoleBindingを作成する
①kubectlコマンドが実行可能な端末にSSHでログインして、RoleBindingファイルを作成する
この作業で上記作成したServiceAccountにRoleを紐付ける
作成ファイル:smallit-user-rolebinding.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 |
kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: smltfw-rolebinding namespace: smltfw subjects: - kind: ServiceAccount name: smallit-user apiGroup: "" roleRef: kind: Role name: smltfw-role apiGroup: rbac.authorization.k8s.io |
②kubectlコマンドでデプロイする
1kubectl apply -f smallit-user-rolebinding.yaml
③kubectlコマンドで正常にデプロイされたことを確認する。
1kubectl get rolebinding -n smltfw
ServiceAccountのトークンを確認する
①secretを確認する
1 |
1kubectl get secret -n smltfw | grep smallit-user |
②上記で取得したsecretの詳細を確認する
1 |
1kubectl describe secret -n smltfw smallit-user-token-p4vnv<img data-testid="media-image" draggable="false" alt="" src="blob:https://smallit.atlassian.net/edcfff3f-0c25-4c3b-af4d-5649bccd16d3#media-blob-url=true&id=f16298d0-ec68-41c1-8398-14efb2db9d8a&collection=contentId-2130575361&contextId=2130575361&height=102&width=741&alt=" style="background-color: #ffffff; color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 16px;" /> |
tokenが表示されているので、この値をメモする
Kubernetesダッシュボードにログインする
①Kubernetesダッシュボードにアクセスし上記で取得したtokenを入力する
②画面の左上NameSpaceの選択で「smltfw」を入力する
③左のメニューで「ポッド」を選択し、ポッドの三点メニューから「ログ」を選択する
④ログが表示されれば成功
以上
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>