2026-09-27 — Credenciales de la 2ª cuenta Cloudflare en ~/.zshrc (verificado)

Contexto: el usuario preguntó si la “segunda cuenta” ([usuario]@protonmail) y su acceso ya estaban visibles en .zshrc. Sí. Valores nunca impresos; solo longitudes, hashes e ids.

.zshrc editado 2026-09-27 14:50, líneas 535–537:

varformaqué es en realidad
CF_ACCOUNT_ID_253 chars, cfat_…Account API token (formato cfat_ = token propiedad de la cuenta, no de un usuario). Nombre del token: throbbing-pond-8eb3, id 3e8862b21f7242f46c5466d75e4b2bf7, status active.
CF_KEY_ID_232 hex, 3e8862…id del mismo token = Access Key ID del par S3/R2 derivado.
CF_API_TOKEN_264 hexverificado: sha256(CF_ACCOUNT_ID_2) → es el Secret Access Key de R2 derivado del token, no un token independiente.

A qué da acceso

GET /accounts con CF_ACCOUNT_ID_2 → una cuenta: 543d69fcf988942b1053c21adc64a607 — “[usuario]@protonmail.com’s Account”. La cuenta 1 (162ab69a…) devuelve 403 con este token ⇒ son cuentas separadas.

Zonas de esa cuenta:

  • neni.lat (4f6ccb02798ac15cb165627cd4d77396) — NS ashton/ivy.ns.cloudflare.com
    • A neni.lat → [IP] (Netlify, proxied), CNAME www → nenilat.netlify.app
  • neni.boutique, neni.online, neni.store
  • GET /accounts/…/pages/projects → vacío (aún sin proyectos Pages en la 2ª cuenta)

Permisos del token (333 permission groups, scope: cuenta completa)

Incluye Pages Read/Write, Workers Admin/Editor/Scripts Write, R2 Storage Write, D1 Write, KV Write, Email Sending Read/Write, DNS Read, Zone Read, Turnstile Read/Write, Images Write, Queues/Pipelines Write, Billing Write. NO aparecen DNS Write / Zone Edit / Zone DNS Settings Write ⇒ lectura de DNS, escritura no (habría que confirmar con un intento o con un token dedicado si se necesita crear registros).

Gotcha que costó el diagnóstico

Un token cfat_ no pasa por endpoints de usuario: /user y /user/tokens/verify devuelven 9109/1000 (“Invalid API Token” / “Valid user-level authentication not found”) aunque el token sea válido. Se prueba contra /accounts, /zones, etc.

Otros tokens hallados (no son esta cuenta)

  • .zshrc:527 CLOUDFLARE_API_TOKEN (comentado, id a72be5f1…): verify→active pero /accounts → 0 cuentas y 9109 en /user ⇒ sin alcance utilizable.
  • ~/nef/sandbox-sep-6/.env CF_API_TOKEN (id 0530faf3…): igual, 0 cuentas.
  • ~/nef/marvelous/.env y ~/nef/estado_turismo/spab-retrieval/.env: 401/err 1000 (malos).

Qué desbloquea (pendiente)

  1. Email Sending Write + zona neni.lat en esta cuenta → posible remitente [ID-EMAIL] vía REST (POST /zones/{id}/email/sending/subdomains…), sin dashboard.
  2. Pages Write en la 2ª cuenta → publicar demos ahí (dominio neni.lat)… pero montar subdominio custom exige DNS write que este token no tiene.
  3. Seguir sin tocar DNS: demos en neni-demo.pages.dev (cuenta 1) como están.

Receta de verificación (reutilizable):

t=$CF_ACCOUNT_ID_2
curl -s -H "Authorization: Bearer $t" https://api.cloudflare.com/client/v4/accounts
curl -s -H "Authorization: Bearer $t" https://api.cloudflare.com/client/v4/zones?per_page=20