Udostępnij za pośrednictwem


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.

Aby dowiedzieć się więcej na temat naszych wskazówek dotyczących produkcji (Kubernetes), zalecamy przeczytanie tego artykułu.

Ważne

Ta dokumentacja dotyczy tylko własnej bramy w wersji 2. Podano minimalne wersje dostępności ustawień.

Integracja interfejsu API konfiguracji

Interfejs API konfiguracji jest używany przez własną bramę do nawiązywania połączenia z usługą Azure API Management w celu uzyskania najnowszej konfiguracji i wysyłania metryk po włączeniu.

Oto omówienie wszystkich opcji konfiguracji:

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 sposób uwierzytelniania bramy self-hosted w interfejsie API konfiguracji. Obecnie jest obsługiwany token bramy i uwierzytelnianie firmy 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, w przypadku korzystania z uwierzytelniania Entra firmy Microsoft (chyba że określono certyfikat) Nie dotyczy Wersja 2.3 lub nowsza
config.service.auth.azureAd.certificatePath Ścieżka do certyfikatu do uwierzytelniania w aplikacji Microsoft Entra. Tak, w przypadku korzystania z uwierzytelniania Entra firmy Microsoft (chyba że określono wpis tajny) 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 tokenu używanego do uwierzytelniania w usłudze Microsoft Entra Nie. https://azure-api.net/configuration Wersja 2.3 lub nowsza
config.service.endpoint.disableCertificateValidation Określa, czy brama self-hosted powinna zweryfikować certyfikat po stronie serwera interfejsu API konfiguracji. Zaleca się używanie weryfikacji certyfikatu, wyłączenie tylko do celów testowych i z ostrożnością, ponieważ może to spowodować zagrożenie 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 zapewnia obsługę kilku opcji uwierzytelniania w celu integracji z interfejsem API konfiguracji, który można zdefiniować przy użyciu polecenia config.service.auth.

Te wskazówki ułatwiają podanie wymaganych informacji w celu zdefiniowania sposobu uwierzytelniania:

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

Odnajdywanie i synchronizacja między wystąpieniami

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 rozwiązaniu Kubernetes można go osiągnąć przy użyciu usługi bezgłównej. 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 Możliwość honorowania X-Forwarded-Proto nagłówka w celu zidentyfikowania schematu rozpoznawania nazywanej trasą interfejsu API (tylko http/https). Nie. fałsz Wersja 2.5 lub nowsza

Integracja rozwiązania Kubernetes

Ruch przychodzący Kubernetes

Ważne

Obsługa ruchu przychodzącego Kubernetes jest obecnie eksperymentalna i nie jest objęta pomocą techniczną platformy Azure. Dowiedz się więcej na temat usługi GitHub.

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
k8s.ingress.enabled Włącz integrację ruchu przychodzącego Kubernetes. Nie. false Wersja 1.2 lub nowsza
k8s.ingress.namespace Przestrzeń nazw platformy Kubernetes do obejrzenia zasobów ruchu przychodzącego platformy Kubernetes. Nie. default Wersja 1.2 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.metrics.local.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.local.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: ibrato, dogStatsD, influxDB. Nie. Nie dotyczy Wersja 2.0 lub nowsza
telemetry.metrics.cloud Wskazanie, czy włączyć emitowanie metryk do usługi Azure Monitor. Nie. true Wersja 2.0 lub nowsza
observability.opentelemetry.enabled Wskazanie, czy włączyć emitowanie metryk do modułu zbierającego OpenTelemetry na platformie 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 wysyłanie metryk systemowych do modułu zbierającego OpenTelemetry, takiego jak procesor CPU, pamięć, odzyskiwanie pamięci itp. Nie. false Wersja 2.3 lub nowsza
observability.opentelemetry.histogram.buckets Przedziały histogramu, w których powinny być zgłaszane 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 dziennika dzienników wysyłanych do standardowego strumienia. Wartość jest jedną z następujących opcji: all, , debuginfo, warnerror lub fatal. Nie. info Wersja 2.0 lub nowsza
telemetry.logs.std.color Wskazanie, czy w standardowym strumieniu powinny być używane kolorowe dzienniki. 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, na przykład 7. 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.logs.local.journal.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 Wskazuje, czy brama self-hosted powinna używać lokalnych certyfikatów urzędu certyfikacji, które są zainstalowane. 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 Rozdzielona przecinkami lista szyfrów do użycia na potrzeby połączenia TLS między klientem interfejsu API a bramą hostowaną samodzielnie. 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 Zapewnia możliwość włączania/wyłączania sprawdzania poprawności listy odwołania certyfikatów Nie. false Wersja 2.3.6 lub nowsza

TLS

Nazwa/nazwisko opis Wymagani Wartość domyślna Dostępność
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 Wskazanie, czy protokół TLS 1.3 jest dozwolony w kierunku zaplecza. 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 Wskazanie, czy protokół TLS 1.2 jest dozwolony w kierunku zaplecza. 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 Wskazanie, czy protokół TLS 1.1 jest dozwolony w kierunku zaplecza. 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 protokół TLS 1.0 jest dozwolony w kierunku zaplecza. 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 Wskazanie, czy protokół SSL 3.0 jest dozwolony w kierunku zaplecza. Podobnie jak zarządzanie szyframi protokołu w bramie zarządzanej. Nie. false Wersja 2.0 lub nowsza

Suwerenne chmury

Poniżej przedstawiono omówienie ustawień, które należy skonfigurować, aby móc pracować z suwerennymi chmurami:

Nazwisko Publiczne Azure Chiny US Government
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 własnej bramy na platformie Kubernetes przy użyciu pliku YAML skonfiguruj ustawienia jako pary name-value w data elemekcie 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

W przypadku wdrażania własnej bramy na platformie Kubernetes przy użyciu narzędzia Helm przekaż ustawienia konfiguracji wykresu helm install jako parametry 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

Następne kroki