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와 연계하여 서비스 계정에 대한 보안 정책도 적용해볼 예정이다.

💬 느낀 점

서비스 계정을 단순히 하나의 사용자로만 보던 기존 개념에서 벗어나,
기능과 보안 목적에 따라 분리된 계정 체계를 설계하는 것이 얼마나 중요한지 직접 실습을 통해 느낄 수 있었다.
로그인을 차단하고, 권한을 격리하며, 디렉터리 접근을 통제하는 과정은
실제 서비스 운영 시 기본적인 보안 관점에서 반드시 요구되는 설계라는 점을 명확히 체감했다.