AWS API Monitoring with terraform
소개
AWS를 사용하다 보면, 중요한 API의 경우 모니터링과 더불어 Notification이 필요할 때가 있다. 그중에 하나 예를 든다면, AccessKey 발급이다. AccessKey이 유출당했을 경우 해당 사용자 혹은 계정의 모든 API를 호출할 수 있기에 매우 위험하다. 또한 사용자가 계정을 해킹당했을 때 AccessKey를 새롭게 발급받아 사용할 수 있는 위험이 있다. 이러한 것을 알아차리기 위해서, Credential 한 것들은 Notification을 할 필요가 있다.
이번에 예시는 AccessKey를 생성했을 때 알림을 받는 것을 만들어보는 것이다.
구현
사용할 서비스들은 CloudTrail, CloudWatch Log Group, S3, EventBridge, SNS이다.
1. CloudTrail은 최대 90까지의 기록만 기록하므로, 추적(trace)를 만들어서, CloudWatch Log Group으로 보내서 로그를 보관할 수 있도록 하는 것이 중요하다. 물론 S3로 보낼 수도 있다. 나는 2개 모두 사용하도록 하겠다.
2. SNS를 만들고, 구독자로 이메일을 선택한다.
3. EventBridge에서 Rule을 생성하여, IAM에서 CreateAccessKey 이벤트가 트리거 되도록 이벤트 패턴을 작성한다.
전체적인 아키텍처는 이렇고, 구현은 Terraform으로 진행한다. 아래의 주소에서 clone을 받고, README.md를 따라 하면 된다.
https://github.com/rlaehdals/AWS_IAM_API_Monitoring/tree/main
모두 진행하고 나서, AccessKey를 발급해보면 아래와 같이 메일이 온다. 중요한 정보가 있기에 가려서 올린 것이다.
마무리
IAM, S3과 같은 글로벌 서비스들이 존재한다. 이번에 이벤트를 발생시키는 것이 iam이었으므로, IAM 서비스가 진행되는 us-east-1 리전에 리소스들을 만들었어야 했는데, ap-northeast-2에 만들었기에 계속 트리거 되지 않아서 난항을 겪었다. 앞으로는 리전 서비스가 아닐 경우 신경을 써야겠다는 생각이 들었다.
EventBrige와 Cloudtrail을 이용해서 다양한 알림이나 트리거를 진행할 수 있는데, 앞으로 더욱 활용해 볼 예정이다.
'Aws' 카테고리의 다른 글
EKS OverProvisining - 1 (0) | 2023.10.30 |
---|---|
AWS DevOps Engineer Professional (DOP-C02) 취득 후기 (2) | 2023.10.11 |
AWS Event Scheduler 구현 (EventBridge + SNS + SQS) with terraform (0) | 2023.08.07 |
AWS Bastion Host (사용자 관리) with terraform (0) | 2023.07.09 |
Cloudfront cache auto invalidate (0) | 2023.06.05 |
댓글
이 글 공유하기
다른 글
-
EKS OverProvisining - 1
EKS OverProvisining - 1
2023.10.30 -
AWS DevOps Engineer Professional (DOP-C02) 취득 후기
AWS DevOps Engineer Professional (DOP-C02) 취득 후기
2023.10.11 -
AWS Event Scheduler 구현 (EventBridge + SNS + SQS) with terraform
AWS Event Scheduler 구현 (EventBridge + SNS + SQS) with terraform
2023.08.07 -
AWS Bastion Host (사용자 관리) with terraform
AWS Bastion Host (사용자 관리) with terraform
2023.07.09