AWS Global Accelerator - AWS Global Accelerator

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

AWS Global Accelerator

흐름 로그를 사용하면 AWS Global Accelerator 액셀러레이터의 액셀러레이터의 네트워크 인터페이스에서 전송되고 수신되는 IP 주소 트래픽에 대한 정보를 수집할 수 있습니다. 흐름 로그 데이터는 Amazon S3 게시되며, 여기서 플로우 로그를 생성한 다음 데이터를 가져와 확인할 수 있습니다.

흐름 로그는 여러 작업에 도움이 될 수 있습니다. 예를 들어 특정 트래픽이 엔드포인트에 도달하지 않는 문제를 해결할 수 있습니다. 이렇게 하면 과도하게 제한적인 보안 그룹 규칙을 진단할 수 있게 도와줍니다. 흐름 로그를 엔드포인트에 액세스하는 트래픽을 모니터링하기 위한 보안 도구로 사용할 수도 있습니다.

흐름 로그 레코드는 흐름 로그에 네트워크 흐름을 나타냅니다. 각 레코드는 특정 캡처 기간 중 특정 5 튜플의 네트워크 흐름을 캡처합니다. 5 튜플은 IP 흐름의 소스, 대상 및 프로토콜을 지정하는 5가지 값의 집합입니다. 캡처 기간은 흐름 로그 서비스에서 로그 레코드를 게시하기 전에 데이터를 집계하는 시간 기간입니다. 캡처 기간은 약 10초이지만 최대 1분까지 걸릴 수 있습니다.

흐름 로그를 사용할 때 CloudWatch Logs의 요금은 로그가 Amazon S3 직접 게시되더라도 적용됩니다. 자세한 내용은 단원을 참조하십시오.S3로 로그 전송atAmazon CloudWatch 요금.

Amazon S3에 플로우 로그 게시

AWS Global Accelerator 에 대한 플로우 로그는 지정된 기존 S3 버킷에 Amazon S3 S3에 게시됩니다. 흐름 로그 레코드는 버킷에 저장된 일련의 로그 파일 객체에 게시됩니다.

플로우 로그와 함께 사용할 Amazon S3 버킷을 생성하려면버킷 만들기Amazon Simple Storage Service 시작 안내서.

흐름 로그 파일

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

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

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

s3-bucket_name/s3-bucket-prefix/AWSLogs/aws_account_id/globalaccelerator/region/yyyy/mm/dd/

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

aws_account_id_globalaccelerator_accelerator_id_flow_log_id_timestamp_hash.log.gz

로그 파일의 폴더 및 파일 이름 구조에 대한 다음 사항에 유의하십시오.

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

  • S3 버킷 접두사에 슬래시 (/) 를 지정하면 로그 파일 버킷 폴더 구조에 다음과 같이 이중 슬래시 (//) 가 포함됩니다.

    s3-bucket_name//AWSLogs/aws_account_id

다음 예에서는 AWS 계정에서 생성한 플로우 로그에 대한 로그 파일의 폴더 구조 및 파일 이름을 보여줍니다.123456789012ID가 인 가속기의 경우1234abcd-abcd-1234-abcd-1234abcdefgh, 2018년 11월 23일, UTC:

my-s3-bucket/prefix1/AWSLogs/123456789012/globalaccelerator/us-west-2/2018/11/23/123456789012_globalaccelerator_1234abcd-abcd-1234-abcd-1234abcdefgh_20181123T0005Z_1fb1234.log.gz

단일 흐름 로그 파일에는 여러 5개의 튜플 레코드가 있는 인터리브된 항목이 들어 있습니다. 즉,client_ip,client_port,accelerator_ip,accelerator_port,protocol. 가속기에 대한 모든 흐름 로그 파일을 보려면accelerator_id및 귀하의account_id.

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

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeliverLogs", "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*" }, { "Sid": "AllowGlobalAcceleratorService", "Effect": "Allow", "Action": [ "globalaccelerator:*" ], "Resource": "*" }, { "Sid": "s3Perms", "Effect": "Allow", "Action": [ "s3:GetBucketPolicy", "s3:PutBucketPolicy" ], "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 계정 12312312123123 및 4564564564564564564564564566456666456은 플로우 로그를flow-logs이라는 버킷에log-bucket:

{ "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" } ] }
참고

부여 하는 것이 좋습니다.AWSLogDeliveryAclCheckAWSLogDeliveryWrite권한을 개별 AWS 계정 ARN 대신 로그 전송 서비스 보안 주체에게 할당합니다.

SSE-KMS 버킷에 사용할 경우 필요한 CMK 키 정책

고객 관리형 고객 마스터 키 (CMK) 와 함께 AWS KMS 관리형 키 (SSE-KMS) 를 사용하여 Amazon S3 버킷에 대하여 서버 측 암호화를 활성화한 경우, 플로우 로그가 로그 파일을 버킷에 쓸 수 있도록 CMK의 키 정책에 다음을 추가해야 합니다.

{ "Sid": "Allow AWS Global Accelerator Flow Logs to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": "kms:GenerateDataKey*", "Resource": "*" }

Amazon S3 로그 파일 권한

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

Amazon S3 플로우 로그 게시

AWS Global Accelerator 흐름 로그를 활성화하려면 이 절차의 단계를 따릅니다.

AWS Global Accelerator 흐름 로그를 활성화하려면

  1. AWS 계정에 플로우 로그용 Amazon S3 버킷을 생성합니다.

  2. 흐름 로그를 활성화하는 AWS 사용자에 대해 필요한 IAM 정책을 추가합니다. 자세한 내용은 Amazon S3 플로우 로그를 게시하기 위한 IAM 역할 섹션을 참조하세요.

  3. 로그 파일에 사용할 Amazon S3 버킷 이름과 접두사를 사용하여 다음 AWS CLI 명령을 실행합니다.

    aws globalaccelerator update-accelerator-attributes --accelerator-arn arn:aws:globalaccelerator::012345678901:accelerator/1234abcd-abcd-1234-abcd-1234abcdefgh --region us-west-2 --flow-logs-enabled --flow-logs-s3-bucket s3-bucket-name --flow-logs-s3-prefix s3-bucket-prefix

Amazon S3에서 플로우 로그 레코드 처리

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

로그 파일 전송 타이밍

AWS Global Accelerator 는 구성된 액셀러레이터에 대한 로그 파일을 1시간 동안 여러 번 전송합니다. 일반적으로 로그 파일에는 지정된 기간 중에 액셀러레이터가 수신한 요청에 대한 정보가 들어 있습니다. 일반적으로 Global Accelerator 는 로그에 표시된 이벤트가 발생한 후 한 시간 이내에 로그 파일을 Amazon S3 버킷으로 전송합니다. 특정 기간 동안의 일부 또는 전체 로그 파일 항목이 때때로 최대 24시간까지 지연되기도 합니다. 로그 항목이 지연되는 경우 Global Accelerator 는 파일 이름에 파일이 전송된 날짜 및 시간이 아니라 요청이 발생한 기간의 날짜 및 시간이 로그 파일에 이러한 로그 항목을 저장합니다.

로그 파일을 생성할 때 Global Accelerator 는 로그 파일에 포함되는 기간 중에 요청을 받은 모든 엣지 로케이션의 액셀러레이터 관련 정보를 통합합니다.

로깅을 활성화하고 약 4시간이 지나면 로그 파일이 안정적으로 전송되기 시작합니다. 그 전에는 일부 로그 파일이 가져올 수 있습니다.

참고

해당 기간 중에 액셀러레이터에 연결하는 사용자가 없으면 해당 기간 동안 로그 파일이 수신되지 않습니다.

흐름 로그 레코드 구문

흐름 로그 레코드는 공백으로 구분된 문자열로, 다음과 같은 형식입니다.

<version> <aws_account_id> <accelerator_id> <client_ip> <client_port> <accelerator_ip> <accelerator_port> <endpoint_ip> <endpoint_port> <protocol> <ip_address_type> <packets> <bytes> <start_time> <end_time> <action> <log-status> <globalaccelerator_source_ip> <globalaccelerator_source_port> <endpoint_region> <globalaccelerator_region> <direction> <vpc_id>

버전 1.0 형식에는 VPC 식별자,vpc_id. 버전 2.0 형식.vpc_id는 글로벌 액셀러레이터가 클라이언트 IP 주소를 보존하여 엔드포인트로 트래픽을 전송할 때 생성됩니다.

다음 표에서는 플로우 로그 레코드의 필드를 설명합니다.

필드 설명

version

흐름 로그 버전입니다.

aws_account_id

흐름 로그의 AWS 계정 ID.

accelerator_id

트래픽이 기록되는 액셀러레이터의 ID.

client_ip

소스 IPv4 주소입니다.

client_port

소스 포트.

accelerator_ip

가속기의 IP 주소입니다.

accelerator_port

가속기의 포트.

endpoint_ip

트래픽의 대상 IP 주소입니다.

endpoint_port

트래픽의 대상 포트

protocol

트래픽의 IANA 프로토콜 번호. 자세한 정보는 지정된 인터넷 프로토콜 번호 단원을 참조하십시오.

ip_address_type

IPv4입니다.

packets

캡처 기간 중 전송된 패킷 수.

bytes

캡처 기간 중 전송된 바이트 수.

start_time

캡처 기간의 시작 시간(단위: Unix 초)

end_time

캡처 기간의 종료 시간(단위: Unix 초)

action

트래픽과 연결된 작업

  • ACCEPT: 보안 그룹 또는 네트워크 ACL에서 허용한 트래픽입니다. 값은 현재 항상 수락입니다.

log-status

흐름 로그의 로깅 상태:

  • OK: 데이터가 선택된 대상에 정상적으로 로깅됩니다.

  • NODATA: 캡처 기간 중 네트워크 인터페이스에서 전송하거나 수신된 네트워크 트래픽이 없었습니다.

  • SKIPDATA: 캡처 기간 중 일부 흐름 로그 레코드를 건너뛰었습니다. 내부 용량 제한 또는 내부 오류가 원인일 수 있습니다.

globalaccelerator_source_ip

글로벌 가속기 네트워크 인터페이스에서 사용하는 IP 주소입니다.

globalaccelerator_source_port

글로벌 액셀러레이터 네트워크 인터페이스에서 사용하는 포트입니다.

endpoint_region

엔드포인트가 위치한 AWS 리전입니다.

globalaccelerator_region

요청을 처리한 엣지 로케이션 (현재 위치) 입니다. 각 엣지 로케이션에는 3자 코드와 임의 배정된 번호가 있습니다 (예: DFW3). 3자 코드는 일반적으로 엣지 로케이션 부근의 공항을 나타내는 국제 항공 수송 협회 공항 코드에 상응합니다. 이러한 약어는 향후에 변경될 수 있습니다.

direction

트래픽의 방향입니다. 글로벌 액셀러레이터 네트워크로 들어오는 트래픽을 나타냅니다 (INGRESS) 또는 클라이언트로 돌아 가기 (EGRESS).

vpc_id

VPC 식별자. 글로벌 액셀러레이터가 클라이언트 IP 주소를 보존하여 엔드포인트로 트래픽을 전송할 때 버전 2.0 흐름 로그에 포함됩니다.

필드가 특정 레코드에 적용되지 않을 경우 레코드에 '-' 기호가 표시됩니다.