Amazon Virtual Private Cloud
사용 설명서

Amazon S3에 플로우 로그 게시

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

Amazon S3에 게시하는 경우, 플로우 로그 데이터가 지정해 놓은 기존 Amazon S3 버킷에 게시됩니다. 모니터링된 모든 네트워크 인터페이스에 대한 플로우 로그 레코드는 버킷에 저장된 일련의 로그 파일 객체에 게시됩니다. 플로우 로그가 VPC에 대한 데이터를 캡처하면, 플로우 로그가 모든 네트워크 인터페이스에 대한 플로우 로그 레코드를 선택된 VPC에 게시합니다. 자세한 내용은 흐름 로그 레코드 단원을 참조하십시오.

플로우 로그 파일

플로우 로그는 플로우 로그 레코드를 수집하여 로그 파일로 통합한 다음 해당 로그 파일을 5분 간격으로 Amazon S3 버킷에 게시합니다. 각 로그 파일에는 이전 5분 동안 기록된 IP 트래픽에 대한 플로우 로그 레코드가 포함됩니다.

로그 파일의 최대 크기는 75MB입니다. 로그 파일이 5분 내에 파일 크기 한도에 도달하는 경우, 플로우 로그는 플로우 로그 레코드의 로그 파일로의 추가를 중단하고 Amazon S3 버킷에 게시한 다음 새로운 로그 파일을 생성합니다.

로그 파일은 플로우 로그의 ID, 리전 및 생성된 날짜에 따라 결정된 폴더 구조를 사용하여 지정된 Amazon S3 버킷에 저장됩니다. 버킷 폴더 구조는 다음 형식을 사용합니다.

bucket_ARN/optional_folder/AWSLogs/aws_account_id/vpcflowlogs/region/year/month/day/log_file_name.log.gz

마찬가지로 로그 파일의 파일 이름은 플로우 로그의 ID, 리전 및 생성된 날짜에 따라 결정됩니다. 파일 이름은 다음의 형식을 사용합니다.

aws_account_id_vpcflowlogs_region_flow_log_id_timestamp_hash.log.gz

참고

타임스탬프는 YYYYMMDDTHHmmZ 형식을 사용합니다.

예를 들어, 아래에서는 16:20 UTCJune 20, 2018us-east-1 리전의 리소스에 대하여 AWS 계정123456789012에서 생성한 플로우 로그에 대한 로그 파일의 폴더 구조 및 파일 이름을 보여 주며, 이에는 16:15:01~16:20:00에 대한 플로우 로그 레코드가 포함됩니다.

arn:aws:s3:::my-flow-log-bucket/AWSLogs/123456789012/vpcflowlogs/us-east-1/2018/06/20/123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz

플로우 로그 레코드 처리

로그 파일은 압축된 상태입니다. Amazon S3 콘솔을 사용해 로그 파일을 열면 압축이 해제되고 플로우 로그 레코드가 표시됩니다. 파일을 다운로드하는 경우, 압축을 해제해야 플로우 로그 레코드를 볼 수 있습니다.

또한 을 사용해 로그 파일의 플로우 로그 레코드를 쿼리할 수도 있습니다. 은 Amazon S3에서 표준 SQL을 사용하여 데이터를 쉽게 분석할 수 있는 대화형 쿼리 서비스입니다. 자세한 내용은 사용 설명서Amazon VPC 플로우 로그 쿼리 방법을 참조하십시오.

Amazon S3에 플로우 로그를 게시하기 위한 IAM 역할

IAM 사용자와 같은 IAM 보안 주체에는 Amazon S3 버킷에 플로우 로그를 게시할 권한이 있어야 합니다. IAM 정책에 다음 권한이 포함되어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*" } ] }

Amazon S3 버킷의 플로우 로그에 대한 권한

기본적으로 Amazon S3 버킷과 그에 포함된 객체는 비공개입니다. 버킷 소유자만이 해당 버킷과 그 안에 저장된 객체에 액세스할 수 있습니다. 그러나 버킷 소유자는 액세스 정책을 작성하여 다른 리소스 및 사용자에게 액세스를 허용할 수 있습니다.

플로우 로그를 생성하는 사용자가 버킷을 소유한 경우, 다음 정책을 해당 버킷에 자동으로 연결하여 로그를 버킷에 게시할 플로우 로그 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*", "Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}} }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::bucket_name" } ] }

플로우 로그를 생성하는 사용자가 버킷을 소유하지 않거나 해당 버킷에 대한 GetBucketPolicyPutBucketPolicy가 없는 경우, 플로우 로그 생성이 실패합니다. 이 경우 버킷 소유자가 위의 정책을 수동으로 버킷에 추가하고 플로우 로그 생성자의 AWS 계정 ID를 지정해야 합니다. 자세한 내용은 S3 버킷 정책을 추가하려면 어떻게 해야 합니까?(출처: Amazon Simple Storage Service 콘솔 사용 설명서)를 참조하십시오. 버킷이 여러 계정으로부터 플로우 로그를 수신하는 경우, Resource 요소 입력 내용을 각 계정의 AWSLogDeliveryWrite 정책 설명에 추가합니다. 예를 들어 다음 버킷 정책이 AWS 계정 123123123123456456456456이 플로우 로그를 log-bucket이란 이름의 버킷의 flow-logs란 이름의 폴더에 게시하도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::log-bucket/flow-logs/AWSLogs/123123123123/*", "arn:aws:s3:::log-bucket/flow-logs/AWSLogs/456456456456/*" ], "Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}} }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::log-bucket" } ] }

참고

AWSLogDeliveryAclCheck 및 AWSLogDeliveryWrite 권한을 각 AWS 계정 ARN보다는 로그 전송 서비스 보안 주체에게 부여하는 것이 좋습니다.

Amazon S3 로그 파일 권한

필요한 버킷 정책 외에도 Amazon S3는 액세스 제어 목록(ACL)을 사용해 플로우 로그에 의해 생성된 로그 파일에 대한 액세스를 관리합니다. 기본적으로 버킷 소유자는 각 로그 파일에 대한 FULL_CONTROL 권한을 보유합니다. 로그 전송 소유자가 버킷 소유자와 다른 경우에는 권한이 없습니다. 로그 전송 계정에는 READWRITE 권한이 부여됩니다. 자세한 내용은 Amazon Simple Storage Service 개발자 가이드ACL(액세스 제어 목록) 개요 단원을 참조하십시오.