안녕하세요,
베스핀글로벌 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에 문의해 주시기 바랍니다.
감사합니다.