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.
Lees dit artikel voor meer informatie over onze (Kubernetes)-productierichtlijnen.
Belangrijk
Deze verwijzing is alleen van toepassing op de zelf-hostende gateway v2. Er zijn minimale versies beschikbaar voor de beschikbaarheid van instellingen.
Integratie van configuratie-API
De configuratie-API wordt gebruikt door de zelf-hostende gateway om verbinding te maken met Azure API Management om de meest recente configuratie op te halen en metrische gegevens te verzenden wanneer deze is ingeschakeld.
Hier volgt een overzicht van alle configuratieopties:
Name | 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 | Hiermee definieert u hoe de zelf-hostende gateway moet worden geverifieerd bij de configuratie-API. Momenteel worden gatewaytoken en Microsoft Entra-verificatie ondersteund. | 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, wanneer u Microsoft Entra-verificatie gebruikt (tenzij certificaat is opgegeven) | N.v.t. | v2.3+ |
config.service.auth.azureAd.certificatePath | Pad naar certificaat voor verificatie bij de Microsoft Entra-app. | Ja, wanneer u Microsoft Entra-verificatie gebruikt (tenzij geheim is opgegeven) | 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 | Doelgroep van token dat wordt gebruikt voor Microsoft Entra-verificatie | Nee | https://azure-api.net/configuration |
v2.3+ |
config.service.endpoint.disableCertificateValidation | Definieert of de zelf-hostende gateway het certificaat aan de serverzijde van de configuratie-API moet valideren. Het wordt aanbevolen om certificaatvalidatie te gebruiken, alleen uit te schakelen voor testdoeleinden en met voorzichtigheid, omdat dit beveiligingsrisico kan veroorzaken. | 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-hostende gateway biedt ondersteuning voor enkele verificatieopties die kunnen worden geïntegreerd met de configuratie-API die kan worden gedefinieerd met behulp van config.service.auth
.
Deze richtlijnen helpen u bij het opgeven van de vereiste informatie voor het definiëren van de verificatie:
- 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 aanvullendeconfig.service.auth.azureAd
verificatie-instellingen op en geef deze op.
Detectie en synchronisatie tussen exemplaren
Name | 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. In Kubernetes kan dit worden bereikt met behulp van een headless service. | 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
Name | Beschrijving | Vereist | Standaardinstelling | Beschikbaarheid |
---|---|---|---|---|
net.server.http.forwarded.proto.enabled | Mogelijkheid om header te respecteren X-Forwarded-Proto om het schema te identificeren om de api-route op te lossen (alleen http/https). |
Nee | false | v2.5+ |
Kubernetes-integratie
Kubernetes Inkomend verkeer
Belangrijk
Ondersteuning voor Kubernetes Inkomend verkeer is momenteel experimenteel en wordt niet gedekt door Azure-ondersteuning. Meer informatie op GitHub.
Name | Beschrijving | Vereist | Standaardinstelling | Beschikbaarheid |
---|---|---|---|---|
k8s.ingress.enabled | Kubernetes-integratie voor inkomend verkeer inschakelen. | Nee | false |
v1.2+ |
k8s.ingress.namespace | Kubernetes-naamruimte om Kubernetes-toegangsbeheerbronnen te bekijken. | Nee | default |
v1.2+ |
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
Name | 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: ibrato , dogStatsD , influxDB . |
Nee | N.v.t. | v2.0+ |
telemetry.metrics.cloud | Indicatie of het verzenden van metrische gegevens wel of niet naar Azure Monitor moet worden verzonden. | Nee | true |
v2.0+ |
observability.opentelemetry.enabled | Indicatie of het verzenden van metrische gegevens wel of niet moet worden ingeschakeld voor een OpenTelemetry-collector in Kubernetes. | 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 het verzenden van metrische systeemgegevens in naar de OpenTelemetry-collector, zoals CPU, geheugen, garbagecollection, enzovoort. | Nee | false |
v2.3+ |
observability.opentelemetry.histogram.buckets | Histogram buckets waarin metrische gegevens van OpenTelemetry moeten worden gerapporteerd. Notatie: "x,y,z,...". | Nee | "5,10,25,50,100,250,500,1000,2500,5000,10000" | v2.0+ |
Logboeken
Name | 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 | Hiermee definieert u het logboekniveau van logboeken die naar de standaardstream worden verzonden. De waarde is een van de volgende opties: , , , of fatal warn error . info debug all |
Nee | info |
v2.0+ |
telemetry.logs.std.color | Indicatie of gekleurde logboeken al dan niet moeten worden gebruikt in de standaardstroom. | Nee | true |
v2.0+ |
telemetry.logs.local | Lokale logboekregistratie inschakelen. Waarde is een van de volgende opties: none , auto , localsyslog , rfc5424 , , journal json |
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 coderingen
Name | Beschrijving | Vereist | Standaardinstelling | Beschikbaarheid |
---|---|---|---|---|
certificates.local.ca.enabled | Geeft aan of de zelf-hostende gateway lokale CA-certificaten moet gebruiken die zijn gekoppeld. 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 | Door komma's gescheiden lijst met coderingen die moeten worden gebruikt voor TLS-verbinding tussen api-client en de zelf-hostende 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 | Biedt mogelijkheden om validatie van certificaatintrekkingslijsten in/uit te schakelen | Nee | false |
v2.3.6+ |
TLS
Name | Beschrijving | Vereist | Standaardinstelling | Beschikbaarheid |
---|---|---|---|---|
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 | Indicatie of TLS 1.3 wel of niet is toegestaan naar de back-end. 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 TLS 1.2 wel of niet is toegestaan naar de back-end. Vergelijkbaar met het beheren van protocol ciphers in managed gateway. | Nee | true |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 | Indicatie of TLS 1.1 al dan niet is toegestaan naar de back-end. 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 TLS 1.0 wel of niet is toegestaan naar de back-end. 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 SSL 3.0 wel of niet is toegestaan naar de back-end. Vergelijkbaar met het beheren van protocol ciphers in managed gateway. | Nee | false |
v2.0+ |
Onafhankelijke clouds
Hier volgt een overzicht van instellingen die moeten worden geconfigureerd om te kunnen werken met onafhankelijke clouds:
Naam | Openbaar | Azure China | US Government |
---|---|---|---|
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
Bij het implementeren van de zelf-hostende gateway naar Kubernetes met behulp van een YAML-bestand, configureert u instellingen als naam-waardeparen in het element van de data
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 u Helm gebruikt om de zelf-hostende gateway naar Kubernetes te implementeren, geeft u configuratie-instellingen voor grafieken door als parameters aan de helm install
opdracht. 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
Volgende stappen
- Meer informatie over richtlijnen voor het uitvoeren van de zelf-hostende gateway in Kubernetes in productie
- Zelf-hostende gateway implementeren in Docker
- Zelf-hostende gateway implementeren in Kubernetes
- Zelf-hostende gateway implementeren in Kubernetes-cluster met Azure Arc
- Dapr-ondersteuning inschakelen op zelf-hostende gateway
- Meer informatie over configuratieopties voor De Azure Arc-extensie