구성 요소
카카오클라우드 IAM의 각 구성 요소는 고유한 역할을 가지며, 카카오클라우드 내 리소스와 권한을 체계적으로 관리하기 위한 기반을 제공합니다. IAM은 아래와 같은 구성 요소로 이루어져 있습니다.
조직
조직은 카카오클라우드 IAM 구조의 최상위 단위입니다. 하나의 조직은 여러 프로젝트, 사용자, 그룹, 서비스 계정을 포함할 수 있으며, 로그인 설정, 사용자 초대, 그룹/프로젝트 생성 등을 중앙에서 관리할 수 있습니다.
- 조직 단위에서는 IAM 서비스 외에도 Billing, Cloud Trail, Alert Center 등 글로벌 서비스의 접근 권한을 제어할 수 있습니다.
- 하나의 사용자 계정은 여러 조직에 가입하거나 소속될 수 있으며, 각 조직 내에서는 고유해야 합니다.
- 조직 단위 역할 예시
- 조직 관리자, 조직 리더, IAM 조직 관리자, IAM 조직 뷰어, 빌링 관리자, 조직 단위의 서비스별 전용 역할 (예: Alert Center 조직 매니저)
조직에서 사용할 수 있는 역할 유형과 권한 범위는 조직 단위 역할 문서에서 확인할 수 있으며, 조직 생성 및 로그인·보안 설정 절차는 조직 생성 및 관리 문서를 참고하세요.
프로젝트
프로젝트는 실제 클라우드 리소스가 생성되고 운영되는 기본 단위입니다. VM, 네트워크, 스토리지, 데이터 분석 리소스 등은 모두 프로젝트 내에서 생성되며, IAM은 프로젝트 단위를 기반으로 리소스 접근 권한을 제어합니다.
- 서비스 리소스 할당량, 접근 권한, 서비스 계정 설정 등은 프로젝트 단위로 관리됩니다.
- 개별 프로젝트 단위로 알림 정책, 모니터링, Cloud Trail 연동을 관리할 수 있습니다.
- 프로젝트 단위 역할 예시
- 프로젝트 관리자, 프로젝트 멤버, IAM 프로젝트 관리자, IAM 프로젝트 뷰어, 서비스별 전용 역할 (예: Pub/Sub 게시자)
프로젝트에서 사용할 수 있는 역할 유형과 권한 범위는 프로젝트 단위 역할 문서에서 확인할 수 있으며, 프로젝트 생성 및 수정, 삭제 등의 절차는 프로젝트 생성 및 관리 문서를 참고하세요.
사용자
사용자는 카카오클라우드 콘솔에 로그인하거나 API를 호출하는 실제 개인 사용자 계정입니다. 이메일을 기반으로 구성되며, 조직 또는 프로젝트에 소속되어야 권한을 부여받을 수 있습니다.
- 하나의 사용자는 여러 조직 및 프로젝트에 속할 수 있으며, 각각 다른 IAM 역할을 가질 수 있습니다.
- 사용자에게는 직접 역할을 부여하거나 그룹을 통해 역할을 위임할 수 있습니다.
- 사용자의 로그인 기록, API 호출 이력 등은 Cloud Trail을 통해 감사 가능합니다.
- 사용자의 역할은 최소 권한 원칙(Least Privilege) 을 기준으로 신중히 할당해야 합니다.
사용자 등록 및 관리를 참고해 조직 단위의 사용자 등록 및 관리 방법을 알아보세요.
그룹
그룹은 여러 사용자를 하나로 묶어 IAM 역할을 효율적으로 일괄 관리할 수 있는 단위입니다. 그룹에 역할을 부여하면 모든 구성원에게 권한이 자동 적용되고, 구성원이 그룹에서 제거되면 권한도 회수됩니다. 따라서 권한 변경 이력 추적과 보안 사고 대응에 유용한 구조입니다.
그룹의 구성 및 권한 정책은 다음과 같습니다.
| 정책 구분 | 설명 |
|---|---|
| 중첩 여부 | 그룹 내 다른 그룹 포함 불가 |
| 포함 대상 | - 그룹에는 사용자만 포함 가능 (서비스 계정 제외) - 사용자는 여러 그룹에 동시에 속할 수 있음 |
| 역할 부여 및 유지 | - IAM 전용 역할, 조직/프로젝트/서비스 역할 모두 가능 - 그룹 제거 또는 삭제 시, 해당 그룹을 통해 사용자에 부여된 역할은 회수되며 직접 부여된 역할은 유지 |
| API 토큰 처리 | 그룹에서 제거되면 해당 그룹을 통해 발급된 토큰은 즉시 만료 |
다음은 카카오클라우드 IAM에서 그룹을 활용해 조직 및 프로젝트 단위의 권한을 효율적으로 관리하는 예시입니다.
조직 내에는 여러 IAM 그룹이 존재하며, 각 그룹은 특정 업무 목적에 맞춰 사용자와 역할을 묶어 관리합니다.
그룹 구조
그룹 생성 및 관리를 참고해 그룹 구성과 권한 적용 방식에 대해 더 자세히 알아보세요.
서비스 계정
서비스 계정은 사용자가 직접 생성할 수 있는 비인터랙티브(non-interactive) 계정으로, 콘솔 로그인 없이 인증 키를 사용해 카카오클라우드 API를 호출하는 데 사용됩니다.
주로 CI/CD 파이프라인, 외부 시스템 연동 등 자동화된 작업에 활용되며, 프로젝트 단위의 IAM 역할을 통해 리소스 접근 권한을 제어할 수 있습니다.
서비스 계정의 구성 및 권한 정책은 다음과 같습니다.
| 정책 구분 | 설명 |
|---|---|
| 계정 형식 | {사용자정의}-{프로젝트이름}@kc.serviceaccount.com |
| 로그인 방식 | 콘솔 로그인 불가 (API 호출 전용) |
| 인증 방식 | IAM 액세스 키, S3 액세스 키를 사용한 토큰 발급 ㄴ 자세한 방법은 서비스 계정의 자격 증명 발급 문서를 참고 |
| 자격 증명 수 제한 | IAM 액세스 키 및 S3 액세스 키 각각 최대 2개까지 발급 가능 |
| 생성 수 제한 | 프로젝트당 최대 100개 생성 가능 (비활성 포함) |
| 역할 및 권한 조건 | 프로젝트 단위 역할만 부여 가능 (조직 역할은 적용되지 않음) ㄴ 특정 API 작업을 수행하려면 프로젝트 내에서 필요한 역할을 직접 부여해야 함 |
서비스 계정은 IAM 사용자 목록에 포함되지 않으며, IAM 사용자 할당량에도 영향을 주지 않습니다.
서비스 계정 생성 및 관리를 참고해 서비스 계정의 생성과 관리 방법에 대해 알아보세요.
서비스 에이전트 계정
서비스 에이전트 계정은 사용자가 직접 생성하지 않으며, 카카오클라우드 서비스가 리소스를 조작할 때 자동으로 생성되는 시스템 전용 계정입니다. 서비스의 백엔드에서 필요한 작업을 자동으로 처리하기 위해 사용됩니다.
예를 들어, Kubernetes Engine에서 노드풀을 추가하면 해당 요청을 수행하기 위해 Kubernetes Engine 전용 서비스 에이전트가 Virtual Machine 인스턴스를 자동으로 생성합니다.
서비스 에이전트 계정의 구성 및 권한 정책은 다음과 같습니다.
| 정책 구분 | 설명 |
|---|---|
| 계정 형식 | {프로젝트이름}@{서비스이름}.kc.serviceaccount.com |
| 수정 및 삭제 제한 | 사용자가 직접 생성, 수정, 삭제 불가 단, 프로젝트를 삭제하면 해당 프로젝트의 모든 서비스 에이전트 계정도 함께 삭제 |
| 역할 및 권한 조건 | - 서비스 동작에 필요한 최소한의 IAM 역할만 자동 부여 - 내부 전용 계정으로 콘솔 로그인 또는 API 호출 등 사용자가 직접 제어할 수 없음 |
콘솔에서 서비스 에이전트 확인 방법은 서비스 에이전트 조회 문서를 참고하세요.