◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
Systems Manager (SSM)
Systems Manager은 여러 AWS 리소스를 그룹화하여 운영 및 유지보수를 자동화하고 효율적으로 관리하기 위한 서비스이다.
[SSM Agent]
Systems Manager는 "AWS 리소스" 또는 "온프레미스 서버"에 "SSM Agent"가 설치되어 있어야 한다.
(Amazon Linux 2 등의 AMI에는 기본적으로 SSM Agent가 설치되어 있다)
<SSM Agent 설치하는 법>
https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html
Manually installing and uninstalling SSM Agent on EC2 instances for Linux - AWS Systems Manager
Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better.
docs.aws.amazon.com
💡 Systems Manager로 EC2 인스턴스에 접근하기 위해서
- Systems Manager는 기본적으로 EC2 인스턴스에서 작업할 권한이 없음
- IAM instance profile(인스턴스 프로파일)을 사용하여 권한을 부여해야 한다.
- IAM instance profile: IAM Role을 EC2 인스턴스에 연결하는 컨테이너
- EC2에 접근할 수 있는 IAM Role을 생성해 IAM instance profile에 연결해야 한다.
https://jibinary.tistory.com/389
[AWS] IAM Instance Profile (인스턴스 프로파일)란? 쉽게 정리: (EC2의 IAM Role 작성시 자동으로 Instance Profi
◇ 공부 기록용으로 작성하였으니 틀린 점, 피드백 주시면 감사하겠습니다 ◇ Use an instance profile to pass an IAM role to an EC2 instance.Instance Profile (인스턴스 프로파일)Instance Profile ⊃ IAM Roles AWS Co
jibinary.tistory.com
Systems Manage의 여러 서비스
- Patch Manager
- Session Manager
- Parameter Store
- Run Command
- Automation
AWS Systems Manager Patch Manager
1. Patch Manager: OS 보안 관련 패치 설치
EC2 인스턴스나 온프레미스 서버의 OS(운영체제) 정보를 스캔하고 자동으로 Patch:패치(업데이트)를 하는 서비스이다.
- 운영 체제(OS) 패치 관리: Windows, Linux, Ubuntu, CentOS, RHEL등 다양한 OS를 지원
- Patch Baseline(패치 기준선, 규칙) 설정: 어떤 패치가 허용되거나 금지되는지 정의한다.
- 1)AWS 측에서 미리 정의된 기본 베이스라인와 2)사용자 정의 베이스라인이 있다.
- OS의 종류에 따라 "어떤 패치를", "언제 적용할지" 등의 패치의 베이스라인(패치 적용 규칙)을 작성하여 자동으로 실행되도록 한다.
📌 Patch Manager를 사용하는 방법
1️⃣ AWS Systems Manager에 EC2 인스턴스를 등록 (SSM Agent 활성화 필요)
2️⃣ Patch Manager에서 사전 정의된 Patch Baseline 사용
3️⃣ Maintenance Window를 생성하여 일정에 맞춰 자동 패치 수행
AWS Systems Manager Session Manager
2. Session Manager
- Session Manager는 AWS Console이나 AWS CLI를 통해 EC2 인스턴스에 안전하게 로그인 할 수 있는 기능이다.
(특히 아주 쉽게 AWS Console에서 몇번의 클릭만으로 터미널로 EC2 인스턴스에 접속가능하다) - Session Manager를 통해 로그인하면, 로그인 대상 인스턴스에 대해 Security Group 등으로 SSH 통신 허가 설정
(포트 개방, whitelist관리)이 필요 없어져 보안이 강화된다.- 보안 강화: 즉, SSH나 RDP로 직접 인스턴스에 접속하지 않기 때문에 보안 관리에 있어서 더욱 안전하다.
- 또한, 키 페어(SSH 키) 관리가 필요 없어져 운영이 간편하다.
- 프라이빗 서브넷에 있는 인스턴스에도 중간 서버(bation server) 없이 접속이 가능하다.
AWS Systems Manager Parameter Store
3. Parameter Store (유사 Secret Manager)
데이터베이스/애플리케이션 등에 접근할 때 필요한 파라미터(예: 로그인 인증 정보 등)를 관리하는 서비스이다.
애플리케이션에서 AWS 리소스에 접근할 때 Parameter Store에서 파라미터를 가져옴으로써 로그인 정보를 애플리케이션에 하드코딩하거나 평문으로 입력할 필요가 없다. → 좀 더 안전하다
Parameter Store는 AWS Secrets Manager와 거의 비슷한 기능이다. (하지만 당연히 차이점이 잇다.)
차이점 | Parameter Store | Secrets Manager |
💸 비용 | 무료 서비스 | 유료 서비스 |
🔃 Automatic Rotation: (로테이션 기능) |
시크릿(파라미터) 값을 로테이션 하는 기능이 없다. | 유료인 만큼 시크릿(Parameter Store에서의 파라미터)을 자동으로 로테이션(rotation)하는 기능이 있다. |
Parameter Store에서는 "SecureString Parameter"을 사용하여 민감한 데이터를 암호화된 형태로 저장한다.
(이 때 AWS KMS를 사용하여 암호화 복호화 한다.)
[Parameter Store의 파라미터 유형(Type)]
- String: 일반 문자열 값을 저장한다
- SecureString: 민감한 정보를 안전하게 저장한다 (AWS KMS를 사용하여 암호화된다)
- StringList: 문자열 목록을 저장한다 (여러 개의 값을 콤마(,)로 구분하여 저장할 수 있다)
AWS Systems Manager Run Command
4. Run Command: (ssh) 없이 명령어/스크립트 실행
EC2 인스턴스 또는 온프레미스의 서버에 원격으로 접속해 명령어/스크립트를 실행 할 수 있는 기능
SSH나 RDP로 접속하지 않고도 명령어를 실행하고, 이를 통해 명령어/스크립트 실행을 자동화할 수 있다.
🛡️ 보안 강화: SSH 등을 애초에 사용하지 않기에 더욱 안전하다
❎ Patch Manager와 차이점: Run Command는 명령어 실행에 적합하고 Patch Manager는 좀더 OS의 범위의 패치 적용적합하다.

사용 예시: EC2 인스턴스에서 yum update 명령 실행
Systems Manager → Run Command → AWS-RunShellScript → Commands 필드
yum update -y
AWS CLI
aws ssm send-command \
--instance-ids i-1234567890abcdef0 \
--document-name "AWS-RunShellScript" \
--parameters 'commands=["yum update -y"]' \
--comment "Running yum update to apply security patches"



AWS Systems Manager Automation
5. Automation (Runbook 기능)
Systems Manager Automation은 AWS 리소스에 대한 반복적인 관리 작업을 Runbook(workflow: 일련의 작업)에 따라 자동화 하는 기능이다.
AWS가 미리 정의된 작업(예: 인스턴스 재부팅) 또는 사용자가 커스터마이즈한 워크플로우를 생성할 수 있다.
📌 사용 사례
1️⃣ EC2 인스턴스 자동 재부팅: 특정 EC2 인스턴스가 비정상적으로 동작하면 자동으로 재부팅
2️⃣ 특정 태그가 없는 리소스 삭제: EC2, RDS 등 태그가 없는 리소스를 자동 삭제 (비용 절감)
3️⃣ 보안 그룹 규칙 제거: 0.0.0.0/0(퍼블릭 접근)이 허용된 보안 그룹을 감지 후 자동 제거

- Systems Manager Automation을 사용하면 수동 작업이 줄어들어 인적 오류의 위험이 감소하고, 운영 효율성과 보안이 향상되어 AWS 리소스 관리를 보다 효율적이고 안전하게 수행할 수 있다.
- AWS Config와 AWS Systems Manager Automation 자주 같이 사용됌
- 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의 범위에 해당하여 대규모로 일회성 구성 변경을 수행하는 데 적합하다.
🤔 문제
SysOps 관리자가 AWS Systems Manager Patch Manager를 사용하여 Amazon EC2 인스턴스의 패치를 관리하고 있습니다. 관리자는 패치 기준선과 유지 관리 윈도우를 설정했습니다. 또한 패치할 인스턴스를 식별하기 위해 인스턴스 태그를 사용했습니다.
SysOps 관리자는 Systems Manager가 EC2 인스턴스에 액세스할 수 있도록 해야 합니다.
이 요구 사항을 충족시키기 위해 SysOps 관리자가 수행해야 하는 추가 작업은 무엇입니까?
- 인스턴스의 보안 그룹에 인바운드 규칙을 추가합니다.
- EC2 인스턴스에 Systems Manager에 액세스할 수 있는 IAM 인스턴스 프로파일을 연결합니다.
- Systems Manager 활성화를 생성한 후 인스턴스 그룹을 활성화합니다.
- 태그 기반 선택을 사용하지 않고 패치할 인스턴스를 수동으로 지정합니다.
정답
정답 2번