[AWS] NLB Access log 활성화 방법
NLB 엑세스 로그도 활성화 하려면 S3를 만들고 권한을 먼저 부여해야 해당 디렉토리로 로그를 저장 할 수 있다.
1. S3를 만들고 버킷 선택후 "권한" > "버킷정책"으로 가서 아래와 같이 작성 한후 저장 해준다.
(저장 경로 패턴만 잘 지정해 주면 별 문제 없이 저장된다.)
{
"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"] # 어카운트 12자리 입력
},
"ArnLike": {
"aws:SourceArn": ["arn:aws:logs:region:012345678912:*"] # 리전명, 어카운트명 12자리 입력
}
}
},
{
"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/*",
# 버킷명 뒷부분을 동일하게 맞춰 주거나 "버킷명/nlblog/*" 등과 같은 패턴으로 입력해 준다.
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control",
"aws:SourceAccount": ["012345678912"] # 어카운트 12자리 입력
},
"ArnLike": {
"aws:SourceArn": ["arn:aws:logs:region:012345678912:*"] # 리전명, 어카운트명 12자리 입력
}
}
}
]
}
위쪽에 권한만 잘 들어갔다면 AWS 문서에 나와 있는 아래 순서대로 활성화 하면 된다.
- 에서 Amazon EC2 콘솔을 엽니다https://console.aws.amazon.com/ec2/.
- 탐색 창에서 로드 밸런서를 선택합니다.
- 로드 밸런서 이름을 선택하여 세부 정보 페이지를 엽니다.
- 속성성(Attributes) 탭에서 편집(Edit)을 선택합니다.
- [Edit load balancer attributes] 페이지에서 다음 작업을 수행합니다.
- 모니터링에서 액세스 로그를 켭니다.
- S3 찾아보기를 선택하고 사용할 버킷을 선택합니다. 또는 접두사를 포함하여 S3 버킷의 위치를 입력합니다.
- Save changes(변경 사항 저장)를 선택합니다.
로그는 zip 형태로 시간 단위로 저장 된다.
원본출처. https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/network/enable-access-logs.html