こんにちは。middleです。

知らない間にNLBにアクセスログ機能が追加されてたので、本日はそちらについてです。

 

★今回のお題

NLBのアクセスログを有効化したい

早速やってみましょう
↓↓↓

Englishページしかまだないようですが、公式ドキュメントはこちらです。

手順としてはまず、保管先のS3バケットの設定を実施した上で、NLBログの有効化を実施します。

 

★(前提)ログ有効化できるNLBについて

アクセスログに対応したといってもすべてではなく、リスナーのプロトコルがTLSのもののみです。TCPのものは対応してません。

まあなんというか、「NLBがアクセスログに対応した」というより、「NLBがTLSのTerminationが可能になった」という方が正しいんですね。

■参考:
New – TLS Termination for Network Load Balancers

TLS Listeners for Your Network Load Balancer – Elastic Load Balancing

 

 

★ログ保管先S3バケット設定について

バケットポリシーで「s3:PutObject」と「s3:GetBucketAcl」権限を許可する必要があります。

Principalは「delivery.logs.amazonaws.com」なところが、ALBやCLBと違います。

 

{
  “Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “AWSLogDeliveryWrite”,
“Effect”: “Allow”,
“Principal”: {
“Service”: [ “delivery.logs.amazonaws.com” ]
  },
“Action”: [ “s3:PutObject” ],
“Resource”: “arn:aws:s3:::バケット名/prefix/AWSLogs/アカウントID/*”,
“Condition”: {“StringEquals”: {“s3:x-amz-acl”: “bucket-owner-full-control”}}
},
{
“Sid”: “AWSLogDeliveryAclCheck”,
“Effect”: “Allow”,
“Principal”: {
“Service”: [ “delivery.logs.amazonaws.com” ]
},
“Action”: [ “s3:GetBucketAcl” ],
“Resource”: “arn:aws:s3:::バケット名
}
]
}

※なんだか行頭スペースが勝手に調整されちゃうので、詳しくは下記リンクをご覧ください。

■参考:
Access Logs for Your Network Load Balancer – Elastic Load Balancing

 

 

★NLBアクセスログ有効化方法

・マネジメントコンソール
→説明タブ属性欄の、「属性の編集」から有効化します。

 

・CLI
→「modify-load-balancer-attributes」コマンドで有効化します。

 

・CloudFormation
ALBと同様、propertiesの「LoadBalancerAttributes」でKey&Valueを指定します。

 

 

今までのリスナープロトコルTCPなNLBについては依然アクセスログが対応していないので、そこは失念しないようにしましょう。

お疲れ様でした 🙂

TOP