구글 클라우드를 이용하다보면 인증을 위해 서비스 계정에서 Key를 받아야 하거나 권한을 줘야 하거나 하는 경우가 발생합니다

그래서 그 개념을 이해하고자 이렇게 한번 IAM에 대해 정리를 해보고자 합니다


IAM (Identity and Access Managerment)란?

이미지 출처 https://cloud.google.com/iam/docs/

구글 클라우드 서비스들로의 액세스를 편리하고 일관된 방식으로 제어하도록 해주는 솔루션으로 구글 클라우드 서비스 개별로 리소스 접근 범위를 지정하여 해당 리소스에 대한 권한의 관리를 쉽게 할 수 있도록 해주는 서비스 입니다

이를 이용하여 조직이 필요로 하는 보안 정책을 수립하고 정책에 따라서 자동으로 사용자의 계정과 권한을 관리할 수 있게 됩니다


구성원 유형

  • Google 계정 : 명시한 특정 사용자에게 권한을 부여합니다
  • 서비스 계정
    • GCE(Google Compute Engine) 같은 어플리케이션에서 API 호출 시 사용되는 ID
    • 사용자 계정 대신 사용 -> 권한도 서비스 계정에 부여
    • Compute Engine 같은 경우는 자동으로 생성되고 이후 변경은 자유롭게 가능
    • Google Cloud API를 사용하는 어플리케이션의 권한 제공
    • 어플리케이션에서는 서비스 계정의 API Key(json or p12)를 사용하여 인증
  • G Suite 도메인 : G Suite 도메인의 구성원 모두에게 권한을 부여합니다
  • Google 그룹스 : 해당 그룹의 구성원 모두에게 권한을 부여합니다
  Google 계정 서비스 계정 G Suite 도메인 Google 그룹스
대상 Employee or User Application component All members of the specified domain All members of the group
API 호출? Yes Yes No No
콘솔 로그인? Yes No No No
노트   An instance can run as a service account    

특별한 구성원 유형

  • 모든 구성원 : ‘allUsers’를 입력하면 모든 사용자에게 액세스 권한이 부여됩니다
  • 모든 Google 계정 : ‘allAuthenticatedUsers”를 입력하면 Google 계정으로 로그인한 모든 사용자에게 액세스 권한이 부여됩니다

GCP IAM의 권한 관리

  • GCP 서비스에 대한 접근 권한 관리
  • 프로젝트 또는 리소스 수준의 권한 제어
  • 권한들을 묶어 Role로 관리 ( Role에 권한들의 집합을 넣어놓고 Role을 할당 )

이미지 출처 https://cloud.google.com/iam/docs/


사용자 역할

  • Viewer : 구글 클라우드의 자원을 보기만 할 수 있습니다
  • Editor : 뷰어 권한에 자원을 생성/삭제/변경할 수 있는 권한이 추가됩니다
  • Owner : 편집자 권한에 프로젝트 자체와 그 구성원을 관리하는 권한이 추가됩니다

리소스 관리

이미지 출처 https://cloud.google.com/iam/docs/

  • 폴더
    • 여러 프로젝트들을 묶어 하나로 관리
    • 회사 내의 부서에 해당
  • 프로젝트
    • 리소스를 묶어 독립적으로 관리
    • 실제 프로젝트 및 서비스에 해당
    • 과금 단위
  • 리소스
    • Google Cloud가 제공하는 서비스

실습

먼저 IAM을 통해서 구성원을 추가하고 권한을 줘보겠습니다

Google Cloud Console 에 들어가서 '메뉴' - 'IAM 및 관리자' - 'IAM' 을 누릅니다

상단의 '추가' 를 누릅니다

아래 같은 화면이 나타나면 추가할 구성원을 추가하고 역할을 통해서 필요한 권한을 줍니다


이번엔 서비스 계정을 추가해보도록 하겠습니다

'메뉴' - 'IAM 및 관리자' - '서비스 계정' 을 누릅니다

선택하고자 하는 서비스 계정 이름의 가장 우측의 메뉴 버튼을 누르고 '키 만들기'를 누릅니다

그럼 아래와 같이 어떤 형식으로 만들 것인지 나오는데, 둘 중에 하나를 선택하여 '생성'을 누릅니다

그럼 아래와 같이 '서비스 계정 키'가 받아지는데 이를 이용하여 API 같은데서 경로를 설정하여 인증에 이용합니다