網頁應用防火墻

AWS WAF(Web 應用程序防火墻)可幫助您防范常見的 Web 漏洞和機器人,這些漏洞和機器人可能會影響可用性、危害安全性或消耗過多資源。我們可以將 WAF 與 API 網關關聯起來,以過濾掉惡意請求。

使用 WAF 我們可以配置以下內容:

Lambda

用于授權的 Lambda 函數

Lambda 授權器將調用者的身份作為輸入,并返回IAM策略作為輸出。使用 Lambda 授權器實現自定義身份驗證和授權。

Lambda 在經過認證和授權之后會向 API 網關返回兩種類型的策略:

  1. 允許
  2. 否定

用于業務邏輯的 Lambda 函數

Lambda 函數用于實現業務邏輯、調用其他 lambda 函數、下游服務和數據庫。

其他 AWS 服務

架構和數據流

下面的架構圖描述了所使用的 AWS 服務集、數據流以及與其他服務的集成。

從高層次上講,客戶端向 Amazon API Gateway 發送 HTTP 請求,從而觸發 AWS Lambda 函數。Lambda 函數處理請求,在需要時與其他 AWS 服務交互(例如用于數據存儲的 DynamoDB),并將響應返回給 API Gateway,然后 API Gateway 將響應發送給客戶端。

數據流步驟

  1. 用戶使用有效的授權標頭(即JWT 令牌、API 密鑰等)向 API 發出 HTTP 請求。
  2. Route 53 將請求轉發到 API 網關,該請求將被 Web 應用程序防火墻攔截。
  3. Web 應用程序防火墻配置了不同的規則來保護應用程序免受 Web 攻擊。如果防火墻檢測到任何此類惡意請求,它會立即阻止該請求,否則將其轉發到 API 網關。
  4. 配置了 API Gateway 的 Lambda Authorizer 會攔截請求并對用戶請求進行身份驗證和授權。如果用戶被授權訪問底層資源,則請求將被轉發到前端控制器 lambda。
  5. 前端控制器 lambda 將請求委托給相應的服務 lambda 函數。
  6. 根據業務邏輯,服務 lambda 處理請求并向客戶端返回適當的響應。
  7. 在處理請求時,服務 lambda 函數可以調用下游 REST API 或數據庫。服務 lambda 函數還可以監聽 SNS 隊列或訂閱 SNS。
  8. 身份和訪問管理 (IAM) 服務用于定義資源角色并提供對這些角色的訪問。
  9. 所有資源都會將應用程序日志推送到 CloudWatch 以進行監控和故障排除。

典型用例

基礎設施配置和部署

在企業中,除了生產環境之外,還有多個可用于開發和測試的環境。在不同的環境中創建相同的資源集并手動跟蹤配置更改可能是一項艱巨的任務,并且可能會引入錯誤。

為了解決這個問題,可以使用Terraform(基礎設施即代碼)。Terraform 有助于將資源從一個環境復制到另一個環境。除此之外,它還可以跟蹤基礎設施的狀態。

任何CI/CD工具(例如Jenkins或GitLab )都可以使用 Terraform 自動執行部署。

結論

總之,利用 AWS 無服務器架構開發 REST API 在可擴展性、成本效益和易于管理方面具有多種優勢。

通過采用無服務器方法,開發人員可以更加專注于構建強大的 API,而無需管理服務器的開銷。AWS Lambda 的事件驅動模型允許無縫擴展,確保您的 API 可以有效處理不同的工作負載。

原文鏈接:https://dzone.com/articles/api-implementation-on-aws-serverless-architecture

上一篇:

REST、GraphQL 和 gRPC 的自動化風格指南

下一篇:

設計第一個 GraphQL 架構的實用指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費