권한 관리 가이드
효과적인 권한 관리는 보안과 협업 효율성을 동시에 달성하는 핵심 요소입니다. Alpacon의 IAM(Identity and Access Management) 기능을 활용하여 체계적인 권한 관리 전략을 수립할 수 있습니다.
자세한 내용은 IAM 개요를 참고하세요.
역할 기반 권한 체계
Alpacon은 세 가지 역할(Role)을 제공하여 사용자 권한을 계층적으로 관리합니다.
역할별 권한
User (일반 사용자)
- 권한 범위: 자신에게 할당된 리소스에 대한 접근 및 사용
- 주요 기능:
- 자신이 속한 그룹의 서버 접근
- Websh를 통한 서버 제어
- 자신의 프로필 및 설정 관리
- 적용 대상: 일반 팀원, 개발자, 운영자
Staff (관리자)
- 권한 범위: User 권한 + 사용자 및 그룹 관리
- 주요 기능:
- 사용자 초대 및 계정 관리
- 그룹 생성 및 멤버 관리
- 서버 등록 및 설정 변경
- 일부 워크스페이스 설정 관리
- 적용 대상: 팀 리더, 프로젝트 관리자
Superuser (슈퍼유저)
- 권한 범위: Staff 권한 + 시스템 전반의 최고 관리 권한
- 주요 기능:
- 모든 사용자 및 그룹 관리
- 워크스페이스 전체 설정 관리
- 결제 및 구독 관리
- 감사 로그 접근
- 적용 대상: 시스템 관리자, CTO, 보안 담당자
사용자를 Staff로 설정하면 RBAC admin 역할이, Superuser로 설정하면 superuser 역할이 자동 할당됩니다.
자세한 내용은 사용자 관리를 참고하세요.
사용자 정의 역할
기본 제공 역할 외에도, 조직에 맞는 세밀한 권한을 가진 사용자 정의 역할을 생성할 수 있습니다:
- 프로젝트 범위 관리자: 특정 서버 그룹에 대한 전체 관리 접근
- 읽기 전용 감사자: 컴플라이언스 및 모니터링을 위한 읽기 전용 접근
- 배포 운영자: 전체 관리 권한 없이 배포 명령 실행 권한
사용자 정의 역할은 오브젝트 범위를 지원하여, 워크스페이스 전체가 아닌 특정 리소스로 권한을 제한할 수 있습니다. 역할 관리(Superuser만 가능)는 워크스페이스 설정 > 역할에서 할 수 있습니다.
사용자 정의 역할 모범 사례
- 명확한 이름: 역할의 목적을 반영하는 설명적인 이름 사용 (예:
prod-deploy-operator,staging-readonly) - 좁은 범위: 전역 권한보다 오브젝트 범위 권한을 우선 사용
- 합성 우선: 넓은 역할 하나보다 집중된 역할 여러 개를 조합
- 목적 문서화: 역할에 설명을 추가하여 의도된 용도를 명시
- 정기적 검토: 사용자 정의 역할과 할당을 주기적으로 감사
그룹 기반 권한 관리
그룹을 활용하면 사용자와 서버를 논리적으로 구분하여 효율적으로 권한을 관리할 수 있습니다.
그룹 설계 전략
1. 팀 기반 그룹 구성
조직의 팀 구조에 따라 그룹을 생성합니다.
예시:
- Backend Team: 백엔드 서버 접근 권한
- Frontend Team: 프론트엔드 서버 및 빌드 서버 접근
- DevOps Team: 모든 인프라 서버 접근
- Data Team: 데이터베이스 및 분석 서버 접근
2. 환경 기반 그룹 구성
서버 환경에 따라 접근 권한을 분리합니다.
예시:
- Production Group: 프로덕션 서버 (제한적 접근)
- Staging Group: 스테이징 서버
- Development Group: 개발 서버 (자유로운 접근)
3. 프로젝트 기반 그룹 구성
프로젝트 단위로 서버와 인력을 관리합니다.
예시:
- Project A Team: 프로젝트 A 관련 서버
- Project B Team: 프로젝트 B 관련 서버
- Shared Infrastructure: 공통 인프라 서버
자세한 내용은 그룹 개요를 참고하세요.
최소 권한 원칙 (Principle of Least Privilege)
사용자에게 업무 수행에 필요한 최소한의 권한만 부여하여 보안을 강화합니다.
실천 방법
1. 기본 그룹 활용 제한
- Alpacon users 기본 그룹에는 공통 접근이 필요한 서버만 등록
- 민감한 서버는 별도 그룹으로 분리하여 관리
- 신규 사용자는 기본 그룹에서 시작하되, 필요 시 추가 그룹 할당
2. 역할 최소화
- 대부분의 사용자는 User 역할로 시작
- Staff 역할은 실제 관리 업무를 수행하는 인원에게만 부여
- Superuser 역할은 최소 인원(2-3명)에게만 제한적으로 부여
3. 정기적인 권한 검토
- 분기별로 사용자별 권한 및 그룹 소속 검토
- 퇴사자 또는 역할 변경 시 즉시 권한 회수
- 장기 미사용 계정 비활성화
서버 접근 제어
서버별로 접근 가능한 그룹을 지정하여 보안을 강화합니다.
접근 제어 시나리오
프로덕션 서버 보호
그룹: Production-Access
- Members: Senior Engineers, DevOps Team
- Servers: Production Web Server, Production DB Server
일반 개발자는 프로덕션 서버에 직접 접근하지 못하도록 제한
개발 환경 분리
그룹: Dev-Team-A
- Members: Team A 개발자
- Servers: Team A 개발 서버, 공유 개발 DB
그룹: Dev-Team-B
- Members: Team B 개발자
- Servers: Team B 개발 서버, 공유 개발 DB
각 팀은 자신의 개발 서버에만 접근 가능
자세한 내용은 서버 연결을 참고하세요.
활동 모니터링 및 감사
사용자 활동을 추적하여 보안 사고를 예방하고 사후 분석을 지원합니다.
모니터링 대상
사용자 활동 로그
각 사용자의 활동 이력을 확인할 수 있습니다:
- 로그인 시간 및 IP 주소
- 서버 접근 이력
- 설정 변경 내역
- 작업 성공/실패 여부
자세한 내용은 사용자 상세 - 활동 탭을 참고하세요.
서버 접근 이력
서버별로 접근한 사용자 및 그룹의 이력을 확인할 수 있습니다:
- 시스템 사용자별 접근 기록
- 시스템 그룹별 접근 기록
자세한 내용은 서버 상세 - 접근 탭을 참고하세요.
명령어 실행 이력
서버에서 실행된 명령어의 기록을 확인할 수 있습니다:
- 실행 시간 및 사용자
- 명령어 내용 및 결과
자세한 내용은 서버 상세 - 활동 탭을 참고하세요.
권한 관리 체크리스트
효과적인 권한 관리를 위한 체크리스트입니다.
초기 설정
- 조직 구조에 맞는 그룹 설계 및 생성
- 각 그룹에 적절한 서버 할당
- 사용자별 역할(User/Staff/Superuser) 결정
- 사용자를 적절한 그룹에 배치
운영 단계
- 신규 사용자 등록 시 최소 권한 부여
- 서버 추가 시 적절한 그룹에만 할당
- 민감한 서버는 제한된 그룹에만 접근 허용
- 기본 그룹(Alpacon users)의 서버 목록 최소화
정기 검토
- 분기별 사용자 권한 검토 (역할 및 그룹 소속)
- 퇴사자 계정 즉시 비활성화 또는 삭제
- 장기 미사용 계정 확인 및 조치
- 그룹 구성의 적절성 검토
- 활동 로그에서 이상 행위 패턴 확인
보안 강화
- 프로덕션 서버는 Senior 레벨 이상만 접근
- Superuser 역할은 2-3명으로 제한
- 중요 작업 수행 시 이중 승인 프로세스 고려
- 정기적인 보안 교육 및 가이드라인 공유