15강 / 20강

API 토큰 — 열쇠는 작게 깎아 쓴다

Global API Key 를 쓰지 않는 이유

API 토큰 — 열쇠는 작게 깎아 쓴다
마스터키 하나보다, 그 방만 여는 열쇠 여러 개가 안전합니다.

레코드를 사람 손으로만 고치는 건 금세 한계가 옵니다. 배포할 때마다 A 레코드를 바꾸거나, 인증서를 자동으로 받아 오려면 API 가 필요해요.

클라우드플레어에는 두 가지 열쇠가 있습니다. 그리고 하나는 쓰면 안 됩니다.

Global API Key
계정 전체를 다 할 수 있는 마스터키. 도메인 삭제도, 결제 정보도 포함입니다. 범위를 좁힐 수 없고, 새어 나가면 비밀번호를 바꾸는 수밖에 없습니다.
API Token
어느 영역에 무엇을 할지 골라서 만듭니다. 만료일도 정할 수 있고, 하나만 따로 지울 수 있습니다. 언제나 이쪽을 씁니다.
권한을 골라 보세요. 그 토큰으로 무엇을 할 수 있고 무엇이 막히는지 나옵니다.
불러오는 중…

이 서버가 실제로 쓰는 권한 조합

권한무엇에 쓰나
Zone : DNS : EditA·CNAME 레코드를 만들고 고친다
Zone : Zone : Read영역 목록을 읽는다 (거의 항상 함께 필요)
Zone : SSL and Certificates : Edit오리진 인증서를 발급한다
Account : Cloudflare Tunnel : Edit터널을 만들고 지운다

Zone Resources 에서 그 도메인 하나만 고르세요. '모든 영역' 으로 두면 굳이 넓힐 이유가 없는 문을 열어 두는 셈입니다.

쓰는 모양

# 토큰을 파일에서 읽어 환경변수로만 넘긴다 $ export CF_TOKEN="$(grep '^CF_API_TOKEN=' ~/.secrets | cut -d= -f2-)" $ curl -s -H "Authorization: Bearer $CF_TOKEN" https://api.cloudflare.com/client/v4/user/tokens/verify {"result":{"status":"active"},"success":true}

토큰이 살아 있는지 확인하는 가장 빠른 방법이 /tokens/verify 입니다. 값을 화면에 찍지 않고도 확인할 수 있어요.

권한을 좁게 주면 <b>내 실수</b>까지 막아 줍니다.
Python 브라우저에서 실행
🤔 확인 문제
배포 스크립트가 A 레코드만 갱신하면 됩니다. 어떤 열쇠를 만들까요?