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:
69
cloudflare-vault-integration.md
Normal file
69
cloudflare-vault-integration.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# 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 사용
|
||||
Reference in New Issue
Block a user