Amazon S3의 Transit Gateway 흐름 로그 기록 - Amazon VPC

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3의 Transit Gateway 흐름 로그 기록

흐름 로그는 흐름 로그 데이터를 Amazon S3에 게시할 수 있습니다.

Amazon S3에 게시하는 경우 흐름 로그 데이터가 지정해 놓은 기존 Amazon S3 버킷에 게시됩니다. 모니터링되는 모든 전송 게이트웨이에 대한 흐름 로그 레코드는 버킷에 저장된 일련의 로그 파일 객체에 게시됩니다.

Amazon S3 Amazon CloudWatch 에 흐름 로그를 게시할 때에서 벤딩된 로그에 데이터 수집 및 아카이브 요금이 적용됩니다. 벤딩 로그의 CloudWatch 요금에 대한 자세한 내용을 알려면 Amazon CloudWatch 요금을 열어 로그를 선택한 다음 벤딩 로그를 확인하세요.

흐름 로그와 함께 사용할 Amazon S3 버킷을 만드는 방법은 Amazon S3 사용 설명서버킷 생성을 참조하세요.

다중 계정 로깅에 대한 자세한 내용은 AWS 솔루션 라이브러리의 중앙 로깅을 참조하세요.

CloudWatch Logs에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서Amazon S3로 전송된 로그를 참조하세요.

흐름 로그 파일

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

로그 파일의 최대 크기는 75MB입니다. 로그 파일이 5분 내에 파일 크기 제한에 도달하면 흐름 로그가 흐름 로그 레코드 추가를 중지합니다. 그런 다음 흐름 로그를 Amazon S3 버킷에 게시하고 새 로그 파일을 만듭니다.

Amazon S3에서 흐름 로그 파일의 마지막 수정(Last modified) 필드는 파일이 Amazon S3 버킷에 업로드된 날짜와 시간을 나타냅니다. 파일 이름의 타임스탬프보다 이후이며 파일을 Amazon S3 버킷에 업로드하는 데 걸리는 시간에 따라 다릅니다.

로그 파일 형식

로그 파일에 대해 다음 형식 중 하나를 지정할 수 있습니다. 각 파일은 단일 Gzip 파일로 압축됩니다.

  • 텍스트(Text) – 일반 텍스트. 이것은 기본 형식입니다.

  • Parquet – Apache Parquet은 열 기반 데이터 형식입니다. Parquet 형식의 데이터에 대한 쿼리는 일반 텍스트 데이터에 대한 쿼리에 비해 10배에서 100배 빠릅니다. Gzip 압축을 사용하는 Parquet 형식 데이터는 Gzip 압축을 사용하는 일반 텍스트보다 스토리지 공간을 20% 적게 사용합니다.

로그 파일 옵션

필요한 경우 다음과 같은 옵션을 지정할 수 있습니다.

  • Hive 호환 S3 접두사 – 분할을 Hive 호환 도구로 가져오는 대신 Hive 호환 접두사를 활성화합니다. 쿼리 실행 전에 MSCK REPAIR TABLE 명령을 사용합니다.

  • 시간당 분할 – 대량의 로그가 있고 일반적으로 특정 시간까지 쿼리를 타겟팅하는 경우 로그를 시간별로 분할하여 더 결과를 빠르게 얻고 쿼리 비용을 절감할 수 있습니다.

로그 파일 S3 버킷 구조

로그 파일은 흐름 로그의 ID, 리전, 생성된 날짜 및 대상 옵션에 따라 폴더 구조를 사용하여 지정된 Amazon S3 버킷에 저장됩니다.

기본적으로 파일은 다음 위치로 전달됩니다.

bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/

Hive 호환 S3 접두사를 사용하도록 설정하면 파일이 다음 위치로 전달됩니다.

bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/

시간별 분할을 사용하도록 설정하면 파일이 다음 위치로 전달됩니다.

bucket-and-optional-prefix/AWSLogs/account_id/vpcflowlogs/region/year/month/day/hour/

Hive 호환 분할을 사용하도록 설정하고 시간당 흐름 로그를 분할하면 파일이 다음 위치로 전달됩니다.

bucket-and-optional-prefix/AWSLogs/aws-account-id=account_id/service=vpcflowlogs/aws-region=region/year=year/month=month/day=day/hour=hour/
로그 파일 이름

로그 파일의 파일 이름은 흐름 로그 ID, 리전 및 생성 날짜 및 시간을 기반으로 합니다. 파일 이름은 다음 형식을 사용합니다.

aws_account_id_vpcflowlogs_region_flow_log_id_YYYYMMDDTHHmmZ_hash.log.gz

예를 들어, 다음은 June 20, 2018, 16:20 UTC에 us-east-1 리전의 리소스에 대해 AWS 계정 123456789012에서 생성한 흐름 로그에 대한 로그 파일의 예를 보여 줍니다. 종료 시간이 16:20:00에서 16:24:59 사이인 흐름 로그 레코드가 파일에 포함됩니다.

123456789012_vpcflowlogs_us-east-1_fl-1234abcd_20180620T1620Z_fe123456.log.gz

Amazon S3에 플로우 로그를 게시하는 IAM 보안 주체에 대한 IAM 정책

흐름 로그를 생성하는 IAM 보안 주체에는 대상 Amazon S3 버킷에 흐름 로그를 게시하는 데 필요한 다음 권한이 있어야 합니다.

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

Amazon S3 버킷의 흐름 로그에 대한 권한

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

흐름 로그를 생성하는 사용자가 버킷을 소유하고 해당 버킷에 대한 PutBucketPolicyGetBucketPolicy 권한을 소유한 경우, 다음 정책을 해당 버킷에 자동으로 연결합니다. 이 정책은 버킷에 연결된 모든 기존 정책을 덮어씁니다.

그렇지 않으면 버킷 소유자가 이 정책을 버킷에 추가하고 흐름 로그 작성자의 AWS 계정 ID 지정 또는 흐름 로그 생성이 실패합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서버킷 정책을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": "s3:PutObject", "Resource": "my-s3-arn", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": account_id }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region:account_id:*" } } }, { "Sid": "AWSLogDeliveryCheck", "Effect": "Allow", "Principal": {"Service": "delivery.logs.amazonaws.com"}, "Action": ["s3:GetBucketAcl", "s3:ListBucket"], "Resource": "arn:aws:s3:::bucket_name", "Condition": { "StringEquals": { "aws:SourceAccount": account_id }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:region:account_id:*" } } } ] }

my-s3-arn에 지정한 ARN은 Hive 호환 S3 접두사를 사용하는지 여부에 따라 다릅니다.

  • 기본 접두사

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  • Hive 호환 S3 접두사

    arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*

가장 좋은 방법은 이러한 권한을 개별 AWS 계정 ARNs. 또한 혼동된 대리자 문제로부터 보호하려면 aws:SourceAccountaws:SourceArn 조건 키를 사용하는 것 좋습니다. 소스 계정은 흐름 로그의 소유자이고 원본 ARN은 로그 서비스의 와일드카드(*) ARN입니다.

SSE-KMS를 사용할 경우 필요한 키 정책

Amazon S3-관리형 키(SSE-S3)를 사용한 서버 측 암호화 또는 KMS 키(SSE-KMS)를 사용한 서버 측 암호화를 활성화하여 Amazon S3 버킷의 데이터를 보호할 수 있습니다. 자세한 내용은 Amazon S3 사용 설명서서버 측 암호화를 사용하여 데이터 보호를 참조하세요.

SSE-KMS에서는 AWS 관리형 키 또는 고객 관리형 키를 사용할 수 있습니다. AWS 관리형 키를 사용하면 교차 계정 전송을 사용할 수 없습니다. 흐름 로그는 로그 배달 계정에서 전달되므로 교차 계정 전달에 대한 액세스 권한을 부여해야 합니다. S3 버킷에 대한 교차 계정 액세스 권한을 부여하려면 버킷 암호화를 활성화할 때 고객 관리형 키를 사용하고 고객 관리형 키의 Amazon 리소스 이름(ARN)을 지정합니다. 자세한 내용은 Amazon S3 사용 설명서AWS KMS를 사용한 서버 측 암호화 지정을 참조하세요.

고객 관리형 키에서 SSE-KMS를 사용할 때는 S3 버킷의 버킷 정책이 아니라 키의 키 정책에 다음을 추가해야 VPC 흐름 로그가 S3 버킷에 쓸 수 있습니다.

참고

S3 버킷 키를 사용하면 버킷 수준 키를 사용하여 암호화, GenerateDataKey 및 복호화 작업에 AWS KMS 대한 요청을 줄여 AWS Key Management Service (AWS KMS) 요청 비용을 절감할 수 있습니다. 설계상이 버킷 수준 키를 활용하는 후속 요청은 AWS KMS API 요청을 초래하거나 AWS KMS 키 정책에 대한 액세스를 검증하지 않습니다.

{ "Sid": "Allow Transit Gateway Flow Logs to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Amazon S3 로그 파일 권한

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

Amazon S3에서 흐름 로그 기록 처리 완료

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