안녕하세요,

베스핀글로벌 GCP Support팀입니다.


이번 아티클에서는 주제로 "IAM Condition 설정 중 리소스 기반 접근 제어 설정 방법"을 다루고자 합니다.



리소스 기반 접근 제어 설정


IAM 권한 부여 시, IAM Condition을 설정하여 사용자에게 제한적인 권한을 부여할 수 있습니다.

그 중에서도 특정 리소스에 대해 접근을 제어하는 방법을 설명하겠습니다.

Conditional role binding을 사용하여 특정 문자열로 시작하는 Resource name과 일치하는 resource의 주 구성원에게 access 권한을 부여할 수 있습니다.


1) resource condition 종류


 - Type: resource 유형으로 조건 설정 

    ex) Compute Engine : Disk, Snapshot, Firewall 등


 - Service: Google Cloud Service를 조건 설정

    ex) Apigee X, Cloud SQL, Compute Engine 등


 - Name: resource 이름을 통해 조건 설정

    

 - Tag: resource에 연결되거나 상속되는 태그를 통해 조건 설정



2) 고려사항 & 제한사항


- 상위 요소 전용 권한

    Google Cloud의 리소스 계층 구조에서 하위 리소스에 영향을 미치는 역할의 일부 권한은 상위 수준에서만 적용됩니다. 

    예를 들어 Cloud KMS의 암호화 키를 나열하려면 키 자체가 아닌 암호화 키가 포함된 키링에 대한 cloudkms.cryptokeys.list 권한이 사용자에게 부여되어야 합니다. 

    이러한 종류의 권한을 상위 요소 전용 권한이라 하며 list 작업에만 적용됩니다.

    해당 권한은 list 작업에만 적용됩니다.


- 제한사항

    Owner, Editor, Viewer를 비롯한 Basic Role을 부여할 때는 조건을 사용할 수 없습니다.

    모든 사용자(allUsers) 또는 모든 인증된 사용자(allAuthenticatedUsers)에게 역할을 부여할 때는 조건을 사용할 수 없습니다.



3) 설정 가이드(Name Condition 사용 예시)


 - Console > IAM & Admin > 구성원 선택 후 수정 버튼 클릭, Storage Object Viewer 권한 선택 > +ADD IAM CONDITION 버튼 클릭



 - Condition type에서 원하는 condition 선택



 - Test용 Bucket외에 다른 Bucket은 조회가 불가능하게 Name 조건을 생성해줍니다.

   Resource Name :  projects/_/buckets/[Bucket Name]

   ※ 이때 Resource Name은 해당 리소스의 프로젝트 및 위치 등의 식별자를 포함한 이름 형식을 사용합니다.


 - IAM 권한 제한 테스트를 진행합니다.

    위에 제한적으로 권한을 부여한 특정 bucket만 제한적으로 조회가 가능한 것을 확인할 수 있습니다.





참조링크


[1] IAM Condition : 리소스 기반 액세스 구성

https://cloud.google.com/iam/docs/configuring-resource-based-access



관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.


감사합니다.