Amazon VPC Lattice 的存取日誌 - Amazon VPC Lattice

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon VPC Lattice 的存取日誌

存取日誌會擷取有關 VPC Lattice 服務和資源組態的詳細資訊。您可以使用這些存取日誌來分析流量模式,並稽核網路中的所有服務。對於 VPC Lattice 服務,我們會發佈 VpcLatticeAccessLogs ,對於資源組態,我們會發佈VpcLatticeResourceAccessLogs需要單獨設定的 。

存取日誌是選用的,預設為停用。啟用存取日誌之後,您可以隨時停用它們。

定價

發佈存取日誌時需付費。代您 AWS 原生發佈的日誌稱為已結束日誌。如需有關已終止日誌定價的詳細資訊,請參閱 Amazon CloudWatch 定價、選擇日誌,以及檢視已終止日誌下的定價。

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的使用者、群組或角色的政策後,請前往 啟用存取日誌

存取日誌目的地

您可以將存取日誌傳送至下列目的地。

Amazon CloudWatch Logs
  • VPC Lattice 通常會在 2 分鐘內將日誌交付至 CloudWatch 日誌。不過,請記住,實際日誌交付時間是盡最大努力的,而且可能會有額外的延遲。

  • 如果 CloudWatch 日誌群組沒有特定許可,會自動建立資源政策並新增至日誌群組。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的傳送至日誌的 CloudWatch 日誌

  • 您可以在 主控台的日誌群組 CloudWatch 下找到傳送至 的 CloudWatch存取日誌。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的檢視傳送至日誌的 CloudWatch 日誌資料

Amazon S3
  • VPC Lattice 通常會在 6 分鐘內將日誌交付至 Amazon S3。不過,請記住,實際日誌交付時間是盡最大努力的,而且可能會有額外的延遲。

  • 如果儲存貯體沒有特定許可,系統會自動建立儲存貯體政策並新增至您的 Amazon S3 儲存貯體。如需詳細資訊,請參閱《Amazon 使用者指南》中的傳送至 Amazon S3 的日誌 CloudWatch

  • 傳送至 Amazon S3 的存取日誌使用以下命名慣例:

    [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/AccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
  • VpcLatticeResourceAccessLogs 傳送到 Amazon S3 的 使用以下命名慣例:

    [bucket]/[prefix]/AWSLogs/[accountId]/VpcLattice/ResourceAccessLogs/[region]/[YYYY/MM/DD]/[resource-id]/[accountId]_VpcLatticeResourceAccessLogs_[region]_[resource-id]_YYYYMMDDTHHmmZ_[hash].json.gz
Amazon Data Firehose
  • VPC Lattice 通常會在 2 分鐘內將日誌交付至 Firehose。不過,請記住,實際日誌交付時間是盡最大努力的,而且可能會有額外的延遲。

  • 服務連結角色會自動建立,以授予 VPC Lattice 將存取日誌傳送至其中的許可 Amazon Data Firehose。為了成功自動建立該角色,使用者必須有 iam:CreateServiceLinkedRole 動作的許可。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的傳送至 的日誌 Amazon Data Firehose

  • 如需檢視傳送至 之日誌的詳細資訊 Amazon Data Firehose,請參閱《 Amazon Data Firehose 開發人員指南》中的監控 Amazon Kinesis Data Streams

啟用存取日誌

完成下列程序,以設定存取日誌,以擷取存取日誌並將其交付至您選擇的目的地。

使用主控台啟用存取日誌

您可以在建立期間啟用服務網路、服務或資源組態的存取日誌。您也可以在建立服務網路、服務或資源組態後啟用存取日誌,如下列程序所述。

使用主控台建立基本服務
  1. 在 開啟 Amazon VPC主控台https://console.aws.amazon.com/vpc/

  2. 選取服務網路、服務或資源組態。

  3. 選擇動作編輯日誌設定

  4. 開啟存取日誌切換開關。

  5. 為您的存取日誌新增交付目的地,如下所示:

    • 選取CloudWatch 日誌群組,然後選擇日誌群組。若要建立日誌群組,請選擇在 中建立日誌群組 CloudWatch

    • 選取 S3 儲存貯體並輸入 S3 儲存貯體路徑,包括任何字首。若要搜尋 S3 儲存貯體,請選擇瀏覽 S3

    • 選取 Kinesis Data Firehose 交付串流,然後選擇交付串流。若要建立交付串流,請選擇在 Kinesis 中建立交付串流

  6. 選擇 Save changes (儲存變更)。

使用 啟用存取日誌 AWS CLI

使用 CLI命令create-access-log-subscription來啟用服務網路或服務的存取日誌。

存取日誌內容

下表說明存取日誌項目的欄位。

欄位 描述 格式
hostHeader

請求的授權標頭。

string

sslCipher

用於建立用戶端TLS連線之一組密碼的 OpenSSL 名稱。

string

serviceNetworkArn

服務網路 ARN。

arn:aws:vpc-latticeregionaccount:servicenetwork/id

resolvedUser

身分驗證已啟用且身分驗證完成時的使用者 ARN 。

null | ARN | "匿名" | "未知"

authDeniedReason

啟用身分驗證時拒絕存取的原因。

null | "Service" | "Network" | "Identity"

requestMethod

請求的方法標頭。

string

targetGroupArn

目標主機所屬的目標主機群組。

string

tlsVersion

TLS 版本。

TLSvx

userAgent

使用者代理程式標頭。

string

ServerNameIndication

【HTTPS 僅限】 伺服器名稱指示 () 在 ssl 連線通訊端上設定的值SNI。

string

destinationVpcId

目的地 VPC ID。

vpc-xxxxxxxx

sourceIpPort

來源的 IP 地址和 :port。

ip:port

targetIpPort

目標的 IP 地址和連接埠。

ip:port

serviceArn

服務 ARN。

arn:aws:vpc-latticeregionaccount:service/id

sourceVpcId

來源 VPC ID。

vpc-xxxxxxxx

requestPath

請求的路徑。

LatticePath?:path

startTime

請求開始時間。

YYYY-MM-DDTHHMMSSZ

protocol

通訊協定。目前為 HTTP/1.1 或 HTTP/2。

string

responseCode

HTTP 回應碼。只會記錄最終標頭的回應碼。如需詳細資訊,請參閱對存取日誌進行故障診斷

integer

bytesReceived

收到的內文和標頭位元組。

integer

bytesSent

傳送的內文和標頭位元組。

integer

duration

從開始時間到最後一個位元組輸出的請求總持續時間,以毫秒為單位。

integer

requestToTargetDuration

從開始時間到傳送至目標的最後一個位元組的請求總持續時間,以毫秒為單位。

integer

responseFromTargetDuration

從目標主機讀取到傳送至用戶端之最後一個位元組的請求總持續時間,以毫秒為單位。

integer

grpcResponseCode

gRPC 回應碼。如需詳細資訊,請參閱 狀態碼及其在 g 中的使用RPC。只有在服務支援 g 時,才會記錄此欄位RPC。

integer

callerPrincipal

已驗證的主體。

string

callerX509SubjectCN

主旨名稱 (CN)。

string

callerX509IssuerOU

發行者 (OU)。

string

callerX509SANNameCN

發行者替代方案 (名稱/CN)。

string

callerX509SANDNS

主體替代名稱 (DNS)。

string

callerX509SANURI

主體替代名稱 (URI)。

string

sourceVpcArn

發出VPC請求ARN的 。

arn:aws:ec2:regionaccount: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 }

資源存取日誌內容

下表說明資源存取日誌項目的欄位。

欄位 描述 格式
serviceNetworkArn

服務網路 ARN。

arn:partitionvpc-latticeregionaccount:servicenetwork/id

serviceNetworkResourceAssociationId

服務網路資源 ID。

snra-xxx

vpcEndpointId

用來存取 資源的端點 ID。

string

sourceVpcArn

啟動連線的來源VPCARN或 VPC 。

string

resourceConfigurationArn

存取的資源組態ARN的 。

string

protocol

用於與資源組態通訊的通訊協定。目前僅支援 tcp。

string

sourceIpPort

啟動連線之來源的 IP 地址和連接埠。

ip:port

destinationIpPort

起始連線的 IP 地址和連接埠。這將是 SN-E/SN-A 的 IP。

ip:port

gatewayIpPort

資源閘道用來存取資源的 IP 地址和連接埠。

ip:port

resourceIpPort

資源的 IP 地址和連接埠。

ip:port

範例

以下為日誌項目的範例。

{ "eventTimestamp": "2024-12-02T10:10:10.123Z", "serviceNetworkArn": "arn:aws:vpc-lattice:us-west-2:1234567890:servicenetwork/sn-1a2b3c4d", "serviceNetworkResourceAssociationId": "snra-1a2b3c4d", "vpcEndpointId": "vpce-01a2b3c4d", "sourceVpcArn": "arn:aws:ec2:us-west-2:1234567890:vpc/vpc-01a2b3c4d", "resourceConfigurationArn": "arn:aws:vpc-lattice:us-west-2:0987654321:resourceconfiguration/rcfg-01a2b3c4d", "protocol": "tcp", "sourceIpPort": "172.31.23.56:44076", "destinationIpPort": "172.31.31.226:80", "gatewayIpPort": "10.0.28.57:49288", "resourceIpPort": "10.0.18.190:80" }

對存取日誌進行故障診斷

本節包含您在存取日誌中可能看到的HTTP錯誤代碼說明。

錯誤代碼 可能原因

HTTP 400:錯誤請求

  • 用戶端傳送了不符合HTTP規格的格式錯誤請求。

  • 整個請求標頭或超過 100 個標頭的請求標頭超過 60K。

  • 用戶端在傳送完整請求內文之前關閉了連線。

HTTP 403:禁止

已為 服務設定身分驗證,但傳入的請求未經過身分驗證或授權。

HTTP 404:不存在的服務

您正在嘗試連線到不存在或未註冊至正確服務網路的服務。

HTTP 500:內部伺服器錯誤

VPC Lattice 發生錯誤,例如無法連線至目標。

HTTP 502:錯誤的閘道

VPC Lattice 遇到錯誤。