Amazon Virtual Private Cloud
사용 설명서

CloudWatch Logs에 플로우 로그 게시

플로우 로그는 플로우 로그 데이터를 Amazon CloudWatch에 직접 게시할 수 있습니다.

CloudWatch Logs에 게시하는 경우, 플로우 로그 데이터는 로그 그룹에 게시되고, 각 네트워크 인터페이스는 로그 그룹에 고유의 로그 스트림을 가집니다. 로그 스트림에는 플로우 로그 레코드가 포함됩니다. 여러 개의 플로우 로그를 생성하여, 그 데이터를 같은 로그 그룹에 게시할 수 있습니다. 같은 로그 그룹의 하나 이상의 흐름 로그에 동일한 네트워크 인터페이스가 있을 경우 로그 스트림은 하나로 병합됩니다. 한 흐름 로그에서는 거부된 트래픽을 캡처하고, 다른 흐름 로그에서는 허용된 트래픽을 캡처하도록 지정한 경우, 병합된 로그 스트림은 모든 트래픽을 캡처합니다. 자세한 내용은 흐름 로그 레코드 단원을 참조하십시오.

CloudWatch Logs에 플로우 로그를 게시하기 위한 IAM 역할

흐름 로그와 연결된 IAM 역할에는 CloudWatch Logs의 지정된 로그 그룹에 흐름 로그를 게시할 권한이 있어야 합니다. IAM 역할에 연결된 IAM 정책에는 최소한 다음과 같은 권한이 포함되어야 합니다.

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

또한 귀하의 역할에 플로우 로그 서비스의 역할 수임을 허용하는 신뢰 관계가 포함되어 있는지 확인해야 합니다.

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

또한 사용자에게 해당 플로우 로그와 연결된 IAM 역할에 대한 iam:PassRole 작업의 사용 권한이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iam:PassRole"], "Resource": "arn:aws:iam::account-id:role/flow-log-role-name" } ] }

이미 존재하는 역할을 업데이트하거나 플로우 로그를 사용할 수 있도록 새로운 역할을 만들기 위해서 다음 절차를 따라하실 수 있습니다.

본인 계정의 CloudWatch Logs 로그 그룹에 대한

흐름 로그에 대한 IAM 역할을 만들려면

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 [Roles], [Create role]을 선택합니다.

  3. 이 역할을 사용할 서비스로서 EC2를 선택합니다. 사용 사례에서 EC2를 선택합니다. Next: Permissions(다음: 권한)를 선택합니다.

  4. [Attach permissions policies] 페이지에서 [Next: Review]를 선택합니다.

  5. 역할 이름을 입력하고(예: Flow-Logs-Role) 선택 사항으로써 설명을 제공합니다. [Create role]을 선택합니다.

  6. 역할 이름을 선택합니다. 권한에서 Add inline policy(인라인 정책 추가), JSON을 선택합니다.

  7. CloudWatch Logs에 플로우 로그를 게시하기 위한 IAM 역할 에서 첫 번째 정책을 복사한 후 창에 붙여 넣습니다. [Review policy]를 선택합니다.

  8. 정책 이름을 입력하고 Create policy(정책 생성)를 선택합니다.

  9. 역할 이름을 선택합니다. [ Trust Relationships] 으로 들어가려면 [ Edit Trust Relationship]을 선택합니다. 기존 정책 문서에서 ec2.amazonaws.com 부터 vpc-flow-logs.amazonaws.com까지 서비스를 바꾸어주십시오. [Update Trust Policy(신뢰 정책 업데이트)]를 선택합니다.

  10. [ Summary ] 페이지에서 사용자 역할에 대한 ARN을 확인합니다. 사용자의 흐름 로그를 만들 때 이 ARN이 필요합니다.

플로우 로그 레코드 처리

흐름 로크 레코드는 CloudWatch Logs에서 수집한 다른 로그 이벤트처럼 사용할 수 있습니다. 로그 데이터 및 지표 필터 모니터링에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서로그 데이터 검색 및 필터링을 참조하십시오.

예 :흐름 로그에 대한 CloudWatch 지표 필터 및 경보 만들기

이 예에서는 eni-1a2b3c4d에 대한 흐름 로그를 사용합니다. TCP 포트 22(SSH)를 거쳐 인스턴스에 연결하려는 시도가 한 시간 내에 10번 이상 거부된 경우 이를 알려 주는 알림을 만들 수 있습니다. 우선 경보를 만들려는 트래픽의 패턴과 일치하는 지표 필터를 만들어야 합니다. 그런 다음 지표 필터에 대한 경보를 만듭니다.

거부된 SSH 트래픽에 대한 지표 필터와 필터에 대한 경보를 만들려면

  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 [Logs]를 선택하고, 흐름 로그에 대한 로그 그룹을 선택한 후 [Create Metric Filter]를 선택합니다.

  3. 필터 패턴에 다음을 입력합니다.

    [version, account, eni, source, destination, srcport, destport="22", protocol="6", packets, bytes, windowstart, windowend, action="REJECT", flowlogstatus]
  4. 테스트할 로그 데이터 선택에서 네트워크 인터페이스에 대한 로그 스트림을 선택합니다. (선택 사항) 필터 패턴과 일치하는 로그 데이터 행을 보려면 패턴 테스트를 선택합니다. 준비가 됐으면 [Assign Metric]을 선택합니다.

  5. 지표 네임스페이스와 이름을 제공하고 지표 값이 1로 설정되어 있는지 확인합니다. 완료했으면 [Create Filter]를 선택합니다.

  6. 탐색 창에서 [Alarms], [Create Alarm]을 선택합니다.

  7. [Custom Metrics] 섹션에서, 앞에서 만든 지표 필터에 대한 네임스페이스를 선택합니다.

    참고

    새로운 지표가 콘솔에 표시될 때까지 몇 분 정도 걸릴 수 있습니다.

  8. 만든 지표 이름을 선택한 후 다음을 선택합니다.

  9. 경보 이름 및 설명을 입력합니다. is 필드에서 >=를 선택한 후 10을 입력합니다. 기간 필드에서 연속 기간에 대해 기본값 1을 유지합니다.

  10. 기간에서 1시간을 선택합니다. 통계에서 합계를 선택합니다. Sum 통계는 지정된 기간 동안 데이터 포인트의 총 수를 캡처합니다.

  11. 작업 섹션에서 기존 목록에 알림을 보내거나 경보가 트리거될 때 알림을 받을 이메일 주소를 입력할 수 있습니다. 완료했으면 [Create Alarm]을 선택합니다.