Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 대한 보안 그룹을 설정했습니다. Amazon EventBridge와 Amazon Simple Notification Service(Amazon SNS)를 사용하여 보안 그룹의 변경 사항을 모니터링하려고 합니다.
간략한 설명
보안 그룹의 변경 사항을 모니터링하려면 애플리케이션에서 보안 그룹을 수정하기 위해 API를 직접 호출할 때 실행되는 EventBridge 규칙을 생성합니다. 그런 다음 규칙과 일치하는 이벤트에 대해 Amazon SNS 알림을 구성합니다.
해결 방법
전제 조건: AWS CloudTrail 추적을 생성하여 API 직접 호출을 기록합니다.
SNS 주제 생성 및 구독
SNS 주제를 생성합니다. 그런 다음 주제를 구독하고 프로토콜에서 이메일을 선택합니다. Amazon SNS에서 구독 확인 이메일을 보냅니다.
EventBridge 규칙 생성
EventBridge 규칙을 구성하고, 다음 단계를 완료하여 규칙 패턴을 구성합니다.
-
서비스별 사전 정의된 패턴을 선택합니다.
-
서비스 제공업체에서 AWS를 선택합니다.
-
서비스 이름에서 EC2를 선택합니다.
-
이벤트 유형에서 CloudTrail을 통한 AWS API 직접 호출을 선택합니다.
-
특정 작업을 선택하고, 다음 API 직접 호출을 한 번에 하나씩 입력합니다.
AuthorizeSecurityGroupIngressAuthorizeSecurityGroupEgress
RevokeSecurityGroupIngress
RevokeSecurityGroupEgress
참고: 각 API 직접 호출을 입력한 후 추가를 선택합니다. 이러한 API 직접 호출은 보안 그룹 규칙을 추가하거나 제거합니다.
위 설정은 다음 이벤트 패턴을 생성합니다.
{ "source": [
"aws.ec2"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"ec2.amazonaws.com"
],
"eventName": [
"AuthorizeSecurityGroupIngress",
"AuthorizeSecurityGroupEgress",
"RevokeSecurityGroupIngress",
"RevokeSecurityGroupEgress"
]
}
}
-
대상 선택의 대상 목록에서 SNS 주제를 선택합니다.
-
주제에 생성한 주제를 입력합니다.
-
(선택 사항) 기본적으로 일치 이벤트는 입력 구성 일치 이벤트에서 선택됩니다. 이 구성은 이벤트의 전체 JSON 출력을 SNS 주제에 전달합니다. 이벤트 정보를 필터링하려면 입력 트랜스포머를 선택합니다. 입력 트랜스포머를 사용하여 이벤트의 텍스트를 사용자 지정하여 읽기 쉬운 메시지를 만듭니다. 예를 들어 입력 경로에 다음 키-값 쌍을 사용합니다.
{"name":"$.detail.requestParameters.groupId","source":"$.detail.eventName","time":"$.time","value":"$.detail"}
입력 템플릿에 메시지에 표시할 텍스트와 변수를 입력합니다.
입력 템플릿 예시:
"A source API call was made against the security group name on time with the below details"" value "
-
생성을 선택합니다.