본문 바로가기
AI 빅데이터/Google Cloud Platform

[GCP] Cloud IAM과 Cloud ID로 사용자 계정 권한 주기

by 마고커 2020. 3. 4.


AWS도 마찬가지지만 GCP도 Cloud IAM(Identity and Authentication Management)라는 조직관리도구를 갖고 있다. 이를 사용하면 조직원의 계정이 사용할 수 있는 리소스나 권한을 제한할 수 있고, 과금도 한 계정에서 통합하여 관리할 수 있다. 누가 많이 혹은 사적으로 유용하는 지도 감시할 수 있고..

한가지 선행조건은 관리 계정은 GSuite을 쓰거나 Cloud ID를 신청해서 사용해야 하는데, 많은 기업들이 이미 자체의 인트라넷과 조직에 투자를 해 두었기 때문에 GSuite으로 넘어간 국내 기업은 많지 않은 편이다. (MS Office365가 여전히 경쟁력이 있기도 하고) 그래서, Cloud ID를 사용하게 되는데 프리미엄 버전은 계정당 해마다 $6을 지불해야 한다. 테스트를 위해서는 Cloud ID Free 버전을 사용해도 무방하다. Cloud ID 사용을 위해 DNS 인증 등 자신이 신청한 도메인의 Owner임을 증명해야 하는 과정이 있는데, 이건 각자가 처한 상황에 맞춰 개설하면 된다. 여기서는 새로운 도메인을 하나 만들어서 사용하였다.

Cloud ID 가 생성되면 일단 조직원의 계정을 만들어야 하는데 Admin 사이트(https://admin.google.com)에서 하위 조직을 생성하고, 생성된 사용자를 해당 조직 안으로 넣어 주면 된다.

Google Admin Home
조직 생성하기
조직에 사용자 넣기

위의 과정은 Cloud IAM의 아래 구조를 보면 쉽게 이해된다. 

Cloud IAM 관리 구조

Cloud IAM의 관리 계정은 Company에 매칭되고, 조직 구조는 폴더 형태로 관리되며, 각 사용자는 프로젝트에 할당되어 클라우드 리소스를 접근하게 된다. 즉, 사용자의 권한 조정은 프로젝트 단위에서 이루어지게 된다. 물론 전체 프로젝트에 적용할 수 있는 기본 권한 제어도 가능하다. 권한 제어는 GCP내의 Cloud IAM에서 메뉴에서 이루어진다. Cloud ID를 통해 만들어진 관리자 계정으로 GCP를 로그인하고 위의 조직에서 'ai-infra-development'라는 조직 내에 'ai-infra-project-1'을 생성한 후, 특정 사용자에게 해당 프로젝트에 접근할 권한을 준다. (프로젝트 레벨뿐 아니라, Company 혹은 Folder 레벨에서 Project 자체를 생성할 권한을 부여할 수도 있다) 이 예제에서는 'AI Platform Notebook'으로 Notebook Instance 만들 수 있는 권한을 주기 위해 Compute 관리자 권한과 AI Platform Notebook 생성자 권한을 주었다. 그리고, 기본적으로 생성되는 Compute Engine과 Google API 서비스 계정 생성자 권한을 주어야 한다. 

사용자 계정 권한 설정

아래와 같이 다른 서비스(App Engine)에 접근하려고 하면 권한이 없다고 나온다.

그런데, 권한을 준 Compute Engine에 접근해도 문제가 생긴다. GCP를 이용하기 위해서는 기본적으로 (무료 인스턴스라고 하더라도) 결제가 가능해야 이용할 수 있는데, 조직에서 관리되는 계정이므로 관리자가 프로젝트를 결제와 연결시켜 준 후에야 사용 가능해진다.

결제 연결되지 않았을 때 사용자 접근

관리자가 해당 프로젝트로 들어가 아무 리소스나 클릭해서 들어가면 결제 계정 연결으로 진입할 수 있다. 참고로, 기본 5개의 프로젝트를 하나의 관리 계정으로 연결할 수 있으며, 100개까지는 메뉴 UI로 늘릴 수 있고 100개 이상의 프로젝트를 하나의 계정으로 묶으려면 구글에 문의해야 한다.

관리자의 결제 계정 연결
사용자는 권한이 주어진 리소스에 접근 가능!

하려던 건, AI 플랫폼 노트북이었으로, AI Platform 메뉴에서 Notebook을 생성해서 만들어보자.

사용자는 BigQuery나 다른 서비스에는 접근할 수 없고 AI Platform Notebook을 통해서만 AI를 개발할 수 있게 된다.



댓글