본문으로 건너뛰기

주요 개념

카카오클라우드 IAM은 역할 기반 접근 제어(Role Based Access Control, RBAC) 방식을 사용하여, 미리 정의된 역할을 기반으로 사용자, 조직, 프로젝트의 권한을 제어합니다.

리소스

리소스는 프로젝트에 생성할 수 있는 인스턴스, 스토리지, 네트워크 등의 컴퓨팅 자원이나 카카오클라우드에서 제공하는 서비스를 추상화한 단위입니다.

그림. 카카오클라우드 리소스 계층 구조 카카오클라우드 리소스 계층 구조

항목설명
조직카카오클라우드 계층 구조에서 최상위 개념으로 프로젝트, 사용자 등을 하나의 조직으로 구성할 수 있는 추상화된 공간
프로젝트    서비스 레벨의 리소스를 소유하는 상위 단위
- 반드시 특정 조직에 소속되어야 함
- 자원 할당량은 프로젝트 단위로 설정됨
- 사용자는 자원에 접근하기 위해 프로젝트 레벨 역할을 획득해야 함
서비스카카오클라우드에서 제공하는 개별 상품
- 서비스 내 모든 자원은 프로젝트 하위에 생성되어 관리
- 예시: VM, VPC, Object Storage 등

IAM 레벨

카카오클라우드의 IAM 레벨은 조직과 프로젝트 단위로 구분됩니다.

   구분   설명
 조직 레벨 IAM조직을 관리하는 IAM 서비스
- 사용자, 역할, 그룹, 프로젝트를 관리
- 조직 레벨 IAM 서비스로 이동하는 방법:
  ㄴ 카카오클라우드 콘솔 > IAM > 조직
 프로젝트 레벨 IAM프로젝트별로 관리하는 IAM 서비스
- 프로젝트 구성원과 프로젝트 역할을 조회하거나 관리
- 프로젝트 레벨 IAM 서비스로 이동하는 방법:
  ㄴ 카카오클라우드 콘솔 > IAM > 프로젝트

사용자

사용자카카오클라우드 콘솔에 로그인할 수 있는 계정 단위입니다. 사용자는 특정 프로젝트 구성원이면서 동시에 그룹 구성원일 수 있습니다.

   항목   설명
 사용자콘솔에 로그인할 수 있는 카카오클라우드 계정 단위
- 카카오클라우드 콘솔 및 API 모두 이용 가능
- 소속된 조직 내에서 고유해야 함
 프로젝트 구성원특정 프로젝트에서 프로젝트 레벨 역할(프로젝트 관리자, 프로젝트 멤버, 프로젝트 리더)을 가진 사용자
- 프로젝트 레벨 역할을 획득해야만 해당 프로젝트 리소스에 접근 가능
 그룹 구성원특정 그룹에 소속된 사용자
- 그룹 구성원은 그룹 권한에 따라 역할 획득
- 그룹이 삭제되거나 그룹 구성원에서 삭제될 경우 즉시 그룹 권한 회수
- 자세한 설명은 하단의 그룹 참고

그룹

그룹은 특정 역할을 함께 공유하는 사용자들로 구성된 집합입니다. 그룹 구성원인 사용자에게 그룹 권한을 일괄로 추가하거나 삭제하여 IAM 역할을 간편하게 관리할 수 있습니다. 그룹 권한을 추가하면 그룹 구성원에게 해당 IAM 역할이 부여되며, 권한을 삭제하면 역할이 즉시 회수됩니다. 단, 사용자에게 직접 추가한 역할은 그대로 유지됩니다.
그룹 관리에 대한 자세한 내용은 그룹 생성 및 관리 문서를 참고하시기 바랍니다.

그림. 그룹 구조 그룹 구조

그룹 정책
  • 그룹에 여러 사용자를 추가할 수 있으며, 사용자는 여러 그룹에 포함될 수 있습니다.
  • 그룹에는 사용자만 추가할 수 있으며, 서비스 계정은 추가할 수 없습니다.
  • 그룹은 다른 그룹을 포함할 수 없습니다.
  • 그룹을 삭제하거나 그룹 구성원을 내보내는 경우, 자동으로 부여받은 그룹 권한도 즉시 회수됩니다.
  • 그룹을 삭제하거나 그룹 구성원을 내보내는 경우, 해당 그룹 구성원의 API 인증 토큰은 즉시 만료됩니다. 단, 별도로 할당된 그룹 권한이 없는 경우는 해당하지 않습니다.

서비스 계정

서비스 계정은 사용자가 직접 생성하는 계정으로, 실제 IAM 사용자 계정은 아니며 카카오클라우드 API 호출에 필요한 인증 토큰을 발급할 수 있는 계정입니다. 프로젝트 구성원들이 서비스 계정 API 인증 토큰으로 API를 호출하여, 카카오클라우드 서비스의 리소스에 접근하거나 이를 제어하기 위한 계정입니다.
서비스 계정의 아이디 형식은 {직접 입력}-프로젝트 이름@kc.serviceaccount.com입니다. 서비스 계정은 프로젝트 레벨 IAM에 속하며, 프로젝트 멤버 역할이 자동으로 부여됩니다. 단, 서비스 계정은 카카오클라우드의 사용자 계정이 아니기 때문에, 해당 계정으로 콘솔에 로그인할 수 없으며 조직 사용자 목록에서 조회되지 않습니다.
서비스 계정 생성 및 관리에 대한 자세한 설명은 프로젝트 서비스 계정 관리를 참고하시기 바랍니다.

   항목   설명
 서비스 계정카카오클라우드 API 호출에 필요한 인증 토큰을 발급할 수 있는 계정
- 사용자가 직접 생성하는 계정으로, 실제 IAM 사용자 계정은 아님
- 아이디 형식: {직접 입력}-프로젝트 이름@kc.serviceaccount.com

API 인증 토큰

서비스 계정에 생성한 액세스 키와 보안 액세스 키를 사용하여 API 인증 토큰을 발급할 수 있습니다. 액세스 키와 보안 액세스 키 관리에 대한 자세한 내용은 프로젝트 서비스 계정 관리를 참고하시기 바랍니다.

서비스 계정 할당량

서비스 계정은 비활성화 상태의 계정을 포함해 프로젝트 당 최대 100개까지 생성할 수 있습니다. 서비스 계정 액세스 키는 서비스 계정 당 최대 10개까지 추가할 수 있습니다. 단, 서비스 계정은 할당량에 포함되지 않습니다.

서비스 계정

서비스 계정은 카카오클라우드의 특정 서비스 이용 시 자동으로 생성되는 계정입니다. 카카오클라우드 서비스 백그라운드에서 직접 리소스에 접근하거나, 사용자의 요청 사항을 수행하기 위해 사용됩니다. 예를 들어 카카오클라우드 Kubernetes Engine 서비스에서 노드 풀을 추가하면, Kubernetes Engine 서비스 계정이 Virtual Machine 서비스의 인스턴스를 생성합니다.
서비스 계정의 아이디 형식은 프로젝트 이름@서비스 이름.kc.serviceaccount.com입니다. 서비스 에이전트는 사용자가 직접 생성하거나 삭제할 수 없습니다. 단, 프로젝트를 삭제할 시 해당 프로젝트의 모든 서비스 에이전트가 함께 삭제됩니다.

프로젝트에 생성된 서비스 에이전트 목록은 카카오클라우드 콘솔 > IAM > 프로젝트 서비스 계정 탭에서 조회할 수 있습니다.

IAM 역할

카카오클라우드의 IAM 역할은 권한의 모음입니다. 사용자에게 특정 역할을 부여하면, 해당 역할이 가진 권한이 사용자에게 자동으로 부여됩니다.

기본 역할

기본 역할은 카카오클라우드에서 기본으로 제공하는 역할입니다. 기본 역할의 유형은 조직 레벨 역할프로젝트 레벨 역할로 나뉘며, 한 사용자에게 여러 역할을 추가할 수 있습니다. 역할 관리에 대한 자세한 내용은 역할 관리 문서를 참고하시기 바랍니다.

조직 레벨 역할

조직 레벨 역할은 조직 소유자, 조직 관리자, 조직 리더, 빌링 관리자, 빌링 매니저, 빌링 뷰어, 트레일 뷰어, Alert Center 관리자로 구성됩니다.

조직 레벨 역할

역할설명
조직 소유자(Owner)조직 생성을 신청한 사용자가 자동으로 획득하는 최상위 역할
- 조직 생성 시 조직 관리자, 빌링 관리자 역할을 함께 획득
- 조직 소유자 역할은 삭제가 불가능하며, 다른 사용자에게 역할 이양 필요
조직 관리자(Admin)조직과 프로젝트(리소스 제외)를 관리하는 역할
- 조직에 사용자 등록 및 삭제 가능
- 그룹 생성 및 삭제, 프로젝트 생성 가능
헬프 데스크 일반 문의글의 답변 상태 및 질문 유형 변경 가능
- 조직 리더 역할의 모든 권한 포함
조직 리더(Reader)조직 및 프로젝트의 사용자 조회와 IAM 역할 조회 가능 (프로젝트의 리소스 관리는 불가)
빌링 관리자(Admin)Billing 서비스에서 결제 수단, 크레딧 등록 및 관리
- 빌링 매니저 역할의 모든 권한 포함
빌링 매니저(Manager)Billing 서비스에서 조직 내 모든 프로젝트의 리소스 사용량 및 예상요금 조회
- 빌링 뷰어 역할의 모든 권한 포함
빌링 뷰어(Viewer)Billing 서비스에 접근하여 특정 프로젝트의 리소스 사용량 및 예상요금 조회
트레일 뷰어(Viewer)Cloud Trail 서비스 한정 역할
- 조직 이벤트(프로젝트 생성/삭제, 콘솔 로그인/로그아웃, 빌링 조회) 및 프로젝트 이벤트 조회 가능
- 조회할 수 있는 이벤트에 대한 자세한 내용은 Cloud Trail 참고
Alert Center 관리자(Admin)Alert Center 서비스 한정 역할
- 조직 이벤트의 알람 등록 및 발송 내역 조회 가능
- 알람 등록 가능한 이벤트에 대한 자세한 내용은 Alert Center의 알림 정책 참고

조직 레벨 역할별 조직 관리 권한

권한조직 소유자(Owner)조직 관리자(Admin)조직 리더(Reader)빌링 관리자(Admin)빌링 매니저(Manager)빌링 뷰어(Viewer)트레일 뷰어(Viewer)Alert Center 관리자(Admin)
조직 생성/삭제 신청✓                                                                               
조직 정보 수정
사용자 등록/삭제
IAM 역할 추가/삭제
조직/프로젝트 정보 조회 및
IAM 역할 조회
그룹 관리
헬프데스크 일반 문의
답변 관리
로그인 설정 및
IdP 연동
보안 설정
빌링 역할 추가/삭제
결제수단 관리
크레딧 관리
청구서 조회
전체 프로젝트 예상요금 조회
특정 프로젝트 예상요금 조회
조직 이벤트 및 프로젝트
이벤트 조회
조직 이벤트 알람 등록 및
발송 내역 조회

프로젝트 레벨 역할

프로젝트 레벨 역할은 프로젝트 관리자(Admin), 프로젝트 멤버(Member), 프로젝트 리더(Reader), Kubeflow 관리자(Admin)로 구성됩니다. 프로젝트 구성원을 관리하거나, 프로젝트 리소스에 접근할 수 있는 권한을 가집니다. 특정 프로젝트 리소스에 접근하려면 반드시 해당 프로젝트 레벨 역할이 있어야 합니다.
사용자에게 프로젝트 역할을 추가 또는 삭제하기 위해서는 조직 관리자 또는 해당 프로젝트 관리자 권한이 필요합니다.

프로젝트 역할 유형

   역할   설명
프로젝트 관리자(Admin)소속 프로젝트 내 리소스 접근 및 관리 권한을 가지는 역할
- 프로젝트 리소스 CRUD(생성, 조회, 수정, 삭제) 가능
- 사용자의 프로젝트 레벨 역할 추가, 삭제, 변경 가능
- 프로젝트 멤버의 모든 권한 포함
프로젝트 멤버(Member)소속 프로젝트 내 리소스 접근 및 관리 권한을 가지는 역할
- 프로젝트 리소스 CRUD(생성, 조회, 수정, 삭제) 가능
프로젝트 리더(Reader)소속 프로젝트 내 리소스의 조회 권한만을 가지는 역할
- 프로젝트 리소스 read(조회) 가능
Kubeflow 관리자(Admin)Kubeflow 서비스 한정 역할
- Kubeflow 서비스 리소스 CRUD(생성, 조회, 수정, 삭제) 가능

프로젝트 레벨 역할별 권한

권한조직 소유자(Owner)조직 관리자(Admin)프로젝트 관리자(Admin)프로젝트 멤버(Member)프로젝트 리더(Reader)
프로젝트 생성/삭제         ✓                                         
프로젝트 정보 수정
프로젝트 레벨 역할 관리
프로젝트 내 전체 리소스 CRUD
프로젝트 내 소유한 리소스 CRUD
프로젝트 내 소유한 리소스 조회
서비스별 프로젝트 멤버 권한

서비스마다 프로젝트 멤버의 권한이 상이합니다. 자세한 내용은 서비스별 사용자 가이드를 참고하시기 바랍니다.

그룹 권한

그룹 권한은 사용자 그룹에 조직, 프로젝트 레벨 역할을 부여하여 그룹 구성원이 획득한 권한입니다. 그룹 구성원은 그룹에 설정된 권한을 자동으로 획득합니다. 그룹 권한은 다수의 사용자와 역할을 한 번에 연결할 수 있어 관리가 쉽습니다.
그룹 관리에 대한 자세한 내용은 그룹 생성 및 관리 문서를 참고하시기 바랍니다.