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

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

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

啟用存取日誌

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

使用主控台啟用存取記錄

您可以在建立期間啟用服務網路或服務的存取記錄。您也可以在建立服務網路或服務之後啟用存取記錄,如下列程序所述。

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

  2. 選取服務網路或服務。

  3. 選擇 [動作]、[編輯記錄設定]

  4. 開啟存取記錄切換開關。

  5. 新增存取記錄的傳送目的地,如下所示:

    • 選取CloudWatch 記錄群組,然後選擇記錄群組。若要建立記錄群組,請在中選擇 [建立記錄群組] CloudWatch。

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

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

  6. 選擇儲存變更

使用啟用存取記錄 AWS CLI

使用 CLI 命令可啟create-access-log-subscription用服務網路或服務的存取記錄。

訪問日誌內容

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

欄位 描述 格式
hostHeader

請求的權威標頭。

string

sslCipher

用來建立用戶端 TLS 連線之密碼集的 OpenSSL 名稱。

string

serviceNetworkArn

服務網絡 ARN。

arn: aws: vpc-格子:區域:帳戶:服務工作/ID

resolvedUser

啟用驗證並完成驗證時,使用者的 ARN。

空 | ARN |「匿名」|「未知」

authDeniedReason

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

空 |「服務」|「網絡」|「身份」

requestMethod

請求的方法頭。

string

targetGroupArn

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

string

tlsVersion

TLS 版本。

TLSv x

userAgent

使用者代理程式標頭。

string

ServerNameIndication

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

string

destinationVpcId

目的地 VPC 識別碼。

vpc

sourceIpPort

來源的 IP 位址和:連接埠。

IP: 連接埠

targetIpPort

目標的 IP 位址和連接埠。

IP: 連接埠

serviceArn

該服務 ARN。

arn: AW: vpc-格子:區域:帳戶:服務/識別碼

sourceVpcId

來源 VPC 識別碼。

vpc

requestPath

請求的路徑。

LatticePath? : 路徑

startTime

請求開始時間。

年-毫米-長 T 毫米:SS Z

protocol

通訊協定。目前無論是 HTTP /1.1 或 HTTP/2。

string

responseCode

HTTP 回應代碼。只會記錄最終標頭的回應碼。如需詳細資訊,請參閱 疑難排解存取記

integer

bytesReceived

接收到的主體和標頭字節。

integer

bytesSent

正文和頭字節發送。

integer

duration

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

integer

requestToTargetDuration

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

integer

responseFromTargetDuration

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

integer

grpcResponseCode

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

integer

callerPrincipal

已驗證的主體。

string

callerX509SubjectCN

主旨名稱 (CN)。

string

callerX509IssuerOU

發行者 (OU)。

string

callerX509SANNameCN

發行人替代(名稱/CN)。

string

callerX509SANDNS

主體替代名稱 (DNS)。

string

callerX509SANURI

主旨替代名稱 (URI)。

string

sourceVpcArn

產生請求的 VPC 的 ARN。

arn: aw: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 規格。

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

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

HTTP 403:禁止

已針對服務設定驗證,但未驗證或授權傳入要求。

不存在的服務

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

HTTP 500:內部伺服器錯誤

VPC 萊迪斯遇到錯誤,例如無法連接到目標。

HTTP 502:無效的閘道

VPC 格子遇到錯誤。