본문 바로가기
AWS/Systems Mangaer

AWS Systems Patch Manager: 자동화된 패치 관리로 보안 강화하기

by drinkdog 2024. 8. 2.
반응형
AWS Systems Manager의 기능 중 하나인 Patch Manager란?
보안 업데이트와 기타 중요한 소프트웨어 업데이트를 자동으로 관리해주는 서비스입니다.
이 글에서는 Patch Manager의 주요 개념과 간단한 실습을 통해 이를 활용하는 방법을 공부해보았습니다.
Systems Patch Manager란?

AWS 공식 문서에 따르면 Patch Manager는 "보안 관련 업데이트 및 기타 유형의 업데이트로 관리형 노드를 패치하는 프로세스를 자동화"하는 서비스입니다.

간단히 말해, AWS 계정 내에서 운영되는 애플리케이션 및 인스턴스의 패치 버전을 자동으로 관리해주는 편리한 도구입니다.

 

1. 실습: Quick Setup을 이용한 패치 관리 자동화

간단한 실습을 통해 동작 방식을 확인해보고자 한다.

실습은 AWS 공식 문서에서 권장하는 방식인 'Quick Setup' 기능을 사용할 예정이다.

Systems Manager > Quick Setup

1. 준비 단계

IAM 준비

  • AWS Systems Manager 사용을 위한 필수 정책은 설정 과정에서 자동으로 생성됨
  • 필수 정책:
    • AmazonSSMManagedInstanceCore
    • AWSQuickSetupPatchPolicyBaselineAccess
      (참고: AmazonEC2RoleforSSM 정책은 지원 종료 예정)
[참고]
- AmazonEC2RoleforSSM 정책은 곧 지원이 중단될 예정이라 미사용하는 것을 권장한다. (링크)
- Instance Profile Options 를 체크하면 자동으로 생성된다.

 

EC2 인스턴스 준비

  1. Amazon Linux 2 AMI를 선택하여 EC2 인스턴스 2개 생성
  2. 아래 명령어로 SSM Agent 설치 여부 확인:
sudo systemctl status amazon-ssm-agent

 

   3. Action -> Instance settings -> Modify Instance meta data options -> optional 체크 확인

   (IMDSv2 에서는 fail 발생, 아마도 토큰값을 넣지 않고 통신하는 것 같은데 원인은 찾는 중이다..)

[참고]
- Amazon Linux2 AMI 를 사용하는 이유는 AWS에서 제공하는 Linux 배포판이기 때문에 AWS 환경에 최적화 되어 있기 때문이다.
- SSM Agent는 기본으로 설치되어 있고, 아래 명령어로 확인 가능하다.
  ㄴ sudo systemctl status amazon-ssm-agent

2. Systems Patch Manager 설정

Systems Manager > Quick Setup > Patch Manager로 이동

 

1. 이름 입력

 - 예시) ssm-patch-test

 

2. scan

  • Scan: 누락된 패치를 스캔하여 보고서 제공

 

3. Patch 기준선 설정

  • Patch 기준선: 운영 체제(OS) 및 심각도 등의 기본 정책 사용

 

4. 로그 데이터 저장

 - 보유하고 있는 S3에 로그 데이터 저장 가능 // 이번 실습에서는 다루지 않는다.

 

5. Target Nodes 설정

  • 대상 노드: 패치 정책을 적용할 EC2 인스턴스 선택

 

6. Rate Control

  • Rate Control: 동시 패치 작업 노드 수 및 오류 허용 한도 기본값 사용

 

7. Local Deployment Roles

  • Quick Setup을 사용하기 위한 IAM 권한을 생성하는 설정

 

8. 생성

  • 나머지 설정들은 그대로 둔 채로 Create(생성) 버튼을 클릭

3. Systems Patch Manager  실습

1. 취약한 버전의 RPM 파일 다운로드

 - 비교를 위해 생성했던 2개의 EC2 중에 1대에만 설치를 진행

# RPM 파일 다운로드
wget http://vault.centos.org/7.1.1503/os/x86_64/Packages/httpd-2.4.6-31.el7.centos.x86_64.rpm
wget http://vault.centos.org/7.1.1503/os/x86_64/Packages/httpd-tools-2.4.6-31.el7.centos.x86_64.rpm
wget http://vault.centos.org/7.1.1503/os/x86_64/Packages/apr-1.4.8-3.el7.x86_64.rpm
wget http://vault.centos.org/7.1.1503/os/x86_64/Packages/apr-util-1.5.2-6.el7.x86_64.rpm

# 의존성 패키지 설치
sudo yum install -y apr-1.4.8-3.el7.x86_64.rpm apr-util-1.5.2-6.el7.x86_64.rpm

#취약한 버전의 패키지 설치
sudo yum install -y httpd-2.4.6-31.el7.centos.x86_64.rpm httpd-tools-2.4.6-31.el7.centos.x86_64.rpm

# 설치한 패키지 버전 확인
httpd -v

 

2. Systems Manager의 Run Command 사용하여 패치 적용

 - 아래 캡처와 같이 설정, 그 외의 캡처에 없는 설정 부분은 기본값 그대로 둔다.

 - 실습 편의를 위해 S3 부분도 비활성화 했다.

 

 - 아래와 같이 Success 결과를 확인이 가능하다.

 

3. Systems Manager의 Compliance에서 스캔 결과 확인

 - 정상적으로 취약 버전을 스캔한 결과 확인

 

4. Systems Manager의 Patch Manager에서도 스캔 결과 확인

 - 취약한 버전으로 설치했던 패키지명 정상 스캔 확인

참고 링크

- https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/patch-manager.html

반응형