02. 클라우드 보안 공부/실습로그
✅ [실습로그] 서비스 계정 생성과 디렉터리 접근 제한 실습
taegi-
2025. 5. 4. 00:02
✅ [실습로그] 서비스 계정 생성과 디렉터리 접근 제한 실습
🎯 실습 목표
- 시스템에서 서비스 전용 계정을 생성하고, 일반 사용자와 분리된 보안 구조를 만든다.
- 서비스 계정에만 접근 가능한 디렉터리를 생성하고, 불필요한 로그인 및 접근을 차단한다.
- 실무에서 사용하는 기본적인 계정 격리와 디렉터리 보안 구성을 실습을 통해 익힌다.
🖥️ 실습 환경
- OS: Rocky Linux 9.5 (CLI)
- 사용자 계정: user01 (일반 사용자), svc_web / svc_db (서비스 전용 계정)
- 주요 경로: /webdata, /dbdata
⚙️ 실습 과정
먼저 서비스용 계정인 svc_web과 svc_db를 생성하였다.
명령어는 다음과 같이 입력하였다:
bash
복사편집
useradd -r -s /sbin/nologin svc_web useradd -r -s /sbin/nologin svc_db
-r 옵션은 시스템 계정(UID < 1000)으로 생성하겠다는 의미이고,
-s /sbin/nologin은 해당 계정이 로그인할 수 없도록 설정하는 셸이다.
이후 su - svc_web 명령으로 로그인 시도를 해보았고,
"This account is currently not available."라는 메시지가 출력되면서 접근이 차단되었다.
svc_db 계정도 동일하게 로그인이 차단됨을 확인하였다.
서비스 전용 디렉터리 /webdata와 /dbdata를 생성하고, 소유자와 권한을 다음과 같이 설정하였다:
bash
복사편집
mkdir /webdata chown svc_web:svc_web /webdata chmod 750 /webdata mkdir /dbdata chown svc_db:svc_db /dbdata chmod 750 /dbdata
이 설정은 각 디렉터리의 소유자를 해당 서비스 계정으로 지정하고,
권한을 750으로 설정하여 소유자만 접근 가능하도록 한다.
그룹은 읽기/실행만 가능하고, 다른 사용자에 대해서는 접근이 불가능하다.
이후 user01 계정으로 로그인한 상태에서 /webdata와 /dbdata에 접근을 시도하였다.
bash
복사편집
su - user01 cd /webdata → Permission denied cd /dbdata → Permission denied
일반 사용자가 서비스 계정 디렉터리에 접근할 수 없는 것을 확인하였으며,
보안적으로 설정이 정상 적용되었음을 검증할 수 있었다.
✅ 결과 요약
항목결과
서비스 계정 생성 | svc_web, svc_db 계정 생성 및 로그인 차단 정상 작동 |
디렉터리 생성 | /webdata, /dbdata 디렉터리 생성 완료 |
권한 설정 | chown 및 chmod 750 설정으로 접근 제한 구성 |
접근 제한 확인 | user01 접근 시 Permission denied 메시지 출력 |
🔜 앞으로의 목표
- Apache, MariaDB 등의 서비스가 실제로 svc 계정으로 동작하도록 설정해보고,
systemd 서비스 설정에서 User= 항목을 지정하여 연동해볼 계획이다. - SELinux와 연계하여 서비스 계정에 대한 보안 정책도 적용해볼 예정이다.
💬 느낀 점
서비스 계정을 단순히 하나의 사용자로만 보던 기존 개념에서 벗어나,
기능과 보안 목적에 따라 분리된 계정 체계를 설계하는 것이 얼마나 중요한지 직접 실습을 통해 느낄 수 있었다.
로그인을 차단하고, 권한을 격리하며, 디렉터리 접근을 통제하는 과정은
실제 서비스 운영 시 기본적인 보안 관점에서 반드시 요구되는 설계라는 점을 명확히 체감했다.