Improve security documentation based on Context7 review
aws-ses-setup.md: - Add SPF records for email authentication - Add DMARC policy configuration - Add bounce/complaint handling with SNS - Add DNS verification commands n8n-setup-guide.md: - Use official Docker registry (docker.n8n.io) - Add N8N_ENCRYPTION_KEY requirement - Add N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS - Add N8N_PUBLIC_API_DISABLED option - Add security headers to nginx config - Add healthcheck configuration gitea-setup.md: - Add password policy (MIN_PASSWORD_LENGTH, PASSWORD_COMPLEXITY) - Add argon2 password hashing - Add DISABLE_GIT_HOOKS for security - Add Docker Secrets configuration - Add file-based secret management (SECRET_KEY_URI) - Add REVERSE_PROXY_TRUSTED_PROXIES setting Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
106
aws-ses-setup.md
106
aws-ses-setup.md
@@ -36,6 +36,20 @@ AWS SES(Simple Email Service)를 사용하여 서버에서 메일을 발송하
|
||||
|
||||
---
|
||||
|
||||
## 이메일 인증 (SPF, DKIM, DMARC)
|
||||
|
||||
> DMARC 준수를 위해 SPF와 DKIM 모두 설정 필요. 두 가지 중 하나라도 통과하면 DMARC 통과.
|
||||
|
||||
### 인증 방식 비교
|
||||
|
||||
| 방식 | 역할 | 검증 대상 |
|
||||
|------|------|----------|
|
||||
| **SPF** | 발신 서버 허용 목록 | MAIL FROM 도메인 |
|
||||
| **DKIM** | 메일 서명 검증 | 메일 헤더 서명 |
|
||||
| **DMARC** | SPF/DKIM 정책 통합 | From 도메인 정렬 |
|
||||
|
||||
---
|
||||
|
||||
## DNS 설정 (Cloudflare)
|
||||
|
||||
### anvil.it.com
|
||||
@@ -45,6 +59,16 @@ AWS SES(Simple Email Service)를 사용하여 서버에서 메일을 발송하
|
||||
|------|------|---------|
|
||||
| TXT | `_amazonses.anvil.it.com` | `0cuw9v32N+aeFiNlTh2Poxglgzf3BlmFRjVOjeLEdy4=` |
|
||||
|
||||
**TXT 레코드 (SPF)** ⭐ 신규
|
||||
| Type | Name | Content |
|
||||
|------|------|---------|
|
||||
| TXT | `anvil.it.com` | `v=spf1 include:amazonses.com ~all` |
|
||||
|
||||
**TXT 레코드 (DMARC)** ⭐ 신규
|
||||
| Type | Name | Content |
|
||||
|------|------|---------|
|
||||
| TXT | `_dmarc.anvil.it.com` | `v=DMARC1; p=quarantine; rua=mailto:dmarc@anvil.it.com; pct=100` |
|
||||
|
||||
**CNAME 레코드 (DKIM)**
|
||||
| Type | Name | Target |
|
||||
|------|------|--------|
|
||||
@@ -59,6 +83,16 @@ AWS SES(Simple Email Service)를 사용하여 서버에서 메일을 발송하
|
||||
|------|------|---------|
|
||||
| TXT | `_amazonses.ironclad.it.com` | `C+RMHyLd/U2H5WSCu8L2avRn8NmuwEll0xxYjTyvoEY=` |
|
||||
|
||||
**TXT 레코드 (SPF)** ⭐ 신규
|
||||
| Type | Name | Content |
|
||||
|------|------|---------|
|
||||
| TXT | `ironclad.it.com` | `v=spf1 include:amazonses.com ~all` |
|
||||
|
||||
**TXT 레코드 (DMARC)** ⭐ 신규
|
||||
| Type | Name | Content |
|
||||
|------|------|---------|
|
||||
| TXT | `_dmarc.ironclad.it.com` | `v=DMARC1; p=quarantine; rua=mailto:dmarc@ironclad.it.com; pct=100` |
|
||||
|
||||
**CNAME 레코드 (DKIM)**
|
||||
| Type | Name | Target |
|
||||
|------|------|--------|
|
||||
@@ -66,6 +100,14 @@ AWS SES(Simple Email Service)를 사용하여 서버에서 메일을 발송하
|
||||
| CNAME | `qm7d7qgkdikpcbrbgo7bmgqfmuulrbah._domainkey` | `qm7d7qgkdikpcbrbgo7bmgqfmuulrbah.dkim.amazonses.com` |
|
||||
| CNAME | `tu6oey5tktoqub753cxpayhhwrlzcskk._domainkey` | `tu6oey5tktoqub753cxpayhhwrlzcskk.dkim.amazonses.com` |
|
||||
|
||||
### DMARC 정책 옵션
|
||||
|
||||
| 정책 | 설명 | 권장 단계 |
|
||||
|------|------|----------|
|
||||
| `p=none` | 모니터링만 (조치 없음) | 초기 테스트 |
|
||||
| `p=quarantine` | 스팸함으로 이동 | 중간 단계 |
|
||||
| `p=reject` | 수신 거부 | 최종 단계 |
|
||||
|
||||
---
|
||||
|
||||
## IAM 권한 설정
|
||||
@@ -255,10 +297,72 @@ aws ses get-identity-dkim-attributes --identities newdomain.com
|
||||
|
||||
---
|
||||
|
||||
## 반송/불만 처리 (SNS 연동)
|
||||
|
||||
> 반송(Bounce)과 불만(Complaint) 처리는 SES 평판 유지에 필수
|
||||
|
||||
### SNS 토픽 생성
|
||||
|
||||
```bash
|
||||
# 반송 알림용 토픽
|
||||
aws sns create-topic --name ses-bounces --region ap-northeast-2
|
||||
|
||||
# 불만 알림용 토픽
|
||||
aws sns create-topic --name ses-complaints --region ap-northeast-2
|
||||
```
|
||||
|
||||
### SES 알림 설정
|
||||
|
||||
```bash
|
||||
# 반송 알림 연결
|
||||
aws ses set-identity-notification-topic \
|
||||
--identity anvil.it.com \
|
||||
--notification-type Bounce \
|
||||
--sns-topic arn:aws:sns:ap-northeast-2:ACCOUNT_ID:ses-bounces
|
||||
|
||||
# 불만 알림 연결
|
||||
aws ses set-identity-notification-topic \
|
||||
--identity anvil.it.com \
|
||||
--notification-type Complaint \
|
||||
--sns-topic arn:aws:sns:ap-northeast-2:ACCOUNT_ID:ses-complaints
|
||||
```
|
||||
|
||||
### 반송 유형
|
||||
|
||||
| 유형 | 설명 | 조치 |
|
||||
|------|------|------|
|
||||
| **Hard Bounce** | 영구적 실패 (주소 없음) | 즉시 목록에서 제거 |
|
||||
| **Soft Bounce** | 일시적 실패 (용량 초과) | 재시도 후 제거 |
|
||||
| **Complaint** | 스팸 신고 | 즉시 목록에서 제거 |
|
||||
|
||||
### 권장 임계값
|
||||
|
||||
- **반송률**: 5% 미만 유지 (10% 초과 시 계정 정지 위험)
|
||||
- **불만률**: 0.1% 미만 유지
|
||||
|
||||
---
|
||||
|
||||
## 인증 검증 명령어
|
||||
|
||||
```bash
|
||||
# SPF 레코드 확인
|
||||
dig TXT anvil.it.com +short
|
||||
|
||||
# DMARC 레코드 확인
|
||||
dig TXT _dmarc.anvil.it.com +short
|
||||
|
||||
# DKIM 레코드 확인
|
||||
dig CNAME dgcehnldehfmfgpvrrbc6drwasiibhnp._domainkey.anvil.it.com +short
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 참고 사항
|
||||
|
||||
- **프로덕션 모드**: 수신자 제한 없음
|
||||
- **DKIM**: 메일 신뢰도 향상 (스팸 방지)
|
||||
- **DKIM**: 메일 서명으로 위변조 방지
|
||||
- **SPF**: 허용된 발신 서버 목록 정의
|
||||
- **DMARC**: SPF/DKIM 정책 통합 및 리포트 수신
|
||||
- **발송 한도**: 필요시 AWS에 증가 요청 가능
|
||||
- **비용**: $0.10 / 1,000통
|
||||
|
||||
|
||||
Reference in New Issue
Block a user