2026-03-23 업무 일지

1. 작업 분포

카테고리비중
AWS SAA 자격증 공부60%██████░░░░
보안 취약점 분석 (프론트/인프라)40%████░░░░░░

2. 집중 영역 / 시간 소모 포인트

생산적 작업

  • SAA-C03 오답 패턴화: 틀린 문제들을 기능별(S3 스토리지, RDS 복구, 네트워킹 등)로 분류하여 옵시디언에 체계적으로 정리 및 저장.
  • 보안 감사 수행: timedeal-order 프론트엔드 코드베이스 전체와 인프라 설정(Terraform, Docker, K8s)을 스캔하여 보안 취약점을 식별하고 보고서 작성.

삽질 / 시간 소모 포인트

  • 개념적 혼동 해소: Trusted Advisor의 결제 계정(Payer) 확인 권한, RDS 스냅샷에서 Aurora로의 마이그레이션 방법, Lambda의 실행 역할(Execution Role)과 리소스 기반 정책의 차이 등 혼동되는 개념을 명확히 이해하는 데 상당한 시간 소요.
  • 보안 범위 설정: 프론트엔드뿐만 아니라 인프라 레벨까지 하드코딩된 시크릿과 잘못된 보안 설정(예: 0.0.0.0/0 오픈)을 찾아내는 과정에서 다양한 설정 파일을 분석하는 데 시간 사용.

3. 타임라인

시간대화자주요 작업 내용
11:13🦦SAA-C03 모의고사 점수(50%대)와 오답 문제들의 지문 공유
11:16🦦오답 패턴 분석 및 핵심 키워드 설명 요청, 옵시디언 저장 지시
11:19🦦SAA 오답 분석 파일(2026-03-23-SAA-C03-오답분석.md) 저장 완료 보고
14:45🦦308번(Trusted Advisor) 문항의 누락된 해설 요청
14:47🦦Q308 해설 추가 및 파일 업데이트
15:17🦦440번(RDS to Aurora) 문항의 지문 포인트 분석 요청
15:27🦦Q440 지문 포인트 및 해설 추가 후 파일 업데이트
15:29🦦640번(Lambda 권한) 문항의 상세 설명 요청
17:47🦦timedeal-order 프로젝트의 프론트엔드 보안 취약점 분석 요청
17:48🦦JWT 검증 누락, 클라이언트 사이드 어드민 체크 등 12가지 취약점 분석 완료 및 보고서 작성
17:49🦦프론트엔드 보안 분석 결과 옵시디언 저장
17:56🦦현재 프로젝트의 핵심 파트(Card, Neb, 인증 흐름) 설명 요청
19:43🦦전체 인프라(Terraform, Docker, K8s 등)에 대한 보안 취약점 분석 요청
19:47🦦하드코딩된 JWT Secret, Bastion SSH 전체 오픈 등 인프라 취약점 분석 완료
19:48🦦인프라 보안 분석 결과 옵시디언 저장

4. 해결한 문제와 인사이트

AWS SAA (자격증)

  • Trusted Advisor 접근: 여러 계정 환경에서는 결제 계정(Payer 계정)에서 Trusted Advisor를 확인해야 모든 리소스를 볼 수 있음.
  • RDS 복구 및 마이그레이션: mysqldump와 스냅샷 중 스냅샷이 더 최신일 수 있으나, Aurora로 마이그레이션할 때는 스냅샷은 직접 복원이 가능하고 mysqldump는 S3 import 과정이 필요함.
  • Lambda 권한: **실행 역할(Execution Role)**은 Lambda가 다른 서비스에 접근할 때 사용하고(S3 GetObject, KMS Decrypt), 리소스 기반 정책누가 Lambda를 실행할 수 있는지 제어할 때 사용함. 이 문제에서는 외부 리소스 접근이므로 실행 역할이 정답.

보안 (Security)

  • 프론트엔드 취약점:
    • Client-side Admin Check: localStorage의 이메일만 확인하는 로직은 콘솔에서 조작 가능하므로 반드시 백엔드에서 권한을 검증해야 함.
    • JWT 처리: 프론트에서 atob로 디코딩만 하고 서명 검증을 하지 않으면 토큰 변조에 취약함.
    • 민감정보 노출: .env 파일이 Git에 커밋되어 운영 도메인과 어드민 이메일이 노출된 상태.
  • 인프라 취약점:
    • Hardcoded Secrets: application.yaml에 JWT Secret이 기본값으로 하드코딩되어 있음. 즉시 환경변수로 분리 필요.
    • 보안 그룹 설정: Bastion 호스트의 SSH(22번 포트)가 0.0.0.0/0으로 전 세계 오픈되어 있어 브루트포스 공격에 매우 취약함. 특정 IP로 제한 필요.
    • State 파일 관리: Terraform State 파일이 로컬에 있어 DB 비밀번호 등 민감 정보 유출 위험이 있음. S3 + DynamoDB 원격 저장으로 전환해야 함.

Supported by ai-log-sync & GLM-4.7