本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用 Network Load Balancer 的存取日誌
當您對負載平衡器啟用存取記錄時,您必須指定 S3 儲存貯體的名稱,供負載平衡器存放日誌。儲存貯體必須具有儲存貯體政策,能授予 Elastic Load Balancing 寫入儲存貯體的許可。
只有在負載平衡器具有 TLS 接聽程式,且日誌僅包含 TLS 請求的相關資訊時,才會建立存取日誌。
儲存貯體需求
您可以使用現有儲存貯體,也可以建立專門用於存取日誌的儲存貯體。儲存貯體必須符合下列需求。
要求
-
儲存貯體與負載平衡器必須位於相同的 Region (區域)。儲存貯體和負載平衡器可以由不同的帳戶擁有。
-
您指定的前綴不得包含 AWSLogs。我們在您指定的儲存貯體名稱和前綴之後,增加了以 AWSLogs 開頭的檔案名稱部分。
-
儲存貯體必須有儲存貯體政策,以授權將存取日誌寫入您的儲存貯體。儲存貯體政策是以存取政策語言所編寫的 JSON 陳述式集合,可定義儲存貯體的存取許可。
儲存貯體政策的範例
政策範例如下。對於 Resource元素,請以存取日誌的 S3 儲存貯體名稱取代 amzn-s3-demo-destination-bucket。如果您不使用儲存貯體字首,請務必省略字首/。對於 aws:SourceAccount,使用負載平衡器指定 AWS 帳戶的 ID。對於 aws:SourceArn,將區域 和 012345678912 分別取代為負載平衡器的區域和帳戶 ID。
- JSON
-
-
{
"Version":"2012-10-17",
"Id": "AWSLogDeliveryWrite",
"Statement": [
{
"Sid": "AWSLogDeliveryAclCheck",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket",
"Condition": {
"StringEquals": {
"aws:SourceAccount": [
"012345678912"
]
},
"ArnLike": {
"aws:SourceArn": [
"arn:aws:logs:us-east-1:012345678912:*"
]
}
}
},
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/Prefix/AWSLogs/account-ID/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control",
"aws:SourceAccount": [
"012345678912"
]
},
"ArnLike": {
"aws:SourceArn": [
"arn:aws:logs:us-east-1:012345678912:*"
]
}
}
}
]
}
加密
您可利用下列其中一種方式為 Amazon S3 存取日誌儲存貯體啟用伺服器端加密:
† 使用 Network Load Balancer 存取日誌時,您無法使用 AWS 受管金鑰,您必須使用客戶受管金鑰。
如需詳細資訊,請參閱《Amazon S3 使用者指南》中的指定 Amazon S3 加密 (SSE-S3) 和使用 AWS KMS (SSE-KMS) 指定伺服器端加密。 Amazon S3
金鑰政策必須允許服務加密及解密日誌。政策範例如下。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "delivery.logs.amazonaws.com"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
}
]
}
使用下列程序來設定存取日誌,以擷取請求資訊並將日誌檔案交付至 S3 儲存貯體。
- Console
-
- AWS CLI
-
啟用存取日誌
使用 modify-load-balancer-attributes 命令搭配相關屬性。
aws elbv2 modify-load-balancer-attributes \
--load-balancer-arn load-balancer-arn \
--attributes \
Key=access_logs.s3.enabled,Value=true \
Key=access_logs.s3.bucket,Value=amzn-s3-demo-logging-bucket \
Key=access_logs.s3.prefix,Value=logging-prefix
- CloudFormation
-
啟用存取日誌
更新 AWS::ElasticLoadBalancingV2::LoadBalancer 資源以包含相關屬性。
Resources:
myLoadBalancer:
Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
Properties:
Name: my-nlb
Type: network
Scheme: internal
Subnets:
- !Ref subnet-AZ1
- !Ref subnet-AZ2
SecurityGroups:
- !Ref mySecurityGroup
LoadBalancerAttributes:
- Key: "access_logs.s3.enabled"
Value: "true"
- Key: "access_logs.s3.bucket"
Value: "amzn-s3-demo-logging-bucket"
- Key: "access_logs.s3.prefix"
Value: "logging-prefix"