跳转到主要内容

热门内容

今日:

  • 【数据建模】什么是数据建模?
  • 【快速软件开发】从零到 MVP:我用来快速构建应用程序的 3 个工具
  • 【战略】维基百科:三难困境
  • 【开源许可】从开源到免费和开源,MinIO现在在GNU AGPLv3许可
  • 数字化运营
  • 智能化转型
  • 【Gen UI】生成式用户界面与结果导向设计的范式革命​
  • 云计算
  • 万物互联
  • 区块链

总体:

  • 【数据集成】用于数据集成的10个最佳开源ETL工具
  • 【管理】热尔韦原理综述
  • 【Java框架】2022 年 17 个流行的 Java 框架:优缺点等
  • 【开源许可】从开源到免费和开源,MinIO现在在GNU AGPLv3许可
  • 【SAP】如何开始使用Sap AFS和Sap FMS。
  • 【数据治理】开源数据治理-2023年需要考虑的7个最佳工具
  • 【数据目录】OpenMetadata与DataHub:比较架构、功能、集成等
  • 【开源合规】使用MySQL许可:开源许可与商业许可
  • 【微服务架构】微服务已死——迷你服务万岁
  • 【SAP GUI】什么是SAP GUI(图形用户界面)以及如何使用它

最近浏览:

  • 【开源许可】从开源到免费和开源,MinIO现在在GNU AGPLv3许可
  • 【快速软件开发】从零到 MVP:我用来快速构建应用程序的 3 个工具
  • 【战略】维基百科:三难困境
  • 【数据建模】什么是数据建模?
  • 【应用架构】高可扩展性工作流引擎Zeebe已准备就绪
  • 【工业物联网】工控协议解析:EtherNet/IP
  • LangChain的工具调用
  • 【数据库架构】设置 PostgreSQL 多主复制:变得简单
  • 【数据库选型】ClickHouse vs PostgreSQL vs TimescaleDB
  • 【AI智能体框架】选择正确的AI智能体框架:LangGraph vs CrewAI vs OpenAI Swarm

热门内容

今日:

  • 【SCADA】什么是SCADA(监控和数据采集系统)?
  • 【战略】维基百科:三难困境
  • [Azure资源组]Microsoft Azure资源组:介绍和最佳实践
  • 【数据建模】什么是数据建模?
  • 【快速软件开发】从零到 MVP:我用来快速构建应用程序的 3 个工具
  • 【大模型】微调LLM:参数有效微调(PEFT)——LoRA和QLoRA——第1部分
  • 【开源许可】从开源到免费和开源,MinIO现在在GNU AGPLv3许可
  • 【图形数据库】图形查询语言比较:Gremlin与Cypher与nQL
  • 【软件测试】稳定性和可靠性测试在软件开发中的重要性
  • 【主数据架构】4种常见的主数据管理实现风格

总体:

  • 语言和框架
  • 【容器架构】Minikube vs.kind vs.k3s-我应该用哪一个?
  • 【数据集成】用于数据集成的10个最佳开源ETL工具
  • 【Java框架】2022 年 17 个流行的 Java 框架:优缺点等
  • 【技术选型】Keras、TensorFlow和PyTorch的区别
  • 【深度学习】45测试深度学习基础知识的数据科学家的问题(以及解决方案)
  • 【数据架构】什么是实体关系图(ERD)?
  • 【Rust架构】Rust web框架比较
  • 【知识】DIKW(数据,信息,知识,智慧)金字塔
  • 【技术选型】AMQP vs MQTT

最近浏览:

  • 【开源许可】从开源到免费和开源,MinIO现在在GNU AGPLv3许可
  • 【SCADA】什么是SCADA(监控和数据采集系统)?
  • 【快速软件开发】从零到 MVP:我用来快速构建应用程序的 3 个工具
  • 【图形数据库】图形查询语言比较:Gremlin与Cypher与nQL
  • 【软件测试】稳定性和可靠性测试在软件开发中的重要性
  • 【主数据架构】4种常见的主数据管理实现风格
  • 【战略】维基百科:三难困境
  • 【大模型】微调LLM:参数有效微调(PEFT)——LoRA和QLoRA——第1部分
  • [Azure资源组]Microsoft Azure资源组:介绍和最佳实践
  • 【数据建模】什么是数据建模?

首页
x

Main navigation

  • 主页
  • 数字化 +
    • 数字业务自动化
    • 数字化方案
    • 数字化转型战略
    • 数字化转型治理
    • 数字化运营
    • 数字化客户
      • 客户
    • 数字化研发
      • 研发
    • 数字化制造
    • 数字化生产
    • 数字化供应链
    • 数字化销售
    • 数字化服务
    • 数字化营销
      • 营销
    • 数字化财务
    • 人力资源
    • 数字化法务
  • 企业架构 +
    • 企业安全架构
    • 企业架构框架
    • 方案架构
  • 企业业务架构
  • 企业技术架构
  • 企业应用架构
  • 企业数据架构
  • 数据应用架构 +
    • 主数据架构
    • 大数据架构
    • 数据仓库架构
    • 数据保护
    • 数据库架构
    • 数据建模
    • 数据枢纽架构
    • 数据湖架构
    • 数据编制架构
    • 数据网格架构
    • 数据虚拟化架构
  • 集成架构 +
  • 架构质量 +
  • 软件架构 +
  • 大数据架构 +
    • Hadoop 生态
    • Saprk生态
    • 大数据战略
  • 数据和分析 +
    • 机器学习
    • 数据分析
    • 数据可视化
    • 数据工程
    • 数据战略
    • 数据挖掘
    • 数据科学
    • 商务智能
  • 数据库架构 +
    • MySql架构
    • PostgreSql架构
    • 云数据库
    • 内存数据库
    • 列式数据库
    • 图形数据库
    • 搜索引擎
    • 文档数据库
  • 数据治理
  • 数据管理 +
    • 数据仓库
    • 数据湖
  • 企业合规管理
  • 企业治理 +
  • 企业风险管理
  • 隐私保护
  • 智能转型 +
  • 云计算 +
    • AWS 平台
    • SaaS云
    • Salesforce
    • 云原生
    • 云架构
    • 云治理
    • 云转型战略
    • 容器云
    • 微软云
    • 私有云
  • 人工智能 +
  • 生成式人工智能 +
    • 多模态模型
    • 大视觉模型
    • 大语言模型
    • 大音频模型
  • 万物互联 +
    • 工业控制系统
    • 工业物联网
    • 物联网(IoT)安全
    • 物联网(IoT)架构
    • 物联网战略
    • 边缘计算
  • 元宇宙
  • 区块链 +
  • 安全 +
    • 云安全
    • 安全工具
    • 安全战略
    • 安全运营
    • 应用安全
    • 数据安全
    • 终端安全
    • 网络安全
    • 隐私保护
  • 基础设施 +
  • 软件开发 +
    • 开发管理
    • 需求分析
    • 低代码开发
  • 软件测试 +
  • 软件设计
  • DevOps +
  • 敏捷
  • 项目 +
  • 平台和工具 +
    • DevOps工具
    • 云计算平台
    • 企业事件枢纽
    • 其他工具
    • 分布式平台
    • 大数据平台
    • 应用中间件
    • 开发工具
    • 数据工具
    • 集成平台
  • 语言和框架 +
    • Go语言
    • Javascript开发
    • Java开发
    • Python开发
    • Rust语言
    • TypeScript开发
    • 前端技术和框架
    • 算法和数据结构
  • 硬件和设备 +
  • 产品 +
    • 产品管理
    • 产品设计
  • 技术 +
    • 技术趋势
    • 技术选型
  • 用户体验 +
  • IT管理 +
  • 商业 +
    • 商业模型
    • 商业管理
    • 商业结构
    • 商业计划
    • 商务沟通
    • 创业
      • 创业管理
    • 国际商务
    • 经济
  • 战略 +
  • 管理 +
  • 解决方案
  • 关注
  • 社区
  • 职业
  • 职业和职位 +
  • 咨询服务
  • 微软专栏

[Azure API Management]自托管网关概述

  1. 首页 ⟶
  2. [Azure API Management]自托管网关概述
Chinese, Simplified
SEO Title
Self-hosted Azure API Management overview

category

  • 云计算

自托管网关是每个API管理服务中包含的默认托管网关的可选容器化版本。它对于将网关放置在托管API的相同环境中等场景非常有用。使用自托管网关改善API流量,满足API安全性和合规性要求。

本文解释了Azure API管理的自托管网关功能如何实现混合和多云API管理,介绍了其高级架构,并强调了其功能。

有关各种网关产品的功能概述,请参阅API管理中的API网关。

混合和多云API管理


自托管网关功能扩展了对混合和多云环境的API管理支持,并使组织能够通过Azure中的单个API管理服务高效、安全地管理本地和跨云托管的API。

使用自托管网关,客户可以灵活地将API管理网关组件的容器化版本部署到托管其API的相同环境中。所有自托管网关都通过与其联合的API管理服务进行管理,从而为客户提供所有内部和外部API的可见性和统一的管理体验。

每个API管理服务都由以下关键组件组成:

  • 作为API公开的管理平面,用于通过Azure门户、PowerShell和其他支持的机制配置服务。
  • 网关(或数据平面),负责代理API请求、应用策略和收集遥测数据
  • 开发人员使用开发人员门户来发现、学习和使用API

默认情况下,所有这些组件都部署在Azure中,导致所有API流量(如下图中的实心黑色箭头所示)流经Azure,而不管实现API的后端托管在何处。这种模式的操作简单性是以增加延迟、合规性问题以及在某些情况下额外的数据传输费用为代价的。

没有自托管网关的API流量

将自托管网关部署到托管后端API实现的同一环境中,允许API流量直接流向后端API,这减少了延迟,优化了数据传输成本,并实现了法规遵从性,同时保留了组织内所有API的单点管理、可观察性和发现的优势,无论其实现托管在何处。

具有自托管网关的API流量

包装


自托管网关可作为基于Linux的Docker容器映像从Microsoft Artifact Registry获得。它可以部署到Docker、Kubernetes或在本地服务器集群、云基础设施上运行的任何其他容器编排解决方案,也可以部署到个人计算机上用于评估和开发目的。您还可以将自托管网关部署为支持Azure Arc的Kubernetes集群的集群扩展。

容器图像


我们为自托管网关提供各种容器映像,以满足您的需求:

Tag convention Recommendation Example Rolling tag Recommended for production
{major}.{minor}.{patch} Use this tag to always run the same version of the gateway 2.0.0 ❌ ✔️
v{major} Use this tag to always run a major version of the gateway with every new feature and patch. v2 ✔️ ❌
v{major}-preview Use this tag if you always want to run our latest preview container image. v2-preview ✔️ ❌
latest Use this tag if you want to evaluate the self-hosted gateway. latest ✔️ ❌
beta1 Use this tag if you want to evaluate preview versions of the self-hosted gateway. beta ✔️ ❌


您可以在此处找到可用标签的完整列表。

1Preview版本不受官方支持,仅用于实验目的。请参阅自托管网关支持策略。

在我们的官方部署选项中使用标签


Azure门户中的部署选项使用v2标签,允许客户使用最新版本的自托管网关v2容器映像以及所有功能更新和补丁。

注:

我们提供命令和YAML片段作为参考,如果你愿意,可以随意使用更具体的标签。

使用我们的Helm chart安装时,图像标记已针对您进行了优化。Helm chart的应用程序版本将网关固定到给定的版本,不依赖于最新版本。

了解有关如何使用Helm在Kubernetes上安装API管理自托管网关的更多信息。

使用滚动标签的风险


滚动标签是在容器映像的新版本发布时可能会更新的标签。这允许容器用户接收容器映像的更新,而无需更新其部署。

这意味着您可能会在没有注意到的情况下并行运行不同的版本,例如在v2标签更新后执行缩放操作时。

示例-v2标签随2.0.0容器映像发布,但当2.1.0版本发布时,v2标签将链接到2.1.0映像。

重要事项

考虑在生产中使用特定的版本标记,以避免无意升级到较新的版本。

与Azure的连接


自托管网关需要在端口443上与Azure建立出站TCP/IP连接。每个自托管网关必须与单个API管理服务相关联,并通过其管理平面进行配置。自托管网关使用与Azure的连接:

  • 通过每分钟发送心跳消息来报告其状态
  • 定期检查(每10秒一次)并在配置更新可用时应用
  • 将指标发送到Azure Monitor(如果配置为这样做)
  • 将事件发送到Application Insights(如果已设置)


重要事项

对Azure API管理自托管网关版本0和版本1容器映像的支持将于2023年10月1日结束,同时支持相应的配置API v1。使用我们的迁移指南将自托管网关v2.0.0或更高版本与配置API v2一起使用。在我们的弃用文档中了解更多信息

FQDN依赖关系


为了正常运行,每个自托管网关需要在端口443上到与其基于云的API管理实例关联的以下端点的出站连接:

Description Required for v1 Required for v2 Notes
Hostname of the configuration endpoint <apim-service-name>.management.azure-api.net <apim-service-name>.configuration.azure-api.net1 Custom hostnames are also supported and can be used instead of the default hostname.
Public IP address of the API Management instance ✔️ ✔️ IP address of primary location is sufficient.
Public IP addresses of Azure Storage service tag ✔️ Optional2 IP addresses must correspond to primary location of API Management instance.
Hostname of Azure Blob Storage account ✔️ Optional2 Account associated with instance (<blob-storage-account-name>.blob.core.windows.net)
Hostname of Azure Table Storage account ✔️ Optional2 Account associated with instance (<table-storage-account-name>.table.core.windows.net)
Endpoints for Azure Resource Manager ✔️ Optional3 Required endpoints are management.azure.com.
Endpoints for Microsoft Entra integration ✔️ Optional4 Required endpoints are <region>.login.microsoft.com and login.microsoftonline.com.
Endpoints for Azure Application Insights integration Optional5 Optional5

Minimal required endpoints are:

  • rt.services.visualstudio.com:443
  • dc.services.visualstudio.com:443
  • {region}.livediagnostics.monitor.azure.com:443

Learn more in Azure Monitor docs

Endpoints for Event Hubs integration Optional5 Optional5 Learn more in Azure Event Hubs docs
Endpoints for external cache integration Optional5 Optional5 This requirement depends on the external cache that is being used


1对于内部虚拟网络中的API管理实例,请参阅内部虚拟网络的连接。
2只有在策略中使用API检查器或配额时,v2中才需要。
3仅在使用Microsoft Entra身份验证验证RBAC权限时需要。
4仅在使用Microsoft Entra身份验证或Microsoft Entra相关策略时需要。
5仅在使用功能并需要公共IP地址、端口和主机名信息时才需要。

重要事项

DNS主机名必须可解析为IP地址,并且相应的IP地址必须可访问。
关联的存储帐户名称列在Azure门户中服务的网络连接状态页面中。
关联存储帐户的公共IP地址是动态的,可以随时更改,恕不另行通知。


内部虚拟网络中的连接


  • 私有连接-如果自托管网关部署在虚拟网络中,请从自托管网关的位置启用到v2配置端点的私有连接,例如,使用对等网络中的私有DNS。
  • 互联网连接-如果自托管网关需要通过互联网连接到v2配置端点,请为配置端点配置自定义主机名,并使用应用程序网关公开端点。

身份验证选项


要验证自托管网关和基于云的API管理实例的配置端点之间的连接,您可以在网关容器的配置设置中使用以下选项。

Option Considerations
Microsoft Entra authentication Configure one or more Microsoft Entra apps for access to gateway

Manage access separately per app

Configure longer expiry times for secrets in accordance with your organization's policies

Use standard Microsoft Entra procedures to assign or revoke user or group permissions to app and to rotate secrets

 
Gateway access token (also called authentication key) Token expires every 30 days at maximum and must be renewed in the containers

Backed by a gateway key that can be rotated independently (for example, to revoke access)

Regenerating gateway key invalidates all access tokens created with it


连接失败


当与Azure的连接丢失时,自托管网关无法接收配置更新、报告其状态或上传遥测数据。

自托管网关设计为“静态故障”,可以在暂时失去与Azure的连接后继续运行。它可以在有或没有本地配置备份的情况下部署。通过配置备份,自托管网关会定期将最新下载配置的备份副本保存在连接到其容器或pod的持久卷上。

当配置备份关闭并且与Azure的连接中断时:

  • 运行自托管网关将继续使用内存中的配置副本运行
  • 已停止的自托管网关将无法启动


当配置备份打开并且与Azure的连接中断时:

  • 运行自托管网关将继续使用内存中的配置副本运行
  • 已停止的自托管网关将能够开始使用配置的备份副本


恢复连接后,受中断影响的每个自托管网关将自动重新连接其关联的API管理服务,并下载网关“脱机”时发生的所有配置更新。

安全


局限性


托管网关中的以下功能在自托管网关中不可用:

  • TLS会话恢复。
  • 客户端证书重新协商。若要使用客户端证书身份验证,API使用者必须将其证书作为初始TLS握手的一部分。为确保此行为,请在配置自托管网关自定义主机名(域名)时启用协商客户端证书设置。

传输层安全(TLS)


重要事项

此概述仅适用于自托管网关v1和v2。

支持的协议


默认情况下,自托管网关支持TLS v1.2。

使用自定义域的客户可以在控制平面中启用TLS v1.0和/或v1.1。

可用密码套件


重要事项

此概述仅适用于自托管网关v2。

自托管网关对客户端和服务器连接使用以下密码套件:

  • 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.1.1及以上版本开始,您可以通过配置管理正在使用的密码:

  • net.server.tls.ciphers.allowed-suites允许您定义用于API客户端和自托管网关之间的tls连接的由命令分隔的密码列表。
  • net.client.tls.ciphers.allowed-suite允许您定义一个逗号分隔的密码列表,用于自托管网关和后端之间的tls连接。
     

下一步


  • Learn more about the various gateways in our API gateway overview
  • Learn more about the support policy for the self-hosted gateway
  • Learn more about API Management in a hybrid and multicloud world
  • Learn more about guidance for running the self-hosted gateway on Kubernetes in production
  • Deploy self-hosted gateway to Docker
  • Deploy self-hosted gateway to Kubernetes
  • Deploy self-hosted gateway to Azure Arc-enabled Kubernetes cluster
  • Deploy self-hosted gateway to Azure Container Apps
  • Self-hosted gateway configuration settings
  • Learn about observability capabilities in API Management
  • Learn about Dapr integration with the self-hosted gateway
 
 
 

本文地址
https://architect.pub
  • 登录 发表评论
  • 18 次浏览
发布日期
星期五, 八月 30, 2024 - 22:35
最后修改
星期五, 八月 30, 2024 - 22:49

Tags

  • Azure API Management
Article
Read more

最新内容

  • 【Gen UI】生成式用户界面与结果导向设计的范式革命​
    2 weeks ago
  • 测试Bolt.new:开发者亲测AI应用构建工具​
    2 weeks ago
  • 生成式用户界面(Gen UI)是什么?它重要吗?
    2 weeks ago
  • Pedersen承诺
    2 weeks 3 days ago
  • 【AI认证】我的CAIS™认证备考十步法:从AI基础到战略部署
    2 weeks 3 days ago
  • 我的认证人工智能科学家(CAIS)通关全记录
    2 weeks 3 days ago
  • 2025全球22大AI认证全景图鉴
    2 weeks 3 days ago
  • 【AI认证课】2025年AI认证课程终极指南:免费与付费最优选
    2 weeks 4 days ago
  • 2025年商业领袖必读:6大AI认证课程深度解析
    2 weeks 4 days ago
  • 【大语言模型】大语言模型评估器(LLM-as-Judge)效能深度评测
    2 weeks 4 days ago

网站备案号:京ICP备2022026098号-2

友情链接

  • CPO宝典
  • 全球IT瞭望
  • 开发者开聊
  • 智能化转型智库
  • 架构师研究会

知识星球

知识星球:首席架构师圈

 

抖音直播

抖音:cea_cio(超级架构师)
干货直播,干货分享

 

微信小号

超级架构师
超级架构师小号:加群,私聊

 

微信公众号

超级架构师公众号

 

QQ群:超级架构师

QQ Group

Tags

Tags

  • Azure API Management
© 2025 架构师研究会, All rights reserved.
↑