AWS CloudTrail을 사용하여 AWS 계정의 보안 그룹 및 리소스 변경 사항을 추적하고 싶습니다.
해결 방법
AWS CloudTrail, Amazon Athena 및 AWS Config를 사용하여 AWS 계정의 보안 그룹 이벤트 기록을 보고 모니터링할 수 있습니다.
전제 조건:
CloudTrail 이벤트 기록을 사용하여 보안 그룹 활동 검토
참고: CloudTrail을 사용하여 지난 90일 동안의 이벤트 기록을 검색할 수 있습니다.
-
CloudTrail 콘솔을 엽니다.
-
이벤트 기록을 선택합니다.
-
필터의 드롭다운 목록에서 리소스 이름을 선택합니다.
-
리소스 이름 입력 텍스트 상자에 리소스 이름을 입력합니다. 예를 들면 sg-123456789입니다.
-
시간 범위에 원하는 시간 범위를 입력합니다. 그런 다음, 적용을 선택합니다.
-
결과 목록에서 이벤트를 선택합니다.
자세한 내용은 콘솔에서 최근 관리 이벤트 보기를 참조하십시오.
CloudTrail 이벤트의 예는 다음과 같습니다.
참고: 이 예에서는 인바운드 규칙이 192.168.0.0/32의 TCP 포트 998을 허용합니다.
{
"eventVersion": "1.05",
"userIdentity": {
"type": "AssumedRole",
"principalId": "123456789:Bob",
"arn": "arn:aws:sts::123456789:assumed-role/123456789/Bob",
"accountId": "123456789",
"accessKeyId": "123456789",
"sessionContext": {
"attributes": {
"mfaAuthenticated": "false",
"creationDate": "2019-08-05T07:15:25Z"
},
"sessionIssuer": {
"type": "Role",
"principalId": "123456789",
"arn": "arn:aws:iam::123456789:role/123456789",
"accountId": "123456789",
"userName": "Bob"
}
}
},
"eventTime": "2019-08-05T07:16:31Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "AuthorizeSecurityGroupIngress",
"awsRegion": "us-east-1",
"sourceIPAddress": "111.111.111.111",
"userAgent": "console.ec2.amazonaws.com",
"requestParameters": {
"groupId": "sg-123456789",
"ipPermissions": {
"items": [
{
"ipProtocol": "tcp",
"fromPort": 998,
"toPort": 998,
"groups": {},
"ipRanges": {
"items": [
{
"cidrIp": "192.168.0.0/32"
}
]
},
"ipv6Ranges": {},
"prefixListIds": {}
}
]
}
},
"responseElements": {
"requestId": "65ada3c8-d72f-4366-a583-9a9586811111",
"_return": true
},
"requestID": "65ada3c8-d72f-4366-a583-9a9586811111",
"eventID": "6c604d53-d9c3-492e-a26a-a48ac3f711111",
"eventType": "AwsApiCall",
"recipientAccountId": "123456789"
}
Athena 쿼리로 보안 그룹 활동 검토
- Athena 콘솔을 엽니다.
- 쿼리 편집기를 선택합니다.
- Athena 쿼리 편집기에서 사용 사례에 따라 쿼리를 입력합니다. 그런 다음, 쿼리 실행을 선택합니다.
자세한 내용은 CloudTrail 로그 및 Athena 테이블 이해를 참조하십시오.
보안 그룹 생성 및 삭제 이벤트를 반환하는 쿼리의 예는 다음과 같습니다.
중요: example table name을 테이블 이름으로 바꾸십시오.
SELECT *
FROM example table name
WHERE (eventname = 'CreateSecurityGroup' or eventname = 'DeleteSecurityGroup')
and eventtime > '2019-02-15T00:00:00Z'
order by eventtime asc
다음은 특정 보안 그룹의 변경 사항에 대한 모든 CloudTrail 이벤트를 반환하는 예제 쿼리입니다.
SELECT *
FROM example table name
WHERE (eventname like '%SecurityGroup%' and requestparameters like '%sg-123456789%')
and eventtime > '2019-02-15T00:00:00Z'
order by eventtime asc;
AWS Config 구성 기록을 사용하여 보안 그룹 활동 검토
-
CloudTrail 콘솔을 엽니다.
-
이벤트 기록을 선택합니다.
-
필터의 드롭다운 목록에서 이벤트 이름을 선택합니다.
-
이벤트 이름 입력 텍스트 상자에 이벤트 유형을 입력합니다. 예를 들면 CreateSecurityGroup입니다. 그런 다음, 적용을 선택합니다.
-
결과 목록에서 이벤트를 선택합니다.
-
참조 리소스 창에서 AWS Config 리소스 타임라인 보기를 선택하여 구성 타임라인을 확인합니다.
자세한 내용은 AWS Config에서 참조하는 리소스 보기를 참조하십시오.