안녕하세요 MC에몽입니다.
이번주는 GCP에서 IAM 권한 부여 시, conditional role binding을 이용한 특정 리소스에 대해 액세스를 관리하는 방법을 알아보겠습니다.
1. conditional role binding 이란?
conditional role binding은 IAM 권한 부여시 특정 조건(condition)을 추가하여 해당 조건이 충족되는 리소스 혹은 시간에만 IAM 권한을 사용할 수 있도록 세부적으로 제어하는 방법입니다.
2. resource condition의 종류
conditional role binding 중 resource condition의 종류는 다음과 같습니다.
1) Type
Type은 resource 유형에 대한 조건입니다.
예를들어 Compute Engine 중에서 Disk, Snapshot, Firewall 등 각 GCP resource 유형 별로 조건을 설정할 수 있습니다.
2) Service
Service는 Google Cloud Service API 별로 조건을 설정합니다.
예를들어 Apigee X, Cloud SQL, Compute Engine 등 각 서비스 API에 대한 조건을 설정할 수 있습니다.
3) Name
resource의 이름을 조건으로 설정합니다.
4) Tag
resource에 연결되거나 상위 계층을 통해 상속되는 태그를 조건으로 설정합니다.
3. 제한사항
Owner, Editor, Viewer를 비롯한 Basic Role을 부여할 때는 조건을 사용할 수 없습니다.
모든 사용자(allUsers) 또는 모든 인증된 사용자(allAuthenticatedUsers)에게 역할을 부여할 때는 조건을 사용할 수 없습니다.
리소스에 대해 액세스를 관리 설정 및 테스트 가이드
1) 먼저 아래와 같이 Test용 Bucket을 생성해줍니다.
3) Condition type에서 원하는 condition 선택합니다.
4) 테스트용 bucket외에 다른 bucket은 조회가 불가능하게 Name 조건을 생성해줍니다.
Resource Name : projects/_/buckets/[Bucket Name]
※ 이때 Resource Name은 해당 리소스의 프로젝트 및 위치 등의 식별자를 포함한 이름 형식을 사용합니다.
5) IAM 권한 제한 테스트를 진행합니다.
앞선 과정에서 제한적으로 권한을 부여한 특정 bucket만 제한적으로 조회가 가능한 것을 확인할 수 있습니다.
오늘은 GCP IAM 권한 부여 시, conditional role binding을 이용한 특정 리소스에 대해 액세스를 관리하는 방법에 대해 알아 보았습니다.
다음 시간에도 유익한 정보로 찾아오겠습니다.
See you next time!
참고문헌 :
[1] https://cloud.google.com/iam/docs/conditions-attribute-reference#resource
[2] https://cloud.google.com/iam/docs/configuring-resource-based-access
'CSP (Cloud Service Provider) > GCP' 카테고리의 다른 글
Cloud Functions (1) | 2022.11.28 |
---|---|
[GKE 사용하기] 쿠버네티스 리소스관리 (0) | 2022.11.25 |
[GKE 사용하기] 서비스 디스커버리(Service Discovery)(1) (0) | 2022.11.14 |
Composer DAG 자동 실행 방지 설정 방법 (0) | 2022.11.11 |
Cloud Run (0) | 2022.11.02 |
댓글