# SSM & Config & Service Catalog & Inspector

# 1. System Manager (SSM)

EC2와 On-Premise의 운영 인사이트, 패치 자동화 등 인프라 관리 기능을 모두 모아 제공하는 서비스이다.

### 전체 기능들

- **Resource Groups**

- **Insights**

    - Insights Dashboard

    - Inventory : 소프트웨어 설치 여부를 감사

    - Compliance

- **Parameter Store**

- **Action**

    - Automation : EC2 종료, AMI 만들기

    - Run Command : 일괄 명령

    - Session Manager

    - Patch Manager

    - Maintenance Windows

    - State Manager : OS와 app의 구성를 관리

### SSM 동작 원리

EC2/On-Premise에 SSM agent를 설치하면, agent가 SSM 서비스와 소통하며 위 기능들을 제공한다.

물론 적절한 IAM Role이 필요하다. 해당 agent는 `sudo systemctl status amazon-ssm-agent` 명령으로 동작을 확인할 수 있다.

### On-Premise와 연동

1. **SSM Hybrid Activations**에서 activation을 하나 만들어 Code와 ID를 얻는다.

2. On-Premise에 amazon-ssm-agent를 설치하고 위의 Code와 ID를 이용해 agent를 실행한다.

3. SSM에서 인스턴스 ID가 `mi`로 시작하는 인스턴스를 찾는다.

Instance ID를 보면, EC2는 `i-*`이고 On-Premise는 `mi-*`인 것을 확인할 수 있다.

### Resource Groups

> 독자적인 서비스가 되었다.

태그 혹은 CFN 스택을 기준으로 리소스 그룹을 만들 수 있다.

### Run Command

Resource Groups에 일괄적으로 명령을 하는 기능이다. 명령들은 **document**에 정의되어 있고, 미리 정의되어 있는 document를 활용할 수도 있다.

### Parameter Store

config와 secret 데이터를 중앙 집중으로 저장하는 기능이다. key-value 형식이며, 주로 `/path/to`처럼 키를 주소같이 만든다.

권한만 있다면 AWS 서비스 어디에서도 값을 가져갈 수 있다.

- SecureString 타입으로 값을 KMS 암호화할 수 있다.

- 값이 바뀔 때마다 버전이 바뀌며, 모두 감사 가능하다.

### Patch Manager

운영체제와 어플리케이션의 패치를 정의하고 설치하는 기능이다.

- **Patch** : Patch baseline에 정의한 것을 바탕으로 즉시 인스턴스를 스캔하고 패치 수행

- **Patch baseline** : OS별로 어떻게 패치해야 하는지 정의

### Maintenance Windows

**Patch baseline**을 바탕으로 일정에 맞춰 리소스들의 업데이트를 검사하고 설치하는 기능이다.

### Inventory

인스턴스에서 원하는 정보를 추출하고 통합하는 기능이다.

![Image](https://upload.cafenono.com/image/slashpageHome/20240820/134244_pAypiMP7BjK9VAZ9I0?q=80&s=1280x180&t=outside&f=webp)

### Automations

Document를 자동으로 실행해, 유지 관리나 배포를 쉽게 만들어주는 기능이다. CW Events와 통합할 수 있다.

- 적어도 한 명의 IAM 유저가 동의하면 인스턴스를 멈추도록 한다.

- Source AMI를 업데이트해 golden AMI를 만든다. 그리고 golden AMI가 아닌 리소스들을 업데이트한다.

# 2. Config

리전별로 리소스의 구성을 추적해 S3에 저장하고, 감사하는 서비스이다.

- 구성이 바뀔 때마다 이벤트 수신(SNS)

- 구성을 버젼별로 추적

- 리소스별로 구성을 검색

- 리소스별로 변경을 타임라인으로 관리

- 여러 계정과 리전을 묶어서 관리 가능

### Config Rule

규칙을 만들고 리소스의 구성 설정을 평가한다. 구성이 변경되거나 주기적으로 규칙을 평가하고, 규칙을 만족하지 못 하면 “규칙 미준수”로 표시한다.  `예)EBS의 타입이 gp2인가`

- **Custom Rule** : Lambda 함수를 통해 자체 규칙을 만들 수 있다.

- **조정** - “규칙 미준수”일 때, SSM Document을 실행해 리소스를 수정할 수 있다.

- **알림** - 이벤트를 트리거하여 서비스를 실행하거나 유저에게 알릴 수 있다.

# 3. Service Catalog

규정을 준수하는 product(= CFN Template)를 미리 만들어서, AWS 초보자도 쉽게 배포할 수 있도록 도와주는 서비스이다. 프로비전된 product는 중앙에서 상태를 확인하고 제어할 수 있다. [셀프 서비스 포털](https://www.servicenow.kr/products/customer-service-management/what-is-self-service.html)과 연동할 수 있다.

- **Product** : CFN Template

- **Portfolios** : 전체 products 목록

- **Product List** : 조회 가능한 product 목록

### 제약 조건

- **템플릿 제약 조건** : 제품을 시작할 때, 구성(config)을 제한할 수 있다.

- **시작 제약 조건** : 어떤 IAM 역할이 해당 제품을 사용할 수 있는지 제품별로 정의한다.

# 4. Inspector

**EC2** 보안 평가 서비스. 호스트와 네트워크 취약점을 분석한다.

- **OS 분석** : agent 설치 필요

- **네트워크 분석** : agent 설치 불필요

- SNS와 연동할 수 있다.

취약점 발생 → Inspector → SNS → Lambda → SSM →수정 완료

# 5. 비교 분석

### Config

- 보안 그룹 추적

- 설정 변경 추적

- SSL 자격 증명 적용 여부 확인

### Configuration Management

- EC2가 올바른 구성 파일을 갖도록 한다.

- SSM, Opsworks, Ansible, Chef, Puppet, User Data

### Inspector

- 보안 취약점 분석

### SSM

- automations, patches, commands, inventory

### Service Catalog

- 최소한의 구성으로 규정을 준수하며 EC2 배포

For the site tree, see the [root Markdown](https://slashpage.com/kaonmir.md).
