콘텐츠로 이동

Logpush R2 Guide

코드 없이 Cloudflare에서 R2 시크릿 만드는 과정어디에 둬야 하는지만 정리.
단일 production 설정: 버킷 logpush-r2, 시크릿 LOGPUSH_R2_ACCESS_KEY / LOGPUSH_R2_SECRET_KEY 2개만 사용.


1. Cloudflare에서 Logpush용 R2 시크릿 생성

섹션 제목: “1. Cloudflare에서 Logpush용 R2 시크릿 생성”
  1. Cloudflare Dashboard 로그인
  2. 왼쪽 메뉴에서 R2 선택 (Object Storage)
  3. Manage R2 API Tokens (또는 API Tokens 탭) 클릭
    • 경로 예: R2 → 상단/우측 Manage R2 API Tokens
  1. Create API token (또는 Create token) 클릭
  2. Token name: 예) logpush-r2 (단일 production용)
  3. Permissions:
    • Object Read & Write 선택
      • Logpush는 R2에 로그 파일을 쓰기만 하면 되므로, 최소 권한으로 해당 로그 버킷만 스코프하는 것이 좋음
    • Apply to specific buckets only 사용 시: logpush-r2 지정
  4. Create API Token 실행
  5. 화면에 한 번만 표시되는 값 두 개 확인:
    • Access Key ID (예: 32자 hex) → GitHub Secret LOGPUSH_R2_ACCESS_KEY 에 넣음
    • Secret Access Key (예: 긴 문자열) → GitHub Secret LOGPUSH_R2_SECRET_KEY 에 넣음
      이 시점에서만 복사 가능이므로 반드시 안전한 곳에 저장 후, GitHub Secrets에 넣음
  • 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”
  • 위치: 해당 리포지토리 → SettingsSecrets and variablesActions
  • 경로 예:
    https://github.com/<org>/newsfork-seeds/settings/secrets/actions
  • 여기에 Repository secrets로 다음 두 개만 추가:
Secret 이름비고
LOGPUSH_R2_ACCESS_KEYCloudflare에서 복사한 Access Key IDLogpush production 전용
LOGPUSH_R2_SECRET_KEYCloudflare에서 복사한 Secret Access KeyLogpush production 전용
  • R2 버킷: Cloudflare에서 logpush-r2 한 개만 미리 생성해 두어야 함.
  • Logpush Provision/Verify는 production 배포 시에만 실행됨 (Policy B).
  • SettingsEnvironmentsproduction 에서 Environment secretsLOGPUSH_R2_ACCESS_KEY, LOGPUSH_R2_SECRET_KEY 를 넣어도 됨.
  • 이름은 위와 동일하게 사용.

  • 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 로 넣으면 됨.