반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- ECS
- VPC
- cloud
- CI/CD
- cloud trail
- devop
- zerotrust
- client-vpn
- cloiud
- eks
- fargate
- 클라우드 보안
- AWS
- VPN
- secretmanager
- IAC
- kubernetes
- CICD
- Network
- devops
- docker-compose
- KISA
- saa-c03
- docekr
- security
- docker
- git
- 보안
- DevSecOps
- Container
Archives
- Today
- Total
Devsecops로 발전하는 엔지니어
Aws SES에서 발송 실패 내역 Slack으로 알람 수신. 본문
반응형
목적 : SES(Simple Email Service)에서 차단 된 메일리스트를 Slack을 통하여 알람 받기 위한것.

Step1. AWS SNS Topic 생성 : SNS(simple notification service)는 이벤트를 여러가지 솔루션(Lambda, Email, Slack, chat등)로 전달 하는 서비스 이다.
- Aws console login
- “SNS: 서비스 콘솔에서 검색
- Topics 선택 → Create Topic 클릭
- 아래의 설정 입력.
유형 : 표준 / 이름 : ses-topic / 기본설정 : 기본값 유지 - 만들어진 ARN복사.
Step2. AWS SES에서 SNS 주제와 연결 하여 SES 에서 반송 or 불만 발생시 SNS로 알림 보내도록 설정.
- AWS 콘솔에서 “SES” 검색 후 클릭
- Configuration sets(구성 세트) 클릭
- Create Configuration Set(구성세트 생성) 클릭
- 아래의 설정 값 입력
이름 : ses-event-config - 이벤트 대상 → 이벤트 대상 추가 클릭
- 이벤트 유형 등록 : 하드 바운스, 수신 거부, 거부 / SnS topic → Step1에서 만든 SNS Topic 선택
Step3. Aws Lambda 함수 생성(Sns의 경우 Json형식의 데이터를 전송 하기에 Slack 메세지 형식으로 변환 하는 Lambda 함수 생성)
- AWS 콘솔 Lambda 검색 후 클릭
- 함수생성(Create Function) 클릭
- 아래의 설정 입력
함수 이름 : ses-to-slack / 실행 런 타임 : Python3.9 / 권한 : 새로운 역할 생성 => 함수 생성 클릭 - Lambda Code 영역에 lambda_function.py 파일을 아래의 Source로 변경
- 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을 설정)
- Slack 접속
- 채널 설정 편집 → 통합 → 앱 추가 → Incoming webhook 설치
- 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 |