흐름 로그 레코드 - Amazon Virtual Private Cloud

흐름 로그 레코드

흐름 로그 레코드는 VPC에 네트워크 흐름을 나타냅니다. 기본적으로 각 레코드는 캡처 기간이라고도 하는 집계 간격 내에 발생하는 네트워크 인터넷 프로토콜(IP) 트래픽 흐름(네트워크 인터페이스별로 5튜플을 특징으로 함)을 캡처합니다.

각 레코드는 필드가 공백으로 구분되어 있는 문자열입니다. 레코드에는 소스, 대상, 프로토콜 등 IP 흐름의 다양한 구성 요소에 대한 값이 포함됩니다.

흐름 로그를 생성할 때 흐름 로그 레코드의 기본 형식을 사용하거나 사용자 지정 형식을 지정할 수 있습니다.

집계 간격

집계 간격은 특정 흐름이 캡처되어 흐름 로그 레코드로 집계되는 기간입니다. 기본적으로 최대 집계 간격은 10분입니다. 흐름 로그를 만들 때 선택적으로 최대 집계 간격을 1분으로 지정할 수 있습니다. 최대 집계 간격이 1분인 흐름 로그는 최대 집계 간격이 10분인 흐름 로그보다 더 많은 양의 흐름 로그 레코드를 생성합니다.

네트워크 인터페이스가 NITRO 기반 인스턴스에 연결된 경우 집계 간격은 지정된 최대 집계 간격에 관계없이 항상 1분 이하입니다.

집계 간격 내에서 데이터를 캡처한 후에는 데이터를 처리하고 CloudWatch Logs 또는 Amazon S3에 게시하느라 추가 시간이 걸립니다. 흐름 로그 서비스는 일반적으로 로그를 약 5분 만에 CloudWatch Logs로 전송하고 약 10분 만에 Amazon S3로 전송합니다. 그러나 로그 전달에 최선의 노력을 기울이고 로그가 일반적인 전달 시간을 초과하여 지연될 수 있습니다.

기본 형식

기본 형식의 흐름 로그 레코드에는 사용 가능한 필드 테이블에 표시되는 순서대로 버전 2 필드가 포함됩니다. 기본 형식을 사용자 정의하거나 변경할 수 없습니다. 추가 필드 또는 다른 필드 하위 세트를 캡처하려면 사용자 지정 형식을 지정합니다.

사용자 지정 형식

사용자 지정 형식을 사용하면 흐름 로그 레코드에 포함되는 필드와 그 순서를 지정할 수 있습니다. 이를 통해 요구 사항에 맞는 흐름 로그를 만들고 관련이 없는 필드를 생략할 수 있습니다. 사용자 지정 형식을 사용하면 게시된 흐름 로그에서 특정 정보를 추출하기 위해 별도의 프로세스가 필요하지 않습니다. 사용 가능한 흐름 로그 필드를 얼마든지 지정할 수 있지만 하나 이상을 지정해야 합니다.

사용 가능한 필드

다음 표는 흐름 로그 레코드에 사용 가능한 모든 필드를 설명합니다. 버전(Version) 열은 해당 필드를 도입한 VPC 흐름 로그의 버전을 나타냅니다. 기본 형식에는 모든 버전 2 필드가 테이블에 표시되는 순서와 동일하게 포함됩니다.

Amazon S3 흐름 로그 데이터를 게시할 때 필드의 데이터 유형은 흐름 로그 형식에 따라 다릅니다. 형식이 일반 텍스트인 경우 모든 필드는 STRING 유형입니다. 형식이 Parquet 인 경우 필드 데이터 유형에 대한 표를 참조하세요.

필드를 적용할 수 없거나 특정 레코드에 대해 계산할 수 없는 경우 레코드는 해당 항목에 대해 '-' 기호를 표시합니다. 패킷 헤더에서 직접 제공되지 않는 메타데이터 필드는 최선의 작업 수준 근사값이며 해당 값이 누락되거나 정확하지 않을 수 있습니다.

필드 설명 버전

version

VPC 흐름 로그 버전. 기본 형식을 사용하는 경우, 버전은 2입니다. 사용자 지정 형식을 사용하는 경우, 버전은 지정된 필드 중에서 가장 높은 버전입니다. 예를 들어 버전 2의 필드만 지정한다면 버전은 2가 됩니다. 버전 2, 3 및 4의 필드를 혼합하여 지정한다면 버전은 4가 됩니다.

Parquet 데이터 유형: INT_32

2

account-id

트래픽이 기록되는 소스 네트워크 인터페이스 소유자의 AWS 계정 ID입니다. 네트워크 인터페이스가 AWS 서비스에 의해 생성된 경우, 예를 들어 VPC 엔드포인트 또는 Network Load Balancer 생성 시 이 필드의 레코드에 unknown이 표시될 수도 있습니다.

Parquet 데이터 유형: 문자열

2

interface-id

트래픽이 기록되는 네트워크 인터페이스 ID.

Parquet 데이터 유형: 문자열

2

srcaddr

들어오는 트래픽의 소스 주소 또는 네트워크 인터페이스의 나가는 트래픽의 네트워크 인터페이스의 IPv4 또는 IPv6 주소. 네트워크 인터페이스의 IPv4 주소는 항상 해당 프라이빗 IPv4 주소입니다. 또한 pkt-srcaddr 단원도 참조하세요.

Parquet 데이터 유형: 문자열

2

dstaddr

나가는 트래픽의 대상 주소 또는 네트워크 인터페이스의 들어오는 트래픽의 네트워크 인터페이스의 IPv4 또는 IPv6 주소. 네트워크 인터페이스의 IPv4 주소는 항상 해당 프라이빗 IPv4 주소입니다. 또한 pkt-dstaddr 단원도 참조하세요.

Parquet 데이터 유형: 문자열

2

srcport

트래픽의 소스 포트

Parquet 데이터 유형: INT_32

2

dstport

트래픽의 대상 포트

Parquet 데이터 유형: INT_32

2

protocol

트래픽의 IANA 프로토콜 번호. 자세한 정보는 지정된 인터넷 프로토콜 번호 단원을 참조하세요.

Parquet 데이터 유형: INT_32

2

packets

흐름 중 전송된 패킷 수.

Parquet 데이터 유형: INT_64

2

bytes

흐름 중 전송된 바이트 수.

Parquet 데이터 유형: INT_64

2

start

흐름의 첫 번째 패킷이 집계 간격 내에서 수신된 시간(단위: Unix 초)입니다. 이 시간은 패킷이 네트워크 인터페이스에서 전송되거나 수신된 후 최대 60초가 될 수 있습니다.

Parquet 데이터 유형: INT_64

2

end

집계 간격 내에서 흐름의 마지막 패킷을 수신한 시간(단위: Unix 초)입니다. 이 시간은 패킷이 네트워크 인터페이스에서 전송되거나 수신된 후 최대 60초가 될 수 있습니다.

Parquet 데이터 유형: INT_64

2

action

트래픽과 연결된 작업

  • ACCEPT — 트래픽이 수락되었습니다.

  • REJECT — 트래픽이 거부되었습니다. 예를 들어 보안 그룹이나 네트워크 ACL에서 트래픽을 허용하지 않았거나 연결이 닫힌 후 패킷이 도착했습니다.

Parquet 데이터 유형: 문자열

2

log-status

흐름 로그의 로깅 상태:

  • OK — 선택된 대상에 정상적으로 로깅됩니다.

  • NODATA — 집계 간격 중 네트워크 인터페이스에서 전송하거나 수신된 네트워크 트래픽이 없었습니다.

  • SKIPDATA — 집계 간격 중 일부 흐름 로그 레코드를 건너뛰었습니다. 내부 용량 제한 또는 내부 오류가 원인일 수 있습니다.

    집계 간격 중 일부 흐름 로그 레코드를 건너뛸 수 있습니다(사용 가능한 필드의 log-status 참조). 내부 AWS 용량 제한 또는 내부 오류가 원인일 수 있습니다. AWS Cost Explorer를 사용하여 VPC 흐름 로그 요금을 확인하고 흐름 로그 집계 간격 중에 일부 흐름 로그를 건너뛴 경우 AWS Cost Explorer에 보고된 흐름 로그 수가 Amazon VPC에서 게시한 흐름 로그 수보다 많습니다.

Parquet 데이터 유형: 문자열

2

vpc-id

트래픽이 기록되는 네트워크 인터페이스를 포함하는 VPC의 ID.

Parquet 데이터 유형: 문자열

3

subnet-id

트래픽이 기록되는 네트워크 인터페이스를 포함하는 서브넷의 ID.

Parquet 데이터 유형: 문자열

3

instance-id

인스턴스를 소유한 경우 트래픽이 기록되는 네트워크 인터페이스와 연결된 인스턴스의 ID입니다. NAT 게이트웨이의 네트워크 인터페이스 같은 요청자 관리 네트워크 인터페이스에는 '-' 기호를 반환합니다.

Parquet 데이터 유형: 문자열

3

tcp-flags

다음 TCP 플래그의 비트 마스크 값:

  • FIN — 1

  • SYN — 2

  • RST — 4

  • SYN-ACK — 18

지원되는 플래그가 기록되지 않는 경우 TCP 플래그 값은 0입니다. 예를 들어 tcp-flags는 ACK 또는 PSH 플래그 로깅을 지원하지 않으므로 이러한 지원되지 않는 플래그가 있는 트래픽에 대한 레코드의 결과는 tcp-flags 값 0이 됩니다. 하지만 지원되지 않는 플래그에 지원되는 플래그가 동반된 경우 지원되는 플래그의 값을 보고합니다. 예를 들어 ACK가 SYN-ACK의 일부인 경우 18을 보고합니다. 그리고 SYN+ECE와 같은 레코드가 있는 경우 SYN은 지원되는 플래그이고 ECE는 지원되지 않으므로 TCP 플래그 값은 2입니다. 어떤 이유로든 플래그 조합이 유효하지 않아 값을 계산할 수 없는 경우 값은 '-'입니다. 플래그가 전송되지 않는 경우 TCP 플래그 값은 0입니다.

TCP 플래그는 집계 간격 동안 OR일 수 있습니다. 짧은 연결의 경우 SYN-ACK 및 FIN에 대해 19, SYN 및 FIN에 대해 3과 같이 흐름 로그 레코드의 동일한 행에 플래그가 설정될 수 있습니다. 문제 해결 예는 TCP 플래그 시퀀스을(를) 참조하세요.

TCP 플래그에 대한 일반 정보(예: FIN, SYN 및 ACK와 같은 플래그의 의미)는 Wikipedia에서 TCP 세그먼트 구조를 참조하세요.

Parquet 데이터 유형: INT_32

3

type

트래픽 유형입니다. 가능한 값: IPv4 | IPv6 | EFA. 자세한 내용은 Elastic Fabric Adapter(EFA) 섹션을 참조하세요.

Parquet 데이터 유형: 문자열

3

pkt-srcaddr

트래픽의 패킷 수준(원본) 소스 IP 주소입니다. 이 필드를 srcaddr 필드와 함께 사용하면 트래픽이 흐르는 중간 계층의 IP 주소와 트래픽의 원래 소스 IP 주소를 구별 할 수 있습니다. 대표적인 경우는 트래픽이 NAT 게이트웨이에 대한 네트워크 인터페이스를 통과하거나 Amazon EKS의 포드 IP 주소가 포드가 실행 중인(VPC 내 통신용) 인스턴스 노드의 네트워크 인터페이스 IP 주소와 다른 경우입니다.

Parquet 데이터 유형: 문자열

3

pkt-dstaddr

트래픽의 패킷 수준(원본) 대상 IP 주소입니다. 이 필드를 dstaddr 필드와 함께 사용하면 트래픽이 흐르는 중간 계층의 IP 주소와 트래픽의 최종 대상 IP 주소를 구별 할 수 있습니다. 대표적인 경우는 트래픽이 NAT 게이트웨이에 대한 네트워크 인터페이스를 통과하거나 Amazon EKS의 포드 IP 주소가 포드가 실행 중인(VPC 내 통신용) 인스턴스 노드의 네트워크 인터페이스 IP 주소와 다른 경우입니다.

Parquet 데이터 유형: 문자열

3

region

트래픽이 기록되는 네트워크 인터페이스가 포함된 리전입니다.

Parquet 데이터 유형: 문자열

4

az-id

트래픽이 기록되는 네트워크 인터페이스가 포함된 가용 영역의 ID입니다. 하위 위치에서 트래픽이 발생한 경우 레코드는 이 필드에 대해 '-' 기호를 표시합니다.

Parquet 데이터 유형: 문자열

4

sublocation-type

sublocation-id 필드에 반환되는 하위 위치 유형입니다. 가능한 값: wavelength | outpost | localzone 트래픽이 하위 위치에서 발생하지 않는 경우 레코드는 이 필드에 대해 '-' 기호를 표시합니다.

Parquet 데이터 유형: 문자열

4

sublocation-id

트래픽이 기록되는 네트워크 인터페이스가 포함된 하위 위치의 ID입니다. 트래픽이 하위 위치에서 발생하지 않는 경우 레코드는 이 필드에 대해 '-' 기호를 표시합니다.

Parquet 데이터 유형: 문자열

4

pkt-src-aws-service

소스 IP 주소가 AWS 서비스용인 경우 pkt-srcaddr 필드에 대한 IP 주소 범위의 하위 집합 이름입니다. pkt-srcaddr이 겹친 범위에 속하는 경우 pkt-src-aws-service는 AWS 서비스 코드 중 하나만 표시합니다. 가능한 값: AMAZON | AMAZON_APPFLOW | AMAZON_CONNECT | API_GATEWAY | CHIME_MEETINGS | CHIME_VOICECONNECTOR | CLOUD9 | CLOUDFRONT | CODEBUILD | DYNAMODB | EBS | EC2 | EC2_INSTANCE_CONNECT | GLOBALACCELERATOR | KINESIS_VIDEO_STREAMS | ROUTE53 | ROUTE53_HEALTHCHECKS | ROUTE53_HEALTHCHECKS_PUBLISHING | ROUTE53_RESOLVER | S3 | WORKSPACES_GATEWAYS.

Parquet 데이터 유형: 문자열

5

pkt-dst-aws-service

대상 IP 주소가 AWS 서비스용인 경우 pkt-dstaddr 필드에 대한 IP 주소 범위의 하위 집합 이름입니다. 가능한 값 목록은 pkt-src-aws-service 필드를 참조하세요.

Parquet 데이터 유형: 문자열

5

flow-direction

트래픽이 캡처되는 인터페이스에 대한 흐름 방향입니다. 가능한 값: ingress | egress

Parquet 데이터 유형: 문자열

5

traffic-path

송신 트래픽이 대상으로 이동하는 경로입니다. 트래픽이 송신 트래픽인지 여부를 확인하려면 flow-direction 필드를 확인하십시오. 가능한 값은 다음과 같습니다. 적용되는 값이 없는 경우 필드는 -로 설정됩니다.

  • 1 - VPC에서 네트워크 인터페이스를 생성하는 리소스를 포함하여 동일한 VPC의 다른 리소스를 통해

  • 2 — 인터넷 게이트웨이 또는 게이트웨이 VPC 엔드포인트를 통해

  • 3 — 가상 프라이빗 게이트웨이를 통해

  • 4 — 리전 내 VPC 피어링 연결을 통해

  • 5 — 리전 간 VPC 피어링 연결을 통해

  • 6 — 로컬 게이트웨이를 통해

  • 7 — 게이트웨이 VPC 엔드포인트를 통해(Nitro 기반 인스턴스에만 해당)

  • 8 — 인터넷 게이트웨이를 통해(Nitro 기반 인스턴스만 해당)

Parquet 데이터 유형: INT_32

5

ecs-cluster-arn

트래픽이 실행 중인 ECS 태스크에서 발생하는 경우 ECS 클러스터의 AWS 리소스 이름(ARN)입니다. 구독에 이 필드를 포함하려면 ecs:ListClusters를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-cluster-name

트래픽이 실행 중인 ECS 태스크에서 발생하는 경우 ECS 클러스터의 이름입니다. 구독에 이 필드를 포함하려면 ecs:ListClusters를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-container-instance-arn

트래픽이 EC2 인스턴스에서 실행 중인 ECS 태스크에서 발생하는 경우 ECS 컨테이너 인스턴스의 ARN입니다. 용량 공급자가 AWS Fargate인 경우 이 필드는 '-'가 됩니다. 구독에 이 필드를 포함하려면 ecs:ListClusters와 ecs:ListContainerInstances를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-container-instance-id

트래픽이 EC2 인스턴스에서 실행 중인 ECS 태스크에서 발생하는 경우 ECS 컨테이너 인스턴스의 ID입니다. 용량 공급자가 AWS Fargate인 경우 이 필드는 '-'가 됩니다. 구독에 이 필드를 포함하려면 ecs:ListClusters와 ecs:ListContainerInstances를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-container-id

트래픽이 실행 중인 ECS 태스크에서 발생하는 경우 컨테이너의 Docker 런타임 ID입니다. ECS 태스크에 컨테이너가 하나 이상 있는 경우 이 ID는 첫 번째 컨테이너의 Docker 런타임 ID가 됩니다. 구독에 이 필드를 포함하려면 ecs:ListClusters를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-second-container-id

트래픽이 실행 중인 ECS 태스크에서 발생하는 경우 컨테이너의 Docker 런타임 ID입니다. ECS 태스크에 컨테이너가 두 개 이상 있는 경우 이 ID는 두 번째 컨테이너의 Docker 런타임 ID가 됩니다. 구독에 이 필드를 포함하려면 ecs:ListClusters를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-service-name

트래픽이 실행 중인 ECS 태스크에서 발생하고 ECS 태스크가 ECS 서비스에 의해 시작되는 경우 ECS 서비스의 이름입니다. ECS 태스크가 ECS 서비스에 의해 시작되지 않는 경우 이 필드는 '-'가 됩니다. 구독에 이 필드를 포함하려면 ecs:ListClusters와 ecs:ListServices를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-task-definition-arn

트래픽이 실행 중인 ECS 태스크에서 발생하는 경우 ECS 태스크 정의의 ARN입니다. 구독에 이 필드를 포함하려면 ecs:ListClusters와 ecs:ListTaskDefinitions를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-task-arn

트래픽이 실행 중인 ECS 태스크에서 발생하는 경우 ECS 태스크의 ARN입니다. 구독에 이 필드를 포함하려면 ecs:ListClusters와 ecs:ListTasks를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

ecs-task-id

트래픽이 실행 중인 ECS 태스크에서 발생하는 경우 ECS 태스크의 ID입니다. 구독에 이 필드를 포함하려면 ecs:ListClusters와 ecs:ListTasks를 직접적으로 호출할 수 있는 권한이 필요합니다.

Parquet 데이터 유형: 문자열

7

reject-reason

트래픽이 거부된 이유입니다. 가능한 값은 BPA입니다. 다른 거부 이유는 '-'를 반환합니다. VPC 퍼블릭 액세스 차단(BPA)에 대한 자세한 내용은 VPC 및 서브넷에 대한 퍼블릭 액세스 차단 섹션을 참조하세요.

Parquet 데이터 유형: 문자열

8