---
title: "접근 보안 전략"
description: "워크스페이스 보안을 계획할 때 MFA, 복구 경로, 최소 권한, 정기적인 접근 검토를 함께 고려합니다. 팀 규모에 따라 적용할 설정과 점검 주기를 정하고, 의심스러운 활동을 발견했을 때 확인할 기록과 대응 순서를 살펴보세요. 구체적인 설정 절차는 해당 안내로 이어집니다."
---

> Full documentation index: https://docs.alpacax.com/llms.ko.txt

# 접근 보안 전략

<span id="보안-설정-가이드" />

# 접근 보안 전략

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

자세한 설정 방법은 [계정 설정](/use/settings/account/)과 [워크스페이스 설정](/use/workspace/settings/)을 참고하세요.

---

## 다중 인증 전략

### 역할별 차별화된 MFA 정책

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

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

**Superuser/Staff (관리자)**:

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

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

**User (일반 사용자)**:

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

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

**실제 적용 예시**:

워크스페이스에서 다음과 같이 설정합니다:

1. **Policies** → [**Authentication**](/use/workspace/settings/#인증)으로 이동
2. 허용된 MFA 수단 설정: 하드웨어 보안 키, 생체 인증, OTP. WebAuthn 수단을 허용하므로 패스키 로그인도 MFA로 인정됨([자세히 보기](/use/workspace/settings/#패스키와-허용된-mfa-수단))
3. Enterprise 플랜에서는 **MFA 인증 대상**에서 보호할 작업을 선택합니다. 기본적으로 선택된 작업은 없습니다.
   - **서버 작업**: 에이전트 업그레이드·재시작, alpamon-pam 설치
   - **웹 터미널**: 본인 계정이 아닌 시스템 계정으로 접속
   - **코드 에디터**: 본인 계정이 아닌 시스템 계정으로 에디터 열기
   - **파일 전송**: 본인 계정이 아닌 시스템 계정으로 파일 전송
   - **명령 실행**: 본인 계정이 아닌 시스템 계정으로 실행
   - **승인 처리**: 검토자로서 요청 승인 또는 반려

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

**프로덕션 워크스페이스**:

- 추가 인증 필수: ✅ 활성화
- 허용된 MFA 수단: 하드웨어 보안 키 + 생체 인증, 그리고 WebAuthn이 아닌 수단 하나(OTP 또는 복구 코드). 콘솔이 대체 수단으로 요구함
- 패스키 로그인: WebAuthn 수단을 허용하므로 MFA로 인정됨. 패스키로 로그인한 뒤에도 OTP를 요구하려면 OTP만 허용([자세히 보기](/use/workspace/settings/#패스키와-허용된-mfa-수단))
- 추가 인증 유지 시간: Enterprise 플랜에서 15분. 기본 **민감 작업 추가 인증 유지 시간**과 같습니다. 더 짧게 설정하려면 민감 작업 추가 인증 유지 시간을 먼저 줄여야 합니다.
- 초대 TTL: 24시간

**개발 워크스페이스**:

- 추가 인증 필수: 끔
- 허용된 MFA 수단: 모든 수단
- 추가 인증 유지 시간: 60분
- 초대 TTL: 7일

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

### 복구 시나리오 대비

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

**복구 코드 관리 전략**:

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

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

#### 비상 접근 절차

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

---

### 로그인 세션 보안

서버 접근 자체는 시간 제한과 승인을 거치는 작업 세션으로 이루어집니다. 아래 검토는 Alpacon 콘솔에 대한 브라우저 로그인을 다룹니다.

#### 비정상 접근 패턴 감지

**주간 검토 루틴**:

```python
# Review checklist
1. 프로필 > 보안 설정 → 로그인 기기 확인

이상 신호:
- 평소와 다른 국가/도시의 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 연동):

```python
# 매월 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. 프로필 > 보안 설정 → 로그인 기기
   → 의심스러운 세션 모두 취소
   → 사용자의 활성 작업 세션도 종료 (서버 접근은 시간 제한과 승인 기반이므로 자격 증명뿐 아니라 세션을 회수)

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 인증 대상: 관리자 권한이 필요한 모든 작업
    - sudo with MFA 사용; 루트 계정 직접 접속 끔

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

메트릭 알림:
  - 프로덕션: 엄격한 임계값 + Slack
  - 개발: 유연한 임계값
```

### 대규모 조직 (50명 이상)

**엔터프라이즈 설정**:

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

보안 정책:
  - SSO 연동 (Okta Integration Network 또는 SAML IdP)
  - MFA 필수 (모든 워크스페이스)
  - 하드웨어 보안 키와 생체 인증 허용, 대체 수단 하나 추가 (프로덕션)
  - IP 허용 목록 (VPN Only)
  - 모든 세션 기록 (컴플라이언스)

자동화:
  - 범위를 제한한 서비스 토큰과 GitHub Actions로 CI/CD 연동
  - 보안 이벤트 웹훅 알림
```

---

## 핵심 체크리스트

### 즉시 적용 (Priority 1)

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

### 1개월 내 적용 (Priority 2)

- [ ] 환경별 워크스페이스 분리 (Production/Development)
- [ ] 워크스페이스별 MFA 정책 설정
- [ ] 메트릭 알림 설정 (CPU, 메모리, 디스크)
- [ ] 웹훅 알림 통합
- [ ] Websh 세션 타임아웃 최적화

### 3개월 내 구축 (Priority 3)

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

---

## 관련 문서

**설정 방법**:

- [계정 설정](/use/settings/account/) - 개인 MFA 및 비밀번호 설정
- [워크스페이스 설정](/use/workspace/settings/) - 보안 정책
- [메트릭 알림](/use/servers/monitor/#메트릭-알림) - CPU, 메모리, 디스크 경고 규칙

**전략 가이드**:

- [권한 관리 모범 사례](/learn/best-practices/permission-management/) - 그룹 및 역할 전략
- [모니터링 모범 사례](/learn/best-practices/monitoring/) - 모니터링 및 로그 활용

**보안 이론**:

- [인증 및 접근 제어](/learn/security/authentication/) - MFA, SSO, 추가 인증
- [데이터 보안](/learn/security/data-security/) - 암호화 및 컴플라이언스

Source: https://docs.alpacax.com/ko/learn/best-practices/security/
