◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
Systems Manager (SSM)
Systems Manager(SSM)은 여러 AWS 리소스를 그룹화하여 그룹 내 리소스의 운영 데이터를 일원화하고 운영 작업을 자동화할 수 있는 운영 관리 서비스이다.
Systems Manager는 역할별로 여러 기능으로 구성되어 있다.
- Patch Manager - OS 패치 적용을 자동화하는 기능
- Session Manager - 관리 콘솔에서 EC2 인스턴스로 안전하게 로그인할 수 있는 기능
Systems Manager를 이용하려면 AWS 리소스에 "SSM Agent"가 설치되어 있어야 한다.
- Amazon Linux 2 등의 AMI에는 기본적으로 SSM Agent가 설치되어 있다
- 또한, SSM Agent를 온프레미스 서버에 도입함으로써 EC2 인스턴스와 동일하게 관리할 수 있다
AWS Systems Manager Patch Manager
Patch Manager: OS 보안 관련 패치 설치
- EC2 인스턴스나 온프레미스 서버의 OS 패치 정보를 스캔하고 업데이트하고 패치를 자동화하는 기능이다.
- 패치 베이스라인 설정: 어떤 패치가 허용되거나 금지되는지 정의한다.
- AWS는 미리 정의된 기본 베이스라인을 제공하며, 사용자 정의 베이스라인을 생성할 수도 있습니다.
- OS의 종류에 따라 "어떤 패치를", "언제 적용할지" 등의 패치의 베이스라인(패치 적용 규칙)을 작성하여 자동으로 실행되도록 한다.
- Windows, Linux, Ubuntu, CentOS, RHEL등의 운영 체제를 지원한다.
AWS Systems Manager Session Manager
Session Manager
- Session Manager는 AWS Console이나 AWS CLI를 통해 EC2 인스턴스에 안전하게 로그인 할 수 있는 기능이다.
- AWS 브라우저에서 직접 터미널로 EC2 인스턴스에 접속
- Session Manager를 통해 로그인하면, 로그인 대상 인스턴스에 대해 Security Group 등으로 SSH 통신 허가 설정
(포트 개방, whitelist관리)이 필요 없어져 보안이 강화된다.- 또한, 키 페어(SSH 키) 관리가 필요 없어져 운영이 간편하다.
- 보안 강화: 즉, SSH나 RDP로 직접 인스턴스에 접속하지 않기 때문에 보안 관리에 있어서 더욱 안전하다.
- 프라이빗 서브넷에 있는 인스턴스에도 중간 서버 없이 접속이 가능하다.
AWS Systems Manager Parameter Store
Parameter Store: 유사 Secret Manager
데이터베이스/애플리케이션 등에 접근할 때 필요한 파라미터(로그인 인증 정보 등)를 관리하는 서비스이다.
애플리케이션에서 AWS 리소스에 접근할 때 Parameter Store에서 파라미터를 가져옴으로써 로그인 정보를 애플리케이션에 하드코딩하거나 평문으로 입력할 필요가 없다. → 좀 더 안전하다
AWS Secrets Manager와 비슷하다
- Parameter Store는 AWS Secrets Manager와 거의 비슷하다.
- 차이점1) 유료 / 무료
- Parameter Store: 기본 서비스를 무료로 이용할 수 있다.
- Secrets Manager: 유료 서비스
- 차이점2) 로테이션 기능 "Automatic Rotation"
- Secrets Manager: 유료인 만큼 시크릿(Parameter Store에서의 파라미터)을 자동으로 로테이션(rotation)하는 기능이 있다.
- Parameter Store: 시크릿을 로테이션 하는 기능이 없다.
- 차이점1) 유료 / 무료
- Parameter Store에서는 "SecureString Parameter"을 사용하여 민감한 데이터를 암호화된 형태로 저장한다.(이 때 AWS KMS를 사용하여 암호화 복호화 한다.)
- Parameter Store의 파라미터 Type
- String:일반 문자열 값을 저장한다
- SecureString:민감한 정보를 안전하게 저장한다 (AWS KMS를 사용하여 암호화된다)
- StringList: 문자열 목록을 저장한다 (여러 개의 값을 콤마(,)로 구분하여 저장할 수 있다)
AWS Systems Manager Run Command
Run Command: 명령어/스크립트 실행
- AWS Managemet Console 또는 온프레미스의 인스턴스에 접속해 명령어/스크립트를 실행 할 수 있는 기능
- SSH 등으로 서버 내에 들어갈 필요없다.
- SSH 등을 애초에 사용하지 않기에 더욱 안전하다. → 보안 강화
- 패치 관리뿐만 아니라 원격으로 명령어/스크립트를 실행할 수 있어 다양한 작업의 자동화나 일괄 실행이 가능하다.
- 소프트웨어 설치, 설정 파일 변경, 시스템 재부팅, 진단 정보 수집 등 다양한 처리를 수행할 수 있어 여러 작업 관리에 대응할 수 있다.
AWS Systems Manager Automation
Automation : Runbook 기능
- Automation은 AWS 리소스에 대한 작업을 Runbook에 따라 자동으로 실행하는 서비스이다.
- Runbook은 자동으로 실행되는 워크플로우를 정의하는 문서이며, 워크플로우는 일련의 작업으로 구성되어 있다.
- AWS가 제공하는 미리 정의된 작업(예: 인스턴스 재부팅)뿐만 아니라 사용자가 커스터마이즈한 워크플로우를 생성할 수도 있다.
- Systems Manager Automation을 사용하면 수동 작업이 줄어들어 인적 오류의 위험이 감소하고, 운영 효율성과 보안이 향상되어 AWS 리소스 관리를 보다 효율적이고 안전하게 수행할 수 있다.
- Systems Manager Automation은 EventBridge와 연동하여 특정 이벤트 발생 시 런북을 실행할 수 있다.
- 예를 들어, 매일 일정한 시간에 EC2 인스턴스를 자동으로 시작 및 중지할 수 있다.
🤔 문제
회사가 1,000개의 Amazon EC2 Linux 인스턴스에서 실행되는 프로덕션 워크로드를 가지고 있습니다. 이 워크로드는 서드파티 소프트웨어에 의해 구동됩니다. 회사는 중요한 보안 취약점을 해결하기 위해 모든 EC2 인스턴스에서 서드파티 소프트웨어에 패치를 가능한 한 빨리 적용해야 합니다.
솔루션 아키텍트가 이 요구 사항을 충족하기 위해 무엇을 해야 할까요?
- 모든 EC2 인스턴스에 패치를 적용하기 위해 AWS Lambda 함수를 생성합니다.
- 모든 EC2 인스턴스에 패치를 적용하기 위해 AWS Systems Manager Patch Manager를 구성합니다.
- 모든 EC2 인스턴스에 패치를 적용하기 위해 AWS Systems Manager 유지 관리 창을 예약합니다.
- 모든 EC2 인스턴스에 패치를 적용하는 사용자 정의 명령을 실행하기 위해 AWS Systems Manager Run Command를 사용합니다.
정답
4번. 모든 EC2 인스턴스에 패치를 적용하는 사용자 정의 명령을 실행하기 위해 AWS Systems Manager Run Command를 사용합니다.
Patch Manager는 주로 OS 레벨의 보안 관련 업데이트/패치를 설치하는 데 중점을 둔다.
기본적으로 Patch Manager는 모든 패치에 관해서 설치하는 것이 아니라, 보안에 중점을 두고 더 작은 범위의 패치를 설치한다.
Run Command는 일반적인 관리 작업을 자동화하고, 대규모로 일회성 구성 변경을 수행할 수 있게 해준다.
따라서 Patch Manager는 OS 수준의 패치에 적합하고, 3rd 파티 애플리케이션의 업데이트는 Run Command의 범위에 해당하여 대규모로 일회성 구성 변경을 수행하는 데 적합하다.