Cloud IAM 에서 권한을 주기 위해선 Role 을 사용한다.
여기서는 사용할 수 있는 Role 의 세 가지 유형에 대해서 다룬다.
1. 기본 역할 (Basic Roles):
Cloud IAM 이 등장하기 이전에 있었던 권한을 주는 방법이고, 아직까지도 사용할 수 있다.
특징으로는 프로젝트 수준으로 모든 리소스에 대한 접근을 전역적으로 줄 수 있다는 것이 특징이다.
그래서 the principle of least privilege (최소 권한의 법칙) 을 따르지 않을 확률이 높다.
Basic Role 은 3가지 등급으로 나눠진다:
- Viewer Role:
- 리소스에 대해서 읽기만 할 수 있는 Role
- Editor Role:
- 리소스에 대해서 수정까지 할 수 있는 Role
- Owner Role:
- Editor Role + Role 관리도 할 수 있음 + Billing 까지 관리
2. 미리 정의된 역할 (Predefined Roles):
Predefined Roles 은 GCP 의 리소스나 서비스별로 미리 권한이 세분화해서 만들어져있는 것을 사용하는 걸 말한다.
이것도 프로젝트 수준으로 적용이 된다.
GKE 의 경우에는 다음과 같이 미리 만들어져있다:
- GKE Viewer (읽기 전용 접근)
- GKE Developer (클러스터 내 모든 리소스에 대한 전체 제어. 여기서 말하는 리소스는 쿠버네티스의 다양항 오브젝트를 말한다.)
- GKE Admin (클러스터 및 쿠버네티스 엔진 리소스에 대한 전체 접근)
- GKE Cluster Admin (클러스터 관리 제공 but 리소스에 대한 접근 관리는 제공하지 않음)
GKE Developer 권한을 멤버가 받아도 쿠버네티스를 사용할 때 적절한 RBAC 가 없다면 오브젝트 조작을 못할 수 있다.
3. 맞춤 역할 (Custom Roles):
Custom Role 을 통해서 좀 더 세분화된 Role 제어가 가능하다.
예를 들면 GKE 에 여러가지 클러스터 중 특정 클러스터에 대한 읽기 권한만을 줄 수도 있다. 다른 GCP 리소스는 보지도 못하게 하고.