- 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>
69 lines
1.9 KiB
Markdown
69 lines
1.9 KiB
Markdown
# Cloudflare Vault 통합 가이드
|
|
|
|
## 저장 방식 권장사항
|
|
|
|
### 1. **API Token 방식 (권장)**
|
|
```bash
|
|
# Vault에 저장
|
|
vault kv put secret/cloudflare/tokens \
|
|
api_token="your-api-token" \
|
|
account_id="your-account-id"
|
|
|
|
# 사용
|
|
export CLOUDFLARE_API_TOKEN=$(vault kv get -field=api_token secret/cloudflare/tokens)
|
|
```
|
|
|
|
### 2. **Global API Key 방식 (현재)**
|
|
```bash
|
|
# 현재 Vault 구조
|
|
secret/cloudflare/
|
|
├── email
|
|
└── api_key
|
|
|
|
# 사용
|
|
export CF_API_EMAIL=$(vault kv get -field=email secret/cloudflare)
|
|
export CF_API_KEY=$(vault kv get -field=api_key secret/cloudflare)
|
|
```
|
|
|
|
### 3. **Tunnel 별 크레덴셜**
|
|
```bash
|
|
# Vault에 터널별로 저장
|
|
vault kv put secret/cloudflare/tunnels/production \
|
|
tunnel_id="uuid" \
|
|
tunnel_secret="base64-secret" \
|
|
account_id="account-id"
|
|
|
|
# JSON 파일로 추출
|
|
vault kv get -format=json secret/cloudflare/tunnels/production | \
|
|
jq '.data.data' > ~/.cloudflared/production.json
|
|
```
|
|
|
|
## 자동화 스크립트
|
|
|
|
### Fish Shell 함수
|
|
```fish
|
|
function cf-auth
|
|
set -gx CF_API_EMAIL (vault kv get -field=email secret/cloudflare)
|
|
set -gx CF_API_KEY (vault kv get -field=api_key secret/cloudflare)
|
|
echo "Cloudflare 인증 설정 완료"
|
|
end
|
|
```
|
|
|
|
### Bash 별칭
|
|
```bash
|
|
alias cf-auth='eval $(vault kv get -format=json secret/cloudflare | jq -r ".data.data | to_entries[] | \"export CF_\" + (.key | ascii_upcase) + \"=\" + .value")'
|
|
```
|
|
|
|
## 보안 고려사항
|
|
|
|
1. **최소 권한 원칙**: API Token 사용 시 필요한 권한만 부여
|
|
2. **임시 인증**: 환경변수는 세션 종료 시 자동 삭제
|
|
3. **파일 권한**: `chmod 600 ~/.cloudflared/*`
|
|
4. **Vault 통합**: 모든 크레덴셜은 Vault에서 중앙 관리
|
|
|
|
## 추천 워크플로우
|
|
|
|
1. Vault에 API Token 저장 (Global Key 대신)
|
|
2. 필요시 환경변수로 로드
|
|
3. 작업 완료 후 환경변수 정리
|
|
4. CI/CD에서는 Vault Agent 사용 |