AWSSupport-EnableVPCFlowLogs 런북을 사용하여 VPC 내 흐름 로그를 생성하는 방법

5분 분량
콘텐츠 수준: 기초
1

본 기사는 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가 자동으로 권한을 생성하거나 로깅을 설정하기 전에 사용자가 직접 권한을 생성할 수 있습니다.

[런북 자동화 실행 절차]

  1. 해당 링크로 이동하여 왼쪽 네비게이션에서 자동화(Automation)을 선택한 뒤, (Excute runbook)을 선택합니다.

  2. 자동화 런북 모음에서 “AWSSupport-EnableVPCFlowLogs”를 선택한 후 Next를 클릭합니다.

  3. 자동화 런북 실행 시 4개의 실행 옵션이 있습니다. Enter image description here

  • Simple execution : 단일 계정에서 설정된 파라미터에 대해 가장 기본적인 로깅 실행 방식입니다.

  • Rate control : 여러 리소스에 대해 동시에 실행할 때 사용하며 동시성(Concurrency)과 오류 임계값(Error threshold)을 설정할 수 있습니다.

  • Multi-account and Region : 여러 AWS 계정과 리전에 걸쳐 흐름 로그를 구성할 때 사용하며 Organizations 또는 리소스 데이터 동기화와 함께 사용할 수 있습니다.

  • Manual execution : 자동화 워크플로우의 각 실행 단계를 순차적으로 수동으로 제어할 때 사용합니다.

    본 기사에서는 Simple excution을 통해 단일 계정에서 수행하는 과정에 대해 소개하겠습니다.

  1. 입력 파라미터(Input Parameters) 항목에 필요한 정보를 입력합니다. Enter image description here
  • 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을 생성합니다. s3LogDestinationType 파라미터에 대해 지정되는 경우, 이 파라미터에 대해 흐름 로그 데이터를 게시하려는 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 및 실행 결과 등의 정보를 포함하여 문의 주시면 신속한 지원에 도움이 됩니다.

참고 : https://docs.aws.amazon.com/ko_kr/systems-manager-automation-runbooks/latest/userguide/automation-aws-enable-vpc-flowlogs.html

1 댓글

유용한 정보 감사합니다!

답글을 게시함 6일 전