Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 >.
- W przypadku uwierzytelniania opartego na identyfikatorze Entra firmy Microsoft określ
azureAdAppi podaj dodatkoweconfig.service.auth.azureAdustawienia 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 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: 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 | 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 | 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:
| 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 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
Treści powiązane
- Dowiedz się więcej na temat wskazówek dotyczących uruchamiania własnej bramy na platformie Kubernetes w środowisku produkcyjnym
- Wdrażanie własnej bramy na platformie Docker
- Wdrażanie własnej bramy na platformie Kubernetes
- Wdrażanie własnej bramy w klastrze Kubernetes z obsługą usługi Azure Arc
- Włączanie obsługi języka Dapr w bramie hostowanej samodzielnie
- Dowiedz się więcej o opcjach konfiguracji rozszerzenia usługi Azure Arc