Amazon VPC Transit Gateway 흐름 로그 수집

파서 버전: 3.0

다음에서 지원:

이 문서에서는 Amazon S3 또는 Amazon Kinesis Data Firehose를 사용하여 Amazon VPC Transit Gateway 흐름 로그를 Google Security Operations로 수집하는 방법을 설명합니다. 전송 게이트웨이 흐름 로그는 전송 게이트웨이 연결 전반에서 자세한 네트워크 트래픽 메타데이터 (소스 및 대상 IP, 포트, 프로토콜, 바이트 및 패킷 수, 작업)를 캡처합니다. 이 데이터를 사용하면 Google SecOps 내에서 보안 모니터링, 이상 감지, 규정 준수 감사를 실행할 수 있습니다.

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • Google SecOps 인스턴스입니다.
  • 다음 권한이 있는 AWS에 대한 액세스 권한
    • 전송 게이트웨이 흐름 로그 만들기 및 관리
    • S3 버킷 만들기 (S3 내보내기 옵션의 경우)
    • IAM 사용자, 정책, 역할 만들기
    • Kinesis Data Firehose 전송 스트림 구성 (Firehose 옵션의 경우)
    • CloudWatch Logs에 액세스하고 구독 필터 만들기 (Firehose 옵션의 경우)

옵션 - Amazon S3로 내보내기

전송 게이트웨이 흐름 로그 (S3) 사용 설정

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.
  2. 탐색 창에서 Transit gateways를 선택합니다.
  3. 하나 이상의 전송 게이트웨이의 체크박스를 선택하고 작업 > 흐름 로그 만들기를 선택합니다.
  4. 대상에서 Amazon S3 버킷으로 보내기를 선택합니다.
  5. S3 버킷 ARN에 기존 S3 버킷의 ARN (예: arn:aws:s3:::tgw-flowlogs-bucket)을 입력합니다.

  6. 로그 레코드 형식에서 흐름 로그 레코드의 형식을 선택합니다.

    • AWS 기본 형식 - 버전 2부터 버전 6까지의 모든 필드가 포함됩니다.
    • 맞춤 형식 - 필요한 필드만 선택합니다.
  7. 로그 파일 형식으로 텍스트 (기본값) 또는 Parquet을 선택합니다.

  8. Hive 호환 S3 접두사의 경우 선택적으로 사용 설정을 선택하여 파티션 나누기에 Hive 호환 접두사를 사용합니다.

  9. 시간별로 로그 파티션 나누기에서 1시간마다 (60분) 또는 24시간마다 (1440분)를 선택합니다.

  10. (선택사항) 새 태그 추가를 선택하여 흐름 로그에 태그를 적용합니다.

  11. 흐름 로그 만들기를 클릭합니다.

Amazon S3 버킷 만들기

  1. Amazon S3 콘솔을 엽니다.
  2. 버킷 만들기를 클릭합니다.
  3. 다음 구성 세부정보를 제공합니다.
    • 버킷 이름: 고유한 이름을 입력합니다 (예: tgw-flowlogs-bucket).
    • AWS 리전: Transit Gateway가 있는 리전을 선택합니다.
  4. 버킷 만들기를 클릭합니다.

Amazon S3에 액세스할 수 있는 IAM 사용자 만들기

  1. IAM 콘솔을 엽니다.
  2. 사용자 > 사용자 추가를 클릭합니다.
  3. 사용자 이름을 입력합니다 (예: chronicle-tgw-s3-reader).
  4. 프로그래매틱 액세스를 선택합니다.
  5. 다음: 권한을 클릭합니다.
  6. 기존 정책 직접 연결을 선택합니다.
  7. AmazonS3ReadOnlyAccess 정책을 검색하여 선택합니다.
  8. 다음: 태그 > 다음: 검토 > 사용자 만들기를 클릭합니다.
  9. Google SecOps 피드 구성의 액세스 키 ID보안 비밀 액세스 키를 복사합니다.

Amazon VPC Transit Gateway 흐름 로그 (S3)를 수집하도록 Google SecOps에서 피드 구성

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다(예: AWS Transit Gateway Flow Logs - S3).
  4. 소스 유형으로 Amazon S3를 선택합니다.
  5. 로그 유형으로 Amazon VPC 전송 게이트웨이 흐름 로그를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 매개변수의 값을 지정합니다.

    • S3 URI: 버킷 URI (예: s3://tgw-flowlogs-bucket/flow-logs/)
    • 소스 삭제 옵션: 원하는 대로 삭제 옵션을 선택합니다.
      • 삭제 안함: 전송 후 파일을 삭제하지 않습니다.
      • 전송된 파일 삭제: 전송이 완료되면 파일을 삭제합니다.
      • 전송된 파일 및 빈 디렉터리 삭제: 전송이 완료되면 파일과 빈 디렉터리를 삭제합니다.
    • 최대 파일 기간: 지난 일수 동안 수정된 파일을 포함합니다 (기본값은 180일).
    • 액세스 키 ID: S3 버킷에 대한 액세스 권한이 있는 IAM 사용자 액세스 키
    • 보안 비밀 액세스 키: S3 버킷에 액세스할 수 있는 IAM 사용자 보안 비밀 키
    • 애셋 네임스페이스: 애셋 네임스페이스
    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
  8. 다음을 클릭합니다.

  9. 피드 구성을 검토하고 제출을 클릭합니다.

옵션 - Amazon Kinesis Data Firehose를 통해 스트리밍

전송 게이트웨이 흐름 로그 (CloudWatch 로그) 사용 설정

  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다.
  2. 탐색 창에서 Transit gateways를 선택합니다.
  3. 하나 이상의 전송 게이트웨이의 체크박스를 선택하고 작업 > 흐름 로그 만들기를 선택합니다.
  4. 대상에서 CloudWatch Logs로 전송을 선택합니다.
  5. 대상 로그 그룹에서 기존 로그 그룹을 선택하거나 새 이름을 입력하여 로그 그룹을 만듭니다 (예: /aws/tgw/flowlogs).

  6. IAM 역할에 CloudWatch Logs에 로그를 게시할 권한이 있는 역할을 지정합니다.

  7. 로그 레코드 형식에서 흐름 로그 레코드의 형식을 선택합니다.

    • AWS 기본 형식 - 버전 2부터 버전 6까지의 모든 필드가 포함됩니다.
    • 맞춤 형식 - 필요한 필드만 선택합니다.
  8. (선택사항) 새 태그 추가를 선택하여 흐름 로그에 태그를 적용합니다.

  9. 흐름 로그 만들기를 클릭합니다.

Amazon VPC Transit Gateway 흐름 로그 (Firehose)를 수집하도록 Google SecOps에서 피드 만들기

  1. SIEM 설정> 피드로 이동합니다.
  2. 새 피드 추가를 클릭합니다.
  3. 피드 이름 필드에 피드 이름을 입력합니다(예: AWS Transit Gateway Flow Logs - Firehose).
  4. 소스 유형으로 Amazon Data Firehose를 선택합니다.
  5. 로그 유형으로 Amazon VPC 전송 게이트웨이 흐름 로그를 선택합니다.
  6. 다음을 클릭합니다.
  7. 다음 입력 파라미터의 값을 지정합니다.
    • 분할 구분 기호: \n을 입력합니다.
    • 애셋 네임스페이스: 애셋 네임스페이스
    • 수집 라벨: 이 피드의 이벤트에 적용할 라벨입니다.
  8. 다음을 클릭합니다.
  9. 피드 구성을 검토하고 제출을 클릭합니다.
  10. 보안 비밀 키 생성을 클릭하여 이 피드를 인증하기 위한 보안 비밀 키를 생성합니다.
  11. 보안 비밀 키를 복사하여 저장합니다. 이 보안 비밀은 다시 볼 수 없습니다.
  12. 세부정보 탭으로 이동합니다.
  13. 엔드포인트 정보 필드에서 피드 엔드포인트 URL을 복사합니다.
  14. 완료를 클릭합니다.

Amazon Data Firehose 피드에 대한 API 키 만들기

  1. https://console.cloud.google.com/apis/credentials에서 Google Cloud 콘솔 사용자 인증 정보 페이지로 이동합니다.
  2. 사용자 인증 정보 만들기를 클릭한 후 API 키를 선택합니다.
  3. API 키 수정을 클릭하여 키를 제한합니다.
  4. API 제한사항에서 키 제한을 선택합니다.
  5. Google SecOps API를 검색하여 선택합니다.
  6. 저장을 클릭합니다.
  7. API 키를 복사하고 저장합니다.

엔드포인트 URL 구성

  • 다음 형식으로 피드 엔드포인트 URL에 API 키를 추가합니다.

    <FEED_ENDPOINT_URL>?key=<API_KEY>
    

다음을 바꿉니다.

  • <FEED_ENDPOINT_URL>: 피드 엔드포인트 URL
  • <API_KEY>: API 키

  • 예:

    https://malachiteingestion-pa.googleapis.com/v2/unstructuredlogentries:batchCreate?key=AIzaSyD...
    

다음 단계를 위해 이 전체 URL을 저장합니다.

Firehose용 IAM 정책 만들기

  1. AWS 콘솔에서 IAM > 정책 > 정책 생성 > JSON 탭으로 이동합니다.
  2. 다음 정책 JSON을 붙여넣습니다.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "firehose:PutRecord",
                    "firehose:PutRecordBatch"
                ],
                "Resource": "arn:aws:firehose:<REGION>:<ACCOUNT_ID>:deliverystream/<DELIVERY_STREAM_NAME>"
            }
        ]
    }
    
  3. 다음을 바꿉니다.

    • <REGION>: AWS 리전 (예: us-east-1)
    • <ACCOUNT_ID>: AWS 계정 ID (12자리 숫자)
    • <DELIVERY_STREAM_NAME>: Firehose 전송 스트림 이름 (다음 단계에서 생성)
  4. 정책 이름을 TGWFlowLogsToFirehosePolicy (예)로 지정하고 정책 만들기를 클릭합니다.

CloudWatch Logs용 IAM 역할 만들기

  1. IAM > 역할 > 역할 만들기로 이동합니다.
  2. 커스텀 트러스트 정책을 선택하고 다음을 붙여넣습니다.

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "logs.<REGION>.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
  3. <REGION>을 AWS 리전으로 바꿉니다.

  4. 다음을 클릭합니다.

  5. TGWFlowLogsToFirehosePolicy 정책을 검색하여 선택합니다.

  6. 다음을 클릭합니다.

  7. 역할 이름을 TGWFlowLogsToFirehoseRole (예)로 지정하고 역할 만들기를 클릭합니다.

Kinesis Data Firehose 전송 스트림 만들기

  1. AWS 콘솔에서 Kinesis > Data Firehose > 전송 스트림 만들기로 이동합니다.
  2. 다음 구성 세부정보를 제공합니다.

    • 소스 및 대상:

      • 소스: 직접 PUT 또는 기타 소스를 선택합니다.
      • 대상: HTTP 엔드포인트를 선택합니다.
    • 전송 스트림 이름:

      • 전송 스트림 이름: 이름을 입력합니다 (예: tgw-flowlogs-to-secops).
    • HTTP 엔드포인트 대상:

      • HTTP 엔드포인트 URL: 구성한 전체 엔드포인트 URL (피드 엔드포인트 + API 키)을 입력합니다.
      • 콘텐츠 인코딩: GZIP을 선택합니다.
    • 맞춤 HTTP 헤더:

      • 맞춤 HTTP 헤더 추가를 클릭합니다.
      • 헤더 이름: X-Goog-Chronicle-Auth를 입력합니다.
      • 헤더 값: 피드 생성 단계에서 저장한 보안 비밀 키를 입력합니다.
    • 백업 설정:

      • Amazon S3의 소스 레코드 백업: 실패한 데이터만 선택
      • S3 버킷: 기존 버킷을 선택하거나 실패한 레코드를 위한 새 버킷을 만듭니다.
    • 버퍼 힌트:

      • 버퍼 사이즈: 1MiB를 입력합니다.
      • 버퍼 간격: 60초를 입력합니다.
  3. 전송 스트림 만들기를 클릭합니다.

  4. 전송 스트림 상태가 활성으로 변경될 때까지 기다립니다.

CloudWatch 로그 그룹을 Firehose에 구독

  1. AWS 콘솔에서 CloudWatch > Logs > Log groups로 이동합니다.
  2. 전송 게이트웨이 흐름 로그 그룹 (예: /aws/tgw/flowlogs)을 선택합니다.
  3. 구독 필터 탭을 클릭합니다.
  4. 만들기 > Amazon Kinesis Data Firehose 구독 필터 만들기를 클릭합니다.
  5. 다음 구성 세부정보를 제공합니다.
    • 대상: 전송 스트림 tgw-flowlogs-to-secops 선택
    • 권한 부여: 역할 TGWFlowLogsToFirehoseRole 선택
    • 구독 필터 이름: 이름을 입력합니다 (예: tgw-flowlogs-to-chronicle).
    • 로그 형식: 기타를 선택합니다.
    • 구독 필터 패턴: 모든 이벤트를 전송하려면 비워 둡니다.
  6. 스트리밍 시작을 클릭합니다.

UDM 매핑 테이블

로그 필드 UDM 매핑 논리
packets_lost_blackhole_label additional.fields 병합됨
packets_lost_mtu_exceeded_label additional.fields 병합됨
packets_lost_no_route_label additional.fields 병합됨
packets_lost_ttl_expired_label additional.fields 병합됨
start_time_label additional.fields 병합됨
tcp_flags_label additional.fields 병합됨
tgw_attachment_id_label additional.fields 병합됨
tgw_id_label additional.fields 병합됨
tgw_pair_attachment_id_label additional.fields 병합됨
type_label additional.fields 병합됨
end_time metadata.event_timestamp UNIX로 파싱됨
event_type metadata.event_type 직접 매핑됨
account_id metadata.product_log_id 직접 매핑됨
version metadata.product_version 직접 매핑됨
flow_direction network.direction 매핑됨: (?i)ingressINBOUND, (?i)egressOUTBOUND
bytes network.sent_bytes 직접 매핑됨
packets network.sent_packets 직접 매핑됨
tgw_src_eni principal.asset.asset_id 직접 매핑됨
srcaddr principal.asset.ip 병합됨
srcaddr principal.ip 병합됨
region principal.location.country_or_region 직접 매핑됨
tgw_src_az_id principal.location.country_or_region 직접 매핑됨
srcport principal.port 직접 매핑됨
pkt_src_aws_service_label principal.resource.attribute.labels 병합됨
tgw_src_az_id_label principal.resource.attribute.labels 병합됨
tgw_src_subnet_id principal.resource.name 직접 매핑됨
tgw_src_vpc_id principal.resource.product_object_id 직접 매핑됨
resource_type principal.resource.resource_subtype 직접 매핑됨
tgw_src_vpc_account_id principal.user.userid 직접 매핑됨
security_result_action security_result.action 병합됨
protocol_label security_result.detection_fields 병합됨
tgw_dst_eni target.asset.asset_id 직접 매핑됨
dstaddr target.asset.ip 병합됨
dstaddr target.ip 병합됨
tgw_dst_az_id target.location.country_or_region 직접 매핑됨
dstport target.port 직접 매핑됨
pkt_dst_aws_service_label target.resource.attribute.labels 병합됨
tgw_dst_subnet_id target.resource.name 직접 매핑됨
tgw_dst_vpc_id target.resource.product_object_id 직접 매핑됨
tgw_dst_vpc_account_id target.user.userid 직접 매핑됨
해당 사항 없음 metadata.product_name 상수: AWS VPC Transit Gateway
해당 사항 없음 metadata.vendor_name 상수: AWS
해당 사항 없음 network.direction 상수: INBOUND

변경 로그

이 파서의 변경 로그 보기

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.