Logpush R2 Guide
코드 없이 Cloudflare에서 R2 시크릿 만드는 과정과 어디에 둬야 하는지만 정리.
단일 production 설정: 버킷logpush-r2, 시크릿LOGPUSH_R2_ACCESS_KEY/LOGPUSH_R2_SECRET_KEY2개만 사용.
1. Cloudflare에서 Logpush용 R2 시크릿 생성
섹션 제목: “1. Cloudflare에서 Logpush용 R2 시크릿 생성”1.1 들어가는 경로
섹션 제목: “1.1 들어가는 경로”- Cloudflare Dashboard 로그인
- 왼쪽 메뉴에서 R2 선택 (Object Storage)
- Manage R2 API Tokens (또는 API Tokens 탭) 클릭
- 경로 예: R2 → 상단/우측 Manage R2 API Tokens
1.2 토큰 생성 절차
섹션 제목: “1.2 토큰 생성 절차”- Create API token (또는 Create token) 클릭
- Token name: 예)
logpush-r2(단일 production용) - Permissions:
- Object Read & Write 선택
- Logpush는 R2에 로그 파일을 쓰기만 하면 되므로, 최소 권한으로 해당 로그 버킷만 스코프하는 것이 좋음
- Apply to specific buckets only 사용 시:
logpush-r2지정
- Object Read & Write 선택
- Create API Token 실행
- 화면에 한 번만 표시되는 값 두 개 확인:
- Access Key ID (예: 32자 hex) → GitHub Secret
LOGPUSH_R2_ACCESS_KEY에 넣음 - Secret Access Key (예: 긴 문자열) → GitHub Secret
LOGPUSH_R2_SECRET_KEY에 넣음
→ 이 시점에서만 복사 가능이므로 반드시 안전한 곳에 저장 후, GitHub Secrets에 넣음
- Access Key ID (예: 32자 hex) → GitHub Secret
1.3 참고
섹션 제목: “1.3 참고”- R2 API 토큰은 Account 레벨에서 생성 (Zone이 아님).
- 같은 계정의 Logpush Job이 R2에 쓸 때 이 토큰을
destination_conf에 넣어 사용. - Cloudflare R2 – Authentication 문서 참고.
2. 시크릿을 둬야 하는 위치 (GitHub)
섹션 제목: “2. 시크릿을 둬야 하는 위치 (GitHub)”2.1 반드시 넣는 곳: GitHub Actions Secrets
섹션 제목: “2.1 반드시 넣는 곳: GitHub Actions Secrets”- 위치: 해당 리포지토리 → Settings → Secrets and variables → Actions
- 경로 예:
https://github.com/<org>/newsfork-seeds/settings/secrets/actions - 여기에 Repository secrets로 다음 두 개만 추가:
| Secret 이름 | 값 | 비고 |
|---|---|---|
LOGPUSH_R2_ACCESS_KEY | Cloudflare에서 복사한 Access Key ID | Logpush production 전용 |
LOGPUSH_R2_SECRET_KEY | Cloudflare에서 복사한 Secret Access Key | Logpush production 전용 |
- R2 버킷: Cloudflare에서
logpush-r2한 개만 미리 생성해 두어야 함. - Logpush Provision/Verify는 production 배포 시에만 실행됨 (Policy B).
2.2 (선택) Environment secrets
섹션 제목: “2.2 (선택) Environment secrets”- Settings → Environments →
production에서 Environment secrets로LOGPUSH_R2_ACCESS_KEY,LOGPUSH_R2_SECRET_KEY를 넣어도 됨. - 이름은 위와 동일하게 사용.
3. 넣으면 안 되는 위치
섹션 제목: “3. 넣으면 안 되는 위치”- wrangler.jsonc (또는 wrangler 설정 파일): R2 자격증명 넣지 않음.
- 소스 코드 (
.ts,.sh등): 절대 포함 금지. - 버전 관리되는 .env (예:
.env를 커밋): 금지. 로컬용이어도 시크릿은.env에 넣고.gitignore에 있어야 함. - 워크플로우 YAML에 평문으로 적기: 금지.
4. 이 프로젝트에서 쓰는 이름 (통일)
섹션 제목: “4. 이 프로젝트에서 쓰는 이름 (통일)”- 버킷:
logpush-r2(단일) - 시크릿:
LOGPUSH_R2_ACCESS_KEY,LOGPUSH_R2_SECRET_KEY(2개만) - Job 이름:
newsfork-seeds-workers(단일, 환경 접미사 없음)
위치 요약: 이 값들은 반드시 GitHub 리포지토리(또는 production Environment)의 Actions Secrets에만 두고, Cloudflare에서는 “R2 API 토큰 생성”으로 Access Key ID / Secret Access Key를 만든 뒤, 그 값들을 각각 LOGPUSH_R2_ACCESS_KEY, LOGPUSH_R2_SECRET_KEY 로 넣으면 됨.