Files
sam-docs/system/server-access-management.md
권혁성 5bfc89afa7 docs: [제품검사] FQC 문서 시스템 계획 + 스냅샷 Lazy Snapshot 반영
- fqc-document-system-plan.md: FormRequest 상태 수정, Phase 2.4 Lazy Snapshot 확정, 참고 파일 추가
- document-snapshot-architecture-plan.md: Lazy Snapshot 캡처 원칙 추가
- server-access-management.md 신규
- README.md 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 21:09:57 +09:00

4.1 KiB

SAM 서버 접근 권한 관리

개요

SAM 시스템의 서버 및 데이터베이스 접근 권한을 관리합니다. 서버 관리자는 1명이며, 외부 인원에게는 임시로 접근을 허용하고 작업 완료 후 차단합니다.

최종 업데이트: 2026-03-05


서버 정보

구분 호스트 SSH alias 용도
운영 (prod) 211.117.60.189 sam-prod API + React 운영 배포
CI/CD 114.203.209.83 sam-cicd Jenkins + React 개발 배포

OS 계정 현황

sam-prod (운영서버)

계정 용도 상태
hskwon 서버 관리자 (배포, 운영) 활성
pro 외부 작업자 임시 접근용 잠금

sam-cicd (CI/CD 서버)

계정 용도 상태
hskwon 서버 관리자 활성
pro 외부 작업자 임시 접근용 잠금

OS 계정 잠금/해제

외부 작업자에게 서버 접근이 필요한 경우, 작업 시간 동안만 해제하고 완료 후 다시 잠금합니다.

# 계정 잠금
sudo usermod -L pro

# 계정 해제
sudo usermod -U pro

# 상태 확인 (비밀번호 필드 앞에 ! 있으면 잠금 상태)
sudo passwd -S pro

임시 접근 절차

  1. 작업 요청 접수 및 범위 확인
  2. sudo usermod -U pro 로 해제
  3. 작업 완료 확인
  4. sudo usermod -L pro 로 잠금
  5. 작업 내용 기록

DB 계정 현황

sam-prod (운영서버 MySQL 8.4)

계정 인증 플러그인 접근 DB 용도
codebridge@localhost caching_sha2_password sam, sam_stage, sam_stat, codebridge 애플리케이션 (.env)
hskwon@localhost caching_sha2_password 전역 관리자 + sam 서버 관리자
pro@localhost caching_sha2_password sam, sam_stage, sam_stat, codebridge 외부 작업자용

sam-cicd (CI/CD 서버 MySQL 8.4)

계정 인증 플러그인 접근 DB 용도
hskwon@localhost caching_sha2_password 전역 관리자 서버 관리자
pro@localhost caching_sha2_password sam, sam_stage, sam_stat, codebridge, gitea 외부 작업자용

참고: cicd 서버에는 codebridge DB 계정이 없음 (애플리케이션이 다른 계정 사용)


DB 계정 관리

계정 잠금/해제 (MySQL)

-- 계정 잠금
ALTER USER 'pro'@'localhost' ACCOUNT LOCK;

-- 계정 해제
ALTER USER 'pro'@'localhost' ACCOUNT UNLOCK;

-- 상태 확인
SELECT user, host, account_locked FROM mysql.user WHERE user = 'pro';

인증 플러그인 변경

MySQL 8.4에서는 mysql_native_password가 제거되었으므로 caching_sha2_password를 사용합니다.

ALTER USER 'username'@'localhost' IDENTIFIED WITH caching_sha2_password BY '비밀번호';
FLUSH PRIVILEGES;

PhpStorm 접속 시 주의사항

  • SSH 터널 필수 (MySQL이 localhost만 허용)
  • Host: localhost (127.0.0.1 아님)
  • caching_sha2_password 사용 시 Advanced 탭에서 allowPublicKeyRetrieval = true 설정 필요

배포 계정 관리

Jenkins 배포 흐름

프로젝트 main develop
api Jenkins (Stage + Production) post-update hook (Jenkins 미관여)
react Jenkins (Stage + Production) Jenkins (Development)
  • 배포 SSH 계정: hskwon (deploy-ssh-key 크레덴셜)
  • Slack 알림: #deploy_api, #deploy_react

관리 정책

  1. 서버 관리자 1명 원칙 — 여러 명이 동시에 관리하지 않음
  2. 임시 접근만 허용 — 외부 작업자는 필요 시에만 OS/DB 계정 해제
  3. 작업 완료 후 즉시 잠금 — 해제 상태로 방치하지 않음
  4. DB 접근은 SSH 터널 경유 — 외부에서 MySQL 직접 접근 불가 (localhost 바인딩)

참고


작성일: 2026-03-05 버전: 1.0 담당자: SAM Infrastructure Team