CloudTrail 이벤트에 대한 CloudWatch 경보 생성: 예 - AWS CloudTrail

CloudTrail 이벤트에 대한 CloudWatch 경보 생성: 예

이 주제에서는 CloudTrail 이벤트에 대한 경보를 구성하는 방법(예 포함)을 설명합니다.

참고

다음과 같은 지표 필터 및 경보 예를 수동으로 생성하는 대신 AWS CloudFormation 템플릿을 사용하여 모두 한 번에 생성할 수 있습니다. 자세한 내용은 AWS CloudFormation 템플릿을 사용하여 CloudWatch 경보 생성 단원을 참조하세요.

사전 조건

이 항목에 나오는 예를 사용하기 전에 다음을 수행해야 합니다.

  • 콘솔 또는 CLI를 사용하여 추적을 생성합니다.

  • 로그 그룹을 생성합니다. 이 작업은 추적 생성의 일부로 수행할 수 있습니다. 추적 생성에 대한 자세한 내용은 추적 생성을 참조하세요.

  • 지정된 로그 그룹에 CloudWatch Logs 로그 스트림을 생성하고 이 로그 스트림에 CloudTrail 이벤트를 전달할 수 있는 권한을 CloudTrail에 부여하는 IAM 역할을 지정하거나 생성합니다. 기본 CloudTrail_CloudWatchLogs_Role은 이 작업을 자동으로 수행합니다.

자세한 내용은 CloudWatch Logs에 이벤트 전송 단원을 참조하세요. 이 단원의 예는 Amazon CloudWatch Logs 콘솔에서 수행됩니다. 지표 필터 및 경보를 생성하는 방법에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서필터를 사용하여 로그 이벤트에서 지표 생성Amazon CloudWatch 경보 사용 단원을 참조하세요.

지표 필터 및 경보 생성

경보를 생성하려면 먼저, 지표 필터를 생성한 후 필터에 따라 경보를 구성해야 합니다. 절차에는 모든 예가 표시됩니다. CloudTrail 로그 이벤트의 지표 필터 및 패턴 구문에 대한 자세한 내용은 Amazon CloudWatch Logs 사용 설명서필터 및 패턴 구문에서 JSON 관련 단원을 참조하세요.

보안 그룹 구성 변경 예

다음 절차를 따라 보안 그룹에서 구성 변경이 발생할 때 트리거되는 Amazon CloudWatch 경보를 생성할 수 있습니다.

지표 필터 생성

  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 로그를 선택합니다.

  3. 로그 그룹 목록에서 CloudTrail 로그 이벤트에 대해 생성한 로그 그룹을 선택합니다.

  4. [작업(Actions)]을 선택한 후 [지표 필터 생성(Create metric filter)]을 선택합니다.

  5. [패턴 정의(Define pattern)] 페이지의 [필터 패턴 생성(Create filter pattern)]에서 [필터 패턴(Filter pattern)]에 대해 다음을 입력합니다.

    { ($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = CreateSecurityGroup) || ($.eventName = DeleteSecurityGroup) }
  6. [패턴 테스트(Test pattern)]에서 기본값을 그대로 둡니다. 다음(Next)을 선택합니다.

  7. [지표 할당(Assign metric)] 페이지에서 [필터 이름(Filter name)]에 SecurityGroupEvents를 입력합니다.

  8. [지표 세부 정보(Metric details)]에서 [새로 생성(Create new)]을 활성화한 후 [지표 네임스페이스(Metric namespace)]에 CloudTrailMetrics를 입력합니다.

  9. [지표 이름(Metric name)]에 SecurityGroupEventCount를 입력합니다.

  10. [지표 값(Metric value)]에 1을 입력합니다.

  11. [기본값(Default value)]을 비워 둡니다.

  12. 다음(Next)을 선택합니다.

  13. [검토 및 생성(Review and create)] 페이지에서 선택 사항을 검토합니다. 필터를 생성하려면 [지표 필터 생성(Create metric filter)]을 선택합니다. 또는 뒤로 돌아가서 값을 변경하려면 [편집(Edit)]을 선택합니다.

경보 만들기

지표 필터를 생성하면 CloudTrail 추적 로그 그룹에 대한 CloudWatch Logs 로그 그룹 세부 정보 페이지가 열립니다. 다음 절차를 따라 경보를 생성할 수 있습니다.

  1. [지표 필터(Metric filters)] 탭에서, 지표 필터 생성에서 생성한 지표 필터를 찾습니다. 지표 필터 확인란을 선택합니다. [지표 필터(Metric filters)] 표시줄에서 [경보 생성(Create alarm)]을 선택합니다.

  2. [경보 생성(Create Alarm)] 페이지의 [지표 및 조건 지정(Specify metric and conditions)]에서 다음을 입력합니다.

    1. [그래프(Graph)]의 경우 경보를 생성할 때 지정한 다른 설정을 기반으로 선이 1로 설정됩니다.

    2. [지표 이름(Metric name)]의 경우 현재 지표 이름인 SecurityGroupEventCount를 유지합니다.

    3. [통계(Statistic)]의 경우 기본값인 Sum을 유지합니다.

    4. [기간(Period)]의 경우 기본값인 5 minutes를 유지합니다.

    5. [조건(Conditions)]의 [임계값 유형(Threshold type)]에서 [정적(Static)]을 선택합니다.

    6. [metric_name이 다음과 같을 때마다(Whenever metric_name is)]의 경우 [더 큼/같음(Greater/Equal)]을 선택합니다.

    7. [임계값(Threshold)]에 1을 입력합니다.

    8. [추가 구성(Additional configuration)]의 경우 기본값을 그대로 둡니다. 다음(Next)을 선택합니다.

  3. [작업 구성(Configure actions)] 페이지에서 [경보 상태(In alarm)]를 선택합니다. 이는 5분 동안 1개의 변경 이벤트 임계값을 초과하고 SecurityGroupEventCount가 경보 상태일 때 작업이 수행됨을 나타냅니다.

    1. [SNS 주제 선택(Select an SNS topic)]에서 [새로 생성(Create new)]을 선택합니다.

    2. 새 Amazon SNS 주제의 이름으로 SecurityGroupChanges_CloudWatch_Alarms_Topic을 입력합니다.

    3. [알림을 받을 이메일 엔드포인트(Email endpoints that will receive the notification)]에 이 경보가 발생할 경우 알림을 받을 사용자의 이메일 주소를 입력합니다. 이메일 주소는 쉼표로 구분합니다.

      여기에 지정된 이메일 수신자는 Amazon SNS 주제를 구독할 것인지 확인하는 이메일을 받습니다.

    4. 주제 생성을 선택합니다.

  4. 이 예에서는 다른 작업 유형을 건너뜁니다. 다음(Next)을 선택합니다.

  5. [이름 및 설명 추가(Add name and description)] 페이지에서 경보의 표시 이름과 설명을 입력합니다. 이 예에서는 이름에 Security group configuration changes를 입력하고 설명에 Raises alarms if security group configuration changes occur를 입력합니다. 다음(Next)을 선택합니다.

  6. [미리 보기 및 생성(Preview and create)] 페이지에서 선택 사항을 검토합니다. 변경하려면 [편집(Edit)]을 선택합니다. 또는 경보를 생성하려면 [경보 생성(Create alarm)]을 선택합니다.

    경보를 생성하면 CloudWatch에서 [경보(Alarms)] 페이지를 엽니다. 경보의 [작업(Actions)] 열은 SNS 주제의 모든 이메일 수신자가 SNS 알림을 구독하기를 원한다고 확인할 때까지 [확인 보류 중(Pending confirmation)]으로 표시됩니다.

AWS Management Console 로그인 실패의 예

다음 절차를 따라 5분 동안 3회 이상의 AWS Management Console 로그인 실패가 발생할 때 트리거되는 Amazon CloudWatch 경보를 생성할 수 있습니다.

지표 필터 생성

  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 로그를 선택합니다.

  3. 로그 그룹 목록에서 CloudTrail 로그 이벤트에 대해 생성한 로그 그룹을 선택합니다.

  4. [작업(Actions)]을 선택한 후 [지표 필터 생성(Create metric filter)]을 선택합니다.

  5. [패턴 정의(Define pattern)] 페이지의 [필터 패턴 생성(Create filter pattern)]에서 [필터 패턴(Filter pattern)]에 대해 다음을 입력합니다.

    { ($.eventName = ConsoleLogin) && ($.errorMessage = "Failed authentication") }
  6. [패턴 테스트(Test pattern)]에서 기본값을 그대로 둡니다. 다음(Next)을 선택합니다.

  7. [지표 할당(Assign metric)] 페이지에서 [필터 이름(Filter name)]에 ConsoleSignInFailures를 입력합니다.

  8. [지표 세부 정보(Metric details)]에서 [새로 생성(Create new)]을 활성화한 후 [지표 네임스페이스(Metric namespace)]에 CloudTrailMetrics를 입력합니다.

  9. [지표 이름(Metric name)]에 ConsoleSigninFailureCount를 입력합니다.

  10. [지표 값(Metric value)]에 1을 입력합니다.

  11. [기본값(Default value)]을 비워 둡니다.

  12. 다음(Next)을 선택합니다.

  13. [검토 및 생성(Review and create)] 페이지에서 선택 사항을 검토합니다. 필터를 생성하려면 [지표 필터 생성(Create metric filter)]을 선택합니다. 또는 뒤로 돌아가서 값을 변경하려면 [편집(Edit)]을 선택합니다.

경보 만들기

지표 필터를 생성하면 CloudTrail 추적 로그 그룹에 대한 CloudWatch Logs 로그 그룹 세부 정보 페이지가 열립니다. 다음 절차를 따라 경보를 생성할 수 있습니다.

  1. [지표 필터(Metric filters)] 탭에서, 지표 필터 생성에서 생성한 지표 필터를 찾습니다. 지표 필터 확인란을 선택합니다. [지표 필터(Metric filters)] 표시줄에서 [경보 생성(Create alarm)]을 선택합니다.

  2. [경보 생성(Create Alarm)] 페이지의 [지표 및 조건 지정(Specify metric and conditions)]에서 다음을 입력합니다.

    1. [그래프(Graph)]의 경우 경보를 생성할 때 지정한 다른 설정을 기반으로 선이 3로 설정됩니다.

    2. [지표 이름(Metric name)]의 경우 현재 지표 이름인 ConsoleSigninFailureCount를 유지합니다.

    3. [통계(Statistic)]의 경우 기본값인 Sum을 유지합니다.

    4. [기간(Period)]의 경우 기본값인 5 minutes를 유지합니다.

    5. [조건(Conditions)]의 [임계값 유형(Threshold type)]에서 [정적(Static)]을 선택합니다.

    6. [metric_name이 다음과 같을 때마다(Whenever metric_name is)]의 경우 [더 큼/같음(Greater/Equal)]을 선택합니다.

    7. [임계값(Threshold)]에 3을 입력합니다.

    8. [추가 구성(Additional configuration)]의 경우 기본값을 그대로 둡니다. 다음(Next)을 선택합니다.

  3. [작업 구성(Configure actions)] 페이지에서 [경보 상태(In alarm)]를 선택합니다. 이는 5분 동안 3개의 변경 이벤트 임계값을 초과하고 ConsoleSigninFailureCount가 경보 상태일 때 작업이 수행됨을 나타냅니다.

    1. [SNS 주제 선택(Select an SNS topic)]에서 [새로 생성(Create new)]을 선택합니다.

    2. 새 Amazon SNS 주제의 이름으로 ConsoleSignInFailures_CloudWatch_Alarms_Topic을 입력합니다.

    3. [알림을 받을 이메일 엔드포인트(Email endpoints that will receive the notification)]에 이 경보가 발생할 경우 알림을 받을 사용자의 이메일 주소를 입력합니다. 이메일 주소는 쉼표로 구분합니다.

      여기에 지정된 이메일 수신자는 Amazon SNS 주제를 구독할 것인지 확인하는 이메일을 받습니다.

    4. 주제 생성을 선택합니다.

  4. 이 예에서는 다른 작업 유형을 건너뜁니다. 다음(Next)을 선택합니다.

  5. [이름 및 설명 추가(Add name and description)] 페이지에서 경보의 표시 이름과 설명을 입력합니다. 이 예에서는 이름에 Console sign-in failures를 입력하고 설명에 Raises alarms if more than 3 console sign-in failures occur in 5 minutes를 입력합니다. 다음(Next)을 선택합니다.

  6. [미리 보기 및 생성(Preview and create)] 페이지에서 선택 사항을 검토합니다. 변경하려면 [편집(Edit)]을 선택합니다. 또는 경보를 생성하려면 [경보 생성(Create alarm)]을 선택합니다.

    경보를 생성하면 CloudWatch에서 [경보(Alarms)] 페이지를 엽니다. 경보의 [작업(Actions)] 열은 SNS 주제의 모든 이메일 수신자가 SNS 알림을 구독하기를 원한다고 확인할 때까지 [확인 보류 중(Pending confirmation)]으로 표시됩니다.

예: IAM 정책 변경

다음 절차를 따라 API 호출을 수행하여 IAM 정책을 변경할 때 트리거되는 Amazon CloudWatch 경보를 생성할 수 있습니다.

지표 필터 생성

  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 탐색 창에서 로그를 선택합니다.

  3. 로그 그룹 목록에서 CloudTrail 로그 이벤트에 대해 생성한 로그 그룹을 선택합니다.

  4. [작업(Actions)]을 선택한 후 [지표 필터 생성(Create metric filter)]을 선택합니다.

  5. [패턴 정의(Define pattern)] 페이지의 [필터 패턴 생성(Create filter pattern)]에서 [필터 패턴(Filter pattern)]에 대해 다음을 입력합니다.

    {($.eventName=DeleteGroupPolicy)||($.eventName=DeleteRolePolicy)||($.eventName=DeleteUserPolicy)||($.eventName=PutGroupPolicy)||($.eventName=PutRolePolicy)||($.eventName=PutUserPolicy)||($.eventName=CreatePolicy)||($.eventName=DeletePolicy)||($.eventName=CreatePolicyVersion)||($.eventName=DeletePolicyVersion)||($.eventName=AttachRolePolicy)||($.eventName=DetachRolePolicy)||($.eventName=AttachUserPolicy)||($.eventName=DetachUserPolicy)||($.eventName=AttachGroupPolicy)||($.eventName=DetachGroupPolicy)}
  6. [패턴 테스트(Test pattern)]에서 기본값을 그대로 둡니다. 다음(Next)을 선택합니다.

  7. [지표 할당(Assign metric)] 페이지에서 [필터 이름(Filter name)]에 IAMPolicyChanges를 입력합니다.

  8. [지표 세부 정보(Metric details)]에서 [새로 생성(Create new)]을 활성화한 후 [지표 네임스페이스(Metric namespace)]에 CloudTrailMetrics를 입력합니다.

  9. [지표 이름(Metric name)]에 IAMPolicyEventCount를 입력합니다.

  10. [지표 값(Metric value)]에 1을 입력합니다.

  11. [기본값(Default value)]을 비워 둡니다.

  12. 다음(Next)을 선택합니다.

  13. [검토 및 생성(Review and create)] 페이지에서 선택 사항을 검토합니다. 필터를 생성하려면 [지표 필터 생성(Create metric filter)]을 선택합니다. 또는 뒤로 돌아가서 값을 변경하려면 [편집(Edit)]을 선택합니다.

경보 만들기

지표 필터를 생성하면 CloudTrail 추적 로그 그룹에 대한 CloudWatch Logs 로그 그룹 세부 정보 페이지가 열립니다. 다음 절차를 따라 경보를 생성할 수 있습니다.

  1. [지표 필터(Metric filters)] 탭에서, 지표 필터 생성에서 생성한 지표 필터를 찾습니다. 지표 필터 확인란을 선택합니다. [지표 필터(Metric filters)] 표시줄에서 [경보 생성(Create alarm)]을 선택합니다.

  2. [경보 생성(Create Alarm)] 페이지의 [지표 및 조건 지정(Specify metric and conditions)]에서 다음을 입력합니다.

    1. [그래프(Graph)]의 경우 경보를 생성할 때 지정한 다른 설정을 기반으로 선이 1로 설정됩니다.

    2. [지표 이름(Metric name)]의 경우 현재 지표 이름인 IAMPolicyEventCount를 유지합니다.

    3. [통계(Statistic)]의 경우 기본값인 Sum을 유지합니다.

    4. [기간(Period)]의 경우 기본값인 5 minutes를 유지합니다.

    5. [조건(Conditions)]의 [임계값 유형(Threshold type)]에서 [정적(Static)]을 선택합니다.

    6. [metric_name이 다음과 같을 때마다(Whenever metric_name is)]의 경우 [더 큼/같음(Greater/Equal)]을 선택합니다.

    7. [임계값(Threshold)]에 1을 입력합니다.

    8. [추가 구성(Additional configuration)]의 경우 기본값을 그대로 둡니다. 다음(Next)을 선택합니다.

  3. [작업 구성(Configure actions)] 페이지에서 [경보 상태(In alarm)]를 선택합니다. 이는 5분 동안 1개의 변경 이벤트 임계값을 초과하고 IAMPolicyEventCount가 경보 상태일 때 작업이 수행됨을 나타냅니다.

    1. [SNS 주제 선택(Select an SNS topic)]에서 [새로 생성(Create new)]을 선택합니다.

    2. 새 Amazon SNS 주제의 이름으로 IAM_Policy_Changes_CloudWatch_Alarms_Topic을 입력합니다.

    3. [알림을 받을 이메일 엔드포인트(Email endpoints that will receive the notification)]에 이 경보가 발생할 경우 알림을 받을 사용자의 이메일 주소를 입력합니다. 이메일 주소는 쉼표로 구분합니다.

      여기에 지정된 이메일 수신자는 Amazon SNS 주제를 구독할 것인지 확인하는 이메일을 받습니다.

    4. 주제 생성을 선택합니다.

  4. 이 예에서는 다른 작업 유형을 건너뜁니다. 다음(Next)을 선택합니다.

  5. [이름 및 설명 추가(Add name and description)] 페이지에서 경보의 표시 이름과 설명을 입력합니다. 이 예에서는 이름에 IAM Policy Changes를 입력하고 설명에 Raises alarms if IAM policy changes occur를 입력합니다. 다음(Next)을 선택합니다.

  6. [미리 보기 및 생성(Preview and create)] 페이지에서 선택 사항을 검토합니다. 변경하려면 [편집(Edit)]을 선택합니다. 또는 경보를 생성하려면 [경보 생성(Create alarm)]을 선택합니다.

    경보를 생성하면 CloudWatch에서 [경보(Alarms)] 페이지를 엽니다. 경보의 [작업(Actions)] 열은 SNS 주제의 모든 이메일 수신자가 SNS 알림을 구독하기를 원한다고 확인할 때까지 [확인 보류 중(Pending confirmation)]으로 표시됩니다.