반응형

로스 유형

인프라를 구축하면서 로깅을 계획해야 합니다. 다음은 서비스에서 로그를 지원하는 방식입니다.

 

  • CloudWatch Logs
    EC2 인스턴스, CloudTrail, Route53 및 기타 소스에서 로그 파일을 모니터링 , 저장 및 액세스합니다.
  • AWS CloudTrail
    콘솔, AWS SDK, CLI 및 서비스를 통해 수행된 작업을 비롯하여 계정 활동의 이벤트 기록을 제공합니다. 이러한 이벤트 기록은 보안 분석, 리소스 변경 추적 및 문제 해결을 간소화합니다. CloudTrail은 거버넌스, 규정 준수, 운영 및 위험 감사를 촉진합니다. 이를 사용해 AWS 인프라 전반에서 수행하는 작업과 관련된 계정 활동을 로깅하고 지속적으로 모니터링하는 동시에 보존할 수 있습니다.
  • VPC 흐름 로그
    VPC 네트워크 인터페이스에서 송수신되는 IP 트래픽에 대한 정보가 캡처됩니다.
  • 로드 밸런싱
    로드 밸런서로 전송된 요청에 대한 상세 정보를 캡처하는 액세스 로그를 제공합니다. 애플리케이션에서 사용자 지정 로그를 사용할 수 있습니다.

로깅 및 이벤트 / CloudWatch를 통한 OS 및 APP 로그 파일 저장 및 모니터링

 

CloudWatch Logs 예제

위 예시와 같이 로그 파일 server.log에 데이터를 기록하는 동일한 웹 서버 두 개가 나와 있다고 가정하겠습니다. 서버 하나는 EC2에 있고 다른 하나는 온프레미스의 가상 머신에 있습니다.

 

두 서버는 모두 로그 파일의 이벤트를 로그 스트림에 게시할 수 있습니다. 로그 스트림은 동일한 소스를 공유하는 로그 이벤트 시퀀스입니다. CloudWatch Logs 로그 소스는 각각 별도의 로그 스트림을 구성합니다.

 

여러 로그 스트림을 단일 로그 그룹에 수집할 수 있습니다. 로그 그룹은 모든 스트림에서 동일한 보존 기간, 모니터링, 액세스 제어 설정을 공유합니다. 로그 그룹을 정의하고 각 그룹에 배치할 스트림을 지정할 수 있습니다. 하나의 로그 그룹에 속할 수 있는 로그 스트림의 수는 제한이 없습니다.

 

로그 그룹을 생성한 후에는 지표 필터를 사용하여 로그 이벤트에서 일치하는 단어, 구문 또는 값을 검색할 수 있습니다. 지표 필터가 로그 이벤트에서 단어, 구문 또는 값 중 하나를 찾으면 CloudWatch 지표의 값을 증분할 수 있습니다. 예를 들어 LogFile-ErrorConunt 지표에서 error라는 단어 등의 단일 용어가 나오는 횟수를 계산할 수 있습니다. 또한, 지표를 모니터링하여 경보를 호출할 수도 있습니다.

 

Logs 사용법 / CloudWatch 지표 및 로그 수집법

 

CloudTrail

CloudTrail은 사용자 활동 및 API 사용량을 추적하여 누가 무엇을 언제 헀는가에 대한 인사이트를 제공합니다. CloudTrail을 사용하면 계정의 AWS API 호출 기록을 가져올 수 있습니다. 콘솔, AWS SDK, CLI 및 고급 AWS 서비스를 통해 이러한 호출을 숳애할 수 있습니다. CloudTrail은 AWS API 호출을 기록하고 로그 파일을 제공합니다. 로그 파일에 포함되는 정보는 소스 IP, API 호출자의 ID, 호출 시간, 요청 파리미터, AWS 서비스에서 반환하는 응답 요소 등이 있습니다. 

 

CloudTrail에서 생성하는 AWS API 호출 기록을 활용하여 보안 분석, 리소스 변경 사항 추적 및 규정 준수 감사를 수행할 수 있습니다.

 

Cloud Trail은 리전 단위로 활성화됩니다. 여러 리전을 사용하는 경우, 리전별로 로그 파일이 전송될 장소를 선택할 수 있습니다. CloudTrail은 로그를 지정된 S3 버켓에 저장합니다. 리전별로 별도의 S3 버킷을 사용할 수도 있고, 모든 리전의 로그 파일을 S3 버켓 하나에 집계할 수도 있습니다.

 

또한, 자세히 분석해야 하는 사항을 파악하는데 사용할 수도 있습니다. CloudTrail API 사용 로그를 S3 버켓에 저장하면 나중에 이렇나 로그를 분석하여 다음과 같은 중요한 정보를 파악할 수 있습니다.

  • 장기 실행 인스턴스가 종료된 이유와 해당 인스턴스를 종료한 사람(조직의 추적 가능성 및 책임 소재 확인 지원)
  • 보안 그룹 구성을 변경한 사람(책임 소재 확인 및 보안 감사 지원)
  • 권한 부족으로 인해 거부된 활동(조직 안팎의 네트워크 대상 공격 가능성 파악)

상세

 

CloudTrail 로그 예시

{
    "Records": [{
        "eventVersion": "1.0",
        "userIdentity": {                                     /* ← 요청을 수행한 사용자 */
            "type": "IAMUser",
            "principalId": "EX_PRINCIPAL_ID",
            "arn": "arn:aws:iam::123123123123:user/Alice",
            "accountId": "123123123123",
            "accessKeyId": "EXAMPLE_KEY_ID",
            "userName": "Alice"                               /* ← 요청을 수행한 사용자 */
        },
        "requestParameters": {                                /* ← 요청의 주된 내용 */
            "instancesSet": {
                "item": [{
                    "instanceId": "i-abcdefg01234567890"      /* ← 요청의 주된 내용 */
                }]
            },
            "force": false
        },
        "eventTime": "2018-03-06T21:01:59Z",                  /* ← 요청이 수행된 시간 */
        "eventSource": "ec2.amazonaws.com",
        "eventName": "StopInstances",                         /* ← API 호출 내용 */
        "awsRegion": "us-west-2",                             /* ← 요청이 수행된 위치 */
        "sourceIPAddress": "123.123.123.123",
        "userAgent": "ec2-api-tools 1.6.12.2",
        "responseElements": {                                 /* ← 응답 내용 */
            "instancesSet": {
                "item": [{
                    "instanceId": "i-abcdefg01234567890",
                    "currentState": {
                        "code": 64,
                        "name": "stopping"                     /* ← 응답 내용 */
                    },
                    "previousState": {
                        "code": 16,
                        "name": "running"
                    }
                }]
            }
        }
    }]
}

 

VPC 흐름 로그

VPC 흐름 로그는 VPC 네트워크 인터페이스에서 송수신되는 IP 트래픽 정보를 캡처합니다. 다음은 몇가지 특징입니다.

  • 이 로그는 VPC, 서브넷, 네트워크 인터페이스를 기준으로 트래픽을 기록하도록  구성할 수 있습니다.
  • EC2 및 VPC 콘솔에서 특정 리소스의 흐름 로그 탭을 선택하여 흐름 로그에 대한 정보를 볼 수 있습니다.
  • 흐름 로그는 기본적으로 해제되어 있으므로, 흐름 로그 데이터를 수집하기 위해서는 옵트인해야 합니다.

흐름 로그는 S3 버켓 또는 CloudWatch 로그 그룹에 게시됩니다. 데이터는 네트워크 트래픽 경로 외부에서 수집되므로 네트워크 처리량이나 지연 시간에 영향을 미치지 않습니다. 흐름 로그는 다음과 같은 여러 작업을 수행하는 데 도움이 될 수 있습니다.

  • 지나치게 제한적인 보안 그룹 규칙을 진단
  • 인스턴스에 연결되고 있는 트래픽을 모니터링
  • 네트워크 인터페이스를 오가는 트래픽 방향 결정

IP 트래픽 로깅 / 흐름 로그 분석으로 보안 개선(AWS Blog)

 

흐름 로그 레코드 내용

각 레코드는 특정 캡처 기간에 대한 네트워크 IP 흐름을 캡처하며 5가지 값(5튜플)을 포함합니다. 레코드에는 소스, 대상, 프로토콜 같은 IP 흐름의 구성 요소가 포함됩니다. 특정 유형의 트래픽이 탐지되면 활성화되는 경보를 생성하고 경향 및 패턴을 식별하는 데 도움이 되는 지표를 생성할 수 있습니다.

 

정보에는 보안 그룹 및 네트워크 엑세스 제어 목록(NACL) 규칙에 따른 ACCEPT 또는 PEJECT 작업이 포함됩니다. 그리고 소스 및 대상 IP 주소와 포트 및 Internet Assigned Numbers Authority(IANA) 프로토콜 번호도 포함됩니다. 또한 패킷 및 바이트 수(흐름이 관찰되는 시간 간격)도 포함됩니다.

 

흐름 로그가 네트워크의 모든 것을 캡처할 수는 없습니다. DNS 트래픽이나 DHCP(Dynamic Host Configuration Protocol) 요청 및 응답은 VPC 로깅에 포함되지 않습니다. 자체 DNS 서버를 실행 중인 경우에는 요청 확인 트래픽을 로깅할 수 있습니다. 그러나 많은 사용자가 내부 AWS DNS 서버에 의존하며, 서버와 AWS DNS 서비스 간의 활동 및 DHCP 트래픽은 VPC 흐름 로그에 캡처되지 않습니다. 

반응형

'자격증 > AWS SAA' 카테고리의 다른 글

[AWS SAA] 35. Elastic Load Balancing(ELB)  (0) 2023.08.30
[AWS SAA] 34. 경보 및 이벤트  (0) 2023.08.29
[AWS SAA] 32. CloudWatch  (0) 2023.08.27
[AWS SAA] 31. Database 마이그레이션  (0) 2023.08.26
[AWS SAA] 30. 캐싱 서비스  (0) 2023.08.25