반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

Devsecops로 발전하는 엔지니어

Aws SES에서 발송 실패 내역 Slack으로 알람 수신. 본문

Devops

Aws SES에서 발송 실패 내역 Slack으로 알람 수신.

cloud/devops/opensource 관심 많은 곰 2025. 4. 5. 12:48
반응형

목적 : SES(Simple Email Service)에서 차단 된 메일리스트를 Slack을 통하여 알람 받기 위한것.

 

 

 

Step1. AWS SNS Topic 생성 : SNS(simple notification service)는 이벤트를 여러가지 솔루션(Lambda, Email, Slack, chat등)로 전달 하는 서비스 이다.

  1. Aws console login
  2. “SNS: 서비스 콘솔에서 검색
  3. Topics 선택 → Create Topic 클릭
  4. 아래의 설정 입력.
    유형 : 표준 / 이름 : ses-topic / 기본설정 : 기본값 유지
  5. 만들어진 ARN복사.

Step2. AWS SES에서 SNS 주제와 연결 하여 SES 에서 반송 or 불만 발생시 SNS로 알림 보내도록 설정.

  1. AWS 콘솔에서 “SES” 검색 후 클릭
  2. Configuration sets(구성 세트) 클릭
  3. Create Configuration Set(구성세트 생성) 클릭
  4. 아래의 설정 값 입력
    이름 : ses-event-config
  5. 이벤트 대상 → 이벤트 대상 추가 클릭
  6. 이벤트 유형 등록 : 하드 바운스, 수신 거부, 거부 / SnS topic → Step1에서 만든 SNS Topic 선택

Step3. Aws Lambda 함수 생성(Sns의 경우 Json형식의 데이터를 전송 하기에 Slack 메세지 형식으로 변환 하는 Lambda 함수 생성)

  1. AWS 콘솔 Lambda 검색 후 클릭
  2. 함수생성(Create Function) 클릭
  3. 아래의 설정 입력
    함수 이름 : ses-to-slack / 실행 런 타임 : Python3.9 / 권한 : 새로운 역할 생성 => 함수 생성 클릭

  4. Lambda Code 영역에 lambda_function.py 파일을 아래의 Source로 변경
  5. import json import urllib.request # Slack Webhook URL (생성할 Slack webhoook) SLACK_WEBHOOK_URL = "https://hooks.slack.com/services/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" def lambda_handler(event, context): print("Received event: " + json.dumps(event, indent=2)) for record in event['Records']: message = json.loads(record['Sns']['Message']) email = message['mail']['destination'][0] event_type = message['eventType'] slack_message = { "text": f"🚨 AWS SES Alert: {event_type}\n📩 Email: {email}" } # Slack으로 전송 req = urllib.request.Request(SLACK_WEBHOOK_URL, data=json.dumps(slack_message).encode('utf-8'), headers={'Content-Type': 'application/json'}) urllib.request.urlopen(req) return {"statusCode": 200, "body": "Message sent to Slack"}

Step4. Slack Webhook 설정(Slack으로 메세지 전송을 하기 위하여 필요한 Webhook URL을 설정)

  1. Slack 접속
  2. 채널 설정 편집 → 통합 → 앱 추가 → Incoming webhook 설치
  3. URL 생성 후 복사 → Step3 Lamda의 추가

 

테스트

반응형

'Devops' 카테고리의 다른 글

Kubernetes 개념 정리 2 - Pod  (0) 2025.05.08
Kubernetes 개념 정리 -1  (1) 2025.05.08
Aws Iac - CloudFormation(2) 이란?  (0) 2023.11.13
Aws Iac - CloudFormation(1) 이란?  (0) 2023.11.13
Docker 사항 4 : Docker vs Docker Compose  (0) 2023.09.26