캐시 삭제용 Cloudflare API 토큰 만들기
캐시를 삭제할 수 있는 Cloudflare API 토큰에는 정확히 두 가지 권한이 필요합니다. 영역 목록을 가져오는 Zone → Zone → Read와, 캐시를 비우는 Zone → Cache Purge → Purge입니다. dash.cloudflare.com의 내 프로필 → API 토큰 → 토큰 만들기에서 사용자 지정 토큰 템플릿으로 생성합니다.
마지막 업데이트:
Cloudflare API에 인증하는 방법은 두 가지인데 괜찮은 쪽은 하나뿐입니다. 이 가이드는 괜찮은 쪽, 즉 권한을 좁힌 API 토큰을 다룹니다. 할 수 있는 일이 딱 두 가지이고 그 외에는 아무것도 못 합니다.
필요한 두 가지 권한
API로 캐시를 삭제하면 엔드포인트 두 개를 건드리므로 토큰에도 권한이 두 개 필요합니다.
| 권한 | 용도 | 필수 여부 |
|---|---|---|
Zone → Zone → Read | 계정의 영역을 이름과 ID와 함께 나열 | 필수 |
Zone → Cache Purge → Purge | 해당 영역의 캐시된 콘텐츠 비우기 | 필수 |
Account → Account Settings → Read | 계정 이름을 읽어 영역을 계정별로 묶기 | 선택 |
목록은 이게 전부입니다. 퍼지용 토큰이 DNS 레코드를 읽거나 방화벽 규칙을 건드리거나 SSL 설정 근처에 갈 이유는 없습니다. 혹시 유출되더라도 가진 사람이 할 수 있는 최악의 일은 캐시를 비우는 것뿐입니다.
토큰 만들기, 단계별로
- dash.cloudflare.com에 로그인합니다.
- 오른쪽 위 프로필 메뉴에서 내 프로필로 간 다음 API 토큰 탭을 엽니다. 바로 가는 주소는
dash.cloudflare.com/profile/api-tokens입니다. - 토큰 만들기를 누르고 템플릿을 지나쳐 사용자 지정 토큰 만들기를 고릅니다.
- 여섯 달 뒤에도 알아볼 이름을 붙입니다. token 3보다 FlarePurge — iPhone이 낫습니다. 기기마다 하나씩 만들어 두면 잃어버린 것만 폐기할 수 있습니다.
- 권한에서
Zone·Zone·Read를 추가하고 이어서Zone·Cache Purge·Purge를 추가합니다. - 영역 리소스에서 토큰이 닿을 영역을 정합니다. 모든 영역이 편한 선택이고 특정 영역이 신중한 선택입니다.
- 고정 IP가 없다면 IP 주소 필터는 비워 둡니다. 휴대폰은 네트워크가 수시로 바뀌어서 이 필터는 결국 본인을 막습니다.
- 저절로 만료되게 하려면 TTL을 설정합니다. 외부 협력자에게는 쓸모 있지만 본인 기기에는 필요 없습니다.
- 요약으로 계속을 누르고 위의 두 권한만 있는지 확인한 뒤 토큰 만들기로 마칩니다.
Global API Key를 쓰지 않는 이유
Global API Key는 예전 인증 방식으로, 이메일 주소와 키 하나만으로 계정의 모든 영역과 모든 설정에 대한 완전한 관리자 접근을 내줍니다. 범위를 좁힐 수도, 한 가지 작업으로 제한할 수도 없습니다.
Global API Key를 요구하는 앱은 캐시를 비우는 버튼 하나를 누르려고 여러분의 DNS와 방화벽, SSL 설정, 결제 정보의 열쇠를 통째로 달라는 셈입니다. FlarePurge는 일부러 받지 않습니다. 어떤 도구가 굳이 그걸 요구한다면, 그 도구에 대해 뭔가를 알려 주는 신호입니다.
토큰이 되는지 확인하기
어딘가에 붙여 넣기 전에 아무 터미널에서나 토큰을 확인할 수 있습니다. Cloudflare에 바로 그런 엔드포인트가 있습니다.
curl -s https://api.cloudflare.com/client/v4/user/tokens/verify \
-H "Authorization: Bearer 여러분의_토큰" | jq멀쩡한 토큰은 "status": "active"로 답합니다. Invalid API Token이 나오면 거의 확실히 복사가 잘린 겁니다. 값이 길어서 쉽게 끊깁니다.
유효하다는 것뿐 아니라 권한까지 맞는지 확인하려면 영역 목록을 불러 봅니다.
curl -s "https://api.cloudflare.com/client/v4/zones?per_page=5" \
-H "Authorization: Bearer 여러분의_토큰" | jq '.result[].name'도메인이 나오면 Zone:Read가 제대로 들어간 겁니다. success: true인데 빈 목록이 오면 토큰은 유효하지만 영역 리소스에 영역이 하나도 없는 상태이니, 돌아가서 범위를 넓히세요.
토큰은 어디에 두어야 하나
퍼지용 토큰은 자격 증명이고 그에 맞게 보관해야 합니다. FlarePurge는 운영체제의 보안 저장소에 넣습니다. Apple 플랫폼은 키체인, Android는 Keystore, Windows는 자격 증명 관리자입니다. 평문 파일이나 설정 plist에는 절대 두지 않습니다.
- 기기마다 토큰 하나. 노트북을 도난당해도 하나만 폐기하면 되고 전부 재발급할 필요가 없습니다.
- 재사용하지 말고 폐기하기. 대시보드에서 토큰을 지우면 즉시 적용되고, 사본을 가진 쪽은 더 이상 아무것도 못 합니다.
- 채팅이나 티켓에 붙여 넣지 않기. 대시보드 스크린샷도 유출입니다. 생성 화면에는 토큰이 그대로 보입니다.
- 감사 로그 확인하기. Cloudflare는 계정 관리 → 감사 로그에 토큰 사용을 기록하므로 뜻밖의 퍼지는 눈에 띕니다.
다음 단계
토큰을 만들었다면 다음은 어떤 방식으로 퍼지할지입니다. 전체 삭제는 빠르지만 거칠고, 특정 URL 삭제는 정확하지만 준비가 더 듭니다. 비교는 여기에 있습니다. 대량 퍼지에서 한도에 부딪힌다면 API 제한을 보세요.