Skip to main content

cloudflare

GLG 개인 Cloudflare 계정을 브라우저 없이 조작 — DNS·Single Redirect·Email Routing·터널 조회, 공개면 검증. aionsclubs.org 를 오라클에서 Tunnel 로 서빙하는 스택의 조작면. 'cloudflare', '클라우드플레어', 'cf', '터널', 'tunnel', 'DNS', 'CNAME', 'redirect', '301', 'email routing', '이메일 포워딩', 'aionsclubs', '도메인'.

설치로 이동

소스 정보

저장소
junghan0611/agent-config
최근 소스 활동
2026년 8월 12일 08:59
감지된 SKILL.md 언어
한국어
스타
5
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
cloudflare
description
GLG 개인 Cloudflare 계정을 브라우저 없이 조작 — DNS·Single Redirect·Email Routing·터널 조회, 공개면 검증. aionsclubs.org 를 오라클에서 Tunnel 로 서빙하는 스택의 조작면. 'cloudflare', '클라우드플레어', 'cf', '터널', 'tunnel', 'DNS', 'CNAME', 'redirect', '301', 'email routing', '이메일 포워딩', 'aionsclubs', '도메인'.
user_invocable
true
# cloudflare — GLG 개인 계정 조작면 ```bash CF={baseDir}/bin/cf $CF doctor # 토큰·권한 진단. 막히면 여기부터 $CF whoami # 계정 / zone $CF check <host> # 공개면 검증. 200 만 exit 0 $CF dns ls|add|rm # add: <name> <type> <content> [--proxied] $CF tunnel ls # 생성은 cloudflared 가 한다 $CF redirect ls|www <apex> # www.<apex> → <apex> 301 (멱등) $CF email status|dns|enable|dest <addr>|add <from> <to>|ls $CF access apps [도메인] # 공개 사이트엔 앱이 없어야 정상 $CF api <METHOD> <PATH> [BODY] ``` `--yes` 는 사람이 볼 때만. env: `CF_TOKEN_FILE`(기본 `~/.cf-token-glg`) · `CF_ACCOUNT_ID` · `CF_ZONE_NAME`. 동사가 이 문서와 어긋나면 **`bin/cf` 가 정답**. 스택 설계는 denote `20260812T142016`. ## ⚠️ 네 가지 **1. 회사 CLI 가 아니다.** 회사 리포에 있는 동명 CLI 는 사내 zone 전용이고 계정 ID·zone·토큰 경로가 **하드코딩 기본값**이다. 이 CLI 는 토큰에서 발견한다. 🔴 **두 토큰을 섞지 말 것** — 이 스택에서 가장 되돌리기 어려운 사고다. **2. 터널은 locally-managed 다 — 그래서 `route add` 가 없다.** ingress SSOT 는 로컬 `config.yml` 이고, 라우팅 변경은 git commit 으로 남는다. 사내 쪽 remotely-managed 는 "리포엔 아무것도 안 남아 표를 손으로 갱신" 하는 대가를 치른다. 우리는 안 치른다. ```bash cloudflared tunnel create <name> cloudflared tunnel route dns <name> <hostname> ``` **3. 계정 관리 자격증명은 ThinkPad 에만.** `cloudflared login` 이 만드는 `~/.cloudflared/cert.pem` 은 터널을 새로 만들고 DNS 를 붙일 수 있다 — **오라클에 올리지 않는다.** 오라클로 가는 것은 터널 credentials JSON(그 터널 하나만 실행 가능)과 API 토큰뿐이다. API 토큰을 양쪽에 두는 것은 GLG 결정(2026-08-12): 오라클에서 조회가 막히면 작업이 안 되고, 권한이 `Tunnel:Read` + `DNS:Edit` 뿐이라 메일 라우팅·리다이렉트는 애초에 못 건드린다. 권한을 넓힐 때 이 균형을 다시 본다. **4. 공개 사이트에 Access 를 붙이지 않는다.** 검증 신호가 회사 스택과 반대다 — `302`(Access 로그인)는 사내 스택에선 정상이지만 여기선 **버그**, `200` 이 정상이다. ## 토큰 `cf doctor` 가 없으면 발급 절차를, 있으면 권한별 probe 를 찍는다. | 스코프 | 권한 | 용도 | 현재 | |---|---|---|---| | Account | Cloudflare Tunnel · Read | `tunnel ls` | ✅ | | Zone | DNS · Edit | 레코드 | ✅ | | Zone | **Single Redirect** · Edit | www 301 | ✅ | | Zone | Email Routing Rules · Edit | `b@` | ❌ | | Account | Account Settings · Read | `/accounts` 열거 | ❌ | 저장: `umask 077; echo '<TOKEN>' > ~/.cf-token-glg` ⚠️ **Client IP Filtering 을 비워둘 것**(`9109` 로 전부 막힌다). **R2 화면 토큰은 안 된다**(S3 자격증명). ## 실측 (2026-08-12) - **`DNS:Edit` 에 `Zone:Read` 가 딸려온다.** zone 발견에 별도 권한 불필요. - **`/accounts` 열거는 `Account Settings:Read` 가 따로 필요하다.** 없으면 `success:true` 인데 **빈 배열** 이 온다 — 실패로 안 보인다. 그래서 `doctor` 는 빈 결과를 ⚠️ 로 구분하고, 계정은 **zone 의 `.account.id` 로 유도**한다(권한 불필요). - **`redirect` 는 조회 실패를 "규칙 없음" 으로 보지 않는다.** entrypoint PUT 은 통째로 덮어쓰므로, 진짜 404 만 빈 상태로 인정하고 그 외(403·rate limit·네트워크)는 **중단**한다. - **Email Routing 은 대시보드가 낫다.** "Add missing records" 버튼이 MX·SPF·DKIM 을 넣고 Locked 상태로 만든다. 대시보드 커스텀 드롭다운은 자동화에 잘 안 걸린다(권한 행 3개째부터 안 열림). - **`check` 는 200 만 exit 0** — 배포 스크립트에서 검증에 쓸 수 있다. ## 에이전트에게 - **`doctor` 부터.** 401/403 처럼 보이는 것 대부분은 IP 제한(`9109`)이나 rate limit(`10429`) 이다. - **`10429` 를 보면 멈춰라.** 재시도로 뚫지 말 것 — 몇 분간 진짜 원인이 가려진다. - **읽기는 마음껏, 쓰기는 사람에게.** `--yes` 를 스스로 붙이지 말 것. - 회사 계정 작업이면 이 CLI 를 쓰지 말 것.
GitHub에서 보기