설정된 규칙에 기반해 구성과 구성의 시간에 따른 변화를 기록할 수 있다.
이를 통해 인프라를 빠르게 롤백하고 문제점을 찾아낼 수 있음.
Config로 해결 가능한 솔루션
보안 그룹에 제한되지 않은 SSH 접근이 있는가?
버킷에 공용 액세스가 있는가?
시간이 지나며 변화한 ALB 구성이 있는가?
위 경우 규칙이 규정을 준수하든 안하든 변화가 생길 때마다 SNS 알림을 받을 수 있다.
Config는 리전별 서비스이기 때문에 모든 리전별로 구성해야 한다.
데이터를 중앙화하기 위해 리전과 계정 간 데이터를 통합할 수 있다.
모든 리소스의 구성을 S3에 저장해 나중에 분석할 수 있다.
Config 규칙
AWS 관리형 Config 규칙(75가지 규칙)
커스텀 Config 규칙 만들기(Lambda를 이용해 스스로 규칙을 정의)
ex) EBS 디스크가 gp2 유형인지 평가,
개발 계정의 EC2 인스턴스가 t2.micro 유형인지 평가
몇몇 규칙들은 구성이 변화할 때마다 평가되건가 트리거 되기도 한다.
ex) EBS 디스크에 새 구성이 샐길 때마다 EBS 디스크의 유형을 평가,
정기적으로 규칙이 평가되도록 만들 수 있다. (ex: 2시간마다 EBS 디스크 평가)
Config 규칙은 규정 준수를 위한 것.
어떤 동작을 미리 예방하는 것이 아님.
어떤 것도 차단 불가.
ex) IAM 같은 보안 메커니즘을 대신할 수 없다.
하지만 구성의 개요와 리소스의 규정 준수 여부를 Config 규칙을 통해 알 수 있음.
Config는 비용이드는 서비스이며 비싸질 수 있기 때문에 잘 사용해야 한다.
각 리전당 기록된 구성 항목별로 0.3센트 이고, 리전당 Config 규칙 평가별로 0.1센트 이다.
Config 리소스
리소스의 규정 준수 여부를 시간 별로 볼 수 있다.
리소스 구성을 시간 별로 볼 수 있다.(언제, 누가 변경했는가)
CloudTrail과 연결해 리소스에 대한 API 호출을 볼 수 있다.
Config 규칙 - 교정
Config 내에서 행동을 차단할 수 없지만 SSM 자동화 문서를 이용해 규정을 준수하지 않는 리소스를 수정할 수 있다.
- IAM 액세스 키의 만료 여부를 모니터링 한다 가정 하고 예를 들어 키가 90일 이상 보관된 경우로 규정을 준수하지 않은 상태이다.
- 규정 미준수를 예방하지 못하지만 리소스가 규정을 미준수할 때마다 수정 작업을 트리거 할 수 있다.
- RevokeUnusedIAMUserCredentials라는 이름의 SSM 문서를 이용한다 하자.
- 그리고 이것이 리소스에 적용된다 가정하면
- 이 경우 SSM 문서가 IAM 액세스 키를 비활성화한다.
AWS 관리형 문서를 사용하든 본인만의 자동화 문서를 만들어 사용하든 규정을 준수하지 않는 리소스를 수정은 가능하다.
만약 계속 스크립트를 하고 싶다면 람다 함수를 실행하는 문서를 생성해 원하는 작업을 수행 가능하다.
수정 작업은 재시도 될 수 있다.
리소스를 자동 수정했음에도 여전히 규정을 미준수한다면 5번 까지 재시도 된다.
Config 규칙 - 알림
EventBridge를 사용해 리소스가 규정을 미준수했을 때마다 알림을 보낼 수 있다.
ex: 보안 그룹을 모니터링하다가 규정 미준수 상태가 됐으면 EventBridge에서 이벤트를 트리거해 원하는 리소스에 넘길 수 있다.
또는 모든 구성 변경과 모든 리소스의 규정 준수 여부 알림을 Config에서 SNS로 보낼 수 있다.
한 구성 항목이 있고, 특정 이벤트에만 적용되게 필터링 하고 싶다면 SNS 필터링을 사용하자.
ex: 관리자 이메일이나 Slack 채널등으로 모든 알림을 한 곳에 집중시키기 가능.
CloudWatch VS CloudTrail VS Config
CloudWatch
지표, CPU, 네트워크 등의 성능 모니터링, 대시보드 생성에 사용
이벤트와 알림을 받을 수 있고, 로그 집계 및 분석 도구 사용 가능
CloudTrail
계정 내에서 만든 API에 대한 모든 호출을 기록
특정 리소스에 대한 추적 정의
글로벌 서비스이다.
Config
구성 변경을 기록
규정 준수 규칙에 따라 리소스를 평가
변경과 규정 준수에 대한 타임라인을 UI로 보여준다.
ELB를 통한 세 서비스 예시
CloudWatch
들어오는 연결 수를 모니터링하고 오류 코드 수를 시간 흐름에 따라 비율로 시각화
로드 밸런서의 성능을 볼 수 있는 대시보드를 생성
글로벌 애플리케이션에 로드 밸런서가 여러 개 있다면 글로벌 대시보드 생성 가능
Config
로드 밸런서에 대한 보안 그룹 규칙을 추적해 그 누구도 수상하게 행동하거나 변경하지 못하게 하기 위해 사용
누군가 SSL 인증서 등을 수정하지 않는지 감시
로드 밸런서의 구성 변경을 추적하는 데 사용
또는 SSL 인증서가 로드 밸런서에 항상 할당되어 있어야 한다는 규칙을 만들어 암호화되지 않은 트래픽이 로드 밸런서에 접근하지 못하게 할 수도 있다.
CloudTrail
누가 API를 호출해 로드 밸런서를 변경했는지 추적
누군가 보안 그룹 규칙을 바꾸거나 SSL 인증서를 바꾸거나 삭제한다면 CloudTrail이 누가 그랬는지 확인 가능.