Referencia: valores de configuración del contenedor de la puerta de enlace autohospedada

SE APLICA A: Desarrollador | Premium

En este artículo se proporciona una referencia para los valores obligatorios y opcionales que se usan para configurar el contenedor de la puerta de enlace autohospedada de API Management.

Para más información, consulte Guía para ejecutar una pasarela autoalojada en Kubernetes en producción.

Importante

Esta referencia solo se aplica a la puerta de enlace autohospedada v2. Esta referencia indica la versión mínima que soporta cada configuración.

Integración de la API de configuración

La pasarela autoalojada utiliza la API de Configuración para conectarse a Azure API Management, obtener la última configuración y enviar métricas cuando está habilitada.

La siguiente tabla describe las opciones de configuración para la integración de la API de configuración:

Nombre Descripción Necesario Valor predeterminado Disponibilidad
gateway.name Identificador del recurso de puerta de enlace autohospedado. Sí, cuando se usa la autenticación de Microsoft Entra N/D v2.3+
config.service.endpoint Punto de conexión de configuración de Azure API Management para la puerta de enlace autohospedada. Busque este valor en Azure Portal en Puertas de enlace>Implementación. N/D v2.0+
config.service.auth Define cómo la pasarela autoalojada se autentica a la API de configuración. Actualmente, la pasarela soporta token de gateway y autenticación Microsoft Entra. N/D v2.0+
config.service.auth.azureAd.tenantId Identificador del inquilino de Microsoft Entra. Sí, cuando se usa la autenticación de Microsoft Entra N/D v2.3+
config.service.auth.azureAd.clientId Id. de cliente de la aplicación de Microsoft Entra con el que autenticarse (también conocido como id. de aplicación). Sí, cuando se usa la autenticación de Microsoft Entra N/D v2.3+
config.service.auth.azureAd.clientSecret Secreto de la aplicación de Microsoft Entra con el que autenticarse. Sí, cuando se utiliza la autenticación Microsoft Entra (a menos que especifiques un certificado) N/D v2.3+
config.service.auth.azureAd.certificatePath Ruta de acceso al certificado con la que autenticarse para la aplicación de Microsoft Entra. Sí, cuando se usa autenticación Microsoft Entra (a menos que especifiques un secreto) N/D v2.3+
config.service.auth.azureAd.authority Dirección URL de autoridad de Microsoft Entra ID. No https://login.microsoftonline.com v2.3+
config.service.auth.tokenAudience Audiencia del token para la autenticación de Microsoft Entra. No https://azure-api.net/configuration v2.3+
config.service.endpoint.disableCertificateValidation Define si la pasarela autoalojada valida el certificado del lado servidor de la API de configuración. Usa la validación de certificados en producción. Desactívalo solo para pruebas y ten precaución porque puede suponer un riesgo de seguridad. No false v2.0+
config.service.integration.timeout Define el tiempo de espera para interactuar con la API de configuración. No 00:01:40 v2.3.5+

La pasarela autoalojada soporta varias opciones de autenticación para integrarse con la API de configuración. Defina estas opciones usando config.service.auth.

Para definir cómo autenticar, proporciona la siguiente información:

  • Para la autenticación basada en tókenes de puerta de enlace, especifique un token de acceso (clave de autenticación) de la puerta de enlace autohospedada en Azure Portal en Puertas de enlace>Implementación.
  • Para la autenticación basada en Microsoft Entra ID, especifique azureAdApp y proporcione la configuración de autenticación adicional config.service.auth.azureAd.

Descubrimiento y sincronización entre instancias

Nombre Descripción Necesario Valor predeterminado Disponibilidad
neighborhood.host Nombre DNS usado para resolver todas las instancias de una implementación de puerta de enlace autohospedada para la sincronización entre instancias. En Kubernetes, utiliza un servicio headless para resolver las instancias. No N/D v2.0+
neighborhood.heartbeat.port Puerto UDP usado para instancias de una implementación de puerta de enlace autohospedada para enviar latidos a otras instancias. No 4291 v2.0+
policy.rate-limit.sync.port Puerto UDP usado para instancias de puerta de enlace autohospedada para sincronizar la limitación de velocidad entre varias instancias. No 4290 v2.0+

HTTP

Nombre Descripción Necesario Valor predeterminado Disponibilidad
net.server.http.forwarded.proto.enabled Respeta el X-Forwarded-Proto encabezado para identificar el esquema que resuelve la ruta API llamada (solo http/https). No false v2.5+

Integración de Kubernetes

Kubernetes Ingress (vista previa)

Importante

El soporte para Kubernetes Ingress es experimental, y el soporte de Azure no lo cubre. Aprende más en el repositorio de GitHub Kubernetes Ingress.

Nombre Descripción Necesario Valor predeterminado Disponibilidad
k8s.ingress.enabled Habilite la integración de Kubernetes Ingress. No false v2.0+
k8s.ingress.namespace Espacio de nombres de Kubernetes en el que ver los recursos de Kubernetes Ingress. No default v2.0+
k8s.ingress.dns.suffix Sufijo DNS para compilar el nombre de host DNS para que los servicios envíen solicitudes. No svc.cluster.local v2.4+
k8s.ingress.config.path Ruta de acceso a la configuración de Kubernetes (Kubeconfig). No N/D v2.4+

Métricas

Nombre Descripción Necesario Valor predeterminado Disponibilidad
telemetry.metrics.local Habilite la recopilación de métricas locales mediante StatsD. El valor es una de las siguientes opciones: none, statsd. No none v2.0+
telemetry.metrics.local.statsd.endpoint Punto de conexión de StatsD. Sí, si telemetry.metrics.local se establece en statsd; en caso contrario, no. N/D v2.0+
telemetry.metrics.local.statsd.sampling Frecuencia de muestreo de las métricas de StatsD. El valor debe estar entre 0 y 1, por ejemplo, 0,5. No N/D v2.0+
telemetry.metrics.local.statsd.tag-format Formato de etiquetado del exportador de StatsD. El valor es una de las siguientes opciones: librato, dogStatsD, influxDB. No N/D v2.0+
telemetry.metrics.cloud Indica si habilitar las métricas de emisión en Azure Monitor. No true v2.0+
observability.opentelemetry.enabled Indica si habilitar métricas de emisión a un colector de OpenTelemetry en Kubernetes. No false v2.0+
observability.opentelemetry.collector.uri URI del recopilador de OpenTelemetry al que se van a enviar las métricas. Sí, si observability.opentelemetry.enabled se establece en true; en caso contrario, no. N/D v2.0+
observability.opentelemetry.system-metrics.enabled Habilitar el envío de métricas del sistema, como CPU, memoria y recogida de basura, al colector OpenTelemetry. No false v2.3+
observability.opentelemetry.histogram.buckets Cubos de histogramas en los que informar de métricas de OpenTelemetry. Formato: "x,y,z,...". No "5,10,25,50,100,250,500,1000,2500,5000,10000" v2.0+

Registros

Nombre Descripción Necesario Valor predeterminado Disponibilidad
telemetry.logs.std Habilite el registro en un flujo estándar. El valor es una de las siguientes opciones: none, text, json. No text v2.0+
telemetry.logs.std.level Define el nivel logarítmico de los registros enviados al flujo estándar. El valor es una de las siguientes opciones: all, debug, info, warn, error, o fatal. No info v2.0+
telemetry.logs.std.color Indica si usar o no troncos de colores en el flujo estándar. No true v2.0+
telemetry.logs.local Habilite el registro local. El valor es una de las siguientes opciones: none, auto, localsyslog, rfc5424, journal, json No auto v2.0+
telemetry.logs.local.localsyslog.endpoint punto de conexión localsyslog. Sí, si telemetry.logs.local se establece en localsyslog; en caso contrario, no. Consulte la documentación de syslog local para obtener más información sobre la configuración. N/D v2.0+
telemetry.logs.local.localsyslog.facility Especifica el código de componente de localsyslog, por ejemplo, 7. No N/D v2.0+
telemetry.logs.local.rfc5424.endpoint rfc5424 endpoint( punto de conexión de rfc5424). Sí, si telemetry.logs.local se establece en rfc5424; en caso contrario, no. N/D v2.0+
telemetry.logs.local.rfc5424.facility Código de componente por rfc5424; por ejemplo, 7 No N/D v2.0+
telemetry.logs.local.journal.endpoint Punto de conexión del diario. Sí, si telemetry.logs.local se establece en journal; en caso contrario, no. N/D v2.0+
telemetry.logs.local.json.endpoint Punto de conexión de UDP que acepta datos JSON, especificado como ruta de archivo, IP:puerto o nombreDeHost:puerto. Sí, si telemetry.logs.local se establece en json; en caso contrario, no. 127.0.0.1:8888 v2.0+

Seguridad

Certificados y cifrados

Nombre Descripción Necesario Valor predeterminado Disponibilidad
certificates.local.ca.enabled Indicar si la pasarela autoalojada debe usar certificados locales de la CA montados. Se requiere ejecutar la puerta de enlace autohospedada como raíz o con el identificador de usuario 1001. No false v2.0+
net.server.tls.ciphers.allowed-suites Lista de cifrados separados por comas para usar en la conexión TLS entre el cliente API y la pasarela autoalojada. No TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA v2.0+
net.client.tls.ciphers.allowed-suites Lista separada por comas de cifrados que se usan para la conexión TLS entre la puerta de enlace autohospedada y el backend. No TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA v2.0+
security.certificate-revocation.validation.enabled Activa o desactiva la validación de la lista de revocación de certificados. No false v2.3.6+

TLS

Nombre Descripción Necesario Valor predeterminado Disponibilidad
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 Indica si la pasarela permite TLS 1.3 al backend. De forma similar a la administración de cifrados de protocolos en la puerta de enlace administrada. No true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 Indica si el gateway permite TLS 1.2 al backend. De forma similar a la administración de cifrados de protocolos en la puerta de enlace administrada. No true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 Indica si la pasarela permite TLS 1.1 al backend. De forma similar a la administración de cifrados de protocolos en la puerta de enlace administrada. No false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 Indica si la pasarela permite TLS 1.0 al backend. De forma similar a la administración de cifrados de protocolos en la puerta de enlace administrada. No false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 Indica si la pasarela permite SSL 3.0 al backend. De forma similar a la administración de cifrados de protocolos en la puerta de enlace administrada. No false v2.0+

Nubes soberanas

La siguiente tabla describe los ajustes que debes configurar para trabajar con nubes soberanas:

Nombre Público Azure China US Gov
config.service.auth.tokenAudience https://azure-api.net/configuration (Valor predeterminado) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (Valor predeterminado) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

Cómo configurar los valores

Archivo YAML de Kubernetes

Al desplegar la pasarela autoalojada en Kubernetes usando un archivo YAML, configura la configuración como pares nombre-valor en el data elemento del MapConfigMap de la pasarela. Por ejemplo:

apiVersion: v1
    kind: ConfigMap
    metadata:
        name: contoso-gateway-environment
    data:
        config.service.endpoint: "contoso.configuration.azure-api.net"
        telemetry.logs.std: "text"
        telemetry.logs.local.localsyslog.endpoint: "/dev/log"
        telemetry.logs.local.localsyslog.facility: "7"

[...]

Gráfico de Helm

Cuando uses Helm para desplegar la puerta de enlace autoalojada en Kubernetes, pasa la configuración de gráficos como parámetros al helm install comando. Por ejemplo:

helm install azure-api-management-gateway \
    --set gateway.configuration.uri='contoso.configuration.azure-api.net' \
    --set gateway.auth.key='GatewayKey contosogw&xxxxxxxxxxxxxx...' \
    --set secret.createSecret=false \
    --set secret.existingSecretName='mysecret' \
    azure-apim-gateway/azure-api-management-gateway