本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon VPC 格子的存取日誌
存取記錄會擷取有關 VPC 萊迪思服務的詳細資訊。您可以使用這些存取記錄來分析流量模式並稽核網路中的所有服務。
存取記錄是選用的,預設為停用。啟用存取記錄後,您可以隨時停用它們。
定價
發佈存取記錄時會收取費用。代表您 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 日誌
-
VPC 萊迪思通常會在 2 分鐘內將記 CloudWatch 錄傳送到記錄檔。不過,請記住,實際的記錄傳送時間是最佳的基礎,而且可能會有額外的延遲。
如果 CloudWatch 記錄群組沒有特定權限,則會自動建立資源原則並新增至記錄群組。如需詳細資訊,請參閱 Amazon CloudWatch 使用者指南中的傳送至 CloudWatch 日誌的日誌。
您可以在主控台的 [記錄群組 CloudWatch ] 底下找到傳送至的存取記 CloudWatch 錄。如需詳細資訊,請參閱 Amazon CloudWatch 使用者指南中的檢視傳送至 CloudWatch 日誌的日誌資料。
Amazon S3
-
VPC 萊迪思通常會在 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 萊迪思通常會在 2 分鐘內將日誌交付給 Firehose。不過,請記住,實際的記錄傳送時間是最佳的基礎,而且可能會有額外的延遲。
系統會自動建立服務連結角色,授與 VPC 萊迪思傳送存取記錄的權限。 Amazon Data Firehose為了成功自動建立該角色,使用者必須有
iam:CreateServiceLinkedRole
動作的許可。如需詳細資訊,請參閱 Amazon CloudWatch 使用者指南 Amazon Data Firehose中的傳送日誌。如需檢視傳送至的日誌的詳細資訊 Amazon Data Firehose,請參閱Amazon Data Firehose 開發人員指南中的監控 Amazon Kinesis Data Streams。
啟用存取日誌
完成下列程序來設定存取日誌,以擷取存取日誌並將其傳送至您選擇的目的地。
使用主控台啟用存取記錄
您可以在建立期間啟用服務網路或服務的存取記錄。您也可以在建立服務網路或服務之後啟用存取記錄,如下列程序所述。
使用主控台建立基本服務
前往 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
選取服務網路或服務。
-
選擇 [動作]、[編輯記錄設定]
-
開啟存取記錄切換開關。
-
新增存取記錄的傳送目的地,如下所示:
-
選取CloudWatch 記錄群組,然後選擇記錄群組。若要建立記錄群組,請在中選擇 [建立記錄群組] CloudWatch。
-
選取 S3 儲存貯體並輸入 S3 儲存貯體路徑,包括任何前置詞。若要搜尋 S3 儲存貯體,請選擇瀏覽 S3。
-
選取 Kinesis Data Firehose 傳送串流,然後選擇交付串流。若要建立交付串流,請選擇在 Kinesis 中建立交付串流。
-
-
選擇儲存變更。
使用啟用存取記錄 AWS CLI
使用 CLI 命令可啟create-access-log-subscription用服務網路或服務的存取記錄。
訪問日誌內容
下表說明存取日誌項目的欄位。
欄位 | 描述 | 格式 |
---|---|---|
hostHeader |
請求的權威標頭。 |
string |
sslCipher |
用來建立用戶端 TLS 連線之密碼集的 OpenSSL 名稱。 |
string |
serviceNetworkArn |
服務網絡 ARN。 |
|
resolvedUser |
啟用驗證並完成驗證時,使用者的 ARN。 |
空 | ARN |「匿名」|「未知」 |
authDeniedReason |
啟用驗證時拒絕存取的原因。 |
空 |「服務」|「網絡」|「身份」 |
requestMethod |
請求的方法頭。 |
string |
targetGroupArn |
目標主機所屬的目標主機群組。 |
string |
tlsVersion |
TLS 版本。 |
|
userAgent |
使用者代理程式標頭。 |
string |
ServerNameIndication |
[僅限 HTTPS] 針對伺服器名稱指示 (SNI) 在 ssl 連線通訊端上設定的值。 |
string |
destinationVpcId |
目的地 VPC 識別碼。 |
|
sourceIpPort |
來源的 IP 位址和:連接埠。 |
|
targetIpPort |
目標的 IP 位址和連接埠。 |
|
serviceArn |
該服務 ARN。 |
|
sourceVpcId |
來源 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 響應代碼。如需詳細資訊,請參閱狀態碼及其在 gRPC 中的使用 |
integer |
callerPrincipal |
已驗證的主體。 |
string |
callerX509SubjectCN |
主旨名稱 (CN)。 |
string |
callerX509IssuerOU |
發行者 (OU)。 |
string |
callerX509SANNameCN |
發行人替代(名稱/CN)。 |
string |
callerX509SANDNS |
主體替代名稱 (DNS)。 |
string |
callerX509SANURI |
主旨替代名稱 (URI)。 |
string |
sourceVpcArn |
產生請求的 VPC 的 ARN。 |
|
範例
以下為日誌項目的範例。
{
"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 403:禁止 |
已針對服務設定驗證,但未驗證或授權傳入要求。 |
不存在的服務 |
您嘗試連線到不存在或未註冊到正確服務網路的服務。 |
HTTP 500:內部伺服器錯誤 |
VPC 萊迪斯遇到錯誤,例如無法連接到目標。 |
HTTP 502:無效的閘道 |
VPC 格子遇到錯誤。 |