보안 설정 가이드

Alpacon의 보안 기능을 효과적으로 활용하여 인프라를 보호하고 컴플라이언스 요구사항을 충족하는 방법을 안내합니다.

자세한 설정 방법은 계정 설정워크스페이스 설정을 참고하세요.


다중 인증 전략

역할별 차별화된 MFA 정책

조직의 보안 요구사항과 사용자 역할에 따라 MFA를 차별화하여 적용하세요.

전략 1: 역할 기반 인증 수단 분리

Superuser/Staff (관리자):

필수 인증 수단:
1순위: 하드웨어 보안 키 (YubiKey)
2순위: 생체 인증 (TouchID/FaceID)
백업: 복구 코드 (금고 보관)

MFA 인증 유지 시간: 5-10분

User (일반 사용자):

권장 인증 수단:
1순위: 생체 인증
2순위: OTP (Google Authenticator)
백업: 이메일

MFA 인증 유지 시간: 15-30분

실제 적용 예시:

# 워크스페이스 설정
허용된 MFA 수단:
  - 하드웨어 보안 키
  - 생체 인증
  - OTP
 
MFA 필수 인증 작업:
  - Websh: 
  - WebFTP: 
  - Deploy Shell: 

전략 2: 환경별 보안 수준 설정

프로덕션 워크스페이스:

  • MFA 강제 적용: ✅ 활성화
  • 허용된 MFA 수단: 하드웨어 키 + 생체 인증만
  • 인증 유지 시간: 5분
  • 초대 TTL: 24시간

개발 워크스페이스:

  • MFA 강제 적용: 선택 사항
  • 허용된 MFA 수단: 모든 수단
  • 인증 유지 시간: 60분
  • 초대 TTL: 7일

: 워크스페이스를 환경별로 분리하면 보안 정책을 유연하게 관리할 수 있습니다.

복구 시나리오 대비

MFA 기기를 분실하거나 사용할 수 없는 상황에 대비하세요.

복구 코드 관리 전략:

개인 사용자:
- 1Password 같은 비밀번호 관리자에 저장
- 인쇄본을 집 금고에 보관

팀/조직:
- 팀 비밀번호 관리자 (1Password Teams)에 공유
- 물리적 봉인 봉투에 보관 (2명 이상 서명)
- 정기적 재생성 (분기별) 및 이전 코드 파기

비상 접근 절차:

  1. 주 인증 수단 사용 불가 시 복구 코드 사용
  2. 복구 코드 삭제 후 즉시 새 복구 코드 생성
  3. 새 MFA 인증 수단 등록
  4. 보안팀에 사고 보고

로그인 세션 보안

비정상 접근 패턴 감지

주간 검토 루틴:

# 검토 체크리스트
1. Account Settings → 로그인 기록 확인
 
이상 신호:
- 평소와 다른 국가/도시의 IP
- 새로운 기기/브라우저
- 업무 시간 외 접근 (새벽 2-6시)
- 짧은 시간 내 다른 지역 접속
 
조치:
→ 의심 세션 즉시 종료
→ 비밀번호 변경
MFA 인증 수단 재설정
→ 보안팀 보고

사용자 프로비저닝 전략

환경별 홈 디렉토리 권한

실전 시나리오

시나리오 1: 데이터 과학 팀 협업

요구사항:
  - 공유 데이터셋 접근
  - 노트북 파일 공유
  - 개인 실험 공간 보호

설정:
  워크스페이스: Data-Science
  사용자 프로비저닝: 그룹 공유 (750)

  그룹 구조:
    - ds-team (읽기/쓰기)
    - ds-readonly (읽기만)

결과:
  /home/alice/ → alice:ds-team 750
    ├── personal/ → alice:alice 700 (개인 공간)
    ├── shared/ → alice:ds-team 770 (팀 공유)
    └── public/ → alice:ds-team 755 (공개)

시나리오 2: 프로덕션 보안 강화

요구사항:
  - 각 사용자 완전 격리
  - 로그 파일 보호
  - 설정 파일 보안

설정:
  워크스페이스: Production
  사용자 프로비저닝: 액세스 제한 (700)

결과:
  /home/bob/ → bob:bob 700
    → 다른 사용자 접근 불가
    → 로그 및 설정 파일 보호

시나리오 3: 공유 리소스 서버

요구사항:
  - 공개 데이터셋
  - 공용 스크립트
  - 문서 및 가이드

설정:
  워크스페이스: Shared-Resources
  사용자 프로비저닝: 전체 공유 (755)

  전용 계정:
    - shared-data
    - shared-scripts
    - documentation

결과:
  /home/shared-data/ → shared-data:users 755
    → 모든 사용자 읽기 가능
    → 관리자만 쓰기 가능

정기 보안 점검

자동화 가능한 점검 항목

월간 보안 리포트 생성

스크립트 예시 (Slack Bot 연동):

# 매월 1일 실행
월간 보안 체크리스트:
 
1. MFA 미설정 사용자
   → 대상 사용자에게 DM 발송
1주일 후에도 미설정 시 Staff에게 알림
 
2. 90일 이상 비밀번호 미변경 사용자
   → 비밀번호 변경 안내 이메일
 
3. 장기 미사용 계정 (30일 이상 로그인 없음)
   → 계정 비활성화 검토 리스트
 
4. 과도한 권한 보유자
   → Superuser 역할 재검토 필요
 
5. 경고 알림 미해결 건수
   → 환경별 미해결 알림 요약

분기별 심화 점검

보안 감사 체크리스트:

Q1: 1월 - 접근 권한 대대적 검토
□ 모든 사용자의 그룹 소속 검토
□ Superuser/Staff 역할 적정성 확인
□ 퇴사자 계정 삭제 확인
□ 휴직자 계정 비활성화
□ 장기 미사용 서버 삭제

Q2: 4월 - 인증 및 보안 정책 강화
□ MFA 설정 현황 점검
□ 복구 코드 재생성
□ 허용된 MFA 수단 재검토
□ 비밀번호 정책 강화 검토
□ 세션 타임아웃 적정성 확인

Q3: 7월 - 모니터링 및 알림 최적화
□ 경고 규칙 임계값 조정
□ 알림 피로도 평가
□ Webhook 연동 상태 확인
□ 미사용 경고 규칙 삭제
□ 새로운 메트릭 추가 검토

Q4: 10월 - 컴플라이언스 준비
□ 감사 로그 아카이빙
□ 연간 보안 리포트 작성
□ 보안 사고 이력 분석
□ 내년 보안 정책 수립
□ 규제 변경사항 반영

실전 위협 대응

보안 사고 시나리오별 대응

사고 1: 계정 탈취 의심

징후:

  • 새벽 시간 비정상 로그인
  • 평소와 다른 IP 주소
  • 여러 서버 연속 접근

즉시 대응 (5분 내):

1. Account Settings → 로그인 기록
   → 의심 세션 모두 종료

2. 비밀번호 즉시 변경

3. MFA 인증 수단 재설정
   → 기존 OTP 삭제 후 재등록

4. 최근 7일간 활동 로그 확인
   → 사용자 상세 → 활동 탭

후속 조치 (1시간 내):

5. 접근한 서버 목록 확인
   → 서버 상세 → 접근 탭

6. 실행한 명령어 검토
   → 서버 상세 → 활동 탭 → Command History

7. 파일 변경사항 확인
   → 로그 파일, 설정 파일 무결성 검사

8. 보안팀/관리자 보고
   → Slack #security-incident

사고 2: 권한 상승 시도

징후:

  • 일반 사용자의 sudo 시도
  • 권한 없는 파일 접근 시도
  • 설정 파일 변조 시도

탐지 및 대응:

사용자 상세 → 활동 탭:
  - HTTP 403/401 에러 반복
  - 권한 변경 시도 기록

서버 상세 → 활동 탭:
  - sudo 실패 로그
  - Permission denied 로그

즉시 조치:
  1. 해당 사용자 계정 임시 비활성화
  2. 관리자 회의 소집
  3. 사용자 인터뷰
  4. 필요시 퇴사 처리

팀 규모별 권장 설정

소규모 팀 (5-10명)

초기 설정:

워크스페이스: 1개 (Development + Production 통합)

그룹 구조:
  - Developers (모든 개발자)
  - Admins (2-3명)

보안 설정:
  - MFA: 권장 (필수 아님)
  - 허용된 MFA 수단: 모든 수단
  - Websh 세션: 4시간
  - 사용자 프로비저닝: 그룹 공유

경고 규칙: 기본 설정만

장점: 간단한 관리, 빠른 협업 단점: 보안 수준 낮음

중규모 팀 (10-50명)

권장 설정:

워크스페이스: 2개 (Development, Production 분리)

그룹 구조:
  Development WS:
    - Backend-Team
    - Frontend-Team
    - Data-Team
    - DevOps

  Production WS:
    - Production-Access (Senior + DevOps만)
    - Database-Admins
    - Read-Only-Access

보안 설정:
  Production:
    - MFA: 필수
    - 허용된 MFA 수단: 하드웨어 키, 생체 인증, OTP
    - Websh 세션: 1시간
    - 사용자 프로비저닝: 액세스 제한
    - 모든 루트 작업 MFA 필수

  Development:
    - MFA: 선택
    - Websh 세션: 4시간
    - 사용자 프로비저닝: 그룹 공유

경고 규칙:
  - 프로덕션: 엄격한 임계값 + Slack
  - 개발: 유연한 임계값

대규모 조직 (50명 이상)

엔터프라이즈 설정:

워크스페이스: 환경별 + 팀별 분리
  - production-critical
  - production-standard
  - staging
  - development-backend
  - development-frontend
  - development-data

보안 정책:
  - SSO 통합 (Azure AD, Okta)
  - MFA 필수 (모든 워크스페이스)
  - 하드웨어 키 필수 (프로덕션)
  - IP 허용 목록 (VPN Only)
  - 모든 세션 기록 (컴플라이언스)

자동화:
  - Terraform으로 워크스페이스 관리
  - CI/CD 파이프라인 통합
  - SIEM 연동 (Splunk, ELK)
  - 자동화된 컴플라이언스 리포트

핵심 체크리스트

즉시 적용 (Priority 1)

  • Superuser 역할을 2-3명으로 제한
  • Staff 이상은 하드웨어 키 또는 생체 인증 필수
  • 복구 코드를 안전한 곳에 백업
  • 프로덕션 서버는 별도 그룹으로 분리
  • 로그인 기록 주 1회 확인

1개월 내 적용 (Priority 2)

  • 환경별 워크스페이스 분리 (Production/Development)
  • 워크스페이스별 MFA 정책 설정
  • 경고 규칙 설정 (CPU, 메모리, 디스크)
  • Slack Webhook 통합
  • Websh 세션 타임아웃 최적화

3개월 내 구축 (Priority 3)

  • 보안 사고 대응 Runbook 작성
  • 월간 보안 리포트 자동화
  • 분기별 보안 감사 프로세스 수립
  • 팀 보안 교육 실시
  • 컴플라이언스 요구사항 매핑

관련 문서

설정 방법:

전략 가이드:

보안 이론: