k8s에서 RBAC 가시성을 관리를 하는 여러가지 방법을 알아봅니다.
https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/
클러스터 > 클러스터 롤 바인딩, 클러스터 롤, 롤 바인딩, 롤
에서 RBAC 관련 정보를 볼 수 있습니다.
대시보드 형식으로 개별 리소스에 대한 정보를 일일이 조회해야합니다.
https://rbac-lookup.docs.fairwinds.com/#installation
k8s 클러스터의 rbac 관련 정보를 간략하게 보여줍니다.
asdf 설치
sudo apt install curl git
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.
echo ". "$HOME/.asdf/asdf.sh"" >> ~/.bashrc
echo ". "$HOME/.asdf/completions/asdf.bash"" >> ~/.bashrc
source ~/.bashrc
/* sudo chown -R $(whoami):$(whoami) .asdf */
asdf plugin add rbac-lookup
asdf install rbac-lookup latest
asdf global rbac-lookup latest
사용방법
rbac-lookup {any matching user, service account, or group}
$ rbac-lookup shmoon2
다른 context 로 변경 후 조회
$ gcloud container clusters get-credentials gke-dev-clouddevops-sandbox-tekton --region asia-northeast3 --project prj-sandbox-devops-9999
$ rbac-lookup wemake
GKE의 경우, GCP IAM 역할도 함께 보려면 --gke 옵션을 줍니다.
--output wide 옵션을 사용해 역할이 어느 source에서 왔는지도 확인할 수 있습니다.
GCP IAM role 에서 온 경우 어느 역할인지 명시해줍니다.
GCP 콘솔의 출력과 같습니다.
https://github.com/FairwindsOps/rbac-manager
rolebinding은 반복해야하는 경우가 생길 수 있습니다.
예를 들면 joe 사용자에게 두개의 다른 클러스터에 두개의 다른 역할을 부여하려는 경우가 있습니다.
rolebinding 예시
RBAC Manager는 rbacBindings 에서 한번에 처리할 수 있습니다.
namespaceSelector를 통해 라벨 기반으로 한번에 롤바인딩 가능합니다.
참고
https://thenewstack.io/three-realistic-approaches-to-kubernetes-rbac/
https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md
https://www.cncf.io/blog/2020/08/28/kubernetes-rbac-101-authorization/
https://github.com/corneliusweig/rakkess
https://github.com/FairwindsOps/rbac-manager
https://k8slens.dev/
https://devocean.sk.com/blog/techBoardDetail.do?page=&boardType=undefined&query=&ID=164474&searchData=&subIndex=