# 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 사용