VPC Flow Logs를 이용한 CloudWatch 모니터링

y001·2025년 4월 6일
0
post-thumbnail

시작하면서

이번 실습에서는 VPC Flow LogsCloudWatch Logs로 전송하는 설정을 진행한다. 이를 통해 VPC 내에서 발생하는 트래픽 데이터를 실시간으로 모니터링할 수 있으며, 향후 보안이나 네트워크 문제를 진단하는 데 유용하게 활용할 수 있다.

1. IAM 정책 생성

첫 번째 단계는 IAM 정책을 생성하는 것이다. VPC Flow Logs는 CloudWatch Logs로 로그 데이터를 전송해야 하므로, 이를 위한 권한을 부여할 IAM 정책이 필요하다. 해당 정책은 로그 그룹을 만들고 로그를 기록할 수 있는 권한을 부여하는 역할을 한다.

정책 내용

생성한 정책은 다음과 같은 액션들을 포함한다:

  • logs:CreateLogGroup: 로그 그룹을 생성하는 권한
  • logs:CreateLogStream: 로그 스트림을 생성하는 권한
  • logs:PutLogEvents: 로그 이벤트를 기록하는 권한
  • logs:DescribeLogGroupslogs:DescribeLogStreams: 로그 그룹과 스트림을 조회할 수 있는 권한

이 정책은 CloudWatch Logs에서 VPC Flow Logs를 전송하는 데 필요한 권한을 제공한다. 이를 통해 로그 데이터를 원활하게 기록할 수 있다. 이 권한이 없으면 Flow Logs가 CloudWatch Logs로 데이터를 전송할 수 없기 때문에, 첫 단계에서 이 정책을 정확히 설정해야 한다.

정책 JSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": "*"
    }
  ]
}

2. IAM 역할 생성

다음 단계는 IAM 역할을 생성하는 것이다. 이 역할은 VPC Flow Logs가 CloudWatch Logs에 데이터를 전송할 수 있도록 하는 중요한 연결 고리다. 여기서는 my-flowlog-role이라는 이름으로 역할을 만들고, 이 역할에 앞서 생성한 my-flowpolicy 정책을 연결한다.

역할 설정

  • 서비스: AWS 서비스
  • 사용 사례: EC2
  • 권한 부여 정책: my-flowpolicy

이 역할은 VPC Flow Logs 서비스가 CloudWatch Logs에 데이터를 전송할 수 있도록 허용하는 역할을 한다. 서비스 역할이 없으면 Flow Logs가 데이터를 전송할 수 없기 때문에, 역할을 정확히 설정하는 것이 중요하다.

3. 신뢰 정책 수정

다음으로, 생성한 IAM 역할에 신뢰 정책을 수정한다. 이 신뢰 정책은 vpc-flow-logs.amazonaws.com 서비스가 sts:AssumeRole을 통해 my-flowlog-role 역할을 사용할 수 있도록 허용하는 정책이다. 이 단계는 VPC Flow Logs 서비스가 지정한 IAM 역할을 사용할 수 있도록 보장하는 중요한 부분이다.

신뢰 정책 내용

  • Principal: vpc-flow-logs.amazonaws.com (VPC Flow Logs 서비스)
  • Action: sts:AssumeRole

이 설정을 통해 VPC Flow Logs가 CloudWatch Logs로 데이터를 전송할 수 있는 권한을 가지게 되며, 서비스가 역할을 올바르게 사용할 수 있도록 한다.

신뢰 정책 JSON

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "vpc-flow-logs.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

4. CloudWatch 로그 그룹 생성

VPC Flow Logs의 데이터를 저장할 CloudWatch 로그 그룹을 생성하는 단계다. 로그 그룹은 데이터를 관리하는 단위로, Flow Logs에서 생성된 로그 데이터를 저장하는 장소다. 이번 실습에서는 MyVpc22-Log라는 이름의 로그 그룹을 생성한다.

로그 그룹 설정

  • 로그 그룹 이름: MyVpc22-Log

이 단계에서 중요한 점은 로그 그룹이 제대로 생성되어야 VPC Flow Logs가 데이터를 올바르게 기록할 수 있다는 점이다. 로그 그룹을 만들지 않으면 Flow Logs 데이터를 확인할 수 없으므로 필수적인 설정이다.

5. VPC Flow Logs 생성

이제 VPC Flow Logs를 실제로 생성하는 단계다. my-flowlog라는 이름으로 VPC Flow Logs를 설정하고, CloudWatch Logs에 데이터를 전송할 수 있도록 연결한다.

설정 사항

  • 대상: CloudWatch Logs
  • 로그 그룹: MyVpc22-Log
  • IAM 역할: my-flowlog-role
  • 로그 레코드 형식: 기본 형식 (필요에 따라 커스텀 가능)

VPC Flow Logs를 생성하면서 중요한 점은, 로그가 어느 위치에 저장될지(로그 그룹)와, 어떤 역할을 통해 로그가 전송될지를 정확히 설정하는 것이다. 이 설정이 잘못되면 로그가 제대로 기록되지 않기 때문에, 로그 그룹과 역할을 정확히 연결하는 것이 필수적이다.

6. VPC Flow Logs 데이터 확인

VPC Flow Logs의 데이터를 CloudWatch Logs에서 확인할 수 있도록 설정을 마친다. 로그 스트림에서 접근 기록을 확인할 수 있으며, 이를 통해 네트워크 트래픽이 어떻게 흐르고 있는지 모니터링할 수 있다.

CloudWatch Logs에서 흐름 데이터를 확인하는 것은 VPC Flow Logs의 핵심적인 기능이다. 이를 통해, 네트워크 트래픽, 접속된 IP, 포트, 그리고 수신/발신 트래픽 등을 모니터링하고 분석할 수 있다. 이 단계는 실시간 모니터링과 보안 점검에 매우 유용한 정보를 제공한다.

테스트를 위해 미리 MyVpc22에 생성해둔 ec2로 외부 접근을 시도한다. (ex : curl http://<ec2-공인IP>) 접근한 로그는 해당 ec2의 네트워크 인터페이스 이름으로 확인할수 있다.

결론

이번 실습을 통해 VPC Flow Logs와 CloudWatch Logs를 연결하여 네트워크 트래픽 데이터를 실시간으로 모니터링할 수 있는 시스템을 구축했다. 이를 통해 향후 보안 감사, 문제 해결, 트래픽 분석 등 다양한 용도로 활용할 수 있다. 실습을 진행하면서 중요한 점은 정확한 IAM 역할 설정, 로그 그룹과 스트림 연결, 그리고 신뢰 정책 설정이었다. 이러한 설정을 통해 VPC Flow Logs가 제대로 작동하게 되었고, 데이터를 CloudWatch Logs에서 관리하고 분석할 수 있다.

0개의 댓글