

# 흐름 로그 제한
<a name="flow-logs-limitations"></a>

흐름 로그를 사용하려면 다음과 같은 제한 사항을 알아 두어야 합니다.
+ 흐름 로그를 생성한 후에는 선택한 네트워크 인터페이스, 서브넷 또는 VPC에 대한 활성 트래픽이 있을 때까지 흐름 로그 데이터가 표시되지 않습니다.
+ 피어 VPC가 본인의 계정이 아닌 한, 본인의 VPC와 피어링된 VPC에 대해 흐름 로그를 활성화할 수 없습니다.
+ 흐름 로그를 생성한 후에는 구성 또는 흐름 로그 레코드 형식을 변경할 수 없습니다. 예를 들어 다른 IAM 역할을 흐름 로그와 연결하거나 흐름 로그 레코드에서 필드를 추가 또는 제거할 수 없습니다. 대신에 흐름 로그를 삭제한 후 필요한 구성으로 새로운 흐름 로그를 생성할 수 있습니다.
+ 네트워크 인터페이스에 IPv4 주소가 여러 개 있고 트래픽이 보조 프라이빗 IPv4 주소로 전송되는 경우, 흐름 로그는 `dstaddr` 필드에 주 프라이빗 IPv4 주소를 표시합니다. 원래 대상 IP 주소를 캡처하려면 `pkt-dstaddr` 필드로 흐름 로그를 작성하세요.
+ 트래픽이 네트워크 인터페이스로 전송된 경우 대상이 네트워크 인터페이스의 IP 주소가 아니면 흐름 로그에 `dstaddr` 필드의 기본 프라이빗 IPv4 주소가 표시됩니다. 원래 대상 IP 주소를 캡처하려면 `pkt-dstaddr` 필드로 흐름 로그를 작성하세요.
+  트래픽이 네트워크 인터페이스에서 전송되었고 원본이 네트워크 인터페이스의 IP 주소가 아니며 로그 레코드가 발신 흐름 관련인 경우, 흐름 로그에 `srcaddr` 필드의 기본 프라이빗 IPv4 주소가 표시됩니다. 원래 소스 IP 주소를 캡처하려면 `pkt-srcaddr` 필드로 흐름 로그를 작성하세요. 로그 레코드가 네트워크 인터페이스로의 수신 흐름 관련인 경우 `srcaddr` 필드에 네트워크 인터페이스의 기본 프라이빗 IP가 표시되지 않습니다.
+ 네트워크 인터페이스가 [NITRO 기반 인스턴스](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)에 연결된 경우 집계 간격은 지정된 최대 집계 간격에 관계없이 항상 1분 이하입니다.
+ `pkt-srcaddr` 및 `pkt-dstaddr` 필드의 경우 중간 계층에 클라이언트 IP 주소 보존이 활성화된 경우 이 필드에는 중간 계층의 IP 주소 대신 보존된 클라이언트 IP가 표시될 수 있습니다.
+ `traffic-path` 필드의 경우, 값은 동일한 VPC의 리소스를 통과하는 흐름과 Outpost 로컬 게이트웨이를 통과하는 흐름에 대해 동일합니다.
+ 집계 간격 중 일부 흐름 로그 레코드를 건너뛸 수 있습니다([사용 가능한 필드](flow-log-records.md#flow-logs-fields)의 **log-status 참조). 내부 AWS 용량 제한 또는 내부 오류가 원인일 수 있습니다. AWS Cost Explorer를 사용하여 VPC 흐름 로그 요금을 확인하고 흐름 로그 집계 간격 중에 일부 흐름 로그를 건너뛴 경우 AWS Cost Explorer에 보고된 흐름 로그 수가 Amazon VPC에서 게시한 흐름 로그 수보다 많습니다.
+ [VPC 퍼블릭 액세스 차단(BPA)](security-vpc-bpa-assess-impact-main.md#security-vpc-bpa-fl)을 사용하는 경우:
  + VPC BPA의 흐름 로그에는 [건너뛴 레코드](flow-logs-records-examples.md#flow-log-example-no-data)가 포함되지 않습니다.
  + 흐름 로그에 `bytes` 필드를 포함하더라도 VPC BPA의 흐름 로그에는 [`bytes`](flow-log-records.md#flow-logs-fields)가 포함되지 않습니다.
+ VPC 흐름 로그는 계정별로 리소스당 최대 250개의 구독을 지원합니다. 이 한도에 도달한 리소스에 대해 추가 구독을 생성하려면 먼저 기존 구독을 삭제해야 합니다.

흐름 로그는 모든 IP 트래픽을 캡처하지는 않습니다. 다음 트래픽 유형은 기록되지 않습니다.
+ 인스턴스가 Amazon DNS 서버에 연결할 때 생성한 트래픽. 고유 DNS 서버를 사용할 경우 DNS 서버에 대한 모든 트래픽은 기록됩니다.
+ Amazon Windows 라이선스 인증을 위해 Windows 인스턴스에서 생성한 트래픽.
+ 인스턴스 메타데이터를 위해 `169.254.169.254`와 주고받는 트래픽.
+ Amazon Time Sync Service를 위해 `169.254.169.123`와 주고받는 트래픽.
+ DHCP 트래픽.
+ [트래픽 미러링](https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirroring-how-it-works.html) 소스 트래픽. 트래픽 미러링 대상 트래픽만 볼 수 있습니다.
+ 기본 VPC 라우터의 예약된 IP 주소로 보내는 트래픽.
+ 엔드포인트 네트워크 인터페이스와 Network Load Balancer 네트워크 인터페이스 간의 트래픽.
+ 주소 확인 프로토콜(ARP) 트래픽.
+ 생성 후 몇 분 내에 삭제되는 수명이 짧은 리전 NAT 게이트웨이의 트래픽.

버전 7에서 사용할 수 있는 ECS 필드에만 적용되는 제한 사항:
+ 흐름 로그 구독의 소유자가 기본 ECS 태스크를 소유하지 않은 경우 ECS 필드는 계산되지 않습니다. 예를 들어, 서브넷(`SubnetA`)을 다른 계정(`AccountB`)과 공유한 다음 `SubnetA`에 대한 흐름 로그 구독을 생성하는 경우 `AccountB`가 공유 서브넷에서 ECS 태스크를 시작하면 구독은 `AccountB`에서 시작한 ECS 태스크에서 트래픽 로그를 수신하지만 보안 문제로 인해 이러한 로그의 ECS 필드는 계산되지 않습니다.
+ VPC/서브넷 리소스 수준에서 ECS 필드를 사용하여 흐름 로그 구독을 생성하는 경우 비ECS 네트워크 인터페이스에 대해 생성된 모든 트래픽도 구독에 전달됩니다. 비ECS IP 트래픽의 경우 ECS 필드 값은 '-'가 됩니다. 예를 들어 서브넷(`subnet-000000`)이 있고 ECS 필드(`fl-00000000`)로 이 서브넷에 대한 흐름 로그 구독을 생성합니다. `subnet-000000`에서 인터넷에 연결되어 있고 IP 트래픽을 활발하게 생성하는 EC2 인스턴스(`i-0000000`)를 시작합니다. 또한 동일한 서브넷에서 실행 중인 ECS 태스크(`ECS-Task-1`)를 시작합니다. `i-0000000`과 `ECS-Task-1` 모두 IP 트래픽을 생성하므로 흐름 로그 구독 `fl-00000000`은 두 엔터티 모두에 대한 트래픽 로그를 제공합니다. 그러나 `ECS-Task-1`만이 logFormat에 포함된 ECS 필드에 대한 실제 ECS 메타데이터를 갖습니다. `i-0000000` 관련 트래픽의 경우 이러한 필드의 값은 '-'가 됩니다.
+ `ecs-container-id`와 `ecs-second-container-id`는 VPC 흐름 로그 서비스가 ECS 이벤트 스트림에서 수신할 때 순서가 지정됩니다. ECS 콘솔 또는 DescribeTask API 직접 호출에서 볼 수 있는 순서와 동일하다는 보장은 없습니다. 태스크가 계속 실행되는 동안 컨테이너가 STOPPED 상태가 되면 로그에 계속 표시될 수 있습니다.
+ ECS 메타데이터와 IP 트래픽 로그는 서로 다른 두 소스에서 가져온 것입니다. 업스트림 종속성에서 필요한 모든 정보를 얻는 즉시 ECS 트래픽 계산이 시작됩니다. 새 태스크를 시작하면 1) 기본 네트워크 인터페이스에 대한 IP 트래픽이 수신되는 경우와 2) ECS 태스크가 현재 실행 중임을 나타내는 태스크에 대한 메타데이터가 포함된 ECS 이벤트가 수신되는 경우 ECS 필드 계산이 시작됩니다. 태스크를 중지하면 1) 기본 네트워크 인터페이스에 대한 IP 트래픽이 더 이상 수신되지 않거나 하루 이상 지연되는 IP 트래픽이 수신되는 경우와 2) ECS 태스크가 더 이상 실행되지 않음을 나타내는 태스크에 대한 메타데이터가 포함된 ECS 이벤트가 수신되는 경우 ECS 필드 계산이 중지됩니다.
+ `awsvpc` [네트워크](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) 모드에서 시작된 ECS 태스크만 지원됩니다.

`encryption-status` 필드에만 적용되는 제한 사항:
+ 일부 네트워크 어플라이언스의 암호화 상태 보고 제한으로 인해 일부 흐름에서 암호화 상태가 '-'(사용할 수 없음)일 수 있습니다. 사용자는 분석에서 이러한 흐름을 무시할 수 있습니다.
+ 모니터링 모드에서 암호화된 상태로 표시된다고 해서 적용 모드에서 흐름이 허용된다는 것은 아닙니다. 그 반대의 경우도 마찬가지입니다.
  + 흐름이 모니터링 모드에서 암호화된 경우 적용 모드에서 규정을 준수하지 않을 수 있습니다.
    + 흐름에 AWS 서비스에서 생성한 ENI가 포함된 경우 서비스가 암호화 제어를 지원해야 합니다.
    + 흐름이 VPC 피어링을 통과하는 경우 피어링된 VPC는 암호화 제어를 강제하지 않을 수 있습니다.
  + 흐름이 모니터링 모드에서 암호화되지 않은 경우 흐름과 관련된 서비스가 제외 항목으로 추가되어도 여전히 적용 모드에서 규정을 준수할 수 있습니다.

버전 11에서 사용할 수 있는 흐름 로그 Amazon EC2 태그 필드 관련 제한 사항:
+ 흐름 로그 구독의 소유자가 리소스의 태그를 소유하지 않은 경우 태그 필드는 계산되지 않습니다. 예를 들어 서브넷(`SubnetA`)을 다른 계정(`AccountB`)과 공유한 다음 `SubnetA`에 대해 network-interface의 태그 필드가 포함된 흐름 로그 구독을 생성하는 경우 `AccountB`가 구성된 키로 태그가 지정된 network-interface를 시작하면 구독은 `AccountB`에 의해 시작된 network-interface에 대한 트래픽 로그를 수신하지만 구독에 의해 구성된 태그 필드는 보안상의 이유로 계산되지 않습니다 원하는 경우 `AccountB`에 의해 시작된 network-interface에 태그를 지정하여 태그를 표시하도록 선택할 수 있습니다.
+ VPC/서브넷 리소스 수준에서 태그 필드를 사용하여 흐름 로그 구독을 생성하는 경우 태그가 지정되지 않은 네트워크 인터페이스에 대해 생성된 모든 트래픽도 구독에 전달됩니다. 태그가 지정되지 않은 리소스의 경우 태그 필드 값은 '-'입니다.
+ '-'는 값이 없거나 누락되었음을 나타내는 예약된 문자이므로 Auto Scaling 그룹의 이름에 이 문자가 포함된 경우 해당 그룹은 아무 태그도 표시할 수 없습니다.
+ 태그 필드가 포함된 흐름 로그 구독을 생성하면 고객을 대신하여 몇 가지 리소스가 생성됩니다. 태그 값에 대한 업데이트를 사용하기 위해 EventBridge 관리형 규칙이 생성되어 흐름 로그 서비스로 태그 변경 사항을 전송합니다. 태그 필드가 포함된 구독이 모두 삭제되면 이러한 EventBridge 관리형 규칙이 자동으로 정리됩니다. 이러한 EventBridge 관리형 규칙을 수동으로 삭제하지 마세요. 그러면 태그 값 업데이트가 크게 지연됩니다. 이 생성/정리를 제어하고 태그 값에 대한 액세스를 제공하기 위해 계정에 서비스 연결 역할이 생성됩니다. 자세한 내용은 [VPC 흐름 로그에 서비스 링크 역할 사용](flow-logs-slr.md) 섹션을 참조하세요.
+ Amazon CloudWatch Logs 구문 분석 및 Athena 구문 분석 제약 조건으로 인해 태그 값의 모든 특수 문자는 UTF-8 퍼센트 인코딩을 사용하여 인코딩됩니다. 이는 Athena에서 `url_decode`를 사용하여 기본적으로 디코딩하거나, URL 또는 URI 디코더를 통해 디코딩할 수 있습니다.
+ 새 구독이 생성된 후 첫 1시간 동안은 태그 값이 누락되거나 부정확할 수 있습니다. 이 첫 1시간이 지나면 태그 값은 1분 단위로 태그가 지정된 리소스의 값을 정확하게 반영합니다.
+ 동일한 리소스에 대해 1초 내에 태그가 여러 번 변경되는 경우 업데이트가 손실되어 최대 1시간 동안 태그 값이 최신 상태가 아닐 수 있습니다.
+ Auto Scaling 그룹 태그 필드의 경우 계정에 활성화된 CloudTrail 추적이 하나 이상 있어야 합니다. 활성화된 추적이 없으면 Auto Scaling 그룹 태그 값이 오래되었거나 부정확할 수 있습니다.

`next-hop-` 필드에만 적용되는 제한 사항:
+ `next-hop-az-id`를 제외하고 흐름 로그 구독 소유자가 다음 홉 네트워크 인터페이스를 소유하지 않은 경우 다음 홉 필드는 계산되지 않습니다.
+ 다음 홉에 네트워크 인터페이스(예: 인터넷 게이트웨이로 전송되는 트래픽)가 없는 경우 다음 홉 필드를 사용할 수 없습니다.
+ 교차 리전 트래픽에는 다음 홉 필드를 사용할 수 없습니다.
+ 일부 네트워크 서비스(예: Transit Gateway 및 Network Load Balancer)의 수신 트래픽에는 다음 홉 필드를 사용할 수 없습니다.
+ 트래픽이 중간 상자(예: Transit Gateway, Network Load Balancer)를 통과하는 경우 다음 홉 네트워크 인터페이스는 트래픽의 최종 목적지가 아니라 중간 상자(예: Transit Gateway Attachment)와 연결된 네트워크 인터페이스입니다.