삭제하도록 예약된 AWS Secrets Manager 보안 암호에 언제 액세스했는지 모니터링 - AWS Secrets Manager

삭제하도록 예약된 AWS Secrets Manager 보안 암호에 언제 액세스했는지 모니터링

AWS CloudTrail, Amazon CloudWatch Logs, Amazon Simple Notification Service(Amazon SNS) 조합을 이용하여 삭제 보류 중인 보안 암호에 액세스하려는 모든 시도에 대해 알려주는 경보를 생성할 수 있습니다. 이러한 경보로부터 알림을 받으면 보안 암호 삭제를 취소하여, 정말로 삭제할지 판단할 시간을 확보하고 싶을 수 있습니다. 조사를 통해 필요하다고 판단되면 보안 암호를 복원할 수 있습니다. 또는 사용자가 사용할 새 암호 정보로 사용자를 업데이트해야 할 수 있습니다.

다음 절차에서는 특정 오류 메시지를 생성하는 GetSecretValue 작업에 대한 요청이 CloudTrail 로그 파일에 기록될 때 알림을 받는 방법에 대해 설명합니다. 경보를 트리거하지 않고 보안 암호에 대해 다른 API 작업을 수행할 수 있습니다. 이 CloudWatch 경보는 오래된 자격 증명을 사용하는 사용자나 애플리케이션을 나타낼 수 있는 사용을 감지합니다.

이러한 절차를 시작하기 전에, AWS Secrets Manager API 요청을 모니터링하려는 AWS 리전 및 계정에서 CloudTrail을 설정해 놓아야 합니다. 지침은 AWS CloudTrail 사용 설명서첫 번째 추적 생성을 참조하세요.

1단계: CloudTrail 로그 파일이 CloudWatch Logs에 전송되도록 구성

CloudTrail 로그 파일을 CloudWatch Logs에 전송되도록 구성해야 합니다. 이렇게 하면 CloudWatch Logs에서 삭제 보류 중인 보안 암호를 검색하려는 Secrets Manager API 요청을 모니터링할 수 있습니다.

CloudTrail 로그 파일이 CloudWatch Logs에 전송되도록 구성
  1. https://console.aws.amazon.com/cloudtrail/에서 CloudTrail 콘솔을 엽니다.

  2. 상단 탐색 모음에서 보안 암호를 모니터링할 AWS 리전을 선택합니다.

  3. 왼쪽 탐색 창에서 추적(Trails)을 선택한 다음 CloudWatch에 대해 구성할 추적 이름을 선택합니다.

  4. 추적 구성(Trails Configuration) 페이지에서 CloudWatch Logs 섹션까지 아래로 스크롤한 다음 편집 아이콘( Remote control icon with power, volume, and channel buttons. )을 선택합니다.

  5. New or existing log group(새 또는 기존 로그 그룹)에 로그 그룹 이름을 입력합니다(예: CloudTrail/MyCloudWatchLogGroup).

  6. IAM 역할(IAM role)CloudTrail_CloudWatchLogs_Role이라는 기본 역할을 사용할 수 있습니다. 이 역할에는 CloudTrail 이벤트를 로그 그룹으로 전달하는 필수 권한이 있는 기본 역할 정책이 있습니다.

  7. 계속을 선택하여 구성을 저장합니다.

  8. AWS CloudTrail은 이 계정의 API 활동과 관련된 CloudTrail 이벤트를 CloudWatch Logs 로그 그룹에 전달합니다 페이지에서 허용을 선택합니다.

2단계: CloudWatch 경보 생성

Secrets Manager GetSecretValue API 작업이 삭제 보류 중인 보안 암호에 대한 액세스를 요청할 때 알림을 받으려면 CloudWatch 경보를 생성하고 알림을 구성해야 합니다.

CloudWatch 경보를 생성하려면
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔에 로그인합니다.

  2. 상단 탐색 모음에서 보안 암호를 모니터링하려는 AWS 리전을 선택합니다.

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

  4. 로그 그룹 목록에서 CloudTrail/MyCloudWatchLogGroup처럼 이전 절차에서 생성한 로그 그룹 옆의 확인란을 선택합니다. 그런 다음 [Create Metric Filter]를 선택합니다.

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

    { $.eventName = "GetSecretValue" && $.errorMessage = "*secret because it was marked for deletion*" }

    [Assign Metric]을 선택합니다.

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

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

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

    3. 고급 지표 설정 표시를 선택한 후 필요에 따라 지표 값1을 입력합니다.

    4. 필터 생성을 선택합니다.

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

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

    1. NameAttemptsToAccessDeletedSecretsAlarm를 입력합니다.

    2. 다음 경우 항상:결과 값:에서 >=을 선택하고 1을 입력합니다.

    3. [Send notification to:] 옆에서 다음 중 하나를 실시합니다.

      • 새로운 Amazon SNS 주제를 생성해 사용하려면 새 목록(New list)을 선택한 후 새 주제 이름을 입력합니다. 메일 주소 목록(Email list):에 이메일 주소를 하나 이상 입력합니다. 쉼표로 구분하여 두 개 이상의 이메일 주소를 입력할 수 있습니다.

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

    4. 경보 생성을 선택합니다.

3단계: CloudWatch 경보 테스트

경보를 테스트하려면 보안 암호를 생성한 다음 삭제를 예약합니다. 그런 다음 보안 암호 값을 검색해 봅니다. 잠시 후 경보에 구성한 주소로 이메일이 수신됩니다. 삭제하도록 예정된 보안 암호 사용에 대해 알려줍니다.