联邦 API 管理:将 API 从 WSO2 部署到 AWS API 网关

随着企业的发展,组织越来越多地在多种环境(如云、本地和边缘)中运行 API,在此情况下,联合 API 网关部署成为一种强大的架构模式。其核心思想包括:

  • 中央 API 管理:在一个地方(如 WSO2 API Manager)定义、版本控制、安全和监控 API。
  • 分布式 API 网关:在多个运行时网关(如云原生网关、区域边缘节点或 Kubernetes 集群)中部署 API。

这种模式不仅能降低延迟,还能增强团队或业务单元之间的可用性和操作独立性。

为何采用联合网关?

  • 性能:流量被路由到最近或最优的网关。
  • 弹性:一个网关的故障不会影响其他网关。
  • 治理:即使在异构环境中,策略和生命周期也能集中执行。
  • 云灵活性:API 可在 AWS、Azure、本地或混合/多云环境中运行。

实现联合 API 架构有多种方式,开源 API 管理解决方案如 WSO2 API Manager 使这种模式更易访问和扩展。本文将介绍如何使用 WSO2 API Manager 将 API 部署到 AWS API Gateway。

WSO2 API Manager 作为控制平面,AWS API Gateway 作为联合网关

AWS API Gateway 是一个完全托管的服务,可让开发人员以任何规模创建、部署、管理和保护 API。WSO2 API Manager 内置了 AWS 网关连接器,可将使用 WSO2 API Manager 创建的 API 部署到 AWS API Gateway。

理解 AWS 中 API Gateway 的身份和访问管理(IAM)

IAM 在 AWS 生态系统中对于以下方面起着关键作用:

  • API 请求授权:实现对谁可以执行 API 中特定操作的精细控制,确保只有经过身份验证和授权的实体才能调用指定的 API 方法。
  • 控制 API 调用者:精确定义哪些用户、应用或服务有权调用 API,对于保护敏感数据和防止未经授权的使用至关重要。
  • 管理 API 管理:扩展到管理谁可以在 AWS API Gateway 中配置、部署或修改 API,确保只有授权人员拥有 API 基础架构的管理权限。

要为 AWS API Gateway 的管理和部署配置访问权限,需在 AWS 账户中创建和分配 IAM 用户或角色,包括创建新用户、定义所需权限和生成安全访问密钥等步骤。

在 AWS API Gateway 中设置用户

  • 登录 AWS 账户并导航到控制台主页,搜索“IAM”并点击进入。
  • 点击“创建用户”并输入用户名,选择“直接附加策略”并搜索“AmazonAPIGatewayAdministrator”权限,创建用户后获取访问密钥。

在 WSO2 API Manager 中注册 AWS API Gateway 为联合网关

  • 启动 WSO2 API 控制平面(ACP)并登录管理门户。
  • 导航至“网关”部分并添加网关环境,选择 AWS 类型并提供相关细节和访问密钥。

创建和设计示例 API

  • 登录发布者门户并创建 REST API,选择 AWS Gateway 作为网关类型并提供有效端点 URL,创建并发布后可在部署页面获取 AWS 网关访问 URL。

OAuth 2.0 安全通过 AWS 中的 Lambda 授权器

  • 实现 Lambda 授权器以处理来自外部 IdP 的 OAuth 2.0 令牌,作为 AWS API Gateway 中的门卫。
  • 配置 Lambda 授权器需提供 Lambda ARN 和 Lambda 调用角色 ARN 等参数。

配置第三方密钥管理器

按照指南配置 Auth0 作为第三方密钥管理器。

为 API 配置安全

为 IAM 用户授予所需权限,创建并配置 Lambda 函数以验证令牌,在 WSO2 API Publisher 门户中配置 AWS OAuth 策略并附加到 API。

调用启用安全的 API

在 Developer Portal 中获取令牌并调用 API,观察响应。

结论:将 API 部署到 WSO2 的联合网关使组织能够运行分布式、可扩展且符合策略的 API 管理架构,促进敏捷性、容错性和大规模的策略执行,是现代企业复杂 API 生态系统的理想方法。

阅读 42
0 条评论