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 en savoir plus sur nos conseils de production (Kubernetes), nous vous recommandons de lire cet article.
Important
Cette référence s’applique uniquement à la passerelle auto-hébergée v2. Des versions minimales pour la disponibilité des paramètres sont fournies.
Intégration de l’API de configuration
L’API de configuration est utilisée par la passerelle auto-hébergée pour se connecter à Azure API Management afin d’obtenir la dernière configuration et d’envoyer des métriques, quand il est activé.
Voici une vue d’ensemble de toutes les options de configuration :
Nom | Description | Obligatoire | Default | 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éploiementde passerelles>. | Oui | N/A | v2.0+ |
config.service.auth | Définit la façon dont la passerelle auto-hébergée doit s’authentifier auprès de l’API de configuration. Actuellement, le jeton de passerelle et l'authentification Microsoft Entra sont pris en charge. | 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'utilisation de l'authentification Microsoft Entra (sauf si un certificat est spécifié) | 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'utilisation de l'authentification Microsoft Entra (sauf si le secret est spécifié) | 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 utilisé 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 doit valider le certificat côté serveur de l'API de configuration. Il est recommandé d'utiliser la validation des certificats, de ne la désactiver qu'à des fins de test et avec prudence, car elle peut présenter un risque pour la sécurité. | No | 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 quelques options d’authentification à intégrer à l’API de configuration qui peut être définie à l’aide deconfig.service.auth
.
Cette aide vous fournit les informations requises pour définir comment s’authentifier :
- 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’authentificationconfig.service.auth.azureAd
supplémentaires.
Découverte inter-instances et synchronisation
Nom | Description | Obligatoire | Default | 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, elle peut être obtenue à l’aide d’un service sans tête. | 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 | Description | Obligatoire | Default | Disponibilité |
---|---|---|---|---|
net.server.http.forwarded.proto.enabled | Possibilité d’honorer X-Forwarded-Proto l’en-tête pour identifier le schéma pour résoudre l’itinéraire d’API (http/https uniquement). |
Non | false | v2.5+ |
Intégration à Kubernetes
Entrée Kubernetes
Important
La prise en charge de Kubernetes Ingress est actuellement expérimentale et n’est pas couverte par le Support Azure. En savoir plus sur GitHub.
Nom | Description | Obligatoire | Default | Disponibilité |
---|---|---|---|---|
k8s.ingress.enabled | Activer l’intégration Kubernetes Ingress. | Non | false |
v1.2+ |
k8s.ingress.namespace | Espace de noms Kubernetes dans lequel regarder les ressources Kubernetes Ingress. | Non | default |
v1.2+ |
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 | Description | Obligatoire | Default | Disponibilité |
---|---|---|---|---|
telemetry.metrics.local | Activez la collecte de métriques locales via StatsD. La valeur est l’une des options suivantes : none , statsd . |
No | 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 : ibrato , dogStatsD , influxDB . |
Non | N/A | v2.0+ |
telemetry.metrics.cloud | Indique si vous souhaitez activer ou non l’émission de métriques vers Azure Monitor. | No | true |
v2.0+ |
observability.opentelemetry.enabled | Indique si vous souhaitez activer ou non l’émission de métriques à un collecteur OpenTelemetry sur Kubernetes. | No | 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 au collecteur OpenTelemetry, notamment le processeur, la mémoire, le nettoyage de la mémoire, etc. | Non | false |
v2.3+ |
observability.opentelemetry.histogram.buckets | Compartiments d’histogrammes dans lesquels les métriques OpenTelemetry doivent être signalées. Format : « x,y,z,... ». | No | « 5,10, 25, 50,100, 250, 500,1 000, 2 500, 5 000,10 000 » | v2.0+ |
Journaux d’activité
Nom | Description | Obligatoire | Default | 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 de journal 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 | Indication indiquant si les journaux colorés doivent être utilisés dans le flux standard. | No | true |
v2.0+ |
telemetry.logs.local | Activez la journalisation locale. La valeur est l’une des options suivantes : none , auto , localsyslog ,rfc5424 ,journal ,json |
No | 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 chiffrements
Nom | Description | Obligatoire | Default | Disponibilité |
---|---|---|---|---|
certificates.local.ca.enabled | Indique si la passerelle auto-hébergée doit utiliser ou non des certificats d’autorité de certification 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. | No | false |
v2.0+ |
net.server.tls.ciphers.allowed-suites | Liste séparée par des virgules de chiffrements à utiliser pour la connexion TLS entre le client d’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 | Permet d’activer ou de désactiver la validation de la liste de révocation de certificats | Non | false |
v2.3.6+ |
TLS
Nom | Description | Obligatoire | Default | Disponibilité |
---|---|---|---|---|
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 | Indique si TLS 1.3 est autorisé ou non vers le back-end. 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 TLS 1.2 est autorisé ou non vers le back-end. 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 TLS 1.1 est autorisé ou non vers le back-end. 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 TLS 1.0 est autorisé ou non vers le back-end. 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 SSL 3.0 est autorisé ou non vers le back-end. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. | Non | false |
v2.0+ |
Clouds souverains
Voici une vue d’ensemble des paramètres qui doivent être configurés pour pouvoir travailler avec des clouds souverains :
Nom | Public | 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 en tant que paires nom-valeur dans l’élément data
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 sur Kubernetes, transmettez les paramètres de configuration du graphique en tant que paramètres à la commande helm install
. 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
Étapes suivantes
- Découvrez les conseils pour exécuter la passerelle auto-hébergée sur Kubernetes en production
- Déployer une passerelle auto-hébergée sur Docker
- Déployer une passerelle auto-hébergée sur Kubernetes
- Déployer une passerelle auto-hébergée sur un cluster Kubernetes avec Azure Arc
- Activer la prise en charge de Dapr sur une passerelle auto-hébergée
- En savoir plus sur les options de configuration pour l’extension Azure Arc