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. | Sí | 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. | Sí | 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 adicionalconfig.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 se permite o no TLS 1.3 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
- Obtenga más información sobre las instrucciones para ejecutar la puerta de enlace autohospedada en Kubernetes en producción.
- Implementación de una puerta de enlace autohospedada en Docker
- Implementación de una puerta de enlace autohospedada en Kubernetes
- Implementación de una puerta de enlace autohospedada en el clúster de Kubernetes habilitado para Azure Arc
- Habilitación de la compatibilidad con Dapr en la puerta de enlace autohospedada
- Más información sobre las opciones de configuración de la extensión de Azure Arc