- 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>
1.9 KiB
1.9 KiB
Cloudflare Vault 통합 가이드
저장 방식 권장사항
1. API Token 방식 (권장)
# 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 방식 (현재)
# 현재 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 별 크레덴셜
# 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 함수
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 별칭
alias cf-auth='eval $(vault kv get -format=json secret/cloudflare | jq -r ".data.data | to_entries[] | \"export CF_\" + (.key | ascii_upcase) + \"=\" + .value")'
보안 고려사항
- 최소 권한 원칙: API Token 사용 시 필요한 권한만 부여
- 임시 인증: 환경변수는 세션 종료 시 자동 삭제
- 파일 권한:
chmod 600 ~/.cloudflared/* - Vault 통합: 모든 크레덴셜은 Vault에서 중앙 관리
추천 워크플로우
- Vault에 API Token 저장 (Global Key 대신)
- 필요시 환경변수로 로드
- 작업 완료 후 환경변수 정리
- CI/CD에서는 Vault Agent 사용