Amazon Data Firehose에 흐름 로그 게시 - Amazon Virtual Private Cloud

Amazon Data Firehose에 흐름 로그 게시

흐름 로그에서는 흐름 로그 데이터를 Amazon Data Firehose에 직접 게시할 수 있습니다.

Amazon Data Firehose에 게시할 때 흐름 로그 데이터는 일반 텍스트 형식으로 Amazon Data Firehose 전송 스트림에 게시됩니다.

요금

표준 모으기 및 전송 요금이 적용됩니다. 자세히 알아보려면 Amazon CloudWatch Pricing(Amazon CloudWatch 요금)을 열고, Logs(로그)를 선택하고, Vended Logs(벤딩 로그)를 찾으세요.

교차 계정 전송에 대한 IAM 역할

Amazon Data Firehose에 게시할 때 모니터링할 리소스와 동일한 계정(소스 계정) 또는 상이한 계정(대상 계정)에 있는 전송 스트림을 선택할 수 있습니다. Amazon Data Firehose에 대한 흐름 로그의 교차 계정 전송을 활성화하려면 소스 계정에서 IAM 역할을 생성하고 대상 계정에서 IAM 역할을 생성해야 합니다.

소스 계정 역할

소스 계정에서 다음과 같은 권한을 부여하는 역할을 생성합니다. 이 예시에서는 역할 이름이 mySourceRole이지만, 이 역할에 대해 다른 이름을 선택할 수 있습니다. 마지막 명령문에서는 대상 계정의 역할에 이 역할 수임을 허용합니다. 조건문에서는 지정된 리소스를 모니터링할 때만 이 역할이 로그 전송 서비스에만 전달되도록 합니다. 정책을 생성할 때 모니터링 중인 VPC, 네트워크 인터페이스 또는 서브넷을 조건 키(iam:AssociatedResourceARN)로 지정합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::source-account:role/mySourceRole", "Condition": { "StringEquals": { "iam:PassedToService": "delivery.logs.amazonaws.com" }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:ec2:region:source-account:vpc/vpc-00112233344556677" ] } } }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:GetLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::destination-account:role/AWSLogDeliveryFirehoseCrossAccountRole" } ] }

로그 전송 서비스에서 역할을 수임할 수 있는 다음과 같은 신뢰 정책이 이 역할에 있는지 확인하세요.

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

소스 계정에서 다음과 같은 절차를 사용하여 역할을 생성합니다.

소스 계정 역할을 생성하는 방법
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 정책을 선택합니다.

  3. [정책 생성(Create policy)]을 선택합니다.

  4. [Create policy(정책 생성)] 페이지에서 다음을 수행합니다.

    1. JSON을 선택합니다.

    2. 이 창의 내용을 이 섹션의 시작 부분에 있는 권한 정책으로 대체합니다.

    3. 다음을 선택합니다.

    4. 정책의 이름과 설명(선택 사항) 및 태그를 입력한 다음에 정책 생성을 선택합니다.

  5. 탐색 창에서 역할을 선택합니다.

  6. 역할 생성을 선택합니다.

  7. Trusted entity type(신뢰할 수 있는 엔터티 유형)에서 Custom trust policy(사용자 지정 정책)를 선택합니다. Custom trust policy(사용자 지정 신뢰 정책)에서 로그 전송 서비스를 지정하는 다음으로 "Principal": {},을 대체합니다. 다음을 선택합니다.

    "Principal": { "Service": "delivery.logs.amazonaws.com" },
  8. Add permissions(권한 추가) 페이지에서 이 절차의 앞부분에서 생성한 정책의 확인란을 선택한 후 Next(다음)를 선택합니다.

  9. 역할 이름을 입력하고 선택적으로 설명을 제공합니다.

  10. 역할 생성(Create role)을 선택합니다.

대상 계정 역할

대상 계정에서 AWSLogDeliveryFirehoseCrossAccountRole로 시작하는 이름으로 역할을 생성합니다. 이 역할에서는 다음과 같은 권한을 부여해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" } ] }

이 역할을 수임할 수 있도록 소스 계정에서 생성한 역할이 허용되는 다음과 같은 신뢰 정책이 이 역할에 있는지 확인하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::source-account:role/mySourceRole" }, "Action": "sts:AssumeRole" } ] }

대상 계정에서 다음과 같은 절차를 사용하여 역할을 생성합니다.

대상 계정 역할을 생성하는 방법
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 정책을 선택합니다.

  3. [정책 생성(Create policy)]을 선택합니다.

  4. [Create policy(정책 생성)] 페이지에서 다음을 수행합니다.

    1. JSON을 선택합니다.

    2. 이 창의 내용을 이 섹션의 시작 부분에 있는 권한 정책으로 대체합니다.

    3. 다음을 선택합니다.

    4. AWSLogDeliveryFirehoseCrossAccountRole로 시작하는 정책 이름을 입력한 다음에 정책 생성(Create policy)을 선택합니다.

  5. 탐색 창에서 역할을 선택합니다.

  6. 역할 생성을 선택합니다.

  7. Trusted entity type(신뢰할 수 있는 엔터티 유형)에서 Custom trust policy(사용자 지정 정책)를 선택합니다. Custom trust policy(사용자 지정 신뢰 정책)에서 소스 계정 역할을 지정하는 다음으로 "Principal": {},을 대체합니다. 다음을 선택합니다.

    "Principal": { "AWS": "arn:aws:iam::source-account:role/mySourceRole" },
  8. Add permissions(권한 추가) 페이지에서 이 절차의 앞부분에서 생성한 정책의 확인란을 선택한 후 Next(다음)를 선택합니다.

  9. 역할 이름을 입력하고 선택적으로 설명을 제공합니다.

  10. 역할 생성(Create role)을 선택합니다.

Amazon Data Firehose에 게시하는 흐름 로그 생성

VPC, 서브넷 또는 네트워크 인터페이스에 대한 흐름 로그를 생성할 수 있습니다.

필수 조건
Amazon Data Firehose에 게시하는 흐름 로그 생성 방법
  1. 다음 중 하나를 수행하십시오.

    • https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다. 탐색 창에서 네트워크 인터페이스(Network Interfaces)를 선택합니다. 네트워크 인터페이스의 확인란을 선택합니다.

    • https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다. 탐색 창에서 Your VPCs(사용자 VPC)를 선택합니다. VPC에 대한 확인란을 선택합니다.

    • https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 엽니다. 탐색 창에서 서브넷(Subnets)을 선택합니다. 서브넷의 확인란을 선택합니다.

  2. 작업(Actions), 흐름 로그 생성(Create flow log)을 선택합니다.

  3. 필터(Filter)에 기록할 트래픽 유형을 지정합니다.

    • 수락 – 수락한 트래픽만 로그합니다.

    • 거부 – 거부한 트래픽만 로그합니다.

    • 모두 – 수락 및 거부한 트래픽을 로그합니다.

  4. 최대 집계 간격(Maximum aggregation interval)에서 흐름이 캡처되어 흐름 로그 레코드로 집계되는 최대 기간을 선택합니다.

  5. 대상(Destination)에서는 다음과 같은 옵션 중 하나를 선택합니다.

    • 동일한 계정의 Amazon Data Firehose로 보내기 - 전송 스트림과 모니터링할 리소스가 동일한 계정에 있습니다.

    • 다른 계정의 Amazon Data Firehose로 보내기 - 전송 스트림과 모니터링할 리소스가 상이한 계정에 있습니다.

  6. Amazon Data Firehose 스트림 이름에는 생성한 전송 스트림을 선택합니다.

  7. [교차 계정 전송만 해당] IAM roles(IAM 역할)에서는 필수 역할을 지정합니다(교차 계정 전송에 대한 IAM 역할 참조).

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

  9. 흐름 로그 생성(Create flow log)을 선택합니다.

명령줄 도구를 사용하여 Amazon Data Firehose에 게시하는 흐름 로그를 생성하는 방법

다음 명령 중 하나를 사용합니다.

다음 AWS CLI 예시에서는 지정된 VPC의 모든 트래픽을 캡처하고 동일한 계정의 지정된 Amazon Data Firehose 전송 스트림에 흐름 로그를 전송하는 흐름 로그를 생성합니다.

aws ec2 create-flow-logs --traffic-type ALL \ --resource-type VPC \ --resource-ids vpc-00112233344556677 \ --log-destination-type kinesis-data-firehose \ --log-destination arn:aws:firehose:us-east-1:123456789012:deliverystream:flowlogs_stream

다음 AWS CLI 예시에서는 지정된 VPC의 모든 트래픽을 캡처하고 상이한 계정의 지정된 Amazon Data Firehose 전송 스트림에 흐름 로그를 전송하는 흐름 로그를 생성합니다.

aws ec2 create-flow-logs --traffic-type ALL \ --resource-type VPC \ --resource-ids vpc-00112233344556677 \ --log-destination-type kinesis-data-firehose \ --log-destination arn:aws:firehose:us-east-1:123456789012:deliverystream:flowlogs_stream \ --deliver-logs-permission-arn arn:aws:iam::source-account:role/mySourceRole \ --deliver-cross-account-role arn:aws:iam::destination-account:role/AWSLogDeliveryFirehoseCrossAccountRole

Amazon Data Firehose의 흐름 로그 레코드 처리

전송 스트림에 대해 구성한 대상에서 흐름 로그 데이터를 가져올 수 있습니다.