Security Practice Archive

보안 점검과 설정을
기록합니다.

시스템, 클라우드 등 다양한 환경에서 확인한 점검 기준과 설정 과정, 검증 결과를 정리합니다.

categories 글 모아보기
Browse topics

주제별로 빠르게 이동

카테고리를 선택해 관련 글을 모아볼 수 있습니다.

약 1분

[인프라진단] #CA-05 인스턴스 서비스 정책 관리

반응형

1. 항목 설명

클라우드 인스턴스의 생성·삭제·수정 또는 접근 권한이 적절하게 부여되어 있는지 점검하는 항목입니다.

판단 기준은 인스턴스 접근 권한이 적절하게 부여된 경우 양호, 인스턴스 접근 권한이 적절하게 부여되지 않은 경우 취약입니다.

2026 가이드 근거

출처: 과학기술정보통신부·한국인터넷진흥원, 「2026 주요정보통신기반시설 기술적 취약점 분석·평가 방법 상세가이드」, CA-05, p.858.
본 게시글은 위 가이드의 판단 기준을 참고하여 작성했으며, 진단 결과와 증적은 개인 실습 환경에서 직접 수집했습니다.

2. 점검 목적

인스턴스의 생성과 접근 권한을 관리 계정과 분리하고 최소 권한을 적용하여 비인가 사용자가 인스턴스 내부 정보에 접근하거나 인스턴스를 변경하는 위험을 줄이는 것이 목적입니다.

3. 실습 환경

  • 클라우드: 개인 AWS Free plan 실습 계정
  • 작업 도구: AWS Management Console, AWS CloudShell, AWS CLI
  • 실습 역할: ca-lab-20260611-ec2-role
  • 인스턴스 프로파일: ca-lab-20260611-instance-profile
  • 과금 방지: EC2 인스턴스를 실제로 생성하거나 실행하지 않음
  • 취약 정책: AWS 관리형 ReadOnlyAccess
  • 조치 정책: 필요한 EC2 조회 작업만 허용하는 역할 인라인 정책

실습·비용·안전 고지

본 항목은 N/A 처리하지 않고 개인 실습 계정에서 실제 설정을 변경하여 진단했습니다. 과금 가능 리소스와 운영 환경은 사용하지 않았으며, 판정은 개인 실습 환경에 한정됩니다. 세부 원칙은 본 시리즈의 「AWS 실습 환경 구축 프롤로그」에 정리한 비용·안전 기준을 따릅니다.

4. 취약 상태 구성

EC2 서비스가 신뢰하는 IAM 역할과 인스턴스 프로파일을 생성한 후 목적보다 광범위한 ReadOnlyAccess를 연결합니다. 실제 EC2 인스턴스는 생성하지 않아 과금과 네트워크 노출을 방지합니다.

구성 방법

aws iam create-role \
  --role-name ca-lab-20260611-ec2-role \
  --assume-role-policy-document file:///tmp/ca-lab-ec2-trust-policy.json

aws iam attach-role-policy \
  --role-name ca-lab-20260611-ec2-role \
  --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess

aws iam create-instance-profile \
  --instance-profile-name ca-lab-20260611-instance-profile

aws iam add-role-to-instance-profile \
  --instance-profile-name ca-lab-20260611-instance-profile \
  --role-name ca-lab-20260611-ec2-role

상태 확인:

aws iam get-instance-profile \
  --instance-profile-name ca-lab-20260611-instance-profile \
  --output json

aws iam list-attached-role-policies \
  --role-name ca-lab-20260611-ec2-role \
  --output json

aws ec2 describe-instances \
  --query "Reservations[].Instances[].InstanceId" \
  --output json

인스턴스 역할에 목적보다 광범위한 정책이 연결되어 있으면 취약 상태이며, EC2 조회 결과가 빈 배열이면 유료 컴퓨팅 리소스를 만들지 않았음을 확인할 수 있습니다.

5. 최초진단 결과

  • 최초진단 판정: 취약
  • 판정 조건: 인스턴스 역할에 목적보다 광범위한 ReadOnlyAccess가 연결된 경우
  • 확인 명령: aws iam get-instance-profile, aws iam list-attached-role-policies
  • 실제 최초진단 증적: ca_initial_diagnosis.txt 기반 수집 완료

6. 조치 방법

광범위한 관리형 정책을 제거하고 실습 목적에 필요한 EC2 인스턴스와 태그 조회 권한만 별도 역할에 부여합니다. 관리 계정에 직접 인스턴스 권한을 부여하지 않습니다.

aws iam detach-role-policy \
  --role-name ca-lab-20260611-ec2-role \
  --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess

aws iam put-role-policy \
  --role-name ca-lab-20260611-ec2-role \
  --policy-name ca-lab-20260611-least-privilege \
  --policy-document file:///tmp/ca-lab-role-least-privilege.json

클라우드 콘솔 경로: IAM → 역할 → ca-lab-20260611-ec2-role → 권한

현재 상태 재확인(2026-08-25): 인스턴스 역할의 광범위한 관리형 정책은 제거되어 있고 목적별 최소 권한 인라인 정책만 남아 있으며, EC2 인스턴스는 0개입니다.

7. 이행진단 결과

  • 이행진단 판정: 양호
  • 판정 조건: 인스턴스 역할의 광범위한 정책이 제거되고 목적에 맞는 최소 권한만 부여된 경우
  • 실제 이행진단 증적: ca_after_diagnosis.txt 기반 수집 완료

8. 실무 주의사항

인스턴스 역할 권한을 축소하면 애플리케이션의 데이터 조회, 로그 전송, 비밀정보 조회와 모니터링이 실패할 수 있습니다. 역할별 실제 API 호출과 애플리케이션 의존성을 확인한 후 단계적으로 적용해야 합니다.

컨설턴트 조언

  • 담당자 인터뷰에서 인스턴스 역할의 사용 서비스, 필요한 API, 배포 주체, 운영·개발 환경 분리와 변경 승인 절차를 확인합니다.
  • 역할 신뢰 정책, 연결 정책, 인라인 정책, 인스턴스 프로파일 연결 현황, 실제 API 사용 로그를 증적으로 확보합니다.
  • 인스턴스 생성·삭제·수정 권한은 일반 운영 계정과 분리하고 승인 기반 역할로 제한합니다.
  • 역할 권한 축소 전 테스트 환경에서 애플리케이션 기능과 모니터링·백업·장애 대응 절차를 검증합니다.
  • 즉시 축소가 어려우면 리소스 태그 조건, 리전 제한, 권한 경계, SCP, 세션 시간 제한을 보완 통제로 적용합니다.

9. 마무리

인스턴스 접근 정책은 관리 계정과 분리된 역할에 최소 권한으로 부여해야 합니다. 실제 EC2를 실행하지 않아도 역할과 인스턴스 프로파일 정책을 통해 권한 설계의 적정성을 점검할 수 있습니다.

반응형