삭제 보류 중인 AWS KMS key의 사용량을 감지하는 Amazon CloudWatch 경보 생성 - AWS Key Management Service

삭제 보류 중인 AWS KMS key의 사용량을 감지하는 Amazon CloudWatch 경보 생성

AWS CloudTrail, Amazon CloudWatch Logs 및 Amazon Simple Notification Service(Amazon SNS)의 기능을 결합하여 계정의 누군가가 암호화 작업에서 삭제 보류 중인 KMS 키를 사용하려고 할 때마다 알림을 받을 수 있습니다. 이 알림을 받는 경우 KMS 키 삭제를 취소하고 삭제 결정을 재고해 볼 수 있습니다.

다음 절차에서는 "Key ARN is pending deletion" 오류 메시지를 초래하는 AWS KMS API 요청이 CloudTrail 로그 파일에 기록될 때마다 알림을 수신하는 방법을 설명합니다. 이 오류 메시지는 개인이나 애플리케이션이 암호화 작업(Encrypt, Decrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintextReEncrypt) 시 해당 KMS 키를 사용하려고 했음을 나타냅니다. 이 알림은 오류 메시지와 연결되어 있으므로 ListKeys, CancelKeyDeletionPutKeyPolicy 같은 삭제 보류 중인 KMS 키에 대해 허용된 API 작업을 사용할 때는 트리거되지 않습니다. 이 오류 메시지를 반환하는 AWS KMS API 작업의 목록을 보려면 AWS KMS 키의 키 상태 단원을 참조하십시오.

수신하는 알림 이메일에 KMS 키 또는 암호화 작업이 나열되지 않습니다. CloudTrail 로그에서 해당 정보를 확인할 수 있습니다. 대신에, 경보 상태가 정상에서 경보로 변경되었다는 내용이 이메일로 보고됩니다. CloudWatch 경보 및 상태 변경에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서Amazon CloudWatch 경보 생성을 참조하십시오.

주의

이 Amazon CloudWatch 경보는 AWS KMS 외부에서의 비대칭 KMS 키의 퍼블릭 키의 사용을 감지할 수 없습니다. 암호를 해독할 수 없는 암호화 텍스트를 만드는 등 퍼블릭 키 암호화에 사용되는 비대칭 KMS 키를 삭제할 때의 특별한 위험에 대한 자세한 내용은 비대칭 KMS 키 삭제 단원을 참조하십시오.

CloudWatch 경보 요구 사항

CloudWatch 경보를 생성하기 전에 AWS CloudTrail 추적을 생성하고 CloudTrail 로그 파일을 Amazon CloudWatch Logs에 전달하도록 CloudTrail을 구성합니다.

  1. CloudTrail 추적 생성.

    CloudTrail은 계정 생성 시 AWS 계정에서 사용되도록 자동으로 설정됩니다. 하지만 AWS KMS 관련 이벤트를 비롯하여 계정 내 현재 이벤트 레코드의 경우에는 추적을 생성합니다.

  2. 로그 파일이 CloudWatch Logs에 전송되도록 CloudTrail 구성.

    CloudTrail 로그 파일을 CloudWatch Logs로 전송하도록 구성합니다. 이렇게 하면 CloudWatch Logs에서 삭제 보류 중인 KMS 키를 사용하려고 하는 AWS KMS API 요청에 대한 로그를 모니터링할 수 있습니다.

CloudWatch 경보 생성

암호화 작업에서 삭제 보류 중인 고객 마스터 키(KMS 키)를 사용하려고 하는 AWS KMS API 요청 발생 시 알림을 받으려면 CloudWatch 경보를 생성하고 알림을 구성합니다.

삭제 보류 중인 KMS 키 사용 시도를 모니터링하는 CloudWatch 경보를 생성하려면

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 오른쪽 상단의 리전 선택기를 사용하여 모니터링할 AWS 리전을 선택합니다.

  3. 왼쪽 탐색 창에서 로그를 선택합니다.

  4. 로그 그룹 목록에서 로그 그룹 옆에 있는 옵션 버튼을 선택합니다. 그런 다음 [Create Metric Filter]를 선택합니다.

  5. [Filter Pattern]에 다음을 입력하거나 붙여 넣습니다.

    { $.eventSource = kms* && $.errorMessage = "* is pending deletion."}

    [Assign Metric]을 선택합니다.

  6. [Create Metric Filter and Assign a Metric] 페이지에서 다음을 수행합니다.

    1. 지표 네임스페이스CloudTrailLogMetrics를 입력합니다.

    2. 지표 이름KMSKeyPendingDeletionErrorCount를 입력합니다.

    3. 고급 지표 설정 표시를 선택한 후 측정치 값1(이 값이 현재 값이 아닌 경우)을 입력합니다.

    4. Create Filter(필터 생성)를 선택합니다.

  7. 필터 상자에서 [Create Alarm]을 선택합니다.

  8. [Create Alarm] 창에서 다음과 같이 실행합니다.

    1. 경보 임계값 섹션에서 이름KMSKeyPendingDeletionErrorAlarm을 입력합니다. 또한 설명(선택 사항)을 추가할 수도 있습니다.

    2. 다음 경우 항상 다음에 같음>=를 선택하고 나서 1을 입력합니다.

    3. 1 out of n datapoints(n 중 1 데이터 포인트)에서, 필요할 경우 1을 입력합니다.

    4. 추가 설정 섹션의 누락 데이터 처리에서 정상(임계값을 위반하지 않음)를 선택합니다.

    5. 작업 섹션의 알림 보내기에서 다음 중 하나를 선택합니다.

      • 새 Amazon SNS 주제를 사용하려면 새 목록을 선택하고 나서 새 주제 이름(예: KMSAlert)을 입력합니다. 이메일 목록에는 하나 이상의 이메일 주소를 입력합니다. 쉼표로 구분하여 두 개 이상의 이메일 주소를 입력할 수 있습니다.

      • 기존 Amazon SNS 주제를 사용하려면 사용할 주제의 이름을 선택합니다.

    6. 경보 생성(Create Alarm)을 선택합니다.

  9. 한 이메일 주소로 알림을 보내기로 선택한 경우 no-reply@sns.amazonaws.com에서 "AWS Notification - Subscription Confirmation"이라는 제목으로 수신한 이메일 메시지를 엽니다. 이메일 메시지의 [Confirm subscription] 링크를 선택해 이메일 주소를 확인합니다.

    참고

    이메일 주소를 확인한 후부터 이메일 알림을 받게 됩니다.

이 절차를 완료한 후 이 CloudWatch 경보가 ALARM 상태에 도달할 때마다 알림을 받게 됩니다. 이 경보에 따른 알림을 받는 경우, 누군가 또는 무언가 아직 이 KMS 키를 사용해야 한다는 뜻일 수 있습니다. 이 경우 KMS 키 삭제를 취소하여, 정말로 삭제할지 판단할 시간을 확보해야 합니다.