Las API de Cloudflare

Hoy anunciamos la disponibilidad general de tokens API: una forma escalable y más segura de interactuar con las API de Cloudflare. Como parte de la creación de un mejor Internet, Cloudflare se esfuerza por simplificar la capacidad de administración de la presencia de un cliente en el límite. Parte de la manera en que hacemos esto es asegurando que todos nuestros productos y servicios sean configurables por API. Los clientes, desde socios hasta empresas y desarrolladores, desean automatizar la administración de Cloudflare. Algunas veces eso se hace directamente a través de nuestra API y otras veces se realiza a través de un software de código abierto que ayudamos a mantener como nuestro proveedor Terraform o la biblioteca Cloudflare-Go. Es vital que los clientes que están automatizando la administración de Cloudflare puedan mantener sus servicios de Cloudflare lo más seguros posible.

Menos privilegio y por qué importa

Proteger los sistemas de software es difícil. Limitar lo que puede hacer un software es una buena defensa para prevenir que los errores o las acciones maliciosas tengan un mayor impacto del que podrían tener. El principio del privilegio mínimo ayuda a orientar cuánto acceso debe tener un sistema determinado para realizar acciones. Originalmente desarrollado por Jerome Saltzer: "Todos los programas y todos los usuarios privilegiados del sistema deben operar al usar la menor cantidad de privilegios necesarios para completar el trabajo". En el caso de Cloudflare, muchos clientes tienen varios dominios que enrutan el tráfico al aprovechar muchos servicios diferentes. Si un mal actor obtiene acceso no autorizado a un sistema, puede utilizar cualquier acceso que ese sistema tenga para provocar más daño o robar información adicional.

Veamos cómo las capacidades de los tokens API se ajustan al principio de privilegio mínimo.

Acerca de los tokens API

Los tokens API proporcionan tres capacidades principales:

  1. Alcance de tokens API por recurso de Cloudflare
  2. Alcance de tokens API con permiso
  3. La capacidad de suministrar múltiples tokens API

Analicemos cada una de estas capacidades.

Alcance de tokens API por recurso de Cloudflare

Cloudflare separa la configuración del servicio por zona, lo cual generalmente equivale a un dominio. Adicionalmente, algunos clientes tienen varias cuentas, cada una con muchas zonas. Es importante que al otorgar acceso API a un servicio solo tenga acceso a los recursos de cuentas y zonas que sean pertinentes para el trabajo en cuestión. Los tokens API pueden tener un alcance para cubrir solo cuentas específicas y zonas específicas. Un caso de uso común es si tiene una zona de preparación y una zona de producción, entonces un token API se puede limitar para que solo pueda afectar la zona de preparación y no tener acceso a la zona de producción.

Alcance de los tokens API por permiso

Poder aplicar un token API a una zona específica es excelente, pero en una zona hay muchos servicios diferentes que se pueden configurar: reglas de firewall, reglas de página y equilibradores de carga, solo por mencionar algunos. Si un cliente tiene un servicio que solo debería poder crear nuevas reglas de firewall en respuesta a los patrones de tráfico, entonces también permitir que ese servicio cambie los registros DNS es una violación al privilegio mínimo. Los tokens API le permiten aplicar cada token a un permiso específico. Se pueden combinar múltiples permisos para crear tokens personalizados que se adapten a casos de uso específicos.

Múltiples tokens API

Si usted usa Cloudflare para proteger y acelerar múltiples servicios, entonces puede estar haciendo cambios de API a Cloudflare desde múltiples ubicaciones: diferentes servidores, máquinas virtuales, contenedores o trabajadores. Poder crear un token API por servicio significa que cada servicio está aislado de los cambios de otro. Si se filtra un token API o es necesario implementarlo, no se producirá ningún impacto en los tokens API de los otros servicios. Además, las capacidades mencionadas anteriormente significan que cada servicio se puede enfocar exactamente en las acciones y recursos necesarios. Esto permite a los clientes realizar mejor la práctica de privilegios mínimos para acceder a Cloudflare a través de API.

Ahora veamos cómo crear un token API y usarlo.

Uso de tokens API

Para crear su primer token API, vaya a la sección "Tokens API" de su perfil de usuario que puede encontrar aquí: dash.cloudflare.com/profile/api-tokens

1. En esta página, encontrará una lista de todos sus tokens API, además de su clave API global y su clave CA de origen.

Introducción a Tokens API - Crear token

Para crear su primer token API, seleccione "Crear token".


2. En la pantalla de creación, hay dos formas de crear su token. Puede crearlo desde cero por medio de la opción "Personalizar" o puede comenzar con una plantilla predefinida al seleccionar "Comenzar con una plantilla".

Selección de plantilla de token API

Para este caso, usaremos la plantilla "Editar zona DNS" para crear un token API que pueda editar los registros DNS de una sola zona.


3. Una vez que se selecciona la plantilla, debemos elegir una zona para que el token API lo tenga como su alcance. Observe que el permiso de edición de DNS ya estaba preseleccionado

Especificación de la zona para la cual el token podrá controlar el DNS

En este caso, "garrettgalow.com" se selecciona como la zona Cloudflare para la cual el token API podrá editar registros DNS.


4. Una vez que selecciono continuar con el resumen, tengo la oportunidad de revisar mi selección. En este caso, los recursos y los permisos son muy simples, pero esto le da un cambio para asegurarse de que le está dando al token API exactamente la cantidad correcta de privilegios antes de crearlo.

Resumen de tokens: confirmación

5. Una vez creado, se nos presenta el token de API. ¡En esta pantalla es la única vez que se le mostrará el secreto, así que asegúrese de guardar el secreto en un lugar seguro! Cualquier persona que conozca este secreto puede realizar las acciones otorgadas en los recursos especificados, así que protéjalo como una contraseña. En la captura de pantalla siguiente, he enmarcado el secreto en negro por razones obvias. Si pierde el secreto, siempre puede volver a generarlo desde la tabla de tokens API para que no tenga que configurar todos los permisos de nuevo.

Pantalla de finalización de creación de tokens con el secreto del token

Además del secreto en sí, esta pantalla proporciona un ejemplo de solicitud de curl que se puede usar para verificar que el token se haya creado correctamente. También proporciona un ejemplo de cómo se debe utilizar el token para cualquier solicitud de HTTP directa. Con los Tokens API ahora seguimos el estándar RFC Authorization Bearer. Al llamar a esa API, vemos una respuesta exitosa que nos indica que el token es válido y que está activo

~$ curl -X GET "https://api.cloudflare.com/client/v4/user/tokens/verify" \
>      -H "Authorization: Bearer vh9awGupxxxxxxxxxxxxxxxxxxx" \
>      -H "Content-Type:application/json" | jq

{
  "result": {
    "id": "ad599f2b67cdccf24a160f5dcd7bc57b",
    "status": "active"
  },
  "success": true,
  "errors": [],
  "messages": [
    {
      "code": 10000,
      "message": "This API Token is valid and active",
      "type": null
    }
  ]
}

Lo qué se ofrecerá en el futuro

Para cualquier persona que use la API de Cloudflare, le recomendamos que opte por el uso de tokens API en lugar de sus claves API anteriores. Con este anuncio, nuestro proveedor Terraform, la biblioteca Cloudflare-Go y el plugin WordPress están actualizados para que sean compatibles con el token API. Otras bibliotecas pronto recibirán actualizaciones. Por el momento, tanto los tokens API como las claves API serán compatibles para que los clientes puedan migrar de forma segura. Tenemos más capacidades planificadas para los tokens API a fin de proteger aún más cómo y cuándo se utilizan los tokens, ¡así que esté atento a los anuncios futuros!

Cuéntenos qué piensa y qué le gustaría ver después con respecto a la seguridad de la API en la Comunidad de Cloudflare.