本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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。
啟用存取日誌
完成下列程序,以設定存取日誌,以擷取存取日誌並將其交付至您選擇的目的地。
使用主控台啟用存取日誌
您可以在建立期間啟用服務網路、服務或資源組態的存取日誌。您也可以在建立服務網路、服務或資源組態後啟用存取日誌,如下列程序所述。
使用主控台建立基本服務
在 開啟 Amazon VPC主控台https://console.aws.amazon.com/vpc/
。 -
選取服務網路、服務或資源組態。
-
選擇動作、編輯日誌設定。
-
開啟存取日誌切換開關。
-
為您的存取日誌新增交付目的地,如下所示:
-
選取CloudWatch 日誌群組,然後選擇日誌群組。若要建立日誌群組,請選擇在 中建立日誌群組 CloudWatch。
-
選取 S3 儲存貯體並輸入 S3 儲存貯體路徑,包括任何字首。若要搜尋 S3 儲存貯體,請選擇瀏覽 S3。
-
選取 Kinesis Data Firehose 交付串流,然後選擇交付串流。若要建立交付串流,請選擇在 Kinesis 中建立交付串流。
-
-
選擇 Save changes (儲存變更)。
使用 啟用存取日誌 AWS CLI
使用 CLI命令create-access-log-subscription
存取日誌內容
下表說明存取日誌項目的欄位。
欄位 | 描述 | 格式 |
---|---|---|
hostHeader
|
請求的授權標頭。 |
string |
sslCipher
|
用於建立用戶端TLS連線之一組密碼的 OpenSSL 名稱。 |
string |
serviceNetworkArn
|
服務網路 ARN。 |
arn:aws:vpc-lattice |
resolvedUser
|
身分驗證已啟用且身分驗證完成時的使用者 ARN 。 |
null | ARN | "匿名" | "未知" |
authDeniedReason
|
啟用身分驗證時拒絕存取的原因。 |
null | "Service" | "Network" | "Identity" |
requestMethod
|
請求的方法標頭。 |
string |
targetGroupArn
|
目標主機所屬的目標主機群組。 |
string |
tlsVersion
|
TLS 版本。 |
TLSv |
userAgent
|
使用者代理程式標頭。 |
string |
ServerNameIndication
|
【HTTPS 僅限】 伺服器名稱指示 () 在 ssl 連線通訊端上設定的值SNI。 |
string |
destinationVpcId
|
目的地 VPC ID。 |
vpc- |
sourceIpPort
|
來源的 IP 地址和 :port。 |
|
targetIpPort
|
目標的 IP 地址和連接埠。 |
|
serviceArn
|
服務 ARN。 |
arn:aws:vpc-lattice |
sourceVpcId
|
來源 VPC ID。 |
vpc- |
requestPath
|
請求的路徑。 |
LatticePath?: |
startTime
|
請求開始時間。 |
|
protocol
|
通訊協定。目前為 HTTP/1.1 或 HTTP/2。 |
string |
responseCode
|
HTTP 回應碼。只會記錄最終標頭的回應碼。如需詳細資訊,請參閱對存取日誌進行故障診斷。 |
integer |
bytesReceived
|
收到的內文和標頭位元組。 |
integer |
bytesSent
|
傳送的內文和標頭位元組。 |
integer |
duration
|
從開始時間到最後一個位元組輸出的請求總持續時間,以毫秒為單位。 |
integer |
requestToTargetDuration
|
從開始時間到傳送至目標的最後一個位元組的請求總持續時間,以毫秒為單位。 |
integer |
responseFromTargetDuration
|
從目標主機讀取到傳送至用戶端之最後一個位元組的請求總持續時間,以毫秒為單位。 |
integer |
grpcResponseCode
|
gRPC 回應碼。如需詳細資訊,請參閱 狀態碼及其在 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: |
範例
以下為日誌項目的範例。
{
"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: |
serviceNetworkResourceAssociationId
|
服務網路資源 ID。 |
|
vpcEndpointId
|
用來存取 資源的端點 ID。 |
string |
sourceVpcArn
|
啟動連線的來源VPCARN或 VPC 。 |
string |
resourceConfigurationArn
|
存取的資源組態ARN的 。 |
string |
protocol
|
用於與資源組態通訊的通訊協定。目前僅支援 tcp。 |
string |
sourceIpPort
|
啟動連線之來源的 IP 地址和連接埠。 |
|
destinationIpPort
|
起始連線的 IP 地址和連接埠。這將是 SN-E/SN-A 的 IP。 |
|
gatewayIpPort
|
資源閘道用來存取資源的 IP 地址和連接埠。 |
|
resourceIpPort
|
資源的 IP 地址和連接埠。 |
|
範例
以下為日誌項目的範例。
{
"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 403:禁止 |
已為 服務設定身分驗證,但傳入的請求未經過身分驗證或授權。 |
HTTP 404:不存在的服務 |
您正在嘗試連線到不存在或未註冊至正確服務網路的服務。 |
HTTP 500:內部伺服器錯誤 |
VPC Lattice 發生錯誤,例如無法連線至目標。 |
HTTP 502:錯誤的閘道 |
VPC Lattice 遇到錯誤。 |