Référence : Paramètres de configuration du conteneur de la passerelle auto-hébergée

S’APPLIQUE À : Développeur | Premium

Cet article fournit une référence pour les paramètres obligatoires et facultatifs utilisés pour configurer le conteneur de la passerelle auto-hébergée de la Gestion des API.

Pour plus d’informations, voir Directives pour faire fonctionner une passerelle auto-hébergée sur Kubernetes en production.

Important

Cette référence s’applique uniquement à la passerelle auto-hébergée v2. Cette référence indique la version minimale qui prend en charge chaque univers.

Intégration de l’API de configuration

La passerelle auto-hébergée utilise l’API de configuration pour se connecter à Gestion des API Azure, obtenir la dernière configuration et envoyer des métriques lorsque les données sont activées.

Le tableau suivant décrit les options de configuration pour l’intégration de l’API de configuration :

Nom Descriptif Obligatoire Par défaut Disponibilité
gateway.name ID de la ressource de passerelle auto-hébergée. Oui, lors de l'utilisation de l'authentification Microsoft Entra N/A v2.3+
config.service.endpoint Point de terminaison de configuration dans la Gestion des API Azure pour la passerelle auto-hébergée. Recherchez cette valeur dans le Portail Azure sous Déploiement>. Oui N/A v2.0+
config.service.auth Définit comment la passerelle auto-hébergée s’authentifie à l’API de configuration. Actuellement, la passerelle prend en charge le jeton passerelle et l’authentification Microsoft Entra. Oui N/A v2.0+
config.service.auth.azureAd.tenantId ID du locataire Microsoft Entra. Oui, lors de l'utilisation de l'authentification Microsoft Entra N/A v2.3+
config.service.auth.azureAd.clientId ID client de l’application Microsoft Entra avec laquelle s’authentifier (également appelé ID d’application). Oui, lors de l'utilisation de l'authentification Microsoft Entra N/A v2.3+
config.service.auth.azureAd.clientSecret Secret de l'application Microsoft Entra avec laquelle s'authentifier. Oui, lors de l’authentification Microsoft Entra (sauf si vous spécifiez un certificat) N/A v2.3+
config.service.auth.azureAd.certificatePath Chemin d’accès au certificat avec lequel s’authentifier pour l’application Microsoft Entra. Oui, lors de l’authentification Microsoft Entra (sauf si vous spécifiez un secret) N/A v2.3+
config.service.auth.azureAd.authority URL d’autorité de l’ID Microsoft Entra. Non https://login.microsoftonline.com v2.3+
config.service.auth.tokenAudience Audience du jeton pour l’authentification Microsoft Entra. Non https://azure-api.net/configuration v2.3+
config.service.endpoint.disableCertificateValidation Définit si la passerelle auto-hébergée valide le certificat côté serveur de l’API de configuration. Utilisez la validation des certificats en production. Désactivez-le uniquement pour les tests, et faites preuve de prudence car cela peut présenter un risque de sécurité. Non false v2.0+
config.service.intégration.timeout Définit le délai d'expiration pour interagir avec l'API de configuration. Non 00:01:40 v2.3.5+

La passerelle auto-hébergée prend en charge plusieurs options d’authentification pour s’intégrer à l’API de configuration. Définissez ces options en utilisant config.service.auth.

Pour définir comment s’authentifier, fournissez les informations suivantes :

  • Pour l’authentification basée sur les jetons de passerelle, spécifiez un jeton d’accès (clé d’authentification) de la passerelle auto-hébergée dans le Portail Azure sousDéploiement>de passerelles.
  • Pour l’authentification basée sur Microsoft Entra ID, spécifiez azureAdApp et fournissez les paramètres d’authentification config.service.auth.azureAd supplémentaires.

Découverte et synchronisation entre instances

Nom Descriptif Obligatoire Par défaut Disponibilité
neighborhood.host Nom DNS utilisé pour résoudre toutes les instances d’un déploiement de passerelle auto-hébergée pour la synchronisation entre instances. Dans Kubernetes, utilisez un service headless pour résoudre les instances. Non N/A v2.0+
neighborhood.heartbeat.port Port UDP utilisé pour les instances d’un déploiement de passerelle auto-hébergé pour envoyer des pulsations à d’autres instances. Non 4291 v2.0+
policy.rate-limit.sync.port Port UDP utilisé pour les instances de passerelle auto-hébergées pour synchroniser la limitation de débit entre plusieurs instances. Non 4290 v2.0+

HTTP

Nom Descriptif Obligatoire Par défaut Disponibilité
net.server.http.forwarded.proto.enabled Honore l’en-tête X-Forwarded-Proto pour identifier le schéma afin de résoudre la route API appelée (http/https uniquement). Non false v2.5+

Intégration à Kubernetes

Kubernetes Ingress (aperçu)

Important

Le support de Kubernetes Ingress est expérimental, et le support Azure ne le couvre pas. Pour en savoir plus, consultez le dépôt GitHub Kubernetes Ingress.

Nom Descriptif Obligatoire Par défaut Disponibilité
k8s.ingress.enabled Activer l’intégration Kubernetes Ingress. Non false v2.0+
k8s.ingress.namespace Espace de noms Kubernetes dans lequel regarder les ressources Kubernetes Ingress. Non default v2.0+
k8s.ingress.dns.suffix Suffixe DNS pour générer le nom d’hôte DNS pour que les services envoient les requêtes. Non svc.cluster.local v2.4+
k8s.ingress.config.path Chemin d’accès à la configuration Kubernetes (Kubeconfig). Non N/A v2.4+

Mesures

Nom Descriptif Obligatoire Par défaut Disponibilité
telemetry.metrics.local Activez la collecte de métriques locales via StatsD. La valeur est l’une des options suivantes : none, statsd. Non none v2.0+
telemetry.metrics.local.statsd.endpoint Point de terminaison StatsD. Oui, s’il telemetry.metrics.local est défini sur statsd ; sinon non. N/A v2.0+
telemetry.metrics.local.statsd.sampling Taux d’échantillonnage des métriques StatsD. La valeur doit être comprise entre 0 et 1, par exemple, 0,5. Non N/A v2.0+
telemetry.metrics.local.statsd.tag-format Format d’étiquetage de l’exportateur StatsD. La valeur est l’une des options suivantes : librato, dogStatsD, influxDB. Non N/A v2.0+
telemetry.metrics.cloud Indiquez s’il faut activer les métriques d’émission sur Azure Monitor. Non true v2.0+
observability.opentelemetry.enabled Indiquer s’il faut activer les métriques d’émission à un collecteur OpenTelemetry sur Kubernetes. Non false v2.0+
observability.opentelemetry.collector.uri URI du collecteur OpenTelemetry vers laquelle envoyer des métriques. Oui, s’il observability.opentelemetry.enabled est défini sur true ; sinon non. N/A v2.0+
observability.opentelemetry.system-metrics.enabled Activez l’envoi de métriques système, telles que le processeur, la mémoire et la collecte des ordures, vers le collecteur OpenTelemetry. Non false v2.3+
observability.opentelemetry.histogram.buckets Compartiments d’histogrammes pour rapporter les métriques OpenTelemetry. Format : « x,y,z,... ». Non « 5,10, 25, 50,100, 250, 500,1 000, 2 500, 5 000,10 000 » v2.0+

Journaux d’activité

Nom Descriptif Obligatoire Par défaut Disponibilité
telemetry.logs.std Activez la journalisation dans un flux standard. La valeur est l’une des options suivantes : none, text, json. Non text v2.0+
telemetry.logs.std.level Définit le niveau logarithmique des journaux envoyés au flux standard. La valeur est l’une des options suivantes : all, debug, info, warn, error, ou fatal. Non info v2.0+
telemetry.logs.std.color Indiquez s’il faut ou non utiliser des rondins colorés dans le flux standard. Non true v2.0+
telemetry.logs.local Activez la journalisation locale. La valeur est l’une des options suivantes : none, auto, localsyslog,rfc5424,journal,json Non auto v2.0+
telemetry.logs.local.localsyslog.endpoint Point de terminaison localsyslog. Oui, s’il telemetry.logs.local est défini sur localsyslog ; sinon non. Pour plus d’informations sur la configuration, consultez la documentation syslog locale. N/A v2.0+
telemetry.logs.local.localsyslog.facility Specifies le code de facilité de localsyslog 7. Non N/A v2.0+
telemetry.logs.local.rfc5424.endpoint point de terminaison de rfc5424. Oui, s’il telemetry.logs.local est défini sur rfc5424 ; sinon non. N/A v2.0+
telemetry.logs.local.rfc5424.facility Code d’installation par rfc5424, par exemple, 7 Non N/A v2.0+
telemetry.logs.local.journal.endpoint Point de terminaison de journal. Oui, s’il telemetry.logs.local est défini sur journal ; sinon non. N/A v2.0+
telemetry.logs.local.json.endpoint Point de terminaison UDP qui accepte les données JSON, spécifié en tant que chemin de fichier, adresse IP : port ou nom d’hôte : port. Oui, s’il telemetry.logs.local est défini sur json ; sinon non. 127.0.0.1:8888 v2.0+

Sécurité

Certificats et chiffres

Nom Descriptif Obligatoire Par défaut Disponibilité
certificates.local.ca.enabled Indiquer si la passerelle auto-hébergée doit utiliser des certificats de CA locaux montés. Il est nécessaire d'exécuter la passerelle auto-hébergée en tant que racine ou avec l'ID utilisateur 1001. Non false v2.0+
net.server.tls.ciphers.allowed-suites Liste de chiffres séparés par virgules à utiliser pour la connexion TLS entre le client API et la passerelle auto-hébergée. Non 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 Liste séparée par des virgules de chiffrements à utiliser pour la connexion TLS entre la passerelle auto-hébergée et le serveur principal. Non 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 Cela active ou désactive la validation de liste de révocation de certificats. Non false v2.3.6+

TLS

Nom Descriptif Obligatoire Par défaut Disponibilité
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 Indique si la passerelle permet TLS 1.3 vers le backend. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 Indique si la passerelle permet TLS 1.2 vers le backend. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 Indique si la passerelle permet TLS 1.1 vers le backend. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 Indique si la passerelle permet TLS 1.0 vers le backend. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 Indique si la passerelle permet SSL 3.0 vers le backend. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non false v2.0+

Clouds souverains

Le tableau suivant décrit les réglages à configurer pour fonctionner avec des clouds souverains :

Nom Publique Azure Chine US Government
config.service.auth.tokenAudience https://azure-api.net/configuration (valeur par défaut) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (valeur par défaut) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

Configuration des paramètres

Fichier YAML Kubernetes

Lors du déploiement de la passerelle auto-hébergée sur Kubernetes à l’aide d’un fichier YAML, configurez les paramètres comme paires nom-valeur dans l’élément data de la ConfigMap de la passerelle. Par exemple :

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"

[...]

Graphique Helm

Lorsque vous utilisez Helm pour déployer la passerelle auto-hébergée vers Kubernetes, passez les paramètres de configuration des graphiques comme paramètres à la helm install commande. Par exemple :

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