권한 관리 [기관 관리자 전용]
경로: /permissions
조직 내 사용자들의 권한을 세밀하게 관리할 수 있는 페이지입니다. 누가 어떤 작업을 수행할 수 있는지 명확하게 정의하여, 보안을 강화하고 실수로 인한 사고를 예방할 수 있습니다.

[권한 관리] 페이지는 기관 관리자(Manager) 역할을 가진 사용자만 접근할 수 있습니다. 일반 사용자에게는 메뉴가 표시되지 않습니다.
왜 권한 관리가 필요한가요?
권한 관리는 단순히 접근을 제한하는 것이 아닙니다. 올바른 권한 설정은 다음과 같은 이점을 제공합니다:
- 보안 강화: 민감한 작업(배포, 삭제 등)을 수행할 수 있는 사용자를 제한합니다.
- 사고 예방: 실수로 인한 데이터 손실이나 서비스 장애를 방지합니다.
- 책임 추적: 누가 어떤 작업을 수행했는지 명확하게 파악할 수 있습니다.
- 규정 준수: 보안 감사 및 컴플라이언스 요구사항을 충족합니다.
보안의 기본 원칙은 **"업무에 필요한 최소한의 권한만 부여하는 것"**입니다. 예를 들어, 개발자에게는 빌드 권한만, 운영자에게는 배포 권한만 부여하는 식으로 역할에 맞는 권한을 설정하세요.
권한 체계 이해하기
권한은 어떻게 구성되나요?
KIWI의 권한은 카테고리:액션 형식으로 구성됩니다. 예를 들어 service:deploy는 "서비스 카테고리의 배포 액션"을 의미합니다.
권한 예시:
service:deploy→ 서비스 배포 권한backup:restore→ 백업 복구 권한device:create→ 장비 등록 권한
권한은 계층 구조가 아닙니다. service:deploy 권한이 있다고 해서 자동으로 service:view 권한이 부여되지 않습니다. 필요한 권한을 각각 명시적으로 부여해야 합니다.
권한 카테고리
KIWI의 권한은 기능 영역별로 8개 카테고리로 구분됩니다:
- infra: 런타임 환경 관리입니다. 환경 등록, 수정, 삭제 권한이 포함됩니다.
- device: 장비 관리입니다. 장비 등록, 수정, 삭제 권한이 포함됩니다.
- service: 서비스 관리입니다. 빌드, 배포, 운영, 보안 스캔 권한이 포함됩니다.
- backup: 백업 관리입니다. 백업 생성, 복구, 삭제 권한이 포함됩니다.
- database: 데이터베이스 관리입니다. DB 연결, 동기화, 복원 권한이 포함됩니다.
- audit: 감사 로그입니다. 로그 조회, 내보내기 권한이 포함됩니다.
- vpn: VPN 관리입니다. 프로파일 생성, 삭제 권한이 포함됩니다.
- kubernetes: Kubernetes 특화 기능입니다. 명령 실행, 로그 조회 권한이 포함됩니다.
위험도 분류
권한은 시스템에 미치는 영향에 따라 4단계로 분류됩니다. 위험도가 높은 권한일수록 신중하게 부여해야 합니다.
- Critical: 시스템에 큰 영향을 줄 수 있으며, 데이터 손실이나 장애를 유발할 수 있습니다. 대표 권한:
service:delete,backup:restore,*:terminal,*:exec - High: 운영 환경에 직접적인 변경을 가합니다. 대표 권한:
service:deploy:execute,database:sync,*:delete - Medium: 일상적인 운영에 필요한 권한입니다. 대표 권한:
*:create,*:update,service:build:execute - Low: 데이터 변경 없이 정보 조회만 가능합니다. 대표 권한:
*:read,*:view,*:logs
Critical 권한(terminal, exec, delete, restore 등)은 시스템에 돌이킬 수 없는 변경을 가할 수 있습니다. 반드시 신뢰할 수 있는 사용자에게만 부여하고, 정기적으로 검토하세요.
UI 구성
탭 구조
[권한 관리] 페이지는 두 개의 탭으로 구성됩니다:
- 권한 목록: 시스템에 정의된 모든 권한을 카테고리별로 확인합니다. 각 권한의 설명과 위험도를 파악할 수 있습니다.
- 사용자별 권한: 특정 사용자가 보유한 권한을 확인하고, 권한을 부여하거나 회수합니다.
권한 목록 화면에서 할 수 있는 것
- 카테고리별로 권한 목록을 접거나 펼칠 수 있습니다.
- 각 권한의 이름, 설명, 위험도를 한눈에 확인할 수 있습니다.
- 권한 코드를 클릭하여 클립보드에 복사할 수 있습니다.
사용자별 권한 화면에서 할 수 있는 것
- 드롭다운에서 사용자를 선택하여 보유 권한을 확인합니다.
- 새로운 권한을 부여하거나 기존 권한을 회수합니다.
- 권한을 카테고리별로 필터링하여 빠르게 찾을 수 있습니다.
사용 방법
권한 정의 확인하기
시스템에 어떤 권한들이 있는지, 각 권한이 무엇을 의미하는지 확인하고 싶을 때 사용합니다.
- [권한 관리] 페이지로 이동합니다.
- 권한 목록 탭을 선택합니다.
- 확인하고 싶은 카테고리를 클릭하여 펼칩니다.
- 각 권한의 이름과 설명, 위험도(색상)를 확인합니다.
권한 이름을 클릭하면 service:deploy와 같은 권한 코드가 클립보드에 복사됩니다. API 연동이나 문서 작성 시 유용합니다.
사용자 권한 확인하기
특정 사용자가 현재 어떤 권한을 가지고 있는지 확인하고 싶을 때 사용합니다.
- [권한 관리] 페이지로 이동합니다.
- 사용자별 권한 탭을 선택합니다.
- 상단의 드롭다운에서 확인할 사용자를 선택합니다.
- 해당 사용자의 권한 목록이 카테고리별로 표시됩니다.
권한 부여하기
새로운 권한을 사용자에게 부여할 때 사용합니다.
- [권한 관리] 페이지로 이동합니다.
- 사용자별 권한 탭을 선택합니다.
- 드롭다운에서 권한을 부여할 사용자를 선택합니다.
- 권한 부여 버튼을 클릭합니다.
- 부여할 권한을 선택합니다:
- 카테고리별로 그룹화되어 있어 쉽게 탐색할 수 있습니다.
- 검색창에 키워드를 입력하여 빠르게 필터링할 수 있습니다.
- 여러 권한을 동시에 선택할 수 있습니다.
- 부여 버튼을 클릭하여 완료합니다.
권한을 부여하거나 회수하면 즉시 적용됩니다. 해당 사용자가 다시 로그인할 필요가 없습니다. 단, 이미 열려 있는 페이지는 새로고침해야 변경된 권한이 반영됩니다.
권한 회수하기
사용자로부터 특정 권한을 제거할 때 사용합니다.
- [권한 관리] 페이지로 이동합니다.
- 사용자별 권한 탭을 선택합니다.
- 드롭다운에서 대상 사용자를 선택합니다.
- 권한 목록에서 회수할 권한을 찾습니다.
- 해당 권한 옆의 회수 버튼을 클릭합니다.
- 확인 대화상자에서 회수를 클릭하여 완료합니다.
권한을 회수하면 해당 사용자는 즉시 관련 기능을 사용할 수 없게 됩니다. 업무에 지장이 없는지 사전에 확인하세요.
권한 상세 목록
infra 권한 (런타임 환경)
infra:read(Low): 런타임 환경 목록 및 상세 정보 조회infra:create(Medium): 새 런타임 환경 등록infra:update(Medium): 런타임 환경 설정 수정infra:delete(High): 런타임 환경 삭제
device 권한 (장비 관리)
device:read(Low): 장비 목록 및 상세 정보 조회device:create(Medium): 새 장비 등록device:update(Medium): 장비 정보 수정device:delete(High): 장비 삭제
service 권한 (서비스 관리)
기본 권한:
service:view(Low): 서비스 목록 및 상세 정보 조회service:create(Medium): 새 서비스 등록service:update(Medium): 서비스 설정 수정service:delete(Critical): 서비스 삭제 (모든 관련 데이터 포함)
빌드/배포 권한:
service:build:view(Low): 빌드 이력 및 로그 조회service:build:execute(Medium): 빌드 실행service:deploy:view(Low): 배포 이력 조회service:deploy:execute(High): 배포 실행 (운영 환경 변경)
보안 스캔 권한:
service:security:view(Low): 보안 스캔 결과 조회service:security:execute(Medium): SAST/SCA/DAST/SBOM 스캔 실행
Kubernetes 운영 권한:
service:operate:k8s:logs(Low): Pod 로그 조회service:operate:k8s:restart(Medium): Pod 재시작service:operate:k8s:scale(Medium): Pod 스케일 조정 (replica 수 변경)service:operate:k8s:exec(Critical): 컨테이너 내 명령 실행service:operate:k8s:terminal(Critical): 컨테이너 터미널 접속service:operate:k8s:manage(Critical): K8s 리소스 직접 관리 (YAML 편집 등)
Docker 운영 권한:
service:operate:docker:logs(Low): 컨테이너 로그 조회service:operate:docker:restart(Medium): 컨테이너 재시작service:operate:docker:exec(Critical): 컨테이너 내 명령 실행service:operate:docker:terminal(Critical): 컨테이너 터미널 접속service:operate:docker:manage(Critical): Docker 리소스 관리
Podman 운영 권한:
service:operate:podman:logs(Low): 컨테이너 로그 조회service:operate:podman:restart(Medium): 컨테이너 재시작service:operate:podman:exec(Critical): 컨테이너 내 명령 실행service:operate:podman:terminal(Critical): 컨테이너 터미널 접속service:operate:podman:manage(Critical): Podman 리소스 관리
backup 권한 (백업 관리)
backup:read(Low): 백업 목록 및 상태 조회backup:create(Medium): 백업 생성backup:restore(Critical): 백업에서 복구 (기존 데이터 덮어쓰기)backup:delete(High): 백업 삭제
database 권한 (데이터베이스)
database:read(Low): DB 연결 목록 조회database:create(Medium): DB 연결 등록database:sync(High): 데이터 동기화 실행database:restore(Critical): 데이터 복원
audit 권한 (감사 로그)
audit:view(Low): 감사 로그 조회audit:export(Medium): 감사 로그 내보내기
실무 팁과 모범 사례
역할별 권장 권한 설정
다음은 일반적인 팀 구성에서 권장하는 권한 설정 예시입니다:
개발자 (Developer):
service:view,service:build:view,service:build:executeservice:security:view,service:security:executeservice:operate:*:logs(로그 조회)
운영자 (Operator):
- 개발자 권한 +
service:deploy:execute service:operate:*:restart,service:operate:*:scalebackup:read,backup:create
시니어 운영자 (Senior Operator):
- 운영자 권한 +
service:operate:*:exec,service:operate:*:terminal backup:restore
분기별로 모든 사용자의 권한을 검토하세요. 퇴사자, 부서 이동자, 역할 변경자의 권한이 적절한지 확인하고 불필요한 권한은 회수합니다.
자주 묻는 질문
Q: 왜 제 권한을 직접 변경할 수 없나요?
보안상의 이유로 자기 자신의 권한은 변경할 수 없습니다. 권한 상승 공격을 방지하기 위한 조치입니다. 다른 Manager에게 요청하세요.
Q: Manager는 모든 권한을 가지고 있나요?
기본적으로 Manager 역할은 대부분의 권한을 가지지만, 일부 Critical 권한은 명시적으로 부여해야 할 수 있습니다.
Q: 권한 변경 후 바로 적용되나요?
네, 즉시 적용됩니다. 해당 사용자가 다시 로그인할 필요는 없지만, 이미 열려 있는 페이지는 새로고침해야 합니다.
용어 설명
- RBAC: Role-Based Access Control의 약자로, 역할 기반 접근 제어를 의미합니다. 사용자의 역할에 따라 권한을 부여하는 방식입니다.
- 최소 권한 원칙: Principle of Least Privilege. 업무 수행에 필요한 최소한의 권한만 부여하는 보안 원칙입니다.
- 권한 에스컬레이션: 낮은 권한을 가진 사용자가 부적절하게 높은 권한을 획득하는 것으로, 심각한 보안 위험입니다.
주의사항
- Critical 권한은 신중하게:
delete,restore,terminal,exec등의 권한은 반드시 신뢰할 수 있는 사용자에게만 부여하세요 - 정기 검토 필수: 분기별로 사용자 권한을 검토하여 불필요한 권한을 회수하세요
- 자기 권한 변경 불가: 보안을 위해 자신의 권한은 변경할 수 없습니다.
- 즉시 적용: 권한 변경은 즉시 적용되므로 업무 시간을 고려하여 진행하세요