IAM 권한을 엄격하게 관리하기 위하여 직원이 다른 사용자에게 IAM 권한 부여 및 삭제를 할 수 있는 권한도 제한적으로 부여할 수 있습니다.
제한사항
- IAM API 속성을 인식하는 서비스에서만 해당 기능을 사용할 수 있습니다.
아래와 같이 권한 부여 및 삭제 권한을 제한하는 설정을 할 수 있습니다.
본 가이드에 총 3개의 계정이 사용됩니다.
- 최고관리자 User A : mingi.choi@bespinglobal.com
- 제한된 IAM 권한을 부여 받는 IAM 관리자 User B : test-sa
- User B로부터 IAM 권한을 부여 받는 User C : mingi-test-sa
1. 최고관리자 A로 로그인 하여 조건부 권한을 가지는 User B(test-sa)에 대해 Condition을 설정합니다.
- Console > IAM & Admin > Project IAM Admin 권한 부여 > + Add IAM Condition
2. Title에 condition name을 지정한 뒤, CONDITION EDITOR 탭으로 이동합니다.
Editor에서 아래와 같이 hasOnly 함수를 이용한 제한 명령어를 작성 후 SAVE 해줍니다.
- hasOnly() CEL(Common Expression Language)[2] 함수를 사용하여 주 구성원에게 부여 또는 취소할 수 있는 역할을 정의하고 적용합니다.
- 해당 가이드에서는 User B가 [‘roles/pubsub.editor’]만 부여 가능하도록 해보겠습니다.
3. Role 추가/삭제 테스트
- Cloud Shell로 이동하여 제한된 권한을 부여받은 User B(test-sa)로 로그인합니다.
- 이후 아래와 같이 User B(test-sa)가 부여 권한이 있는 pubsub.editor 역할을 User C(test-mingi-sa)에 부여합니다.
- 권한이 있는 IAM role 부여가 잘 되는 것을 확인할 수 있습니다.
- 아래와 같이, 부여 권한이 없는 roles/storage.objectViewer에 대한 작업은 제한됩니다.