參考:自我裝載閘道容器組態設定
適用於:開發人員 | 進階
本文提供必要和選擇性設定的參考,這些設定可用來設定 API 管理 自我裝載網關容器。
若要深入瞭解我們的 (Kubernetes) 生產指導方針,建議您閱讀 這篇文章。
重要
此參考僅適用於自我裝載閘道 v2。 提供設定可用性的最低版本。
設定 API 整合
自我裝載閘道會使用組態 API 來連線到 Azure API 管理,以在啟用時取得最新的設定和傳送計量。
以下是所有組態選項的概觀:
名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
---|---|---|---|---|
gateway.name | 自我裝載閘道資源的標識碼。 | 是,使用 Microsoft Entra 驗證時 | N/A | v2.3+ |
config.service.endpoint | 自我裝載閘道的 Azure API 管理 組態端點。 在 [閘道>部署] 底下的 [Azure 入口網站 中尋找此值。 | Yes | N/A | v2.0+ |
config.service.auth | 定義自我裝載閘道應該如何向組態 API 進行驗證。 目前支援閘道令牌和Microsoft Entra 驗證。 | Yes | N/A | v2.0+ |
config.service.auth.azureAd.tenantId | Microsoft Entra 租用戶的標識碼。 | 是,使用 Microsoft Entra 驗證時 | N/A | v2.3+ |
config.service.auth.azureAd.clientId | 要驗證之Microsoft Entra 應用程式的用戶端標識碼(也稱為應用程式識別符)。 | 是,使用 Microsoft Entra 驗證時 | N/A | v2.3+ |
config.service.auth.azureAd.clientSecret | 要驗證之Microsoft Entra 應用程式的秘密。 | 是,使用 Microsoft Entra 驗證時(除非指定憑證) | N/A | v2.3+ |
config.service.auth.azureAd.certificatePath | 要針對 Microsoft Entra 應用程式進行驗證的憑證路徑。 | 是,使用 Microsoft Entra 驗證時(除非指定秘密) | N/A | v2.3+ |
config.service.auth.azureAd.authority | Microsoft Entra 標識符的授權 URL。 | No | https://login.microsoftonline.com |
v2.3+ |
config.service.auth.tokenAudience | 用於Microsoft Entra 驗證的令牌物件 | No | https://azure-api.net/configuration |
v2.3+ |
config.service.endpoint.disableCertificateValidation | 定義自我裝載閘道是否應該驗證組態 API 的伺服器端憑證。 建議您使用憑證驗證,只針對測試目的停用,並謹慎謹慎,因為它可能會帶來安全性風險。 | No | false |
v2.0+ |
config.service.integration.timeout | 定義與組態 API 互動的逾時。 | No | 00:01:40 |
v2.3.5+ |
自我裝載閘道提供一些驗證選項的支援,以與可使用 config.service.auth
來定義的組態 API 整合。
本指南可協助您提供必要資訊來定義如何驗證:
- 針對閘道令牌型驗證,請在 [閘道>部署] 底下的 Azure 入口網站 [閘道部署] 下,指定自我裝載閘道的存取令牌(驗證金鑰)。
- 針對Microsoft以專案標識碼為基礎的驗證,請指定
azureAdApp
並提供其他config.service.auth.azureAd
驗證設定。
跨實例探索和同步處理
名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
---|---|---|---|---|
neighborhood.host | DNS 名稱,用來解析跨實例同步處理之自我裝載網關部署的所有實例。 在 Kubernetes 中,可以使用無前端服務來達成。 | No | N/A | v2.0+ |
neighborhood.heartbeat.port | 用於自我裝載網關部署實例的 UDP 埠,以將活動訊號傳送至其他實例。 | No | 4291 | v2.0+ |
policy.rate-limit.sync.port | 用於自我裝載網關實例的 UDP 連接埠,可跨多個實例同步處理速率限制。 | No | 4290 | v2.0+ |
HTTP
名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
---|---|---|---|---|
net.server.http.forwarded.proto.enabled | 允許 X-Forwarded-Proto 標頭識別配置,以解析稱為 API 路由的配置(僅限 HTTP/https)。 |
No | false | v2.5+ |
Kubernetes 整合
Kubernetes 輸入
重要
Kubernetes 輸入的支援目前為實驗性,但未涵蓋透過 Azure 支援。 深入瞭解 GitHub。
名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
---|---|---|---|---|
k8s.ingress.enabled | 啟用 Kubernetes 輸入整合。 | No | false |
v1.2+ |
k8s.ingress.namespace | 用來監看 Kubernetes 輸入資源的 Kubernetes 命名空間。 | No | default |
v1.2+ |
k8s.ingress.dns.suffix | DNS 後綴,用來建置要傳送要求的服務的 DNS 主機名。 | No | svc.cluster.local |
v2.4+ |
k8s.ingress.config.path | Kubernetes 組態的路徑(Kubeconfig)。 | No | N/A | v2.4+ |
度量
名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
---|---|---|---|---|
telemetry.metrics.local | 透過 StatsD 啟用 本機計量集合 。 值是下列其中一個選項:、none statsd 。 |
No | none |
v2.0+ |
telemetry.metrics.local.statsd.endpoint | StatsD 端點。 | 是,如果 telemetry.metrics.local 設定為 ,則為 statsd ,否則為 。 |
N/A | v2.0+ |
telemetry.metrics.local.statsd.sampling | StatsD 計量取樣率。 值必須介於 0 到 1 之間,例如 0.5。 | No | N/A | v2.0+ |
telemetry.metrics.local.statsd.tag-format | StatsD 匯出工具的標記格式。 值是下列其中一個選項:ibrato 、、 dogStatsD influxDB 。 |
No | N/A | v2.0+ |
telemetry.metrics.cloud | 指示是否要 啟用向 Azure 監視器發出計量。 | No | true |
v2.0+ |
observability.opentelemetry.enabled | 指出是否要在 Kubernetes 上啟用 向 OpenTelemetry 收集器 發出計量。 | No | false |
v2.0+ |
observability.opentelemetry.collector.uri | 要傳送計量的 OpenTelemetry 收集器的 URI。 | 是,如果 observability.opentelemetry.enabled 設定為 ,則為 true ,否則為 。 |
N/A | v2.0+ |
observability.opentelemetry.system-metrics.enabled | 啟用將系統計量傳送至 OpenTelemetry 收集器,例如 CPU、記憶體、垃圾收集等。 | No | false |
v2.3+ |
observability.opentelemetry.histogram.buckets | 應該報告 OpenTelemetry 計量的直方圖貯體。 格式:“x,y,z,...”。 | No | "5,10,25,50,100,250,500,1000,2500,5000,10000" | v2.0+ |
記錄
名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
---|---|---|---|---|
telemetry.logs.std | 啟用標準數據流的記錄 。 值是下列其中一個選項:none 、、 text json 。 |
No | text |
v2.0+ |
telemetry.logs.std.level | 定義傳送至標準數據流的記錄層級。 值是下列其中一個選項:all 、、debug info 、 warn error 或 fatal 。 |
No | info |
v2.0+ |
telemetry.logs.std.color | 指示是否應該在標準數據流中使用彩色記錄。 | No | true |
v2.0+ |
telemetry.logs.local | 啟用本機記錄。 值是下列其中一個選項:none 、、auto 、localsyslog 、rfc5424 、 journal json |
No | auto |
v2.0+ |
telemetry.logs.local.localsyslog.endpoint | localsyslog 端點。 | 如果 telemetry.logs.local 設定為 ,則為 localsyslog ,否則為 。否則為 。 如需設定的詳細資訊,請參閱 本機 syslog 檔 。 |
N/A | v2.0+ |
telemetry.logs.local.localsyslog.facility | 指定 localsyslog 裝置程式代碼,例如 7 。 |
No | N/A | v2.0+ |
telemetry.logs.local.rfc5424.endpoint | rfc5424 端點。 | 如果 telemetry.logs.local 設定為 ,則為 rfc5424 ,否則為 。否則為 。 |
N/A | v2.0+ |
telemetry.logs.local.rfc5424.facility | 例如,每個 rfc5424 的設施程序代碼 7 |
No | N/A | v2.0+ |
telemetry.logs.local.journal.endpoint | 日誌端點。 | 如果 telemetry.logs.local 設定為 ,則為 journal ,否則為 。否則為 。 |
N/A | v2.0+ |
telemetry.logs.local.json.endpoint | 接受 JSON 數據的 UDP 端點,指定為檔案路徑、IP:埠或主機名:埠。 | 如果 telemetry.logs.local 設定為 ,則為 json ,否則為 。否則為 。 |
127.0.0.1:8888 | v2.0+ |
安全性
憑證和加密
名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
---|---|---|---|---|
certificates.local.ca.enabled | 指出自我裝載網關是否應該使用掛接的本機 CA 憑證。 必須以根目錄或使用者標識碼 1001 身分執行自我裝載閘道。 | No | false |
v2.0+ |
net.server.tls.ciphers.allowed-suites | 要用於 API 用戶端與自我裝載閘道之間 TLS 連線的逗號分隔密碼清單。 | No | 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 | 自我裝載閘道與後端之間用於 TLS 連線的逗號分隔密碼清單。 | No | 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 | 提供開啟/關閉證書吊銷清單驗證的功能 | No | false |
v2.3.6+ |
TLS
名稱 | 描述 | 是必要欄位 | 預設 | 可用性 |
---|---|---|---|---|
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 | 指示是否允許TLS 1.3 進入後端。 類似於 在受控網關中管理通訊協定加密。 | No | true |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 | 指示是否允許TLS 1.2 進入後端。 類似於 在受控網關中管理通訊協定加密。 | No | true |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 | 指示是否允許TLS 1.1 進入後端。 類似於 在受控網關中管理通訊協定加密。 | No | false |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 | 指示是否允許TLS 1.0 進入後端。 類似於 在受控網關中管理通訊協定加密。 | No | false |
v2.0+ |
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 | 指出是否允許 SSL 3.0 進入後端。 類似於 在受控網關中管理通訊協定加密。 | No | false |
v2.0+ |
主權雲端
以下是需要設定才能使用主權雲端的設定概觀:
名稱 | 公開 | Azure 中國 | US Gov |
---|---|---|---|
config.service.auth.tokenAudience | https://azure-api.net/configuration (預設值) |
https://azure-api.cn/configuration |
https://azure-api.us/configuration |
logs.applicationinsights.endpoint | https://dc.services.visualstudio.com/v2/track (預設值) |
https://dc.applicationinsights.azure.cn/v2/track |
https://dc.applicationinsights.us/v2/track |
如何進行設定
Kubernetes YAML 檔案
使用 YAML 檔案將自我裝載閘道部署至 Kubernetes 時,請將設定設定設定為閘道 ConfigMap 元素中的 data
名稱/值組。 例如:
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"
[...]
Helm 圖表
使用 Helm 將自我裝載閘道部署至 Kubernetes 時,請將圖表組態設定當做參數傳遞至helm install
命令。 例如:
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
下一步
- 深入了解在生產環境中的 Kubernetes 上執行自我裝載閘道的指導
- 將自我裝載閘道部署至 Docker
- 將自我裝載閘道部署至 Kubernetes
- 將自我裝載閘道部署至已啟用 Azure Arc 的 Kubernetes 叢集
- 在自我裝載閘道上啟用 Dapr 支援
- 深入瞭解 Azure Arc 擴充功能的組 態選項