Referenz: Konfigurationseinstellungen für selbstgehostete Gatewaycontainer
GILT FÜR: Developer | Premium
Dieser Artikel enthält eine Referenz für erforderliche und optionale Einstellungen, die zum Konfigurieren des selbstgehosteten Gatewaycontainers von API Management verwendet werden.
Weitere Informationen zu unseren (Kubernetes)-Produktionsanleitungen finden Sie in diesem Artikel.
Wichtig
Diese Referenz gilt nur für das selbstgehostete Gateway v2. Es werden Mindestversionen für die Verfügbarkeit von Einstellungen bereitgestellt.
Integration der Konfigurations-API
Die Konfigurations-API wird vom selbstgehosteten Gateway verwendet, um eine Verbindung mit Azure API Management herzustellen, um die neueste Konfiguration abzurufen und Metriken zu senden, falls aktiviert.
Hier finden Sie eine Übersicht aller Konfigurationsoptionen:
Name | BESCHREIBUNG | Erforderlich | Standard | Verfügbarkeit |
---|---|---|---|---|
gateway.name | ID der selbst gehosteten Gatewayressource. | Ja, bei Verwendung der Microsoft Entra-Authentifizierung | Nicht zutreffend | v2.3+ |
config.service.endpoint | Konfigurationsendpunkt in Azure API Management für das selbstgehostete Gateway. Suchen Sie diesen Wert im Azure-Portal unter Gateways>Deployment. | Ja | – | v2.0+ |
config.service.auth | Definiert, wie sich das selbstgehostete Gateway bei der Konfigurations-API authentifizieren soll. Derzeit werden Gatewaytoken und Microsoft Entra-Authentifizierung unterstützt. | Ja | – | v2.0+ |
config.service.auth.azureAd.tenantId | ID des Microsoft Entra-Mandanten. | Ja, bei Verwendung der Microsoft Entra-Authentifizierung | Nicht zutreffend | v2.3+ |
config.service.auth.azureAd.clientId | Client-ID der Microsoft Entra-App für die Authentifizierung (auch als Anwendungs-ID bezeichnet). | Ja, bei Verwendung der Microsoft Entra-Authentifizierung | Nicht zutreffend | v2.3+ |
config.service.auth.azureAd.clientSecret | Geheimnis der Microsoft Entra-App für die Authentifizierung. | Ja, wenn Microsoft Entra-Authentifizierung verwendet wird (sofern kein Zertifikat angegeben ist) | Nicht zutreffend | v2.3+ |
config.service.auth.azureAd.certificatePath | Pfad zum Zertifikat, mit dem sich die Microsoft Entra-App authentifizieren soll. | Ja, wenn Microsoft Entra-Authentifizierung verwendet wird (sofern kein Geheimnis angegeben ist) | Nicht zutreffend | v2.3+ |
config.service.auth.azureAd.authority | Autoritäts-URL der Microsoft Entra ID. | Nein | https://login.microsoftonline.com |
v2.3+ |
config.service.auth.tokenAudience | Zielgruppe des für die Microsoft Entra-Authentifizierung verwendeten Tokens | Nein | https://azure-api.net/configuration |
v2.3+ |
config.service.endpoint.disableCertificateValidation | Definiert, ob das selbstgehostete Gateway das serverseitige Zertifikat der Konfigurations-API überprüfen soll. Es wird empfohlen, die Zertifikatüberprüfung zu verwenden und diese nur zu Testzwecken und mit größter Vorsicht zu deaktivieren, da dies ein Sicherheitsrisiko mit sich bringen kann. | Nein | false |
v2.0+ |
config.service.integration.timeout | Definiert das Timeout für die Interaktion mit der Konfigurations-API. | Nein | 00:01:40 |
v2.3.5+ |
Das selbstgehostete Gateway bietet Unterstützung für ein paar Authentifizierungsoptionen zur Integration in die Konfigurations-API, die mithilfe von config.service.auth
definiert werden können.
Dieser Leitfaden hilft Ihnen dabei, die erforderlichen Informationen bereitzustellen, um zu definieren, wie die Authentifizierung erfolgen soll:
- Geben Sie für die auf Gatewaytoken basierende Authentifizierung ein Zugriffstoken (Authentifizierungsschlüssel) des selbstgehosteten Gateways im Azure-Portal unter Gateways>Bereitstellung an.
- Geben Sie für die Microsoft Entra ID-basierte Authentifizierung
azureAdApp
an, und stellen Sie die zusätzlichenconfig.service.auth.azureAd
-Authentifizierungseinstellungen bereit.
Instanzübergreifende Erkennung und Synchronisierung
Name | BESCHREIBUNG | Erforderlich | Standard | Verfügbarkeit |
---|---|---|---|---|
neighborhood.host | DNS-Name, der verwendet wird, um alle Instanzen einer selbstgehosteten Gatewaybereitstellung für die instanzenübergreifende Synchronisierung aufzulösen. In Kubernetes kann dies mithilfe eines Headless-Diensts erreicht werden. | Nein | – | v2.0+ |
neighborhood.heartbeat.port | UDP-Port, der für Instanzen einer selbstgehosteten Gatewaybereitstellung verwendet wird, um Heartbeats an andere Instanzen zu senden. | Nein | 4.291 | v2.0+ |
policy.rate-limit.sync.port | UDP-Port, der für selbstgehostete Gatewayinstanzen verwendet wird, um die Ratenbegrenzung über mehrere Instanzen hinweg zu synchronisieren. | Nein | 4290 | v2.0+ |
HTTP
Name | BESCHREIBUNG | Erforderlich | Standard | Verfügbarkeit |
---|---|---|---|---|
net.server.http.forwarded.proto.enabled | Funktion zum Berücksichtigen X-Forwarded-Proto des Headers zum Identifizieren des Schemas zum Auflösen der aufgerufenen API-Route (nur http/https). |
No | false | v2.5+ |
Kubernetes-Integration
Ingress von Kubernetes
Wichtig
Die Unterstützung für Kubernetes Ingress ist derzeit experimentell und wird nicht über den Azure-Support abgedeckt. Erfahren Sie mehr über GitHub.
Name | BESCHREIBUNG | Erforderlich | Standard | Verfügbarkeit |
---|---|---|---|---|
k8s.ingress.enabled | Aktivieren Sie die Kubernetes Ingress-Integration. | Nein | false |
v1.2+ |
k8s.ingress.namespace | Kubernetes-Namespace zum Überwachen von Kubernetes Ingress-Ressourcen. | Nein | default |
v1.2+ |
k8s.ingress.dns.suffix | DNS-Suffix zum Erstellen des DNS-Hostnamens für Dienste zum Senden von Anforderungen an. | Nein | svc.cluster.local |
v2.4+ |
k8s.ingress.config.path | Pfad zur Kubernetes-Konfiguration (Kubeconfig). | Nein | – | v2.4+ |
metrics
Name | BESCHREIBUNG | Erforderlich | Standard | Verfügbarkeit |
---|---|---|---|---|
telemetry.metrics.local | Aktivieren Sie die Erfassung lokaler Metriken über StatsD. Der Wert ist eine der folgenden Optionen: none , statsd . |
Nein | none |
v2.0+ |
telemetry.metrics.local.statsd.endpoint | StatsD-Endpunkt. | Ja, wenn telemetry.metrics.local auf statsd festgelegt ist; andernfalls nein. |
– | v2.0+ |
telemetry.metrics.local.statsd.sampling | Abtastrate der StatsD-Metriken. Der Wert muss zwischen 0 und 1 liegen, z. B. 0,5. | Nein | – | v2.0+ |
telemetry.metrics.local.statsd.tag-format | Taggingformat der Exportfunktion von StatsD. Der Wert ist eine der folgenden Optionen: ibrato , dogStatsD , influxDB . |
Nein | – | v2.0+ |
telemetry.metrics.cloud | Angabe, ob die Ausgabe von Metriken an Azure Monitor aktiviert werden soll oder nicht. | No | true |
v2.0+ |
observability.opentelemetry.enabled | Geben Sie an, ob Metriken an einen OpenTelemetrie-Sammler auf Kubernetes übergeben werden sollen. | Nein | false |
v2.0+ |
observability.opentelemetry.collector.uri | URI des OpenTelemetry-Collectors, an den Metriken gesendet werden sollen. | Ja, wenn observability.opentelemetry.enabled auf true festgelegt ist; andernfalls nein. |
– | v2.0+ |
observability.opentelemetry.system-metrics.enabled | Aktivieren des Sendens von Systemmetriken an den OpenTelemetry-Collector, z. B. CPU, Arbeitsspeicher, automatische Speicherbereinigung usw. | Nein | false |
v2.3+ |
observability.opentelemetry.histogram.buckets | Histogramm-Buckets, in denen OpenTelemetry-Metriken gemeldet werden sollen. Format: "x,y,z,...". | Nein | "5,10,25,50,100,250,500,1000,2500,5000,10000" | v2.0+ |
Protokolle
Name | BESCHREIBUNG | Erforderlich | Standard | Verfügbarkeit |
---|---|---|---|---|
telemetry.logs.std | Aktivieren Sie die Protokollierung in einem Standardstream. Der Wert ist eine der folgenden Optionen: none , text , json . |
Nein | text |
v2.0+ |
telemetry.logs.std.level | Definiert den Protokolliergrad von Protokollen, die an Standardstream gesendet werden. Der Wert ist eine der folgenden Optionen: all , debug , info , warn , error oder fatal . |
Nein | info |
v2.0+ |
telemetry.logs.std.color | Gibt an, ob im Standardstream farbige Protokolle verwendet werden sollen. | No | true |
v2.0+ |
telemetry.logs.local | Aktivieren Sie die lokale Protokollierung. Der Wert ist eine der folgenden Optionen: none , auto , localsyslog , rfc5424 , journal , json . |
Nein | auto |
v2.0+ |
telemetry.logs.local.localsyslog.endpoint | localsyslog Endpunkt. | Ja, wenn telemetry.logs.local auf localsyslog festgelegt ist; andernfalls nein. Weitere Informationen zur Konfiguration finden Sie in der lokalen Syslog-Dokumentation . |
N/V | v2.0+ |
telemetry.logs.local.localsyslog.facility | Gibt den Facilitycode für localsyslog an, zum Beispiel 7 . |
Nein | – | v2.0+ |
telemetry.logs.local.rfc5424.endpoint | rfc5424-Endpunkt. | Ja, wenn telemetry.logs.local auf rfc5424 festgelegt ist; andernfalls nein. |
– | v2.0+ |
telemetry.logs.local.rfc5424.facility | Einrichtungscode pro rfc5424, z.B. 7 |
Nein | – | v2.0+ |
telemetry.logs.local.journal.endpoint | Journalendpunkt. | Ja, wenn telemetry.logs.local auf journal festgelegt ist; andernfalls nein. |
– | v2.0+ |
telemetry.logs.local.json.endpoint | UDP-Endpunkt, der JSON-Daten akzeptiert, angegeben als Dateipfad, IP:Port oder Hostname:Port. | Ja, wenn telemetry.logs.local auf json festgelegt ist; andernfalls nein. |
127.0.0.1:8888 | v2.0+ |
Sicherheit
Zertifikate und Chiffre
Name | BESCHREIBUNG | Erforderlich | Standard | Verfügbarkeit |
---|---|---|---|---|
certificates.local.ca.enabled | Gibt an, ob das selbstgehostete Gateway lokale CA-Zertifikate verwenden soll, die eingebunden sind, oder nicht. Es ist erforderlich, das selbstgehostete Gateway als „root“ oder mit der Benutzer-ID 1001 auszuführen. | No | false |
v2.0+ |
net.server.tls.ciphers.allowed-suites | Durch Kommas getrennte Liste von Chiffren, die für die TLS-Verbindung zwischen dem API-Client und dem selbstgehosteten Gateway verwendet werden sollen. | Nein | 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 | Durch Kommas getrennte Liste von Chiffren, die für die TLS-Verbindung zwischen dem selbstgehosteten Gateway und dem Back-End verwendet werden sollen. | Nein | 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 | Bietet Funktionen zum Aktivieren/Deaktivieren der Überprüfung der Zertifikatsperrliste | Nein | false |
v2.3.6+ |
TLS
Name | BESCHREIBUNG | Erforderlich | Standard | Verfügbarkeit |
---|---|---|---|---|
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Back.Protocols.Tls13 | Gibt an, ob TLS 1.3 für das Back-End zulässig ist. Ähnlich wie beim Verwalten von Protokollchiffre in verwaltetem Gateway. | No | true |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Back.Protocols.Tls12 | Gibt an, ob TLS 1.2 für das Back-End zulässig ist. Ähnlich wie beim Verwalten von Protokollchiffre in verwaltetem Gateway. | No | true |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Back.Protocols.Tls11 | Gibt an, ob TLS 1.1 für das Back-End zulässig ist. Ähnlich wie beim Verwalten von Protokollchiffre in verwaltetem Gateway. | No | false |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Back.Protocols.Tls10 | Gibt an, ob TLS 1.0 für das Back-End zulässig ist. Ähnlich wie beim Verwalten von Protokollchiffre in verwaltetem Gateway. | No | false |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Back.Protocols.Ssl30 | Gibt an, ob SSL 3.0 für das Back-End zulässig ist. Ähnlich wie beim Verwalten von Protokollchiffre in verwaltetem Gateway. | No | false |
v2.0+ |
Sovereign Clouds
Hier ist eine Übersicht über Einstellungen, die so konfiguriert werden müssen, dass sie mit souveränen Clouds arbeiten können:
Name | Öffentlich | Azure China | US Government |
---|---|---|---|
config.service.auth.tokenAudience | https://azure-api.net/configuration (Standard) |
https://azure-api.cn/configuration |
https://azure-api.us/configuration |
logs.applicationinsights.endpoint | https://dc.services.visualstudio.com/v2/track (Standard) |
https://dc.applicationinsights.azure.cn/v2/track |
https://dc.applicationinsights.us/v2/track |
So konfigurieren Sie Einstellungen
Kubernetes-YAML-Datei
Konfigurieren Sie beim Bereitstellen des selbstgehosteten Gateways in Kubernetes mithilfe einer YAML-Datei Einstellungen als Name/Wert-Paare im data
Element der ConfigMap des Gateways. Beispiel:
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-Chart
Wenn Sie Helm verwenden, um das selbst gehostete Gateway für Kubernetes bereitzustellen, übergeben Sie Diagrammkonfigurationseinstellungen als Parameter an den helm install
Befehl. Beispiel:
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
Nächste Schritte
- Hier erfahren Sie mehr über Anleitungen zum Ausführen des selbstgehosteten Gateways in Kubernetes in der Produktion.
- Bereitstellen eines selbstgehosteten Gateways in Docker
- Bereitstellen eines selbstgehosteten Gateways in Kubernetes
- Bereitstellung eines selbst gehosteten Gateways für einen Azure Arc-fähigen Kubernetes-Cluster
- Dapr-Unterstützung im selbstgehosteten Gateway aktivieren
- Weitere Informationen zu Konfigurationsoptionen für die Azure Arc-Erweiterung