Devin.KR

최소 권한과 비밀 주입

서비스 계정과 배포 계정의 권한을 구분하고 비밀을 저장소 밖에서 전달합니다.

진도 0%

레슨

  1. 작업에 맞는 최소 권한

    리소스·행동·명시적 거부를 구분합니다.

  2. 서비스 계정과 파일 접근

    실행 계정의 접근 범위를 제한합니다.

  3. 비밀 파일과 환경별 설정

    일반 설정과 비밀을 별도 경로로 전달합니다.

  4. 노출 검사와 비밀 교체

    비밀을 출력하지 않고 교체 결과를 확인합니다.

최소 권한과 비밀 주입 미션

m05 미션 solution 전체를 이어받아 Java SecretGate·비루트 계정·외부 비밀 디렉터리 읽기 전용 마운트를 추가합니다. 새 코드는 CI로 빌드하고 비밀 값은 빌드 뒤 생성합니다.

요구사항

  • m05 서비스에 저장소 밖의 실습 비밀 파일과 비루트 서비스 계정을 연결합니다.
  • 배포 계정·서비스 계정의 권한 표와 AWS IAM 최소 권한 예시를 작성하고 로컬 접근 검사를 수행합니다.

완료 기준

  • 서비스는 자기 볼륨에 쓰지만 다른 환경의 설정 파일에는 접근하지 못합니다.
  • 저장소·이미지·로그·CI 산출물에서 실습 토큰이 검출되지 않습니다.
  • 비밀 교체 후 새 토큰 요청은 성공하고 이전 토큰 요청은 401입니다.
  • check.sh는 actual UID·/data 쓰기·/other 읽기 거부·비밀 쓰기 거부, 새 200·옛 401·파일 누락 503, 실제 이미지 모든 계층·CI·로그·state의 양쪽 토큰 바이트 미검출, 두 번째 plan exit 0을 검사합니다.
  • Docker·OpenTofu·실제 provider lock 실행은 external 대기입니다. IAM 예시와 호스트 배포 계정 권한 표는 사람이 검토합니다.
BOOTCAMP_AUTOCLEAN=1 bash prepare-and-check.sh
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 명령 기록과 관측 증거로 변경 이유를 설명합니다.
  • 다른 학습자가 README로 실행·실패 재현·검증을 따라갈 수 있습니다.