Dokumentacja: Ustawienia konfiguracji kontenera własnej bramy

DOTYCZY: Developer | Premia

Ten artykuł zawiera informacje dotyczące wymaganych i opcjonalnych ustawień używanych do konfigurowania własnego kontenera bramy usługi API Management.

Więcej informacji można znaleźć w Wytycznych dotyczących uruchamiania samodzielnie hostowanej bramki w Kubernetes w produkcji.

Ważne

Ta dokumentacja dotyczy tylko własnej bramy w wersji 2. W tym odnośniku wymieniono minimalną wersję wspierającą każde ustawienie.

Integracja interfejsu API konfiguracji

Brama hostowana samodzielnie wykorzystuje API konfiguracyjne do łączenia się z Azure API Management, pobierania najnowszej konfiguracji oraz przesyłania metryk po włączeniu.

Poniższa tabela opisuje opcje konfiguracyjne integracji z API konfiguracyjnym:

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
gateway.name Identyfikator zasobu własnej bramy. Tak, w przypadku korzystania z uwierzytelniania entra firmy Microsoft Nie dotyczy Wersja 2.3 lub nowsza
config.service.endpoint Punkt końcowy konfiguracji w usłudze Azure API Management dla własnej bramy. Znajdź tę wartość w witrynie Azure Portal w obszarze Wdrażanie bram>. Tak Nie dotyczy Wersja 2.0 lub nowsza
config.service.auth Definiuje, jak samodzielnie hostowana brama uwierzytelnia się do API konfiguracyjnego. Obecnie brama obsługuje tokeny bramowe oraz uwierzytelnianie Microsoft Entra. Tak Nie dotyczy Wersja 2.0 lub nowsza
config.service.auth.azureAd.tenantId Identyfikator dzierżawy firmy Microsoft Entra. Tak, w przypadku korzystania z uwierzytelniania entra firmy Microsoft Nie dotyczy Wersja 2.3 lub nowsza
config.service.auth.azureAd.clientId Identyfikator klienta aplikacji Microsoft Entra do uwierzytelniania (znany również jako identyfikator aplikacji). Tak, w przypadku korzystania z uwierzytelniania entra firmy Microsoft Nie dotyczy Wersja 2.3 lub nowsza
config.service.auth.azureAd.clientSecret Wpis tajny aplikacji Microsoft Entra do uwierzytelniania. Tak, przy użyciu uwierzytelniania Microsoft Entra (chyba że podasz certyfikat) Nie dotyczy Wersja 2.3 lub nowsza
config.service.auth.azureAd.certificatePath Ścieżka do certyfikatu do uwierzytelniania w aplikacji Microsoft Entra. Tak, przy użyciu uwierzytelniania Microsoft Entra (chyba że podajesz sekret) Nie dotyczy Wersja 2.3 lub nowsza
config.service.auth.azureAd.authority Adres URL urzędu identyfikatora entra firmy Microsoft. Nie. https://login.microsoftonline.com Wersja 2.3 lub nowsza
config.service.auth.tokenAudience Odbiorcy tokena do uwierzytelniania Microsoft Entra. Nie. https://azure-api.net/configuration Wersja 2.3 lub nowsza
config.service.endpoint.disableCertificateValidation Definiuje, czy samodzielnie hostowana brama waliduje certyfikat po stronie serwera API konfiguracyjnego. Używaj walidacji certyfikatów w produkcji. Wyłącz go tylko do testów i zachowaj ostrożność, ponieważ może to wprowadzać zagrożenie dla bezpieczeństwa. Nie. false Wersja 2.0 lub nowsza
config.service.integration.timeout Definiuje limit czasu interakcji z interfejsem API konfiguracji. Nie. 00:01:40 Wersja 2.3.5 lub nowsza

Brama hostowana samodzielnie obsługuje kilka opcji uwierzytelniania, integrując się z API konfiguracyjnym. Zdefiniuj te opcje za pomocą config.service.auth.

Aby zdefiniować, jak się uwierzytelnić, podaj następujące informacje:

  • W przypadku uwierzytelniania opartego na tokenach bramy określ token dostępu (klucz uwierzytelniania) bramy hostowanej samodzielnie w witrynie Azure Portal w obszarze >.
  • W przypadku uwierzytelniania opartego na identyfikatorze Entra firmy Microsoft określ azureAdApp i podaj dodatkowe config.service.auth.azureAd ustawienia uwierzytelniania.

Odkrywanie i synchronizacja między instancjami

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
neighborhood.host Nazwa DNS używana do rozpoznawania wszystkich wystąpień wdrożenia własnej bramy na potrzeby synchronizacji między wystąpieniami. W Kubernetes używaj usługi headless do rozwiązywania instancji. Nie. Nie dotyczy Wersja 2.0 lub nowsza
neighborhood.heartbeat.port Port UDP używany w przypadku wystąpień wdrożenia własnej bramy w celu wysyłania pulsów do innych wystąpień. Nie. 4291 Wersja 2.0 lub nowsza
policy.rate-limit.sync.port Port UDP używany na potrzeby wystąpień bramy self-hosted w celu synchronizacji ograniczania szybkości w wielu wystąpieniach. Nie. 4290 Wersja 2.0 lub nowsza

HTTP

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
net.server.http.forwarded.proto.enabled Honoruje nagłówek X-Forwarded-Proto , aby zidentyfikować schemat rozwiązywania wywołanej trasy API (tylko http/https). Nie. false Wersja 2.5 lub nowsza

Integracja rozwiązania Kubernetes

Kubernetes Ingress (podgląd)

Ważne

Wsparcie dla Kubernetes Ingress jest eksperymentalne, a wsparcie Azure tego nie obejmuje. Dowiedz się więcej w repozytorium Kubernetes Ingress GitHub.

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
k8s.ingress.enabled Włącz integrację ruchu przychodzącego Kubernetes. Nie. false Wersja 2.0 lub nowsza
k8s.ingress.namespace Przestrzeń nazw platformy Kubernetes do obejrzenia zasobów ruchu przychodzącego platformy Kubernetes. Nie. default Wersja 2.0 lub nowsza
k8s.ingress.dns.sufiks Sufiks DNS do utworzenia nazwy hosta DNS dla usług do wysyłania żądań. Nie. svc.cluster.local Wersja 2.4 lub nowsza
k8s.ingress.config.path Ścieżka do konfiguracji platformy Kubernetes (Kubeconfig). Nie. Nie dotyczy Wersja 2.4 lub nowsza

Metryki

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
telemetry.metrics.local Włącz zbieranie lokalnych metryk za pomocą funkcji StatsD. Wartość jest jedną z następujących opcji: none, statsd. Nie. none Wersja 2.0 lub nowsza
telemetry.metryki.localny.statsd.endpoint Punkt końcowy StatsD. Tak, jeśli telemetry.metrics.local jest ustawiona na statsd; w przeciwnym razie nie. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.metrics.lokalne.statsd.sampling Wskaźnik próbkowania metryk StatsD. Wartość musi należeć do zakresu od 0 do 1, na przykład 0,5. Nie. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.metrics.local.statsd.tag-format Format tagowania eksportera StatsD. Wartość jest jedną z następujących opcji: librato, dogStatsD, influxDB. Nie. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.metrics.cloud Wskazanie, czy włączyć emisję metryk do Azure Monitor. Nie. true Wersja 2.0 lub nowsza
observability.opentelemetry.enabled Wskazanie, czy należy umożliwić emisję metryk do kolektora OpenTelemetry w Kubernetes. Nie. false Wersja 2.0 lub nowsza
observability.opentelemetry.collector.uri Identyfikator URI modułu zbierającego OpenTelemetry do wysyłania metryk. Tak, jeśli observability.opentelemetry.enabled jest ustawiona na true; w przeciwnym razie nie. Nie dotyczy Wersja 2.0 lub nowsza
observability.opentelemetry.system-metrics.enabled Włącz przesyłanie metryk systemowych, takich jak CPU, pamięć i garbage collection, do kolektora OpenTelemetry. Nie. false Wersja 2.3 lub nowsza
observability.opentelemetry.histogram.buckets Kubełki histogramowe, w których można raportować metryki OpenTelemetry. Format: "x,y,z,...". Nie. "5,10,25,50,100,250,500,1000,2500,5000,10000" Wersja 2.0 lub nowsza

Dzienniki

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
telemetry.logs.std Włącz rejestrowanie w standardowym strumieniu. Wartość jest jedną z następujących opcji: none, text, json. Nie. text Wersja 2.0 lub nowsza
telemetry.logs.std.level Definiuje poziom logów wysyłanych do strumienia standardowego. Wartość to jedna z następujących opcji: all, , infodebug, , warnerror, lub fatal. Nie. info Wersja 2.0 lub nowsza
telemetry.logs.std.color Wskazanie, czy używać kolorowych kłod w standardowym strumieniu. Nie. true Wersja 2.0 lub nowsza
telemetry.logs.local Włącz rejestrowanie lokalne. Wartość jest jedną z następujących opcji: none, , autolocalsyslog, rfc5424, , , journaljson Nie. auto Wersja 2.0 lub nowsza
telemetry.logs.local.localsyslog.endpoint punkt końcowy localsyslog. Tak, jeśli telemetry.logs.local jest ustawiona na localsyslog; w przeciwnym razie nie. Aby uzyskać więcej informacji na temat konfiguracji, zobacz dokumentację lokalnego dziennika systemowego. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.logs.local.localsyslog.facility Określa kod obiektu localsyslog Nie. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.logs.local.rfc5424.endpoint punkt końcowy rfc5424. Tak, jeśli telemetry.logs.local jest ustawiona na rfc5424; w przeciwnym razie nie. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.logs.local.rfc5424.facility Kod obiektu na rfc5424, na przykład 7 Nie. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.logi.lokalny.dziennik.endpoint Punkt końcowy dziennika. Tak, jeśli telemetry.logs.local jest ustawiona na journal; w przeciwnym razie nie. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.logs.local.json.endpoint Punkt końcowy UDP, który akceptuje dane JSON, określony jako ścieżka pliku, IP:port lub nazwa hosta:port. Tak, jeśli telemetry.logs.local jest ustawiona na json; w przeciwnym razie nie. 127.0.0.1:8888 Wersja 2.0 lub nowsza

Zabezpieczenia

Certyfikaty i szyfry

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
certificates.local.ca.enabled Wskazanie, czy samodzielnie hostowana brama powinna używać zamontowanych lokalnych certyfikatów CA. Wymagane jest uruchomienie własnej bramy jako katalogu głównego lub identyfikatora użytkownika 1001. Nie. false Wersja 2.0 lub nowsza
net.server.tls.ciphers.allowed-suites Lista szyfrów oddzielonych przecinkami do połączenia TLS między klientem API a samodzielnie hostowaną bramą. Nie. 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 Wersja 2.0 lub nowsza
net.client.tls.ciphers.allowed-suites Rozdzielona przecinkami lista szyfrów do użycia na potrzeby połączenia TLS między własną bramą a zapleczem. Nie. 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 Wersja 2.0 lub nowsza
security.certificate-revocation.validation.enabled Włącza lub wyłącza walidację listy odwołania certyfikatów. Nie. false Wersja 2.3.6 lub nowsza

magazyn lokalny wątku

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 Wskazuje, czy brama pozwala na TLS 1.3 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. Nie. true Wersja 2.0 lub nowsza
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 Wskazuje, czy brama pozwala na TLS 1.2 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. Nie. true Wersja 2.0 lub nowsza
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 Wskazuje, czy brama pozwala na TLS 1.1 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. Nie. false Wersja 2.0 lub nowsza
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 Wskazuje, czy brama pozwala na TLS 1.0 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. Nie. false Wersja 2.0 lub nowsza
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 Wskazuje, czy brama pozwala na SSL 3.0 do backendu. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. Nie. false Wersja 2.0 lub nowsza

Suwerenne chmury

Poniższa tabela opisuje ustawienia, które musisz skonfigurować, aby pracować z chmurami suwerennymi:

Nazwa/nazwisko Publiczne Azure Chiny Rząd USA
config.service.auth.tokenAudience https://azure-api.net/configuration (Ustawienie domyślne) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (Ustawienie domyślne) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

Jak skonfigurować ustawienia

Plik YAML kubernetes

Podczas wdrażania samodzielnie hostowanej bramki do Kubernetes za pomocą pliku YAML, konfiguruj ustawienia jako pary imię-wartość w data elemencie ConfigMap bramy. Na przykład:

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"

[...]

Wykres Helm

Gdy używasz Helma do wdrażania samodzielnie hostowanej bramki do Kubernetes, przekaż ustawienia konfiguracji wykresu jako parametry helm install do polecenia. Na przykład:

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