網(wǎng)頁應用防火墻

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

使用 WAF 我們可以配置以下內(nèi)容:

Lambda

用于授權(quán)的 Lambda 函數(shù)

Lambda 授權(quán)器將調(diào)用者的身份作為輸入,并返回IAM策略作為輸出。使用 Lambda 授權(quán)器實現(xiàn)自定義身份驗證和授權(quán)。

Lambda 在經(jīng)過認證和授權(quán)之后會向 API 網(wǎng)關(guān)返回兩種類型的策略:

  1. 允許
  2. 否定

用于業(yè)務邏輯的 Lambda 函數(shù)

Lambda 函數(shù)用于實現(xiàn)業(yè)務邏輯、調(diào)用其他 lambda 函數(shù)、下游服務和數(shù)據(jù)庫。

其他 AWS 服務

架構(gòu)和數(shù)據(jù)流

下面的架構(gòu)圖描述了所使用的 AWS 服務集、數(shù)據(jù)流以及與其他服務的集成。

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

數(shù)據(jù)流步驟

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

典型用例

基礎設施配置和部署

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

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

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

結(jié)論

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

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

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

上一篇:

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

下一篇:

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

我們有何不同?

API服務商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

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

#AI深度推理大模型API

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

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