기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Network Load Balancer의 액세스 로그 활성화
로드 밸런서에 대한 액세스 로그를 활성화할 때는 로드 밸런서가 로그를 저장할 S3 버킷의 이름을 지정해야 합니다. 버킷에 액세스 로그를 쓰는 Elastic Load Balancing 권한을 부여하는 버킷 정책이 이 버킷에 있어야 합니다.
로드 밸런서에 TLS 리스너가 있고 로그가 TLS 요청에 관한 정보만 포함하는 경우에만 액세스 로그가 생성됩니다.
버킷 요구 사항
기존 버킷을 사용하거나 액세스 로그 전용 버킷을 생성할 수 있습니다. 버킷은 다음 요구 사항을 충족해야 합니다.
요구 사항
-
버킷은 로드 밸런서와 같은 리전에 있어야 합니다. 서로 다른 계정에서 버킷과 로드 밸런서를 소유할 수 있습니다.
-
지정하는 접두사에는 AWSLogs가 포함되지 않아야 합니다. AWSLogs로 시작하는 파일 이름의 일부가 지정하는 버킷 이름과 접두사 뒤에 추가됩니다.
-
버킷에 대한 액세스 로그 쓰기 권한을 부여하는 버킷 정책이 이 버킷에 있어야 합니다. 버킷 정책은 버킷에 대한 액세스 권한을 정의하기 위해 액세스 정책 언어로 작성된 JSON 문의 집합입니다.
버킷 정책 예제
다음은 예제 정책입니다. Resource 요소에서 amzn-s3-demo-destination-bucket을 액세스 로그의 S3 버킷 이름으로 바꿉니다. 버킷 접두사를 사용하지 않는 경우 Prefix/를 생략해야 합니다. 에서 로드 밸런서를 사용하여 AWS 계정의 ID를 aws:SourceAccount지정합니다. aws:SourceArn에서 region과 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) 및 Amazon S3를 사용한 서버 측 암호화 지정 AWS KMS (SSE-KMS)을 참조하세요.
키 정책은 서비스가 로그를 암호화하고 해독할 수 있도록 허용해야 합니다. 다음은 예제 정책입니다.
- 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
-
액세스 로그를 활성화하려면
https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 [Load Balancers]를 클릭합니다.
-
로드 밸런서 이름을 선택하여 세부 정보 페이지를 엽니다.
-
속성성(Attributes) 탭에서 편집(Edit)을 선택합니다.
-
모니터링에서 액세스 로그를 켭니다.
-
S3 URI로 로그 파일의 S3 URI를 입력합니다. 지정하는 URI는 접두사 사용 여부에 따라 달라집니다.
-
변경 사항 저장을 선택합니다.
- 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"