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:
kappa
2026-01-16 00:39:06 +09:00
parent 5c6b5382f6
commit 49fe96775a
6 changed files with 1374 additions and 0 deletions

195
anvil-ses-final-setup.md Normal file
View 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을 신뢰할 수 있는 발신자로 인식한다는 의미입니다.