Amazon VPC 래티스에 대한 액세스 로그 - Amazon VPC Lattice

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

Amazon VPC 래티스에 대한 액세스 로그

액세스 로그는 VPC Lattice 서비스에 대한 세부 정보를 캡처합니다. 이 액세스 로그를 사용하여 트래픽 패턴을 분석하고 네트워크의 모든 서비스를 감사할 수 있습니다.

액세스 로그는 선택 사항이며 기본적으로 비활성화됩니다. 액세스 로그를 활성화한 후에는 언제든지 비활성화할 수 있습니다.

요금

액세스 로그가 게시되면 요금이 부과됩니다. 사용자를 대신하여 AWS 기본적으로 게시되는 로그를 벤디드 로그라고 합니다. 벤드 로그 요금에 대한 자세한 내용은 Amazon CloudWatch Pricing을 참조하고 로그를 선택한 다음 Vended Logs에서 요금을 확인하십시오.

액세스를 활성화하는 데 필요한 IAM 권한

액세스 로그를 활성화하고 대상으로 로그를 전송하려면 사용 중인 IAM 사용자, 그룹 또는 역할에 연결된 정책에 다음 작업이 있어야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "ManageVPCLatticeAccessLogSetup", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "vpc-lattice:CreateAccessLogSubscription", "vpc-lattice:GetAccessLogSubscription", "vpc-lattice:UpdateAccessLogSubscription", "vpc-lattice:DeleteAccessLogSubscription", "vpc-lattice:ListAccessLogSubscriptions" ], "Resource": [ "*" ] } ] }

자세한 내용은 AWS Identity and Access Management 사용 설명서IAM 자격 증명 권한 추가 및 제거 섹션을 참조하세요.

사용 중인 IAM 사용자, 그룹 또는 역할에 연결된 정책을 업데이트한 후 액세스 로그 활성화로 이동하세요.

액세스 로그 대상

액세스 로그를 다음과 같은 대상으로 보낼 수 있습니다.

아마존 CloudWatch 로그
  • VPC Lattice는 일반적으로 2분 이내에 CloudWatch 로그를 로그에 전송합니다. 하지만 실제 로그 전송 시간은 최선의 노력을 바탕으로 하며 추가 지연 시간이 발생할 수 있습니다.

  • CloudWatch 로그 그룹에 특정 권한이 없는 경우 리소스 정책이 자동으로 생성되어 로그 그룹에 추가됩니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 CloudWatch 로그로 전송된 로그를 참조하십시오.

  • CloudWatch 콘솔의 로그 CloudWatch 그룹에서 전송된 액세스 로그를 찾을 수 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 CloudWatch Logs로 전송된 로그 데이터 보기를 참조하십시오.

Amazon S3
  • VPC Lattice는 일반적으로 6분 이내에 Amazon S3에 로그를 전송합니다. 하지만 실제 로그 전송 시간은 최선의 노력을 바탕으로 하며 추가 지연 시간이 발생할 수 있습니다.

  • 버킷에 특정 권한이 없는 경우 버킷 정책이 자동으로 생성되어 Amazon S3 버킷에 추가됩니다. 자세한 내용은 Amazon CloudWatch사용 설명서의 Amazon S3로 전송된 로그를 참조하십시오.

  • Amazon S3으로 전송되는 액세스 로그는 다음과 같은 명명 규칙을 사용합니다.

    [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/AccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
Amazon Data Firehose
  • VPC Lattice는 일반적으로 2분 이내에 Firehose에 로그를 전송합니다. 하지만 실제 로그 전송 시간은 최선의 노력을 바탕으로 하며 추가 지연 시간이 발생할 수 있습니다.

  • Amazon Data Firehose에 액세스 로그를 전송할 권한을 VPC Lattice에 부여하는 서비스 연결 역할이 자동으로 생성됩니다. 역할 자동 생성이 성공하려면 사용자가 iam:CreateServiceLinkedRole 작업에 대한 권한을 보유해야 합니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 로그 전송을 참조하십시오. Amazon Data Firehose

  • 로 전송된 로그를 보는 방법에 대한 자세한 내용은 개발자 Amazon Data Firehose안내서의 Amazon Kinesis Data Streams Amazon Data Firehose 모니터링을 참조하십시오.

액세스 로그 활성화

액세스 로그를 캡처하고 선택한 대상으로 액세스 로그를 전송하도록 다음과 같은 절차에 따라 액세스 로그를 구성하세요.

콘솔을 사용하여 액세스 로그 활성화

생성 중에 서비스 네트워크 또는 서비스에 대한 액세스 로그를 활성화할 수 있습니다. 또한 다음 절차에서 설명한 대로 서비스 네트워크 또는 서비스를 생성한 후 액세스 로그를 활성화할 수도 있습니다.

콘솔을 사용하여 기본 서비스를 생성하는 방법
  1. https://console.aws.amazon.com/vpc/에서 Amazon VPC 콘솔을 여세요.

  2. 서비스 네트워크 또는 서비스를 선택합니다.

  3. 작업, VPC 설정 편집을 선택합니다.

  4. 액세스 로그 토글 스위치를 켭니다.

  5. 다음과 같이 액세스 로그의 전송 대상을 추가합니다.

    • CloudWatch 로그 그룹을 선택하고 로그 그룹을 선택합니다. 로그 그룹을 만들려면 에서 로그 그룹 만들기를 선택합니다 CloudWatch.

    • S3 버킷을 선택하고 접두사를 포함한 S3 버킷 경로를 입력합니다. S3 버킷을 검색하려면 S3 찾아보기를 선택합니다.

    • Kinesis Data Firehose 전송 스트림을 클릭하고 전송 스트림을 선택합니다. 전송 스트림을 생성하려면 Kinesis에서 전송 스트림 생성을 선택합니다.

  6. 변경 사항 저장을 선택합니다.

를 사용하여 액세스 로그를 활성화합니다. AWS CLI

CLI 명령을 create-access-log-subscription사용하여 서비스 네트워크 또는 서비스에 대한 액세스 로그를 활성화합니다.

액세스 로그 내용

다음 표에서는 액세스 로그 항목의 필드를 설명합니다.

필드 설명 형식
hostHeader

요청의 권한 헤더.

문자열

sslCipher

클라이언트 TLS 연결을 설정하는 데 사용되는 암호 집합의 OpenSSL 이름.

문자열

serviceNetworkArn

서비스 네트워크 ARN.

arn:aws:vpc-lattice:리전:계정:servicenetwork/id

resolvedUser

인증이 활성화되고 완료되었을 때의 사용자 ARN.

null | ARN | "익명" | "알 수 없음"

authDeniedReason

인증이 활성화된 경우 액세스가 거부되는 이유.

null | "서비스" | "네트워크" | "자격 증명"

requestMethod

요청의 메서드 헤더.

문자열

targetGroupArn

대상 호스트가 속하는 대상 호스트 그룹.

문자열

tlsVersion

TLS 버전.

TLSvx

userAgent

사용자-에이전트 헤더.

문자열

ServerNameIndication

[HTTPS만 해당] SSL 연결 소켓에 SNI(서버 이름 표시)에 대해 설정된 값.

문자열

destinationVpcId

대상 VPC ID.

vpc-xxxxxxxx

sourceIpPort

클라이언트의 IP 주소 및 소스 포트.

ip:포트

targetIpPort

클라이언트의 IP 주소 및 대상 포트.

ip:포트

serviceArn

서비스 ARN.

arn:aws:vpc-lattice:리전:계정:service/id

sourceVpcId

소스 VPC.

vpc-xxxxxxxx

requestPath

요청의 경로.

LatticePath? : 경로

startTime

요청 시작 시간.

YYYY-MM-DDTHH:MM:SSZ

protocol

프로토콜. 현재 HTTP/1.1 또는 HTTP/2.

문자열

responseCode

HTTP 응답 코드입니다. 최종 헤더의 응답 코드만 기록됩니다. 자세한 정보는 액세스 로그 문제 해결을 참조하세요.

정수

bytesReceived

받은 본문 및 헤더 바이트.

정수

bytesSent

보낸 본문 및 헤더 바이트.

정수

duration

시작 시간부터 마지막 바이트 출력까지의 총 요청 시간(밀리초).

정수

requestToTargetDuration

시작 시간부터 대상으로 전송된 마지막 바이트까지의 총 요청 시간(밀리초).

정수

responseFromTargetDuration

대상 호스트에서 읽은 첫 번째 바이트부터 클라이언트로 전송된 마지막 바이트까지의 총 요청 시간(밀리초).

정수

grpcResponseCode

gRPC 응답 코드. 자세한 내용은 gRPC에서의 상태 코드 및 사용을 참조하세요. 서비스에서 gRPC를 지원하는 경우에만 이 필드를 기록합니다.

정수

callerPrincipal

인증된 보안 주체.

문자열

callerX509SubjectCN

주체 이름(CN).

문자열

callerX509IssuerOU

발급자(OU).

문자열

callerX509SANNameCN

발급자 대체(이름/CN).

문자열

callerX509SANDNS

주체 대체 이름(DNS).

문자열

callerX509SANURI

주체 대체 이름(URI).

문자열

sourceVpcArn

요청이 시작된 VPC의 ARN.

arn:aws:ec2:리전:계정:vpc/id

다음은 로그 항목의 예시입니다.

{ "hostHeader": "example.com", "sslCipher": "-", "serviceNetworkArn": "arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/svn-1a2b3c4d", "resolvedUser": "Unknown", "authDeniedReason": "null", "requestMethod": "GET", "targetGroupArn": "arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1a2b3c4d", "tlsVersion": "-", "userAgent": "-", "serverNameIndication": "-", "destinationVpcId": "vpc-0abcdef1234567890", "sourceIpPort": "178.0.181.150:80", "targetIpPort": "131.31.44.176:80", "serviceArn": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-1a2b3c4d", "sourceVpcId": "vpc-0abcdef1234567890", "requestPath": "/billing", "startTime": "2023-07-28T20:48:45Z", "protocol": "HTTP/1.1", "responseCode": 200, "bytesReceived": 42, "bytesSent": 42, "duration": 375, "requestToTargetDuration": 1, "responseFromTargetDuration": 1, "grpcResponseCode": 1 }

액세스 로그 문제 해결

이 섹션에는 액세스 로그에 표시될 수 있는 HTTP 오류 코드에 대한 설명이 포함되어 있습니다.

오류 코드 가능한 원인

HTTP 400: 잘못된 요청

  • 클라이언트가 HTTP 사양을 충족하지 않는 잘못된 형식의 요청을 전송했습니다.

  • 전체 요청 헤더 또는 100개 이상의 헤더에 대해 요청 헤더가 60K를 초과했습니다.

  • 클라이언트가 전체 요청 본문을 보내기 전에 연결을 종료했습니다.

HTTP 403: 금지됨

서비스에 대한 인증이 구성되었지만 수신되는 요청이 인증되거나 승인되지 않았습니다.

HTTP 404: 존재하지 않는 서비스

사용자가 존재하지 않거나 올바른 서비스 네트워크에 등록되지 않은 서비스에 연결을 시도하고 있습니다.

HTTP 500: 내부 서버 오류

VPC Lattice에서 대상에 연결하지 못하는 등의 오류가 발생했습니다.

HTTP 502: 잘못된 게이트웨이

VPC Lattice에 오류가 발생했습니다.