Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
AWSSupport-EnableVPCFlowLogs 런북을 사용하여 VPC 내 흐름 로그를 생성하는 방법
본 기사는 AWS 지원 자동화 워크플로우 (Support Automation Workflow)의 “AWSSupport-EnableVPCFlowLogs” 런북을 사용하여 AWS VPC 흐름 로그 (VPC flow log)를 활성화 하는 방법에 관해 설명합니다.
[안내]
VPC 흐름 로그는 VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 수집할 수 있는 기능입니다. 흐름 로그를 통해 보안 그룹 규칙 진단, 인스턴스에 도달하는 트래픽 모니터링, 그리고 네트워크 인터페이스의 트래픽 방향을 확인하는데 사용 가능합니다.
AWSSupport-EnableVPCFlowLogs 런북을 사용하면 다음 리소스 유형에 대한 Amazon VPC 흐름 로그 생성을 한번에 최대 25개까지 자동 생성 가능합니다:
- 서브넷
- 탄력적 네트워크 인터페이스
- VPC
- 트랜짓 게이트웨이
- 트랜짓 게이트웨이 Attachment
아래의 흐름 로그 데이터를 게시할 대상을 지정할 수 있으며 데이터를 검색하고 확인 가능합니다:
- Amazon CloudWatch Logs
- Amazon S3
[중요사항1]
- VPC 흐름 로그를 생성하면 Amazon S3 및/또는 Amazon CloudWatch Logs에 로그를 저장하는 데 추가 비용이 발생합니다.
- 서브넷이나 VPC에 대한 흐름 로그를 생성하면 해당 서브넷 또는 VPC의 모든 네트워크 인터페이스가 모니터링됩니다.
[중요사항2]
- LogDestinationType을 cloud-watch-logs로 설정하고 LogGroupName 또는 LogDestinationArn 값을 지정하지 않는 경우 런북은 'AWSSupport-EnableVPCFlowLogs-automation:EXECUTION_ID' 이름으로 새로운 CloudWatch 로그 그룹 생성을 시도하며 로그 데이터 보존 기간을 14일로 설정합니다.
- LogDestinationType을 cloud-watch-logs로 설정하고 DeliverLogsPermissionArn 값을 지정하지 않는 경우 런북은 플로우 로그 서비스(vpc-flow-logs.amazonaws.com)가 해당 역할을 수임(sts:AssumeRole)할 수 있는 권한을 부여하기 위해 'AWSSupportCreateFlowLogsRole'이라는 새로운 IAM 역할 생성을 시도합니다.
- 로그 전송을 위해서는 AWS에 추가 권한을 부여해야 하며 로그 설정 시 AWS가 자동으로 권한을 생성하거나 로깅을 설정하기 전에 사용자가 직접 권한을 생성할 수 있습니다.
[런북 자동화 실행 절차]
-
해당 링크로 이동하여 왼쪽 네비게이션에서 자동화(Automation)을 선택한 뒤, (Excute runbook)을 선택합니다.
-
자동화 런북 모음에서 “AWSSupport-EnableVPCFlowLogs”를 선택한 후 Next를 클릭합니다.
-
자동화 런북 실행 시 4개의 실행 옵션이 있습니다.
-
Simple execution : 단일 계정에서 설정된 파라미터에 대해 가장 기본적인 로깅 실행 방식입니다.
-
Rate control : 여러 리소스에 대해 동시에 실행할 때 사용하며 동시성(Concurrency)과 오류 임계값(Error threshold)을 설정할 수 있습니다.
-
Multi-account and Region : 여러 AWS 계정과 리전에 걸쳐 흐름 로그를 구성할 때 사용하며 Organizations 또는 리소스 데이터 동기화와 함께 사용할 수 있습니다.
-
Manual execution : 자동화 워크플로우의 각 실행 단계를 순차적으로 수동으로 제어할 때 사용합니다.
본 기사에서는 Simple excution을 통해 단일 계정에서 수행하는 과정에 대해 소개하겠습니다.
- 입력 파라미터(Input Parameters) 항목에 필요한 정보를 입력합니다.
- DeliverLogsPermissionArn : 계정의 CloudWatch Logs 로그 그룹에 흐름 로그를 게시하도록 허용하는 IAM 역할의 ARN입니다.
LogDestinationType
파라미터에 대해s3
을 지정하는 경우, 이 값을 제공하지 마십시오. 자세한 내용은 CloudWatch 로그에 흐름 로그 게시를 참조하세요. - LogDestinationType : 흐름 로그 데이터가 게시되는 위치를 결정합니다.
LogDestinationType
을s3
로 지정한 경우DeliverLogsPermissionArn
또는 LogGroupName을 지정하지 마십시오. - LogFormat : 흐름 로그 레코드에 포함할 필드 및 레코드에 표시되는 순서입니다. 이 값을 미 지정할 경우 기본 형식을 사용하여 흐름 로그가 생성됩니다. 이 값을 지정하는 경우 하나 이상의 필드를 지정해야 하며 사용 가능한 필드 목록은 Amazon VPC 사용 설명서의 흐름 로그 레코드를 참조하시길 바랍니다.
- LogGroupName : 흐름 로그 데이터가 게시되는 CloudWatch Logs 로그 그룹의 이름입니다.
LogDestinationType
파라미터에 대해s3
을 지정하는 경우, 이 파라미터의 값을 제공하지 마십시오. - ResourceIds : 흐름 로그를 생성하려는 리소스를 입력해야 합니다. 이때, ID를 쉼표로 구분하여 최대 25개까지 지정 가능합니다.
- TrafficType : 로그할 트래픽의 유형입니다. 리소스가 수락하거나 거부하는 트래픽 또는 모든 트래픽을 로깅할 수 있습니다.
- LogDestinationArn : 흐름 로그 데이터가 게시되는 리소스의 ARN입니다.
LogDestinationType
파라미터에 대해cloud-watch-logs
가 지정되는 경우, 흐름 로그 데이터를 게시하려는 CloudWatch Logs 로그 그룹의 ARN을 지정합니다. 만약 파라미터가 없을 경우, 런북은 CloudWatch log group을 생성합니다.s3
이LogDestinationType
파라미터에 대해 지정되는 경우, 이 파라미터에 대해 흐름 로그 데이터를 게시하려는 Amazon S3 버킷의 ARN을 지정해야 하며 버킷의 폴더를 지정할 수도 있습니다. - LogFormatTransitGateway : 전송 게이트웨이 흐름 로그 레코드에 포함할 필드 및 레코드에 표시되는 순서입니다. 이 값을 미 지정할 경우 기본 형식을 사용하여 흐름 로그가 생성됩니다. 이 값을 지정하는 경우 최소 하나의 필드를 지정하며 사용 가능한 필드 목록은 전송 게이트웨이 흐름 로그 레코드를 참조하세요.
- AutomationAssumeRole : AWS IAM(Identity and Access Management) 역할의 Amazon Resource Name(ARN)을 의미합니다. 해당 항목에 입력이 없는 경우 현재 IAM 사용자를 통해 런북을 실행합니다. “AWSSupport-EnableVPCFlowLogs”를 실행하기 위해서는 다음과 같은 IAM 권한(IAM permission)이 필요합니다. 런북에 사용될 서비스 역할을 생성해야 하는 경우 콘솔을 사용하여 Automation을 위한 서비스 역할 생성을 참고하시길 바랍니다.
* ssm:StartAutomationExecution
* ssm:GetAutomationExecution
* ec2:CreateFlowLogs
* ec2:DeleteFlowLogs
* ec2:DescribeFlowLogs
* iam:AttachRolePolicy
* iam:CreateRole
* iam:CreatePolicy
* iam:DeletePolicy
* iam:DeleteRole
* iam:DeleteRolePolicy
* iam:GetPolicy
* iam:GetRole
* iam:TagRole
* iam:PassRole
* iam:PutRolePolicy
* iam:UpdateRole
* logs:CreateLogDelivery
* logs:CreateLogGroup
* logs:DeleteLogDelivery
* logs:DeleteLogGroup
* logs:DescribeLogGroups
* logs:DescribeLogStreams
* s3:GetBucketLocation
* s3:GetBucketAcl
* s3:GetBucketPublicAccessBlock
* s3:GetBucketPolicyStatus
* s3:GetBucketAcl
* s3:ListBucket
* s3:PutObject
* s3:GetAccountPublicAccessBlock
* logs:TagResource
* logs:PutRetentionPolicy
5 .이어서 런북이 실행된 결과를 확인 가능합니다.
- 이때 흐름 로그의 목적지가
cloud-watch-logs
지정될 경우 Step 5는 Pending으로 유지되며S3
일 경우 Step 3, Step 4는 Pending으로 유지됩니다.
[S3]
[CloudWatchLogs]
이와 같이 AWS 지원 자동화 워크플로우 (Support Automation Workflow) 런북을 실행하였으나 이슈가 발생한 경우 AWS Support 에 문의하여 추가 지원을 받을 수 있습니다. 이때 앞서 실행한 런북 실행 ID 및 실행 결과 등의 정보를 포함하여 문의 주시면 신속한 지원에 도움이 됩니다.
유용한 정보 감사합니다!
관련 콘텐츠
- 질문됨 일 년 전lg...