Naslaginformatie: Zelf-hostende gatewaycontainerconfiguratie-instellingen

VAN TOEPASSING OP: Ontwikkelaar | Premie

Dit artikel bevat een verwijzing naar vereiste en optionele instellingen die worden gebruikt voor het configureren van de zelf-hostende gatewaycontainer van API Management.

Voor meer informatie, zie Richtlijnen voor het draaien van een zelf-gehoste gateway op Kubernetes in productie.

Belangrijk

Deze verwijzing is alleen van toepassing op de zelf-hostende gateway v2. Deze referentie vermeldt de minimale versie die elke instelling ondersteunt.

Integratie van configuratie-API

De zelfgehoste gateway gebruikt de Configuration API om verbinding te maken met Azure API Management, de nieuwste configuratie te krijgen en metrics te verzenden wanneer ingeschakeld.

De volgende tabel beschrijft de configuratieopties voor integratie van Configuration API:

Naam Beschrijving Vereist Standaardinstelling Beschikbaarheid
gateway.name Id van de zelf-hostende gatewayresource. Ja, wanneer u Microsoft Entra-verificatie gebruikt N.v.t. v2.3+
config.service.endpoint Configuratie-eindpunt in Azure API Management voor de zelf-hostende gateway. Zoek deze waarde in Azure Portal onder Gateways>Deployment. Ja N.v.t. v2.0+
config.service.auth Definieert hoe de zelfgehoste gateway zich authenticeert naar de Configuration API. Momenteel ondersteunt de gateway gateway token en Microsoft Entra-authenticatie. Ja N.v.t. v2.0+
config.service.auth.azureAd.tenantId Id van de Microsoft Entra-tenant. Ja, wanneer u Microsoft Entra-verificatie gebruikt N.v.t. v2.3+
config.service.auth.azureAd.clientId Client-id van de Microsoft Entra-app voor verificatie met (ook wel toepassings-id genoemd). Ja, wanneer u Microsoft Entra-verificatie gebruikt N.v.t. v2.3+
config.service.auth.azureAd.clientSecret Geheim van de Microsoft Entra-app waarmee moet worden geverifieerd. Ja, bij het gebruik van Microsoft Entra-authenticatie (tenzij je een certificaat specificeert) N.v.t. v2.3+
config.service.auth.azureAd.certificatePath Pad naar certificaat voor verificatie bij de Microsoft Entra-app. Ja, bij het gebruik van Microsoft Entra-authenticatie (tenzij je een geheim specificeert) N.v.t. v2.3+
config.service.auth.azureAd.authority Instantie-URL van Microsoft Entra-id. Nee https://login.microsoftonline.com v2.3+
config.service.auth.tokenAudience Publiek van de token voor Microsoft Entra-authenticatie. Nee https://azure-api.net/configuration v2.3+
config.service.endpoint.disableCertificateValidation Bepaalt of de zelf-gehoste gateway het server-side certificaat van de Configuration API valideert. Gebruik certificaatvalidatie in productie. Schakel het alleen uit voor testen en wees voorzichtig, want het kan een beveiligingsrisico met zich meebrengen. Nee false v2.0+
config.service.integration.timeout Hiermee definieert u de time-out voor interactie met de configuratie-API. Nee 00:01:40 v2.3.5+

De zelf-gehoste gateway ondersteunt verschillende authenticatieopties om te integreren met de Configuration API. Definieer deze opties door gebruik te maken van config.service.auth.

Om te definiƫren hoe authenticatie te doen, geef de volgende informatie:

  • Geef voor verificatie op basis van gatewaytoken een toegangstoken (verificatiesleutel) op van de zelf-hostende gateway in Azure Portal onder Gateways>Deployment.
  • Geef voor verificatie azureAdApp op basis van Microsoft Entra ID de aanvullende config.service.auth.azureAd verificatie-instellingen op en geef deze op.

Cross-instance ontdekking en synchronisatie

Naam Beschrijving Vereist Standaardinstelling Beschikbaarheid
neighborhood.host DNS-naam die wordt gebruikt voor het oplossen van alle exemplaren van een zelf-hostende gatewayimplementatie voor synchronisatie tussen exemplaren. Gebruik in Kubernetes een headless Service om de instanties op te lossen. Nee N.v.t. v2.0+
neighborhood.heartbeat.port UDP-poort die wordt gebruikt voor exemplaren van een zelf-hostende gatewayimplementatie om heartbeats naar andere exemplaren te verzenden. Nee 4291 v2.0+
policy.rate-limit.sync.port UDP-poort die wordt gebruikt voor zelf-hostende gateway-exemplaren om snelheidsbeperking tussen meerdere exemplaren te synchroniseren. Nee 4290 v2.0+

HTTP

Naam Beschrijving Vereist Standaardinstelling Beschikbaarheid
net.server.http.forwarded.proto.enabled Eer de X-Forwarded-Proto header om het schema te identificeren dat de aangeroepen API-route oplost (alleen http/https). Nee false v2.5+

Kubernetes-integratie

Kubernetes Ingress (preview)

Belangrijk

Ondersteuning voor Kubernetes Ingress is experimenteel, en Azure Support dekt het niet. Lees meer in de Kubernetes Ingress GitHub-repository.

Naam Beschrijving Vereist Standaardinstelling Beschikbaarheid
k8s.ingress.enabled Kubernetes-integratie voor inkomend verkeer inschakelen. Nee false v2.0+
k8s.ingress.namespace Kubernetes-naamruimte om Kubernetes-toegangsbeheerbronnen te bekijken. Nee default v2.0+
k8s.ingress.dns.suffix DNS-achtervoegsel voor het bouwen van DNS-hostnaam voor services om aanvragen naar te verzenden. Nee svc.cluster.local v2.4+
k8s.ingress.config.path Pad naar Kubernetes-configuratie (Kubeconfig). Nee N.v.t. v2.4+

Metrische gegevens

Naam Beschrijving Vereist Standaardinstelling Beschikbaarheid
telemetry.metrics.local Lokale verzameling metrische gegevens inschakelen via StatsD. Waarde is een van de volgende opties: none, statsd. Nee none v2.0+
telemetry.metrics.local.statsd.endpoint StatsD-eindpunt. Ja, als telemetry.metrics.local dit is ingesteld op statsd; anders nee. N.v.t. v2.0+
telemetry.metrics.local.statsd.sampling Metrische statistieken steekproeffrequentie voor metrische gegevens. De waarde moet tussen 0 en 1 zijn, bijvoorbeeld 0,5. Nee N.v.t. v2.0+
telemetry.metrics.local.statsd.tag-format De tagindeling statsD-exporteur. Waarde is een van de volgende opties: librato, dogStatsD, influxDB. Nee N.v.t. v2.0+
telemetry.metrics.cloud Indicatie of het uitzenden van metrics naar Azure Monitor moet worden ingeschakeld. Nee true v2.0+
observability.opentelemetry.enabled Indicatie of het uitzenden van metrics naar een OpenTelemetrie-verzamelaar op Kubernetes moet worden ingeschakeld. Nee false v2.0+
observability.opentelemetry.collector.uri URI van de OpenTelemetry-collector om metrische gegevens naar te verzenden. Ja, als observability.opentelemetry.enabled dit is ingesteld op true; anders nee. N.v.t. v2.0+
observability.opentelemetry.system-metrics.enabled Schakel verzendingssysteemmetrics in, zoals CPU, geheugen en garbage collection, in naar de OpenTelemetrie-verzamelaar. Nee false v2.3+
observability.opentelemetry.histogram.buckets Histogramemmers om OpenTelemetrie-metrieken te rapporteren. Notatie: "x,y,z,...". Nee "5,10,25,50,100,250,500,1000,2500,5000,10000" v2.0+

Logboeken

Naam Beschrijving Vereist Standaardinstelling Beschikbaarheid
telemetry.logs.std Schakel logboekregistratie in voor een standaardstream. Waarde is een van de volgende opties: none, text, json. Nee text v2.0+
telemetry.logs.std.level Definieert het logniveau van logs die naar de standaardstroom worden gestuurd. Waarde is een van de volgende opties: all, debug, , info, warn, error, , of fatal. Nee info v2.0+
telemetry.logs.std.color Aangeven of gekleurde logs in de standaardstroom gebruikt moeten worden. Nee true v2.0+
telemetry.logs.local Lokale logboekregistratie inschakelen. Waarde is een van de volgende opties: none, auto, localsyslog, rfc5424, , journaljson Nee auto v2.0+
telemetry.logs.local.localsyslog.endpoint localsyslog-eindpunt. Ja als telemetry.logs.local dit is ingesteld op localsyslog; anders nee. Raadpleeg de lokale syslog-documentatie voor meer informatie over de configuratie. N.v.t. v2.0+
telemetry.logs.local.localsyslog.facility Hiermee geeft u localsyslog faciliteit code, bijvoorbeeld 7. Nee N.v.t. v2.0+
telemetry.logs.local.rfc5424.endpoint rfc5424-eindpunt. Ja als telemetry.logs.local dit is ingesteld op rfc5424; anders nee. N.v.t. v2.0+
telemetry.logs.local.rfc5424.facility Faciliteitcode per rfc5424, bijvoorbeeld 7 Nee N.v.t. v2.0+
telemetry.logs.local.journal.endpoint Logboekeindpunt. Ja als telemetry.logs.local dit is ingesteld op journal; anders nee. N.v.t. v2.0+
telemetry.logs.local.json.endpoint UDP-eindpunt dat JSON-gegevens accepteert, die zijn opgegeven als bestandspad, IP:poort of hostnaam:poort. Ja als telemetry.logs.local dit is ingesteld op json; anders nee. 127.0.0.1:8888 v2.0+

Beveiliging

Certificaten en cijfers

Naam Beschrijving Vereist Standaardinstelling Beschikbaarheid
certificates.local.ca.enabled Indicatie of de zelfgehoste gateway gemonteerde lokale CA-certificaten moet gebruiken. Het is vereist om de zelf-hostende gateway uit te voeren als hoofdmap of met gebruikers-id 1001. Nee false v2.0+
net.server.tls.ciphers.allowed-suites Comma-gescheiden lijst van cijfers die gebruikt moeten worden voor TLS-verbinding tussen de API-client en de zelfgehoste gateway. Nee 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 Door komma's gescheiden lijst met coderingen die moeten worden gebruikt voor TLS-verbinding tussen de zelf-hostende gateway en de back-end. Nee 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 Zet de validatie van certificaatintrekkingslijsten aan of uit. Nee false v2.3.6+

TLS

Naam Beschrijving Vereist Standaardinstelling Beschikbaarheid
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 Geeft aan of de gateway TLS 1.3 naar de backend toestaat. Vergelijkbaar met het beheren van protocol ciphers in managed gateway. Nee true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 Geeft aan of de gateway TLS 1.2 naar de backend toestaat. Vergelijkbaar met het beheren van protocol ciphers in managed gateway. Nee true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 Geeft aan of de gateway TLS 1.1 naar de backend toestaat. Vergelijkbaar met het beheren van protocol ciphers in managed gateway. Nee false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 Geeft aan of de gateway TLS 1.0 naar de backend toestaat. Vergelijkbaar met het beheren van protocol ciphers in managed gateway. Nee false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 Geeft aan of de gateway SSL 3.0 naar de backend toestaat. Vergelijkbaar met het beheren van protocol ciphers in managed gateway. Nee false v2.0+

Onafhankelijke clouds

De volgende tabel beschrijft de instellingen die je moet configureren om met sovereign clouds te werken:

Naam Openbaar Azuurblauw China Amerikaanse regering
config.service.auth.tokenAudience https://azure-api.net/configuration (standaard) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (standaard) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

Instellingen configureren

Kubernetes YAML-bestand

Wanneer je de zelfgehoste gateway naar Kubernetes uitrolt met behulp van een YAML-bestand, configureer je instellingen als naam-waardeparen in het data element van de ConfigMap van de gateway. Voorbeeld:

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"

[...]

Helm-grafiek

Wanneer je Helm gebruikt om de zelfgehoste gateway naar Kubernetes te deployen, geef dan de configuratie-instellingen van de grafiek als parameters door aan het helm install commando. Voorbeeld:

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