Riferimento: Impostazioni di configurazione del contenitore del gateway self-hosted

SI APPLICA A: Sviluppatore | Premium

Questo articolo fornisce informazioni di riferimento per le impostazioni obbligatorie e facoltative usate per configurare il contenitore del gateway self-hosted Gestione API.

Per maggiori informazioni, vedi Guida per gestire un gateway auto-ospitato su Kubernetes in produzione.

Importante

Questo riferimento si applica solo al gateway self-hosted v2. Questo riferimento indica la versione minima che supporta ciascuna impostazione.

Integrazione dell'API di configurazione

Il gateway self-hosted utilizza l'API di Configurazione per connettersi ad Gestione API di Azure, ottenere l'ultima configurazione e inviare metriche quando abilitate.

La tabella seguente descrive le opzioni di configurazione per l'integrazione dell'API di configurazione:

Nome Descrizione Richiesto Valore predefinito Disponibilità
gateway.name ID della risorsa gateway self-hosted. Sì, quando si usa l'autenticazione Microsoft Entra N/D v2.3+
config.service.endpoint Endpoint di configurazione in Azure Gestione API per il gateway self-hosted. Trovare questo valore nella portale di Azure in >. N/D v2.0+
config.service.auth Definisce come il gateway auto-ospitato si autentica all'API di configurazione. Attualmente, il gateway supporta token gateway e autenticazione Microsoft Entra. N/D v2.0+
config.service.auth.azureAd.tenantId ID del tenant di Microsoft Entra. Sì, quando si usa l'autenticazione Microsoft Entra N/D v2.3+
config.service.auth.azureAd.clientId ID client dell'app Microsoft Entra per l'autenticazione con (noto anche come ID applicazione). Sì, quando si usa l'autenticazione Microsoft Entra N/D v2.3+
config.service.auth.azureAd.clientSecret Segreto dell'app Microsoft Entra con cui eseguire l'autenticazione. Sì, quando si utilizza l'autenticazione Microsoft Entra (a meno che non specifichi un certificato) N/D v2.3+
config.service.auth.azureAd.certificatePath Percorso del certificato con cui eseguire l'autenticazione per l'app Microsoft Entra. Sì, quando si usa l'autenticazione Microsoft Entra (a meno che tu non specifichi un segreto) N/D v2.3+
config.service.auth.azureAd.authority URL autorità di Microsoft Entra ID. NO https://login.microsoftonline.com v2.3+
config.service.auth.tokenAudience Pubblico del token per l'autenticazione Microsoft Entra. NO https://azure-api.net/configuration v2.3+
config.service.endpoint.disableCertificateValidation Definisce se il gateway auto-ospitato valida il certificato lato server dell'API di configurazione. Usa la validazione dei certificati in produzione. Disabilitalo solo per i test e fai attenzione perché può rappresentare un rischio per la sicurezza. NO false v2.0+
config.service.integration.timeout Definisce il timeout per interagire con l'API di configurazione. NO 00:01:40 v2.3.5+

Il gateway auto-ospitato supporta diverse opzioni di autenticazione per integrarsi con l'API di Configurazione. Definisci queste opzioni usando config.service.auth.

Per definire come autenticarsi, fornisci le seguenti informazioni:

  • Per l'autenticazione basata su token del gateway, specificare un token di accesso (chiave di autenticazione) del gateway self-hosted nella portale di Azure in >.
  • Per l'autenticazione basata su ID Di Microsoft Entra specificare e specificare azureAdApp le impostazioni di autenticazione aggiuntive config.service.auth.azureAd .

Scoperta e sincronizzazione tra istanze

Nome Descrizione Richiesto Valore predefinito Disponibilità
neighborhood.host Nome DNS usato per risolvere tutte le istanze di una distribuzione del gateway self-hosted per la sincronizzazione tra istanze. In Kubernetes, usa un servizio headless per risolvere le istanze. NO N/D v2.0+
neighborhood.heartbeat.port Porta UDP usata per le istanze di una distribuzione di gateway self-hosted per inviare heartbeat ad altre istanze. NO 4291 v2.0+
policy.rate-limit.sync.port Porta UDP usata per le istanze del gateway self-hosted per sincronizzare la limitazione della frequenza tra più istanze. NO 4290 v2.0+

Protocollo HTTP

Nome Descrizione Richiesto Valore predefinito Disponibilità
net.server.http.forwarded.proto.enabled Onora l'intestazione X-Forwarded-Proto per identificare lo schema per risolvere la via API chiamata (solo http/https). NO false v2.5+

Integrazione di Kubernetes

Kubernetes Ingress (anteprima)

Importante

Il supporto per Kubernetes Ingress è sperimentale, e il supporto Azure non lo copre. Scopri di più nel repository GitHub di Kubernetes Ingress.

Nome Descrizione Richiesto Valore predefinito Disponibilità
k8s.ingress.enabled Abilitare l'integrazione in ingresso di Kubernetes. NO false v2.0+
k8s.ingress.namespace Spazio dei nomi Kubernetes per controllare le risorse in ingresso di Kubernetes. NO default v2.0+
k8s.ingress.dns.suffix Suffisso DNS per compilare il nome host DNS per i servizi a cui inviare richieste. NO svc.cluster.local v2.4+
k8s.ingress.configpercorso Percorso della configurazione di Kubernetes (Kubeconfig). NO N/D v2.4+

Metriche

Nome Descrizione Richiesto Valore predefinito Disponibilità
telemetry.metrics.local Abilitare la raccolta delle metriche locali tramite StatsD. Il valore è una delle opzioni seguenti: none, statsd. NO none v2.0+
telemetry.metrics.local.statsd.endpoint Endpoint StatsD. Sì, se telemetry.metrics.local è impostato su statsd; in caso contrario, no. N/D v2.0+
telemetry.metrics.local.statsd.sampling Frequenza di campionamento delle metriche StatsD. Il valore deve essere compreso tra 0 e 1, ad esempio 0,5. NO N/D v2.0+
telemetry.metrics.local.statsd.tag-format L'utilità di esportazione StatsD formato di assegnazione di tag. Value è una delle opzioni seguenti: librato, dogStatsD, influxDB. NO N/D v2.0+
telemetry.metrics.cloud Indica se abilitare le metriche di emissione su Monitoraggio di Azure. NO true v2.0+
observability.opentelemetry.enabled Indicare se abilitare le metriche di emissione a un collezionista OpenTelemetry su Kubernetes. NO false v2.0+
observability.opentelemetry.collector.uri URI dell'agente di raccolta OpenTelemetry a cui inviare le metriche. Sì, se observability.opentelemetry.enabled è impostato su true; in caso contrario, no. N/D v2.0+
observability.opentelemetry.system-metrics.enabled Abilita l'invio di metriche di sistema, come CPU, memoria e garbage collection, al raccoglitore OpenTelemetry. NO false v2.3+
observability.opentelemetry.histogram.buckets Bucket di istogrammi in cui riportare metriche OpenTelemetry. Formato: "x,y,z,...". NO "5,10,25,50,100,250,500,1000,2500,5000,10000" v2.0+

Registri

Nome Descrizione Richiesto Valore predefinito Disponibilità
telemetry.logs.std Abilitare la registrazione in un flusso standard. Value è una delle opzioni seguenti: none, text, json. NO text v2.0+
telemetry.logs.std.level Definisce il livello logaritmico dei log inviati al flusso standard. Il valore è una delle seguenti opzioni: all, debug, info, warn, error, o fatal. NO info v2.0+
telemetry.logs.std.color Indica se utilizzare o meno tronchi colorati nel flusso standard. NO true v2.0+
telemetry.logs.local Abilitare la registrazione locale. Value è una delle opzioni seguenti: none, auto, localsyslog, rfc5424, journaljson NO auto v2.0+
telemetry.logs.local.localsyslog.endpoint endpoint localsyslog. Sì se telemetry.logs.local è impostato su localsyslog; in caso contrario, no. Per altre informazioni sulla configurazione, vedere la documentazione di syslog locale. N/D v2.0+
telemetry.logs.local.localsyslog.facility Specifica il codice della struttura localsyslog, 7ad esempio . NO N/D v2.0+
telemetry.logs.local.rfc5424.endpoint Endpoint RFC5424. Sì se telemetry.logs.local è impostato su rfc5424; in caso contrario, no. N/D v2.0+
telemetry.logs.local.rfc5424.facility Codice della struttura per rfc5424, ad esempio 7 NO N/D v2.0+
telemetry.logs.local.journal.endpoint Endpoint journal. Sì se telemetry.logs.local è impostato su journal; in caso contrario, no. N/D v2.0+
telemetry.logs.local.jsonendpoint Endpoint UDP che accetta dati JSON, specificati come percorso file, IP:port o hostname:port. Sì se telemetry.logs.local è impostato su json; in caso contrario, no. 127.0.0.1:8888 v2.0+

Sicurezza

Certificati e cifrari

Nome Descrizione Richiesto Valore predefinito Disponibilità
certificates.local.ca.enabled Indicare se il gateway auto-ospitato debba utilizzare certificati CA locali montati. È necessario eseguire il gateway self-hosted come radice o con ID utente 1001. NO false v2.0+
net.server.tls.ciphers.allowed-suites Elenco separato da virgole di cifrari da utilizzare per la connessione TLS tra il client API e il gateway auto-ospitato. NO 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 Elenco delimitato da virgole di crittografie da usare per la connessione TLS tra il gateway self-hosted e il back-end. NO 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 Attiva o disattiva la validazione della lista di revoca dei certificati. NO false v2.3.6+

TLS

Nome Descrizione Richiesto Valore predefinito Disponibilità
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 Indica se il gateway consente TLS 1.3 al backend. Analogamente alla gestione delle crittografie dei protocolli nel gateway gestito. NO true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 Indica se il gateway consente TLS 1.2 al backend. Analogamente alla gestione delle crittografie dei protocolli nel gateway gestito. NO true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 Indica se il gateway consente TLS 1.1 al backend. Analogamente alla gestione delle crittografie dei protocolli nel gateway gestito. NO false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 Indica se il gateway consente TLS 1.0 al backend. Analogamente alla gestione delle crittografie dei protocolli nel gateway gestito. NO false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 Indica se il gateway consente SSL 3.0 al backend. Analogamente alla gestione delle crittografie dei protocolli nel gateway gestito. NO false v2.0+

Cloud sovrani

La tabella seguente descrive le impostazioni da configurare per lavorare con i sovrani cloud:

Nome Pubblico Azure Cina Governo degli Stati Uniti
config.service.auth.tokenAudience https://azure-api.net/configuration (impostazione predefinita) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (impostazione predefinita) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

Come configurare le impostazioni

File YAML di Kubernetes

Quando si distribuisce il gateway auto-ospitato su Kubernetes utilizzando un file YAML, configura le impostazioni come coppie nome-valore nell'elemento data della ConfigMap del gateway. Ad esempio:

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"

[...]

Grafico Helm

Quando usi Helm per distribuire il gateway self-hosted su Kubernetes, passa le impostazioni di configurazione delle carte come parametri al helm install comando. Ad esempio:

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