본문 바로가기
CSP (Cloud Service Provider)/GCP

[GCP]IAM 리소스 기반 접근 제어 설정 가이드

by BTC_최규환 2022. 11. 14.

안녕하세요 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


댓글