GKE clusterrolebinding 에러

greenTea·2023년 9월 1일
0

권한 부여 명령어

Kubernetes 클러스터의 RBAC(Role-Based Access Control) 설정에 대한 작업을 수행하기 위해 아래와 같은 명령어를 실행하였습니다.( RBAC는 사용자와 서비스 계정에 대한 특정 권한을 부여하거나 거부하는 메커니즘입니다 )

kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole cluster-admin \
  --user $(gcloud config get-value account)

문제 발생

위 명령어를 실행하면 아래와 같은 에러 문구가 나오면서 실패하게 되었습니다.

error: failed to create clusterrolebinding: 
clusterrolebindings.rbac.authorization.k8s.io is forbidden: User 
"1231231243241234132" cannot create resource "clusterrolebindings" in API 
group "rbac.authorization.k8s.io" at the cluster scope: requires one of 
["container.clusterRoleBindings.create"] permission(s).

해결 방법

해당 오류는 권한 문제로 먼저 gcloud auth list를 통해 현재 어느 사용자가 사용중인지 확인 해줍니다.

저의 경우 기본 쿠버네티스 api 사용자로 로그인 되어 있었는데 해당 아이디는 쿠버네티스에 대한 권한이 부족하기에 위와 같은 에러가 나오게 된 것이였습니다.
이를 해결 하기 위해 iam에서 kubernetes admin 권한을 주었습니다.

이후 다시 명령어를 실행하고 나서 아래와 같은 문구가 나오면 성공입니다.

clusterrolebinding.rbac.authorization.k8s.io/cluster-admin-binding created

참고

kubectl create clusterrolebinding cluster-admin-binding \
  --clusterrole cluster-admin \
  --user $(gcloud config get-value account)

위 명령어는 아래와 같은 내용을 가지고 있습니다.

  • kubectl create
    Kubernetes 리소스를 생성하기 위한 명령입니다.
  • clusterrolebinding
    클러스터 수준의 권한 바인딩을 생성하려는 리소스 유형입니다.
  • cluster-admin-binding
    생성되는 ClusterRoleBinding의 이름입니다.
  • --clusterrole cluster-admin
    clusterrole: 바인딩하려는 ClusterRole의 이름을 지정합니다.
    cluster-admin: 이는 기본 제공되는 역할 중 하나로, 클러스터의 모든 리소스에 대한 모든 권한을 가지게 됩니다. 이 역할은 매우 광범위한 권한을 부여하므로 신중하게 사용해야 합니다.
  • --user $(gcloud config get-value account)
    --user: 권한을 부여할 사용자의 식별자를 지정합니다.
    $(gcloud config get-value account): 현재 gcloud 도구에 로그인된 계정의 이메일 주소를 반환합니다. 이는 ClusterRoleBinding에서 사용자로 지정될 값입니다.
profile
greenTea입니다.

0개의 댓글