AWS CloudTrail을 사용하여 Amazon EC2 인스턴스에 대한 API 호출을 추적하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 실행, 중지, 시작 및 종료하는 API 호출을 추적하고 싶습니다. AWS CloudTrail을 사용하여 Amazon EC2 인스턴스에 대한 API 호출을 검색하려면 어떻게 해야 합니까?

간략한 설명

AWS CloudTrail을 사용하면 AWS 계정에 대한 4가지 유형의 API 호출(이벤트 유형)을 식별하고 추적할 수 있습니다.

계정에 이러한 유형의 API 호출을 수행한 후 검토하려면 다음 방법 중 하나를 사용할 수 있습니다.

참고: 최근 90일까지의 계정 이벤트 기록을 볼 수 있습니다.

해결 방법

CloudTrail 이벤트 기록을 사용하여 API 호출 추적하기

1.    CloudTrail 콘솔을 엽니다.

2.    이벤트 기록을 선택합니다.

3.    필터의 드롭다운 목록에서 이벤트 이름을 선택합니다.

4.    이벤트 이름 입력에 검색하려는 이벤트 유형을 입력합니다. 그런 다음, 이벤트 유형을 선택합니다.

5.    시간 범위에 이벤트 유형을 추적하려는 원하는 시간 범위를 입력합니다.

6.    적용을 선택합니다.

자세한 내용은 CloudTrail 이벤트 기록을 통한 이벤트 보기CloudTrail 콘솔에서 Cloudtrail 이벤트 보기를 참조하십시오.

Amazon Athena 쿼리를 사용하여 API 호출 추적하기

Amazon Athena에서 테이블을 자동으로 생성하여 AWS CloudTrail 로그를 검색하려면 어떻게 해야 합니까?의 지침을 따르십시오.

다음은 RunInstances API 호출의 예제 쿼리입니다. 지원되는 모든 이벤트 유형에 대해 유사한 쿼리를 사용할 수 있습니다.

중요: 다음 쿼리 예제를 실행하기 전에 cloudtrail-logs를 Athena 테이블 이름으로 바꿉니다.

RunInstances API 호출에 사용할 수 있는 모든 이벤트 정보를 반환하는 예제 쿼리

SELECT *
FROM cloudtrail-logs
WHERE eventName = 'RunInstances'

RunInstances API 호출에 대해 필터링된 이벤트 정보를 반환하는 예제 쿼리

SELECT userIdentity.username, eventTime, eventName
FROM cloudtrail-logs
WHERE eventName = 'RunInstances'

특정 시점부터 현재 날짜까지 ‘Instances’라는 문자열로 끝나는 API에 대한 이벤트 정보를 반환하는 예제 쿼리

중요: **'2021-07-01T00:00:01Z'**를 이벤트 정보를 반환하려는 시점으로 바꿉니다.

SELECT userIdentity.username, eventTime, eventName
FROM cloudtrail-logs
WHERE (eventName LIKE '%Instances') AND eventTime > '2021-07-01T00:00:01Z'

Amazon Simple Storage Service(Amazon S3)에 보관된 Amazon CloudWatch Logs를 사용하여 API 호출 추적하기

중요: Amazon S3 버킷에 이벤트를 로그하려면 먼저 CloudWatch 추적을 생성해야 합니다.

1.    CloudTrail 로그 파일 찾기 지침에 따라 CloudTrail 로그 파일에 액세스합니다.

2.    CloudTrail 로그 파일 다운로드 지침에 따라 로그 파일을 다운로드합니다.

3.    로그에서 jq 또는 다른 JSON 명령줄 프로세서를 사용하여 추적하려는 이벤트 유형을 검색합니다.

Amazon S3에서 다운로드한 CloudWatch 로그에서 특정 이벤트 유형을 검색하는 jq 프로시저의 예

1.    Bash 터미널을 엽니다. 그 후 다음 디렉터리를 생성하여 로그 파일을 저장합니다.

$ mkdir cloudtrail-logs

4.    새 디렉터리로 이동합니다. 그 후 다음 명령을 실행하여 CloudTrail 로그를 다운로드합니다.

중요: my_cloudtrail_bucket 예제를 Amazon S3 버킷으로 바꿉니다.

$ cd cloudtrail-logs

$ aws s3 cp s3://my_cloudtrail_bucket/AWSLogs/012345678901/CloudTrail/eu-west-1/2019/08/07 ./ --recursive

5.    다음 gzip 명령을 실행하여 로그 파일의 압축을 해제합니다.

중요: *를 압축을 해제할 파일 이름으로 바꿉니다.

$ gzip -d *

6.    검색하려는 이벤트 유형에 대해 jq 쿼리를 실행합니다.

RunInstances API 호출에 사용할 수 있는 모든 이벤트 정보를 반환하는 jq 쿼리 예제

cat * | jq '.Records[] | select(.eventName=="RunInstances")'

StopInstances 및 TerminateInstances API 호출에 사용할 수 있는 모든 이벤트 정보를 반환하는 jq 쿼리 예제

cat * | jq '.Records[] | select(.eventName=="StopInstances" or .eventName=="TerminateInstances" )'

관련 정보

CloudTrail을 사용하여 내 AWS 계정에서 발생한 API 호출 및 작업을 검토하려면 어떻게 해야 합니까?

필터를 사용하여 로그 이벤트에서 지표 만들기

이제 AWS Config 콘솔에 구성 변경과 관련된 API 이벤트 표시

AWS 공식
AWS 공식업데이트됨 4년 전
댓글 없음

관련 콘텐츠