[GKE] RBAC-3-GCP IAM GROUP 기반의 GKE 접근

Seunghyun Moon·2023년 5월 4일
0

K8S-RBAC

목록 보기
3/3

앞에서 GKE 에 대한 접근을 개별 계정 기반으로 컨트롤 하는 방법을 알아봤습니다.(RBAC)

여기에서는 GCP IAM Group 기반으로 접근제어 하는 방법을 알아봅니다.


GKE 를 생성하다 보면 아래와 같은 옵션이 있습니다.

Enable Google Groups for RBAC

https://cloud.google.com/kubernetes-engine/docs/how-to/google-groups-rbac#setup-group

google groups 혹은 cloud id 권한을 가지고 iam group을 생성한다.(반드시 아래와 같은 그룹명으로 생성합니다.)

gke-security-groups@{your_domain}

그룹을 생성합니다.

그리고 관리 대상 IAM group 을 위에서 생성한 group에 중첩해서 member 로 설정합니다.

모든 리소스를 조회해봅니다.

권한이 없다고 나오며 에러가 나옵니다.

rolebinding을 선업합니다.

- kind: Group
  name: testgroup@sungiyroli.shop

member group(nested group)으로 설정한 그룹으로 rolebinding을 합니다.

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: moon-role
  namespace: default
rules:
- apiGroups: ["*"]
  resources: ["*"]
  verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
# This role binding allows "jane" to read pods in the "default" namespace.
# You need to already have a Role named "pod-reader" in that namespace.
kind: RoleBinding
metadata:
  name: moon-role-binding
  namespace: default
subjects:
# You can specify more than one "subject"
- kind: Group
  name: testgroup@sungiyroli.shop # "name" is case sensitive
  apiGroup: rbac.authorization.k8s.io
roleRef:
  # "roleRef" specifies the binding to a Role / ClusterRole
  kind: Role #this must be Role or ClusterRole
  name: moon-role # this must match the name of the Role or ClusterRole you wish to bind to
  apiGroup: rbac.authorization.k8s.io

다시 한번 조회를 해보면 조회가 잘 되는걸 확인할 수 있습니다.


참고

https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control?&_ga=2.160330744.-417802050.1672716430#rolebinding

profile
I live fullest

0개의 댓글