Partilhar via


Referência: Definições de configuração de contêiner de gateway auto-hospedado

APLICA-SE A: Developer | Prémio

Este artigo fornece uma referência para as configurações obrigatórias e opcionais que são usadas para configurar o contêiner de gateway auto-hospedado do Gerenciamento de API.

Para saber mais sobre nossas diretrizes de produção (Kubernetes), recomendamos a leitura deste artigo.

Importante

Essa referência se aplica somente ao gateway auto-hospedado v2. Versões mínimas para disponibilidade de configurações são fornecidas.

Integração com API de configuração

A API de Configuração é usada pelo gateway auto-hospedado para se conectar ao Gerenciamento de API do Azure para obter a configuração mais recente e enviar métricas, quando habilitada.

Aqui está uma visão geral de todas as opções de configuração:

Nome Descrição Necessário Predefinição Disponibilidade
gateway.name ID do recurso de gateway auto-hospedado. Sim, ao usar a autenticação do Microsoft Entra N/A v2,3+
config.service.endpoint Ponto de extremidade de configuração no Gerenciamento de API do Azure para o gateway auto-hospedado. Encontre esse valor no portal do Azure em Implantação de gateways>. Sim N/A v2.0+
config.service.auth Define como o gateway auto-hospedado deve se autenticar na API de configuração. Atualmente, o token de gateway e a autenticação do Microsoft Entra são suportados. Sim N/A v2.0+
config.service.auth.azureAd.tenantId ID do locatário do Microsoft Entra. Sim, ao usar a autenticação do Microsoft Entra N/A v2,3+
config.service.auth.azureAd.clientId ID do cliente do aplicativo Microsoft Entra para autenticar (também conhecido como ID do aplicativo). Sim, ao usar a autenticação do Microsoft Entra N/A v2,3+
config.service.auth.azureAd.clientSecret Segredo do aplicativo Microsoft Entra para autenticar. Sim, ao usar a autenticação do Microsoft Entra (a menos que o certificado seja especificado) N/A v2,3+
config.service.auth.azureAd.certificatePath Caminho para o certificado com o qual autenticar para o aplicativo Microsoft Entra. Sim, ao usar a autenticação do Microsoft Entra (a menos que o segredo seja especificado) N/A v2,3+
config.service.auth.azureAd.authority URL de autoridade do Microsoft Entra ID. Não https://login.microsoftonline.com v2,3+
config.service.auth.tokenAudiência Audiência do token usado para autenticação do Microsoft Entra Não https://azure-api.net/configuration v2,3+
config.service.endpoint.disableCertificateValidation Define se o gateway auto-hospedado deve validar o certificado do lado do servidor da API de Configuração. Recomenda-se usar a validação de certificado, desativar apenas para fins de teste e com cautela, pois pode introduzir risco de segurança. Não false v2.0+
config.service.integration.timeout Define o tempo limite para interagir com a API de configuração. Não 00:01:40 v2.3.5+

O gateway auto-hospedado fornece suporte para algumas opções de autenticação para integrar com a API de configuração que pode ser definida usando config.service.auth.

Estas orientações ajudam-no a fornecer as informações necessárias para definir como autenticar:

  • Para autenticação baseada em token de gateway, especifique um token de acesso (chave de autenticação) do gateway auto-hospedado no portal do Azure em Implantação de Gateways>.
  • Para autenticação baseada em ID do Microsoft Entra, especifique azureAdApp e forneça as configurações de autenticação adicionais config.service.auth.azureAd .

Descoberta entre instâncias e sincronização

Nome Descrição Necessário Predefinição Disponibilidade
bairro.host Nome DNS usado para resolver todas as instâncias de uma implantação de gateway auto-hospedado para sincronização entre instâncias. No Kubernetes, isso pode ser feito usando um Serviço sem cabeça. No N/A v2.0+
bairro.heartbeat.port Porta UDP usada para instâncias de uma implantação de gateway auto-hospedado para enviar pulsações para outras instâncias. Não 4291 v2.0+
policy.rate-limit.sync.port Porta UDP usada para instâncias de gateway auto-hospedadas para sincronizar a limitação de taxa em várias instâncias. Não 4290 v2.0+

HTTP

Nome Descrição Necessário Predefinição Disponibilidade
net.server.http.forwarded.proto.enabled Capacidade de honrar X-Forwarded-Proto o cabeçalho para identificar o esquema para resolver a rota de API chamada (somente http/https). Não false v2,5+

Integração com Kubernetes

Ingresso no Kubernetes

Importante

O suporte para o Kubernetes Ingress é atualmente experimental e não é coberto pelo Suporte do Azure. Saiba mais no GitHub.

Nome Descrição Necessário Predefinição Disponibilidade
k8s.ingress.enabled Habilite a integração do Kubernetes Ingress. Não false v1,2+
k8s.ingress.namespace Namespace do Kubernetes para observar os recursos de ingresso do Kubernetes. Não default v1,2+
k8s.ingress.dns.sufixo Sufixo DNS para criar o nome de host DNS para os serviços para os quais enviar solicitações. Não svc.cluster.local v2,4+
k8s.ingress.config.path Caminho para a configuração do Kubernetes (Kubeconfig). No N/A v2,4+

Métricas

Nome Descrição Necessário Predefinição Disponibilidade
telemetry.metrics.local Habilite a coleta de métricas locais por meio do StatsD. Valor é uma das seguintes opções: none, statsd. Não none v2.0+
telemetry.metrics.local.statsd.endpoint Ponto final StatsD. Sim, se telemetry.metrics.local estiver definido como statsd; caso contrário, não. N/A v2.0+
telemetry.metrics.local.statsd.sampling Taxa de amostragem de métricas StatsD. O valor deve estar entre 0 e 1, por exemplo, 0,5. No N/A v2.0+
telemetry.metrics.local.statsd.tag-format Formato de etiquetagem do exportador StatsD. Valor é uma das seguintes opções: ibrato, dogStatsD, influxDB. No N/A v2.0+
telemetry.metrics.cloud Indicação se as métricas de emissão devem ou não ser habilitadas para o Azure Monitor. Não true v2.0+
observability.opentelemetry.enabled Indicação se as métricas de emissão devem ou não ser habilitadas para um coletor OpenTelemetry no Kubernetes. Não false v2.0+
observabilidade.opentelemetry.collector.uri URI do coletor OpenTelemetry para o qual enviar métricas. Sim, se observability.opentelemetry.enabled estiver definido como true; caso contrário, não. N/A v2.0+
observability.opentelemetry.system-metrics.enabled Habilite o envio de métricas do sistema para o coletor OpenTelemetry como CPU, memória, coleta de lixo, etc. Não false v2,3+
observability.opentelemetry.histogram.buckets Buckets de histograma nos quais as métricas OpenTelemetry devem ser relatadas. Formato: "x,y,z,...". Não "5,10,25,50,100,250,500,1000,2500,5000,10000" v2.0+

Registos

Nome Descrição Necessário Predefinição Disponibilidade
telemetria.logs.std Habilite o registro em log em um fluxo padrão. Valor é uma das seguintes opções: none, text, json. Não text v2.0+
telemetry.logs.std.level Define o nível de log dos logs enviados para o fluxo padrão. Valor é uma das seguintes opções: all, debug, info, warnerror , ou fatal. Não info v2.0+
telemetry.logs.std.color Indicação se os toros coloridos devem ou não ser usados no fluxo padrão. Não true v2.0+
telemetry.logs.local Habilite o registro em log local. Valor é uma das seguintes opções: none, auto, localsyslog, rfc5424, journal, , json Não auto v2.0+
telemetry.logs.local.localsyslog.endpoint ponto de extremidade localsyslog. Sim, se telemetry.logs.local estiver definido como localsyslog; caso contrário, não. Consulte a documentação do syslog local para obter mais detalhes sobre a configuração. N/A v2.0+
telemetry.logs.local.localsyslog.facility Especifica o código do recurso localsyslog, por exemplo, 7. No N/A v2.0+
telemetry.logs.local.rfc5424.endpoint Ponto de extremidade RFC5424. Sim, se telemetry.logs.local estiver definido como rfc5424; caso contrário, não. N/A v2.0+
telemetry.logs.local.rfc5424.facility Código de instalação por rfc5424, por exemplo, 7 No N/A v2.0+
telemetry.logs.local.journal.endpoint Ponto final do diário. Sim, se telemetry.logs.local estiver definido como journal; caso contrário, não. N/A v2.0+
telemetry.logs.local.json.Ponto final Ponto de extremidade UDP que aceita dados JSON, especificados como caminho do arquivo, IP:port ou hostname:port. Sim, se telemetry.logs.local estiver definido como json; caso contrário, não. 127.0.0.1:8888 v2.0+

Segurança

Certificados e cifras

Nome Descrição Necessário Predefinição Disponibilidade
certificates.local.ca.enabled Indicação se o gateway auto-hospedado deve ou não usar certificados de CA locais montados. É necessário executar o gateway auto-hospedado como root ou com ID de usuário 1001. Não false v2.0+
net.server.tls.ciphers.allowed-suites Lista separada por vírgulas de cifras a serem usadas para conexão TLS entre o cliente de API e o gateway auto-hospedado. Não 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 Lista separada por vírgulas de cifras a serem usadas para conexão TLS entre o gateway auto-hospedado e o back-end. Não 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 Fornece a capacidade de ativar/desativar a validação da lista de revogação de certificados Não false v2.3.6+

TLS

Nome Descrição Necessário Predefinição Disponibilidade
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 Indicação se o TLS 1.3 é ou não permitido para o back-end. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. Não true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 Indicação se o TLS 1.2 é ou não permitido para o back-end. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. Não true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 Indicação se o TLS 1.1 é ou não permitido para o back-end. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. Não false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 Indicação se o TLS 1.0 é ou não permitido para o back-end. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. Não false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 Indicação se o SSL 3.0 é ou não permitido para o back-end. Semelhante ao gerenciamento de cifras de protocolo no gateway gerenciado. Não false v2.0+

Clouds soberanas

Aqui está uma visão geral das configurações que precisam ser configuradas para poder trabalhar com nuvens soberanas:

Nome Público Azure China Administração Pública dos EUA
config.service.auth.tokenAudiência https://azure-api.net/configuration (Padrão) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (Padrão) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

Como definir as definições

Arquivo Kubernetes YAML

Ao implantar o gateway auto-hospedado no Kubernetes usando um arquivo YAML, defina as configurações como pares nome-valor no data elemento do ConfigMap do gateway. Por exemplo:

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"

[...]

Gráfico Helm

Ao usar o Helm para implantar o gateway auto-hospedado no Kubernetes, passe as definições de configuração do gráfico como parâmetros para o helm install comando. Por exemplo:

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

Próximos passos