Add 5 more runbooks
- aws-ses-setup.md: AWS SES email configuration - anvil-ses-final-setup.md: Anvil SES final setup - n8n-setup-guide.md: n8n workflow automation - gitea-setup.md: Gitea server installation - cloudflare-vault-integration.md: Cloudflare + Vault integration Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
195
anvil-ses-final-setup.md
Normal file
195
anvil-ses-final-setup.md
Normal file
@@ -0,0 +1,195 @@
|
||||
# AWS SES 완벽 설정 완료 - anvil.it.com
|
||||
|
||||
## 🎉 설정 완료 상태
|
||||
**Mail-Tester 점수: 10/10 (만점)** ✅
|
||||
|
||||
설정 완료일: 2025-09-06
|
||||
도메인: anvil.it.com
|
||||
리전: ap-northeast-2 (Seoul)
|
||||
|
||||
## 📧 SMTP 설정 정보
|
||||
|
||||
```yaml
|
||||
SMTP_HOST: email-smtp.ap-northeast-2.amazonaws.com
|
||||
SMTP_PORT: 587
|
||||
SMTP_TLS: true
|
||||
SMTP_USERNAME: [Vault: secret/aws/ses/smtp -> smtp_username]
|
||||
SMTP_PASSWORD: [Vault: secret/aws/ses/smtp -> smtp_password]
|
||||
SMTP_FROM: noreply@anvil.it.com
|
||||
```
|
||||
|
||||
### Vault에서 인증 정보 조회
|
||||
```bash
|
||||
# 전체 설정 조회
|
||||
vault kv get secret/aws/ses/smtp
|
||||
|
||||
# SMTP Password만 조회
|
||||
vault kv get -field=smtp_password secret/aws/ses/smtp
|
||||
```
|
||||
|
||||
## 🔐 DNS 레코드 설정
|
||||
|
||||
### 1. SPF 레코드 (TXT)
|
||||
```
|
||||
anvil.it.com TXT "v=spf1 include:_spf.mx.cloudflare.net include:amazonses.com ~all"
|
||||
```
|
||||
|
||||
### 2. DKIM 레코드 (CNAME × 3)
|
||||
```
|
||||
dgcehnldehfmfgpvrrbc6drwasiibhnp._domainkey.anvil.it.com CNAME dgcehnldehfmfgpvrrbc6drwasiibhnp.dkim.amazonses.com
|
||||
spopdscdt2sxngqzl5ir66k3ed6og7ut._domainkey.anvil.it.com CNAME spopdscdt2sxngqzl5ir66k3ed6og7ut.dkim.amazonses.com
|
||||
55l5wnmktvacgyfpt6sovcgb2rqexrpy._domainkey.anvil.it.com CNAME 55l5wnmktvacgyfpt6sovcgb2rqexrpy.dkim.amazonses.com
|
||||
```
|
||||
|
||||
### 3. DMARC 레코드 (TXT)
|
||||
```
|
||||
_dmarc.anvil.it.com TXT "v=DMARC1;p=quarantine;pct=25;rua=mailto:908761dcafa547a981e283a21768d69f@dmarc-reports.cloudflare.net,mailto:dmarc-reports@anvil.it.com;ruf=mailto:dmarc-failures@anvil.it.com"
|
||||
```
|
||||
|
||||
### 4. MAIL FROM 도메인 설정
|
||||
```
|
||||
# MX 레코드
|
||||
bounce.anvil.it.com MX 10 feedback-smtp.ap-northeast-2.amazonses.com
|
||||
|
||||
# SPF 레코드
|
||||
bounce.anvil.it.com TXT "v=spf1 include:amazonses.com ~all"
|
||||
```
|
||||
|
||||
### 5. 도메인 검증 (TXT)
|
||||
```
|
||||
_amazonses.anvil.it.com TXT "0cuw9v32N+aeFiNlTh2Poxglgzf3BlmFRjVOjeLEdy4="
|
||||
```
|
||||
|
||||
## ✅ AWS SES 상태
|
||||
|
||||
### 도메인 검증
|
||||
- **Status**: Success ✅
|
||||
- **DKIM**: Success & Enabled ✅
|
||||
- **MAIL FROM**: bounce.anvil.it.com (Success) ✅
|
||||
|
||||
### 발송 한도
|
||||
- **일일 최대**: 50,000통
|
||||
- **초당 최대**: 14통
|
||||
- **현재 환경**: Production Ready
|
||||
|
||||
## 🎯 컴플라이언스 달성 상태
|
||||
|
||||
| 요구사항 | 상태 | 점수 |
|
||||
|---------|------|------|
|
||||
| SPF Authentication | ✅ Compliant | Pass |
|
||||
| DKIM Authentication | ✅ Compliant | Pass |
|
||||
| DMARC Authentication | ✅ Quarantine (25%) | Pass |
|
||||
| From Header Alignment | ✅ Compliant | Pass |
|
||||
| DNS Records | ✅ Compliant | Pass |
|
||||
| Encryption | ✅ TLS Required | Pass |
|
||||
| One-click Unsubscribe | ✅ RFC 8058 | Pass |
|
||||
| Honor Unsubscribe | ✅ Compliant | Pass |
|
||||
|
||||
**최종 점수: 8/8 (완전 준수)** 🏆
|
||||
|
||||
## 📱 애플리케이션 통합 예시
|
||||
|
||||
### Node.js (nodemailer)
|
||||
```javascript
|
||||
const nodemailer = require('nodemailer');
|
||||
|
||||
const transporter = nodemailer.createTransporter({
|
||||
host: 'email-smtp.ap-northeast-2.amazonaws.com',
|
||||
port: 587,
|
||||
secure: false,
|
||||
auth: {
|
||||
user: process.env.SMTP_USERNAME, // SMTP Username
|
||||
pass: process.env.SMTP_PASSWORD // SMTP Password (변환된 값)
|
||||
}
|
||||
});
|
||||
|
||||
// RFC 8058 호환 메일 발송
|
||||
const mailOptions = {
|
||||
from: 'noreply@anvil.it.com',
|
||||
to: 'user@example.com',
|
||||
subject: 'Welcome!',
|
||||
html: '<h1>Welcome!</h1>',
|
||||
headers: {
|
||||
'List-Unsubscribe': '<mailto:unsubscribe@anvil.it.com>, <https://anvil.it.com/unsubscribe>',
|
||||
'List-Unsubscribe-Post': 'List-Unsubscribe=One-Click'
|
||||
}
|
||||
};
|
||||
```
|
||||
|
||||
### Python (smtplib)
|
||||
```python
|
||||
import smtplib
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
|
||||
msg = MIMEMultipart()
|
||||
msg['From'] = 'noreply@anvil.it.com'
|
||||
msg['To'] = 'user@example.com'
|
||||
msg['Subject'] = 'Welcome!'
|
||||
msg['List-Unsubscribe'] = '<mailto:unsubscribe@anvil.it.com>, <https://anvil.it.com/unsubscribe>'
|
||||
msg['List-Unsubscribe-Post'] = 'List-Unsubscribe=One-Click'
|
||||
|
||||
server = smtplib.SMTP('email-smtp.ap-northeast-2.amazonaws.com', 587)
|
||||
server.starttls()
|
||||
server.login(smtp_username, smtp_password)
|
||||
server.send_message(msg)
|
||||
server.quit()
|
||||
```
|
||||
|
||||
## 🚀 성과 요약
|
||||
|
||||
1. **완벽한 인증 체계**: SPF, DKIM, DMARC 모두 통과
|
||||
2. **최고 수준 컴플라이언스**: RFC 8058 One-click Unsubscribe 구현
|
||||
3. **Gmail 최적화**: Postmaster Tools 준비 완료
|
||||
4. **확장 가능한 구조**: 일일 50K 발송 지원
|
||||
5. **보안 강화**: 단계적 DMARC 정책 (quarantine 25%)
|
||||
|
||||
## 📊 모니터링 및 관리
|
||||
|
||||
### Gmail Postmaster Tools
|
||||
- URL: https://postmaster.google.com
|
||||
- 도메인 등록: anvil.it.com
|
||||
- 데이터 확인: 1-2일 후부터
|
||||
|
||||
### DMARC 리포트
|
||||
- **집계 리포트**: dmarc-reports@anvil.it.com
|
||||
- **실패 리포트**: dmarc-failures@anvil.it.com
|
||||
- **Cloudflare**: 자동 대시보드 제공
|
||||
|
||||
### AWS SES 모니터링
|
||||
```bash
|
||||
# 발송 통계
|
||||
aws ses get-send-statistics --region ap-northeast-2
|
||||
|
||||
# 발송 한도 확인
|
||||
aws ses get-send-quota --region ap-northeast-2
|
||||
```
|
||||
|
||||
## 🔄 향후 개선 계획
|
||||
|
||||
### 1단계 (완료): 기본 설정
|
||||
- ✅ 도메인 검증
|
||||
- ✅ DKIM 활성화
|
||||
- ✅ SPF 설정
|
||||
- ✅ DMARC 모니터링
|
||||
|
||||
### 2단계 (완료): 컴플라이언스
|
||||
- ✅ DMARC quarantine (25%)
|
||||
- ✅ One-click Unsubscribe
|
||||
- ✅ RFC 8058 준수
|
||||
|
||||
### 3단계 (2주 후): 정책 강화
|
||||
- DMARC: p=quarantine;pct=100
|
||||
- 평판 안정화 후 p=reject 고려
|
||||
- Gmail Postmaster 데이터 분석
|
||||
|
||||
### 4단계 (1개월 후): 고도화
|
||||
- 발송량 점진적 증가 (Warm-up)
|
||||
- A/B 테스트 기반 최적화
|
||||
- 고급 모니터링 구축
|
||||
|
||||
---
|
||||
|
||||
**🎯 결과: anvil.it.com 메일 시스템은 업계 최고 수준으로 설정되었습니다!**
|
||||
|
||||
Mail-Tester 10/10 점수는 모든 주요 메일 서비스에서 anvil.it.com을 신뢰할 수 있는 발신자로 인식한다는 의미입니다.
|
||||
Reference in New Issue
Block a user