Políticas de Gateway (Policies)
Volver a Learn
FAACCapítulo 22

Fundamentos y Arquitectura de APIs Corporativas

Políticas de Gateway (Policies)

Cómo construir pipelines seguros, predecibles, observables y gobernables para controlar el tráfico de APIs

Edición en profundidad - material de estudio y consulta profesional

Pipeline luminoso de policies procesando una llamada de API

Políticas como canal ejecutable de control, protección y mediación.

Canalización de policys programables entre la entrada y la respuesta de API Gateway
Figura de apertura: las policys transforman la en un canal de mediación y control programable.

Principio central

Una policy es un código de infraestructura: el orden, las dependencias, los efectos secundarios y el manejo de fallas determinan su comportamiento.

Edición en profundidad: material de estudio y consulta profesional.

Presentación del capítulo

El capítulo anterior presentó como un intermediario especializado que finaliza conexiones, aplica controles, selecciona rutas y crea una nueva relación con el . Este capítulo profundiza en el mecanismo que hace que este comportamiento sea programable: las policys de . Una policy representa una unidad de decisión o transformación ejecutada en un determinado punto del flujo. La autenticación, la validación de , la limitación de velocidad, el , la transformación de la carga útil, el enrutamiento y la observabilidad se pueden implementar mediante policys encadenadas.

En una demostración sencilla, las policys parecen bloques independientes que se pueden arrastrar o escribir en , , o un lenguaje gráfico. Sin embargo, en producción forman un programa distribuido. El orden cambia el resultado; una policy produce un consumido por la siguiente; las llamadas externas introducen latencia y disponibilidad; leer el cuerpo puede consumir corrientes; los reintentos pueden multiplicar los efectos; y una falla puede finalizar la solicitud antes de que se el .

Las policys también son parte del modelo de seguridad. Un error de precedencia puede permitir el tráfico antes de la autorización, registrar sin cifrar, aplicar cuota al identificador incorrecto o transformar un mensaje firmado e invalidar su integridad. Por lo tanto, el diseño de policys requiere el mismo cuidado que la ingeniería de software: responsabilidades claras, pruebas, revisión, control de versiones, observabilidad, reversión y control de cambios.

El objetivo de este capítulo es construir un modelo mental independiente del producto y relacionarlo con implementaciones como Axway , Azure Management y basados en filtros. Al final, el lector debería poder diseñar una canalización, justificar su orden, predecir los efectos de las fallas, identificar dependencias externas y diagnosticar en qué policy se cambió o rechazó una llamada.

Cómo estudiar este capítulo

Para cada policy, registre cinco elementos: entrada, condición de ejecución, efecto, estado producido y comportamiento de falla. Luego analice cómo interactúa con las policys anteriores y posteriores. Este método convierte una cadena visual en un programa comprensible.

Objetivos de aprendizaje

  • Explicar la policy como unidad ejecutable de decisión, control o transformación en el plan de datos.
  • Distinga las secciones , , y en caso de error, reconociendo equivalentes en diferentes productos.
  • Analizar orden, dependencias, , variables de y efectos secundarios.
  • Diseñar policys de autenticación, autorización, validación, aceleración, , transformación y enrutamiento.
  • Comprender los reintentos, los tiempos de espera, el , el respaldo y la idempotencia.
  • Reconozca los riesgos de lectura del cuerpo, almacenamiento en búfer, manipulación de y llamadas externas.
  • Cree un manejo de errores consistente sin ocultar la causa técnica.
  • Aplique registros, métricas, seguimientos, correlación y auditoría a nivel de policys.
  • Organice la reutilización, la herencia, los , los fragmentos, las plantillas y los parámetros.
  • Aplique CI/CD, pruebas, revisión, segregación de funciones y reversión a policys de .

Estructura del capítulo

  • 22.1 ¿Qué es una póliza?
  • 22.2 Modelo de ejecución y apartados
  • 22.3 Orden, y
  • 22.4 , herencia y precedencia
  • 22.5 Políticas de autenticación e identidad
  • 22.6 Autorización y decisiones externas
  • 22.7 Validación de mensajes y contratos
  • 22.8 Limitación de tasas, cuotas y
  • 22.9 Transformación de , y carga útil
  • 22.10 Selección de enrutamiento y
  • 22.11 Caché y coherencia
  • 22.12 Resiliencia y llamados externos
  • 22.13 Manejo de errores
  • 22.14 Observabilidad y auditoría
  • 22.15 Reutilización y gobernanza
  • 22.16 Pruebas, CI/CD y retroubleshooting
  • Resumen, lista de verificación, ejercicios, glosario y referencias.

22.1 ¿Qué es una póliza?

Una policy es una regla ejecutada por la en una solicitud, respuesta, conexión o . Puede observar datos, producir variables, permitir o negar continuidad, modificar el mensaje, llamar a un servicio externo, cambiar el destino o generar una respuesta sin reenviar la solicitud. En productos gráficos, la policy puede representarse mediante filtros conectados; en plataformas declarativas, por elementos de configuración ejecutados en secuencia.

La policy no debe confundirse con la policy organizacional abstracta. Una regla como “solo las aplicaciones asociadas con un contrato activo pueden acceder a la ” es una policy comercial o de seguridad. Para ejecutarlo, el puede combinar varias policys técnicas: validar certificado, extraer client_id, consultar un , verificar el estado del contrato, registrar la decisión y aplicar cuota. El oleoducto es la implementación operativa de la regla.

Las policys pueden ser locales, cuando solo utilizan el ya disponible, o remotas, cuando consultan , de introspección, banco, caché, servicio de autorización o sistema antifraude. Las policys remotas aumentan la potencia, pero también introducen dependencia de la red, tiempo de espera, reintento, autenticación entre componentes y el riesgo de indisponibilidad en cascada.

Tabla 1 - Una policy debe tener un efecto objetivo explícito y observable.
claseEjemplosefecto dominante
SeguridadJWT, mTLS, clave API, autorización.Permitir, negar o enriquecer la identidad.
TráficoLímite de tasa, cuota, detención de picos.Controlar el volumen y la competencia.
MediaciónHeaders, carga útil, protocolo.Cambiar de representación o de contexto.
EnrutamientoBackend, versión, región, canario.Elige destino y estrategia.
OperaciónRegistros, métricas, seguimiento, auditoría.Producir evidencia y telemetría.
ResilienciaTiempo de espera, reintento, disyuntor.Contener fallas y proteger dependencias.

22.2 Modelo de ejecución y apartados

Las plataformas de entrada a menudo dividen el proceso en fases. En inbound, la solicitud se recibe y puede ser autenticada, validada, limitada y transformada. En la fase de , la prepara y ejecuta la llamada al . En salida, procesa la respuesta, elimina datos, agrega , normaliza errores o almacena caché. En caso de falla, una sección de error o equivalente produce un manejo específico.

Estas fases son lógicas, no universales. Un producto puede representar todo como un árbol de filtros, otro como secciones declarativas y otro como filtros conectados al oyente. El arquitecto debe relacionar el concepto con el producto sin asumir una equivalencia perfecta. El punto decisivo es saber dónde está el mensaje, si ya se ha llamado al y qué sigue disponible.

Una policy puede provocar un y producir una respuesta inmediata. Una validación de no válida puede devolver 401; un límite de tasa excedido puede devolver 429; un hit de caché puede devolver 200 sin acceder al . Por lo tanto, "la recibió la llamada" no significa que se llamó al . Los registros de cada fase deben hacer visible esta decisión.

Fases de entrada, backend, salida y en caso de error del proceso de policys
Figura 1 - El ducto tiene fases, pero cualquiera puede terminar o desviar el flujo.

22.3 Orden, y

El orden de ejecución es parte de la semántica. Correlacionar la solicitud antes de cualquier rechazo garantiza que las respuestas 401 y 429 también tengan ID de solicitud. Autenticar antes de autorizar proporciona identidad a la policy de decisión. Validar el tamaño de la carga útil antes del análisis evita desperdiciar CPU en mensajes abusivos. Aplicar la transformación antes de la validación puede ser correcto cuando la normaliza un formato heredado, pero peligroso cuando oculta entradas no válidas.

Las policys intercambian información a través de un de ejecución. Este puede contener método, , , certificado, identidad, variables, respuesta parcial, error actual y métricas. Las variables deben tener nombres predecibles, un tipo conocido y un documentado. La reutilización de nombres genéricos como , usuario o resultado en diferentes fragmentos aumenta las colisiones y dificulta la retroubleshooting.

El es útil para rechazar anticipadamente y guardar el . Sin embargo, la respuesta debe preservar la observabilidad, cuando corresponda, los de seguridad y el formato de error. De lo contrario, las llamadas rechazadas por la se comportan de manera diferente a las respuestas producidas por el , confundiendo a los consumidores y a los monitores.

Correlación, autenticación, autorización, límites, transformación y orden de enrutamiento.
Figura 2: La secuencia debe reflejar las dependencias y los objetivos de protección.

Pregunta de revisión

Si se intercambian dos policys, ¿cambia el comportamiento? Si la respuesta es sí, esta dependencia debe documentarse y cubrirse mediante pruebas. Si el equipo no sabe cómo responder, es que aún no se comprende suficientemente el proceso.

22.4 , herencia y precedencia

Las policys se pueden aplicar en diferentes : global, espacio de trabajo, producto, , versión, operación o instancia específica. Los amplios reducen la duplicación y garantizan controles mínimos, mientras que los estrechos permiten un comportamiento especializado. El riesgo aparece cuando la herencia y la precedencia no están claras. Una puede imaginar que ha reemplazado una policy global cuando, en realidad, acaba de agregar un paso más.

La herencia debe utilizarse para las invariantes empresariales: correlación, mínimos, protección secreta, registros esenciales y controles obligatorios. Las reglas de negocio, el enrutamiento específico y la transformación de la carga útil suelen pertenecer a más cercanos a la . Mientras más lógica de negocios se coloque globalmente, mayor será el radio de impacto de un cambio.

Los fragmentos y las plantillas deben recibir parámetros explícitos y evitar dependencias ocultas de variables globales. Un cambio en un reutilizado puede afectar a cientos de . Por lo tanto, las referencias deben ser versionadas, probadas por los consumidores y publicadas gradualmente.

Tabla 2 - El scope correcto equilibra consistencia y autonomía.
AlcanceUso adecuadoRiesgo
MundialControles corporativos invariantes.Cambie con un gran radio de explosión.
Producto/espacio de trabajoPolíticas comunes a un dominio o canal.Acoplamiento entre diferentes API.
APIContrato y seguridad de esa interfaz.Duplicación si no hay fragmentos.
OperaciónExcepciones específicas y semántica fina.Configuración fragmentada y difícil de auditar.

22.5 Políticas de autenticación e identidad

Las policys de autenticación verifican la credencial presentada y establecen una identidad confiable. Esto puede implicar clave , autenticación básica, certificado de cliente, opaco, o credenciales personalizadas. El resultado no debería ser simplemente booleano. El canal debe producir un normalizado: sujeto, cliente, issuer, audience, , método de autenticación y nivel de garantía.

En la validación , la póliza debe verificar la firma, el algoritmo permitido, el issuer, la audience, el vencimiento y los requeridos. Simplemente decodificar el no autentica a nadie. Para opacos, la policy puede consultar la introspección, con controlado y tiempo de espera breve. Para , la identidad no debe derivarse únicamente del CN sin reglas de confianza, y cadena de certificados.

Las credenciales no deben registrarse. Cuando la propaga la identidad al a través de , debe eliminar los equivalentes enviados por el consumidor y escribir valores confiables. El debe aceptar estos solo desde una red autenticada o una identidad de ; de lo contrario, el consumidor puede falsificar el .

Pseudocódigo: establecimiento y propagación de identidad

# Flujo de autenticación conceptual remove_header_unreliable("X-Authenticated-Subject") credencial = extraer_credential(solicitud) identidad = validar(credencial) si identidad.invalida: devolver 401 .subject = identidad.subject .client_id = identidad.client_id add_header_backend("X-Authenticated-Subject", .subject)

22.6 Autorización y decisiones externas

La autorización responde a si la identidad puede realizar la acción sobre el recurso en ese . Las policys simples verifican , roles o . Los casos avanzados consultan un punto de decisión de policy, enviando atributos del sujeto, recurso, acción y entorno. La policy de actúa como una PEP: recopila datos, solicita una decisión, aplica permitir o denegar y registra pruebas.

Una llamada de autorización externa necesita un contrato estable, autenticación mutua, tiempo de espera, y decisión de apertura o cierre fallido. Para operaciones sensibles, el cierre fallido es la regla segura: si el no responde, se deniega el acceso. Para la telemetría no crítica, una policy puede fallar de forma degradada. Esta elección debe ser explícita y estar aprobada por el riesgo, no decidida accidentalmente por el comportamiento predeterminado de la herramienta.

Las decisiones se pueden almacenar en caché cuando los atributos y la validez lo permitan. La clave de caché debe incluir todos los elementos que influyen en la decisión. El solo por usuario, ignorando el recurso, la acción o el tenant, crea una autorización incorrecta. La invalidación también debe considerar el cambio de rol, la revocación y la rescisión del contrato.

Tabla 3 - La autorización debe equilibrar expresividad, latencia y disponibilidad.
EstrategiaventajaPrecaución técnica
Ámbitos/roles localesBaja latencia y simplicidad.Puede ser insuficiente para un contexto dinámico.
PDP externoCentraliza decisiones complejas.Disponibilidad, tiempo de espera y caché.
Política híbridaPrefiltro local y decisión externa.Consistencia entre dos capas.

22.7 Validación de mensajes y contratos

Método de verificación de policys de validación, tipo de contenido, tamaño, esquema, campos obligatorios, parámetros y restricciones. La validación temprana protege el y hace que los errores sean consistentes. puede proporcionar parte del contrato, pero no todas las reglas comerciales deben transferirse a la . Las validaciones complejas, que dependen del estado del dominio, pertenecen al servicio responsable.

La validación de o requiere análisis y puede consumir memoria. La debe imponer un límite de tamaño antes de cargar el cuerpo. En transmisiones, cargas y descargas de gran tamaño, el almacenamiento en búfer completo puede destruir el rendimiento. Las policys que necesitan leer el cuerpo deben documentar si preservan la transmisión para pasos posteriores.

La validación en modo de detección o de solo registro puede ayudar con la migración, pero no debería convertirse en un estado permanente. Si la organización recopila infracciones sin bloquearlas, necesita tiempo y criterio para activar la aplicación de la ley. De lo contrario, el contrato declarado y el tráfico real siguen divergiendo.

Tabla 4 - La pasarela protege el contrato; el backend preserva la verdad del dominio.
capaEjemplosUbicación preferida
SintaxisJSON bien formado, XML válido.API Gateway.
ContratoEsquema, tipos, requeridos, tamaño.Pruebas de gateway y backend.
Semántica simpleRangos, enumeraciones, formatos.API Gateway o backend según la propiedad.
regla de dominioEquilibrio, elegibilidad, transición estatal.Backend del dominio.

22.8 Limitación de tasas, cuotas y

La limitación de velocidad restringe la cantidad de eventos en una ventana; la cuota controla el consumo acumulado durante un período más largo; La limitación regula la velocidad o la concurrencia para proteger la capacidad. Aunque los términos varían entre productos, la policy debe definir unidad, clave, algoritmo, ventana, respuesta y distribuido.

La posición en el oleoducto cambia el objetivo. Limitar por antes de la autenticación reduce los ataques volumétricos. El límite por client_id después de la autenticación se aplica al plan o contrato comercial. La limitación por operación protege los costosos . Muchas plataformas combinan capas, pero cada contador aumenta el costo y la dependencia del estado compartido.

En distribuidas, los contadores locales pueden permitir que el total agregado supere el límite. Los contadores globales requieren un servicio compartido e introducen latencia. La arquitectura debe declarar si el límite es aproximado o estricto. La respuesta 429 debe incluir orientación como Reintentar después cuando sea posible y no revelar detalles internos innecesarios.

Profundización adicional

El capítulo 27 estará dedicado a la limitación de tasas, cuotas y . Aquí, la atención se centra en comprender cómo estas policys participan en la canalización e interactúan con la identidad, el estado distribuido y el manejo de errores.

22.9 Transformación de , y carga útil

Las policys de transformación adaptan a los consumidores y los : agregue o elimine , reescriba rutas, convierta parámetros de consulta, cambie el tipo de contenido o transforme y . Son útiles para modernizar legados y mantener contratos estables, pero pueden crear un acoplamiento invisible. El ahora depende de un mensaje que ningún consumidor envía directamente.

Los de seguridad e identidad requieren reglas especiales. La debe eliminar los valores que no sean de confianza antes de insertar los suyos propios. Los salto a salto no deben propagarse como de un extremo a otro. El host y el deben manejarse conscientemente, ya que una reescritura incorrecta puede llegar al host virtual equivocado o provocar una falla en el certificado.

Las transformaciones de carga útil cuestan CPU y memoria y pueden cambiar la firma, el o la clave de idempotencia. Si un mensaje está firmado por el consumidor, cualquier cambio invalida la firma, a menos que el modelo prevea una nueva firma por parte de la pasarela. Las transformaciones deben ser pequeñas, probadas y observables; Una lógica empresarial extensa en la puerta de entrada se convierte en un monolito de integración difícil de evolucionar.

Ejemplo conceptual de policys declarativas

< > <set- name="X-Correlation-ID" existe-action="skip"> <valor>@(Guid.NewGuid().ToString())</value> </set- > <rewrite- template="/clientes/{id}" /> <set- -service base- =" :// .interno" /> </inbound>

22.10 Selección de enrutamiento y

Las policys de enrutamiento eligen la implementación de , versión, región, clúster, tenant o canary. La decisión puede utilizar ruta, encabezado, reclamo, peso, estado, latencia o configuración externa. El enrutamiento es diferente de la autorización: un consumidor puede ser autorizado y aun así ser enviado al servidor equivocado si las reglas de precedencia son ambiguas.

Canario y azul-verde requieren afinidad cuando la experiencia debe permanecer consistente en todas las llamadas. La debe registrar qué variante se eligió y propagar el identificador para su seguimiento. El respaldo entre regiones debe considerar la residencia, la coherencia y la idempotencia de los datos. Enviar automáticamente una escritura a otra región después del tiempo de espera puede duplicar transacciones.

El descubrimiento de puede depender del , el registro de servicios o la configuración estática. Las policys no deben realizar una resolución personalizada para cada solicitud sin ni límites. El plano de control debe distribuir los destinos de forma segura, mientras que el plano de datos continúa procesando el tráfico incluso durante la indisponibilidad temporal del plano de gestión.

Tabla 5: El enrutamiento debe poder explicarse en registros y seguimientos.
decisiónseñal de entradaSe necesita evidencia
VersiónRuta, encabezado o consulta.Versión solicitada y ruta aplicada.
canarioPeso, cookie o client_id.Variante seleccionada y motivo.
RegiónLocalidad, salud y policy.Región elegida y respaldo.
tenantReclamar o acoger.Backend validado y aislado por tenants.

22.11 Caché y coherencia

Las policys de caché pueden reducir la latencia y la carga de , pero requieren comprender la semántica y el contrato de datos. La clave debe incluir el método, el normalizado y todas las variaciones relevantes, como tenant, idioma, aceptación y autorización. Almacenar en caché la respuesta privada sin separar a los consumidores puede provocar fugas graves.

La debe respetar las reglas de -Control, variación y invalidación cuando corresponda. En las autenticadas, la caché a menudo debe ser privada por consumidor o limitarse a datos verdaderamente públicos. Un acierto de caché también debería generar registros y métricas; de lo contrario, el se verá saludable porque recibe menos tráfico, mientras que los consumidores pueden recibir contenido obsoleto.

El caché no soluciona universalmente la lentitud del . Cambia la consistencia y el comportamiento en caso de falla. El estado obsoleto durante la revalidación y el respaldo con datos antiguos pueden ser válidos para el catálogo, pero inapropiados para el equilibrio o la autorización. La policy debe reflejar la criticidad del ámbito.

22.12 Resiliencia y llamados externos

El tiempo de espera limita el tiempo que espera la . Reintentar repite una operación bajo condiciones específicas. El detiene las llamadas cuando la dependencia tiene fallas persistentes. El respaldo produce una respuesta alternativa o utiliza otra fuente. Estos mecanismos deben diseñarse en conjunto con el presupuesto de latencia total y la idempotencia del método.

Reintentar puede ser seguro en muchos casos, pero no automáticamente. Un mal diseñado puede provocar efectos secundarios. El reintento en puede duplicar transacciones sin idempotencia de claves ni deduplicación de . También es necesario evitar la multiplicación entre capas: cliente, , mesh y pueden repetirse simultáneamente y convertir un pequeño fallo en una tormenta.

Los llamados auxiliares realizados por las policys (introspección, PPD, bóveda, antifraude) necesitan tiempos de espera más breves que el presupuesto principal. La debe distinguir el error de la empresarial del error de dependencia de la policy. Sin esta distinción, la indisponibilidad del servicio de autorización aparece como un 500 genérico y dificulta la respuesta operativa.

Coordinación entre tiempo de espera, reintento, disyuntor y respaldo
Figura 3 - La resiliencia requiere coordinación entre mecanismos y capas.

22.13 Manejo de errores y respuestas estandarizadas

Las policys de error convierten las fallas internas en respuestas estables de los consumidores. Deben conservar el estado correcto, un código de error empresarial o de plataforma, un mensaje seguro, un ID de correlación y documentación. El tratamiento no puede transformar ningún fallo en 200 ni ocultar la diferencia entre autenticación, autorización, limitación, tiempo de espera e indisponibilidad.

Una respuesta estandarizada debe evitar detalles confidenciales como el seguimiento de la pila, el nombre del clúster, la ruta del archivo, SQL, el interno o el contenido del . Al mismo tiempo, los registros internos deben mantener la causa, la policy, el tiempo y la dependencia involucrada. El consumidor recibe una visión segura; la operación recibe pruebas suficientes.

Los errores producidos antes del deben aplicar comunes, incluido cuando sea necesario. De lo contrario, el navegador puede ocultar el error real debido a una falla de . También es importante evitar que la policy de errores falle al intentar leer variables que no fueron creadas, generando una segunda excepción que enmascare la primera.

Ejemplo de respuesta de error estandarizada
{
  "type": "https://api.empresa.example/errors/rate-limit",
  "title": "Límite de solicitudes excedido",
  "status": 429,
  "detail": "Inténtelo de nuevo después del período indicado.",
  "correlationId": "8f4d9c2a-..."
}

22.14 Observabilidad y auditoría a nivel de policys

La observabilidad de la debe responder qué policys ejecutaron, cuánto tiempo tardaron y qué decisión tomaron. Un registro de acceso con estado y duración total es necesario, pero insuficiente. La policía remota debe medir la latencia y los resultados. El límite de tarifa debe registrar una clave y un contador anonimizados. El enrutamiento debe registrar el seleccionado. La autenticación debe registrar el método y el motivo del error sin exponer las credenciales.

El seguimiento distribuido debe crear o preservar el de seguimiento y generar intervalos para llamadas de y dependencias de policys. Una policy de transformación puede agregar atributos útiles, pero es necesario controlar la cardinalidad. client_id, , operación, versión y resultado son dimensiones útiles; La carga útil completa y los identificadores personales no deben convertirse en etiquetas de métricas.

La auditoría difiere del registro operativo. Registra cambios administrativos y decisiones sensibles con integridad, retención y acceso controlado. Quién cambió una policy global, quién la aprobó, qué versión se implementó y qué se vieron afectadas son información esencial para la investigación y el cumplimiento.

Tabla 6: Registros, métricas, seguimientos y auditoría responden a diferentes preguntas.
evidenciaEjemploUso
Registro de accesoAPI, funcionamiento, estado, duración.Diagnóstico de tráfico.
MétricaFallos debidos a policys, latencia externa.Alertas y aforo.
trazaGateway, PDP y tramos de backend.Análisis de extremo a extremo.
AuditoríaAutor, versión, aprobación y despliegue.Gobernanza y cumplimiento.

22.15 Reutilización, fragmentos y gobernanza

La reutilización reduce la duplicación, pero debe controlarse como una biblioteca. Los fragmentos deben tener contrato, versión, propietario, ejemplos, pruebas y registro de cambios. Un de validación , por ejemplo, debe declarar issuers, audiences, algoritmos, variables producidas y formato de error. Sin esto, cada se vuelve dependiente de un comportamiento implícito.

La gobernanza debe separar las policys obligatorias, recomendadas y opcionales. Los requisitos obligatorios pueden aplicarse globalmente o comprobarse en proceso. Se recomiendan plantillas adaptables. Las opciones cubren casos específicos. Las excepciones requieren justificación y plazo; de lo contrario, la plataforma acumula configuraciones permanentes que nadie comprende.

La segregación de funciones impide que una sola persona cambie la autenticación, publique y apruebe su propio cambio en la producción. El repositorio Git, las solicitudes de extracción, la validación automática, los entornos y la promoción controlada transforman la policy en infraestructura como código. El portal o el editor visual pueden seguir existiendo, pero los cambios manuales deben conciliarse con la fuente de la verdad.

22.16 Pruebas, CI/CD y retroubleshooting

Las pruebas de policys deben cubrir ruta feliz, credencial faltante, no válido, permiso insuficiente, límite excedido, no disponible, tiempo de espera externo y respuesta con formato incorrecto. Las pruebas unitarias o simuladas validan expresiones y fragmentos; las pruebas de integración ejecutan la real; las pruebas de carga revelan el costo del análisis, las llamadas remotas y el estado distribuido.

La canalización de CI/CD puede validar la sintaxis, el esquema, las referencias, los secretos, las policys prohibidas, el orden mínimo y la presencia de observabilidad. Luego, impleméntelo en un entorno de prueba, ejecute casos automatizados y promueva un artefacto inmutable. Canary en la propia reduce el riesgo, pero necesita una reversión rápida y métricas comparables.

Al solucionar problemas, primero identifique si la llamada llegó al oyente y qué /operación se seleccionó. Luego, revise el proceso: ID de correlación, autenticación, autorización, límite de velocidad, transformación, ruta, llamada de , y en caso de error. Evite comenzar con el cuando la respondió sin reenviar la solicitud.

Tabla 7 - El diagnóstico debe ubicar la decisión exacta dentro del proceso.
SíntomaHipótesis policysevidencia
401 inesperadoEmisor, audience, visualización, encabezado eliminado.El seguimiento de autenticación sin token está claro.
403 intermitenteCaché de decisiones, tenant o atributo dinámico.ID de decisión de PDP y clave de caché.
429 en unos pocos pedidosClave o contador global incorrecto.Identificador de límites y scope.
502/504Ruta, tiempo de espera, reintento o backend.Backend elegido y tiempos por intento.
Carga útil vacíaCuerpo consumido por la transformación.Registros de policys y tamaño antes/después.

Estudios de caso

Estudio de caso 1: válido, autorización incorrecta: la valida la firma y el vencimiento de , pero no verifica la audience. Se acepta un emitido a otra . La corrección no consiste simplemente en añadir una condición; es revisar el corporativo, agregar pruebas negativas, identificar las afectadas y promover nueva versión de forma controlada.

Estudio de caso 2: Tormenta de reintentos: el cliente, la y la malla de servicios repiten la misma llamada. Durante la degradación del , cada solicitud original genera múltiples intentos, lo que agota las conexiones. El rediseño define un único propietario de reintento, un presupuesto total, condiciones por método y un en función del error y la latencia.

Estudio de caso 3: encabezado de identidad falsificado: el confía en X-User-ID, pero la conserva el valor enviado por el cliente cuando no hay ningún . El atacante inyecta el cabezazo. La solución siempre elimina el encabezado externo, produce un nuevo valor solo después de la autenticación y restringe el a conexiones provenientes de la .

Resumen del capítulo

Las policys son el programa ejecutado por el plano de datos. Observan, deciden, transforman, llaman dependencias y pueden cerrar el flujo. El comportamiento final depende del orden, el , los , la herencia y el manejo de fallas.

Un robusto autentica y autoriza con criterios explícitos, valida mensajes sin asumir reglas de dominio, controla el tráfico con claves correctas, transforma solo lo necesario, enruta de forma explicable y aplica cacheing y resiliencia según la semántica de la operación.

Las policys deben tratarse como código: fuente versionada, revisión, pruebas, CI/CD, observabilidad, auditoría, reversión y propiedad. El editor visual es sólo una forma de creación; No elimina dependencias ni efectos secundarios.

La eficiente avanza a través del proceso con identificación de correlación y evidencia por paso. La pregunta central ya no es "¿falló la ?" y se convierte en “¿qué policy tomó qué decisión, con qué insumos y en cuánto tiempo?”.

Siguiente paso del curso

El Capítulo 23 profundizará en la arquitectura y funcionamiento de Axway , relacionando conceptos de este capítulo con Policy Studio, filtros, circuitos, grupos, instancias, cachés, configuración y funcionamiento de la plataforma.

Lista de verificación de revisión de policys

  • Cada policy tiene un objetivo, propietario, entrada, salida y comportamiento de falla documentados.
  • El orden de la canalización refleja las dependencias y está cubierto por pruebas.
  • El consumidor no puede falsificar ni variables de identidad.
  • Los , secretos y datos personales se eliminan de los registros.
  • Las llamadas externas tienen tiempo de espera, autenticación, métricas y decisión de falla de apertura/cierre de falla.
  • Límites de uso de clave, y contador consistentes con el objetivo.
  • Las transformaciones preservan el contrato, la transmisión, la firma y la idempotencia.
  • Los reintentos tienen un presupuesto, una condición y un propietario únicos.
  • Los errores mantienen el estado correcto, el formato seguro y la identificación de correlación.
  • Los fragmentos están versionados, probados y tienen un radio de explosión conocido.
  • Los cambios pasan por Git, revisión, validación, promoción y reversión.
  • Los registros, métricas, seguimientos y auditorías le permiten reconstruir decisiones.

Ejercicios

  • Diseñe una canalización para protegida por y explique el orden de las policys.
  • Compare la aplicación del límite de tasa antes y después de la autenticación.
  • Explique por qué una policy de lectura corporal puede afectar pasos posteriores.
  • Proponer tratamiento ante la indisponibilidad de un externo.
  • Describir los riesgos de reintento en una operación .
  • Establezca una clave de caché segura para la multitenant autenticada.
  • Explique cómo evitar de identidad falsificados.
  • Proponer globales, y de operación para diferentes policys.
  • Cree una matriz de prueba para vencido, audience incorrecta y faltante.
  • Describir un script de para el error 502 producido en la .

Glosario

Tabla 8 - Vocabulario esencial del capítulo.
TérminoDefinición
Sección de fondoFase que prepara o ejecuta la llamada al upstream.
disyuntorMecanismo que interrumpe las llamadas cuando una dependencia se degrada.
ContextoEstado disponible durante la ejecución del pipeline.
cerrado por fallaDenegar la operación cuando falla el motor de decisión.
Apertura fallidaPermitir o degradar la operación cuando falla un control.
FragmentoFragmento de configuración de policys reutilizable.
entranteFase de tramitación de la solicitud recibida.
En errorFlujo ejecutado cuando ocurre una falla en la tubería.
salienteFase de procesamiento de respuesta.
PDPComponente que calcula la decisión de autorización.
PEPEPunto al que se aplica una decisión de autorización.
Expresión de policyExpresión evaluada en runtime para producir una condición o valor.
CortocircuitoTerminación anticipada del flujo con respuesta propia.
Arresto de picoControl de ráfagas para suavizar los picos de tráfico.
estrangulamientoRegulación de la celeridad o concurrencia de solicitudes.

Referencias técnicas

  • . 9110 - Semántica .
  • . 9209: campo de encabezado de respuesta de estado de .
  • Microsoft aprende. Políticas en Azure Management.
  • Microsoft aprende. Referencias de policys y expresiones de policys de Azure Management.
  • Microsoft aprende. Validar contenido, elegir, reintentar, buscar en caché y establecer referencias de variables.
  • Portal de documentación de Axway. , Policy Studio y filtros de policys.
  • Documentación de del enviado. Filtros , autorización externa y limitación de velocidad.
  • . Security Top 10 - Edición 2023.
  • OpenTelemetría. de seguimiento y convenciones semánticas para .

Nota de actualización

La sintaxis, la disponibilidad y el de las policys varían según el producto, la edición y la versión. Antes de aplicar ejemplos, valide la documentación oficial de la plataforma implementada y ejecute pruebas en un entorno autorizado.