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 dodatkoweconfig.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 , , debug info , warn error 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 , , auto localsyslog , rfc5424 , , , journal json |
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
- 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