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에 대한 작업은 제한됩니다.