IAM — Google Cloud 접근 권한을 한곳에서 관리하기

IAM — Google Cloud 접근 권한을 한곳에서 관리하기

프로젝트에 여러 사람이 붙고 서비스끼리도 서로를 호출하다 보면, '누가 어떤 리소스에 무엇을 할 수 있는지'를 정리하는 일이 핵심이 돼요. Google Cloud Identity and Access Management(IAM) 는 바로 그 권한 관리를 구글 클라우드 서비스 전체에서 하나의 체계로 통합해 줘요. 일관된 작업 방식으로 리소스별 접근 권한을 만들고 관리할 수 있죠.

출처: IAM 공식 문서

본문

IAM의 핵심 개념은 역할(role)정책(policy) 이에요. 역할은 권한(permission)의 묶음이고, 정책은 '이 주체(멤버)에게 이 역할을 준다'는 선언이에요. 어떤 사용자나 서비스 계정에 역할을 부여하면, 그 역할이 허용하는 권한만큼 리소스에 접근할 수 있어요.

콘솔에서 역할을 부여하는 가장 흔한 방법이 '역할 부여(Grant a role)' 퀵스타트인데, gcloud로도 동일하게 할 수 있어요. 예를 들어 프로젝트에 IAM 편집자 역할을 부여할 때는 이렇게 해요:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:[email protected]" \
    --role="roles/editor"

PROJECT_ID 자리에 프로젝트 ID를, --member에 계정을, --role에 부여할 역할을 넣어요. 그런데 모든 권한을 한 사람에게 몰아주는 방식은 위험할 수 있어요. 그래서 문서는 프로젝트·폴더·조직 단위로 접근을 관리하는 방법을 안내해요. 리소스 계층 구조(조직 → 폴더 → 프로젝트)에서 정책이 상속된다는 점을 이해하면 권한 설계가 훨씬 쉬워져요.

머신 간 인증이 필요할 때는 서비스 계정(service account) 을 써요. 서비스 계정은 '사람이 아닌 애플리케이션이 쓰는 계정'이고, 만드는 방법과 리소스에 붙이는 방법이 별도 문서로 나와 있어요. 팀마다 요구가 다르면 커스텀 역할(custom role) 을 만들어 권한을 최소한으로 유지하고, 일시적으로만 권한이 필요하면 임시 접근(temporary access) 을 구성할 수 있어요.

구체적인 역할과 권한 목록, IAM REST API, 특정 리소스에 조건을 거는 IAM 조건(IAM Conditions) 은 레퍼런스 문서에서 찾을 수 있어요. 할당량과 제한, 가격, 릴리스 노트와 권한 변경 로그도 함께 정리되어 있으니 권한이 애매할 때 참고하면 좋아요.

더 알아보기

  • Quickstart: 콘솔 또는 클라이언트 라이브러리로 IAM 역할 부여하기
  • 프로젝트·폴더·조직 단위 접근 관리
  • 서비스 계정 만들고 리소스에 연결하기
  • 커스텀 역할과 임시 접근 구성
  • 역할·권한 레퍼런스와 IAM REST API