IAM : Google Cloud에서 진행되는 모든 리소스 관련 작업에 권한을 관리한다.
Google Cloud 의 모든 작업에는 특정 권한이 필요합니다. 누군가 Google Cloud에서 VM 인스턴스 만들기 또는 데이터 세트 보기와 같은 작업을 수행하려고 시도할 때 IAM은 먼저 해당 사용자에게 필요한 권한이 있는지 확인합니다. 권한이 없으면 IAM이 사용자의 작업 수행을 방지합니다.
IAM에서 사용자에게 권한을 부여할 때는 다음 세 가지 구성요소가 포함됩니다.
- 주 구성원(Principals): 권한을 부여하려는 사람 또는 시스템의 ID입니다.
-> "xxx@gmail.com" 같이 로그인 사용자 계정이 될 수도 있고, "xxx-service-account" 처럼 시스템의 ID로 구성
-> "google group"과 같이 사용자의 그룹에게도 권한 역할을 부여할 수 있다.
-> "워크로드"에게도 권한 역할을 부여할 수 있다.
더보기"워크로드(workload)"란 클라우드 환경에서 실행되는 특정 애플리케이션, 서비스 또는 작업 단위
워크로드는 조직이 클라우드에서 수행하는 작업의 단위입니다. 예를 들어:
- 웹 애플리케이션
- 백엔드 API 서버
- 머신러닝 모델 학습 작업
- 데이터 분석 파이프라인
- 배치 처리 작업
- 마이크로서비스 중 하나
이처럼 클라우드에서 어떤 리소스를 사용해 동작하는 특정 목적을 가진 작업 집합을 워크로드
워크로드 단위로 리소스를 측정하면 비용 관리가 쉽다.
(예시) “전자상거래 웹사이트 백엔드 서비스” 워크로드
Compute: GKE에 마이크로서비스 배포 (상품 서비스, 결제 서비스 등)
Database: Cloud SQL (MySQL)
Storage: Cloud Storage (상품 이미지 저장)
IAM: 서비스 계정 권한 제어
Logging: Cloud Logging + Error Reporting
Monitoring: Cloud Monitoring + Uptime checks
이 전체 구성이 하나의 워크로드로 정의 - 역할(Role): 주 구성원에 제공하려는 권한 모음입니다.
-> "소유자", "BigQuery 관리자", "저장소 관리자", "Cloud Run 관리자" 등 보통 <서비스명> <관리자/편집자..> 이런 식으로 권한을 의미하는 역할명을 관리하는 듯
-> "역할"은 "허용 권한"의 묶음으로, "주 구성원"에게 직업 권한을 부여하는 방식이 아니라, "허용 권한"을 가진 "역할"을 부여하는 방식으로 동작한다.
-> "역할"에는 "사전 정의된 역할(구글 클라우드에서 미리 지정하여 관리하는 역할, 위의 Bigquery 관리자와 비슷함)"과 "커스텀 역할(사용자가 직접 권한 매핑, 유지보수 어려움)"과 "기본 역할(Cloud 서비스에 대한 포괄적 액세스 권한 제공, 위의 소유자와 비슷, 프로덕션에서는 사용하면 안된다.)" - 리소스: 주 구성원이 액세스하도록 허용하려는 Google Cloud 리소스입니다.
-> 보통 위에 설명한 "역할"명에 리소스명이 포함되어 있다.
-> 하나의 GCP 서비스 내에는 여러개의 기능(리소스)이 존재하므로, 특정 서비스 내 "일부 개별 리소스에 접근 가능한 역할"도 만들 수 있다.
용어 개념 정리
- 서비스: Compute Engine, API Gateway 처럼 하나의 GCP 서비스명
- 리소스: 인스턴스, 디스크, 서브네트워크와 같이, 서비스보다 더 작은 개념으로, 서비스에서 제공하는 세부 리소스 이자 기능명
- 허용 정책(IAM 정책): "역할"의 전체 목록을 결정한다. 자세히 말하면 "역할 바인딩"의 목록이다.
하나의 "역할 바인딩"에는 "주 구성원"의 그룹과 할당한 권한 "역할"을 의미한다.
허용 정책은 Google Cloud 리소스에 연결된 YAML 또는 JSON 객체이다.
인증된 주 구성원이 리소스 액세스를 시도하면 IAM이 해당 리소스에 할당되어 있는 허용 정책을 검사하여, 주 구성원에게 필요한 권한이 있는지 체크한다. - 컨테이너 리소스: "조직", "폴더", "프로젝트"를 컨테이너 리소스라고 통칭하며, "프로젝트" 컨테이너 내부 하위로, 프로젝트가 사용하는 "Google Cloud Service"들이 포함되는 구조이다.
컨테이너의 모든 리소스에 대해 액세스 권한을 주 구성원에 부여하려면 컨테이너 내부의 리소스가 아니라, 컨테이너 "허용 정책"에 액세서 권한 역할을 부여하면 된다.
AWS에서는 리소스가 물리적 위치(리전)를 기준으로 배치되는 반면, GCP는 주로 조직과 프로젝트 단위로 관리됩니다. - 정책 상속: 컨테이너 리소스에 "허용정책"은 모두 하위 요소 리소스에 상속된다. 이를 "정책 상속"이라고 부른다.
- 유효 허용정책: 리소스의 허용 정책 + 리소스 상위 요소의 허용 정책, 리소스의 유효 허용 정책은 해당 리소스에 설정된 허용 정책과 상위 리소스에서 상속된 허용 정책의 합집합이다.
학습 자료 링크
https://cloud.google.com/iam/docs/overview?hl=ko
'클라우드 & DevOps > 클라우드 서비스 ∕ GCP' 카테고리의 다른 글
[GCP] AI Agent Sample 실행 Log (1) | 2025.05.22 |
---|
최근댓글