본문으로 건너뛰기

권한 관리 [기관 관리자 전용]

경로: /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 권한 부여 시 주의

Critical 권한(terminal, exec, delete, restore 등)은 시스템에 돌이킬 수 없는 변경을 가할 수 있습니다. 반드시 신뢰할 수 있는 사용자에게만 부여하고, 정기적으로 검토하세요.


UI 구성

탭 구조

[권한 관리] 페이지는 두 개의 탭으로 구성됩니다:

  • 권한 목록: 시스템에 정의된 모든 권한을 카테고리별로 확인합니다. 각 권한의 설명과 위험도를 파악할 수 있습니다.
  • 사용자별 권한: 특정 사용자가 보유한 권한을 확인하고, 권한을 부여하거나 회수합니다.

권한 목록 화면에서 할 수 있는 것

  • 카테고리별로 권한 목록을 접거나 펼칠 수 있습니다.
  • 각 권한의 이름, 설명, 위험도를 한눈에 확인할 수 있습니다.
  • 권한 코드를 클릭하여 클립보드에 복사할 수 있습니다.

사용자별 권한 화면에서 할 수 있는 것

  • 드롭다운에서 사용자를 선택하여 보유 권한을 확인합니다.
  • 새로운 권한을 부여하거나 기존 권한을 회수합니다.
  • 권한을 카테고리별로 필터링하여 빠르게 찾을 수 있습니다.

사용 방법

권한 정의 확인하기

시스템에 어떤 권한들이 있는지, 각 권한이 무엇을 의미하는지 확인하고 싶을 때 사용합니다.

  1. [권한 관리] 페이지로 이동합니다.
  2. 권한 목록 탭을 선택합니다.
  3. 확인하고 싶은 카테고리를 클릭하여 펼칩니다.
  4. 각 권한의 이름과 설명, 위험도(색상)를 확인합니다.
권한 코드 복사하기

권한 이름을 클릭하면 service:deploy와 같은 권한 코드가 클립보드에 복사됩니다. API 연동이나 문서 작성 시 유용합니다.

사용자 권한 확인하기

특정 사용자가 현재 어떤 권한을 가지고 있는지 확인하고 싶을 때 사용합니다.

  1. [권한 관리] 페이지로 이동합니다.
  2. 사용자별 권한 탭을 선택합니다.
  3. 상단의 드롭다운에서 확인할 사용자를 선택합니다.
  4. 해당 사용자의 권한 목록이 카테고리별로 표시됩니다.

권한 부여하기

새로운 권한을 사용자에게 부여할 때 사용합니다.

  1. [권한 관리] 페이지로 이동합니다.
  2. 사용자별 권한 탭을 선택합니다.
  3. 드롭다운에서 권한을 부여할 사용자를 선택합니다.
  4. 권한 부여 버튼을 클릭합니다.
  5. 부여할 권한을 선택합니다:
    • 카테고리별로 그룹화되어 있어 쉽게 탐색할 수 있습니다.
    • 검색창에 키워드를 입력하여 빠르게 필터링할 수 있습니다.
    • 여러 권한을 동시에 선택할 수 있습니다.
  6. 부여 버튼을 클릭하여 완료합니다.
권한 변경은 즉시 적용됩니다

권한을 부여하거나 회수하면 즉시 적용됩니다. 해당 사용자가 다시 로그인할 필요가 없습니다. 단, 이미 열려 있는 페이지는 새로고침해야 변경된 권한이 반영됩니다.

권한 회수하기

사용자로부터 특정 권한을 제거할 때 사용합니다.

  1. [권한 관리] 페이지로 이동합니다.
  2. 사용자별 권한 탭을 선택합니다.
  3. 드롭다운에서 대상 사용자를 선택합니다.
  4. 권한 목록에서 회수할 권한을 찾습니다.
  5. 해당 권한 옆의 회수 버튼을 클릭합니다.
  6. 확인 대화상자에서 회수를 클릭하여 완료합니다.
권한 회수 전 확인하세요

권한을 회수하면 해당 사용자는 즉시 관련 기능을 사용할 수 없게 됩니다. 업무에 지장이 없는지 사전에 확인하세요.


권한 상세 목록

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:execute
  • service:security:view, service:security:execute
  • service:operate:*:logs (로그 조회)

운영자 (Operator):

  • 개발자 권한 + service:deploy:execute
  • service:operate:*:restart, service:operate:*:scale
  • backup: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 등의 권한은 반드시 신뢰할 수 있는 사용자에게만 부여하세요
  • 정기 검토 필수: 분기별로 사용자 권한을 검토하여 불필요한 권한을 회수하세요
  • 자기 권한 변경 불가: 보안을 위해 자신의 권한은 변경할 수 없습니다.
  • 즉시 적용: 권한 변경은 즉시 적용되므로 업무 시간을 고려하여 진행하세요