こんにちは。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については依然アクセスログが対応していないので、そこは失念しないようにしましょう。
お疲れ様でした 🙂