Comparteix a través de


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 sobre nuestra guía de producción (Kubernetes), se recomienda leer este artículo.

Importante

Esta referencia solo se aplica a la puerta de enlace autohospedada v2. Se proporcionan versiones mínimas para la disponibilidad de la configuración.

Integración de la API de configuración

La puerta de enlace autohospedada usa la API de configuración para conectarse a Azure API Management con la finalidad de obtener la configuración más reciente y enviar métricas, cuando esta opción está habilitada.

Esta es una introducción a todas las opciones 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 se debe autenticar la puerta de enlace autohospedada en la API de configuración. Actualmente, se admiten el token de puerta de enlace y la autenticación de 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í, al usar la autenticación de Microsoft Entra (a menos que se especifique el 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í, al usar la autenticación de Microsoft Entra (a menos que se especifique el 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 usado para la autenticación de Microsoft Entra No https://azure-api.net/configuration v2.3+
config.service.endpoint.disableCertificateValidation Define si la puerta de enlace autohospedada debe validar el certificado del lado servidor de la API de configuración. Se recomienda usar la validación de certificados, deshabilitar solo con fines de prueba y con precaución, ya que puede presentar riesgos 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 puerta de enlace autohospedada proporciona compatibilidad con algunas opciones de autenticación para integrarse con la API de configuración que se puede definir mediante config.service.auth.

Esta guía le ayuda a proporcionar la información necesaria para definir cómo autenticarse:

  • 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.

Detección 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, se puede lograr mediante un servicio sin encabezado. 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 Capacidad de respetar X-Forwarded-Proto el encabezado para identificar el esquema para resolver la ruta de API denominada (solo http/https). No false v2.5+

Integración de Kubernetes

Entrada de Kubernetes

Importante

La compatibilidad con Kubernetes Ingress es actualmente experimental y no está cubierta por el Soporte técnico de Azure. Obtenga más información en GitHub.

Nombre Descripción Necesario Valor predeterminado Disponibilidad
k8s.ingress.enabled Habilite la integración de Kubernetes Ingress. No false v1.2+
k8s.ingress.namespace Espacio de nombres de Kubernetes en el que ver los recursos de Kubernetes Ingress. No default v1.2+
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: ibrato, dogStatsD, influxDB. No N/D v2.0+
telemetry.metrics.cloud Indica si se va a habilitar la emisión de métricas para Azure Monitor o no. No true v2.0+
observability.opentelemetry.enabled Indica si se va a habilitar la emisión de métricas para un recopilador de OpenTelemetry en Kubernetes o no. 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 Habilite el envío de métricas del sistema al recopilador de OpenTelemetry, como CPU, memoria, recolección de elementos no utilizados, etc. No false v2.3+
observability.opentelemetry.histogram.buckets Cubos de histogramas en los que deben notificarse las 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 de registro 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 Indicación de si los registros coloreados deben usarse en la secuencia 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. 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 Indica si la puerta de enlace autohospedada debe usar los certificados de entidad de certificación locales 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 separada por comas de los cifrados que se van a usar para la conexión TLS entre el cliente de API y la puerta de enlace autohospedada. 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 Proporciona capacidad para activar o desactivar 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 Indicación de si ssl 3.0 está permitido hacia el back-end. 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 se permite o no TLS 1.2 hacia el back-end. 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 se permite o no TLS 1.1 hacia el back-end. 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 Indicación de si se permite o no TLS 1.0 hacia el back-end. 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 Indicación de si ssl 3.0 está permitido hacia el back-end. De forma similar a la administración de cifrados de protocolos en la puerta de enlace administrada. No false v2.0+

Nubes soberanas

Esta es una introducción a la configuración que debe configurarse para poder trabajar con nubes soberanas:

Nombre Public 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 implementar la puerta de enlace autohospedada en Kubernetes mediante un archivo YAML, configure las opciones como pares nombre-valor en el elemento data del archivo ConfigMap de la puerta de enlace. 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

Al usar Helm para implementar la puerta de enlace autohospedada en Kubernetes, pase los valores de configuración del gráfico como parámetros al comando helm install. 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

Pasos siguientes