API 網關充當您企業的虛擬看門人,處理傳入的 API 調用,包括路由、身份驗證和處理。這一關鍵工具可確保安全高效的 API 流量管理,證明了其對組織的重要性。

相反,API 密鑰的作用相當于您的 API 方的 VIP 通行證。這些唯一標識符分配給與 API 交互的客戶項目,保證授權個人的適當訪問,從而避免誤用或過度使用。 API 密鑰增加了一層安全性,驗證用戶是否擁有解鎖所連接服務的密鑰。

什么是 AWS API 網關?

AWS API Gateway 就像 API 的瑞士軍刀。它是一項允許用戶創建、發布、維護和監控任何規模的 API 的服務。它支持各種類型的 API,包括 HTTP、WebSocketRESTSOAP GraphQL,使其具有多功能性和適應性。

AWS API Gateway 定位為客戶端應用程序和后端服務之間的服務器,負責監督路由、身份驗證和流量管理等任務。其可擴展性、高級安全功能以及向外部客戶端公開后端服務的能力使其成為解決方案的高價值。

API 密鑰的作用

API 密鑰充當 API 的看門人,而 API 令牌則提供額外的安全層。它們對于使用 API 的每個客戶端的唯一標識符角色對于保護訪問而言是不可或缺的。將它們想象成私人俱樂部的鑰匙,控制和監控進出人員,并確保俱樂部的規則得到遵守。

預防勝于治療,這正是 API 密鑰的目的。它們可以防止未經授權的訪問,確保您的 API 安全并確保其按預期使用。

在 AWS API Gateway 中創建您的 API

在 AWS API Gateway 中建立 API 類似于建筑施工。該過程包括以下步驟:

  1. 選擇位置,在本例中為 API Gateway 控制臺。
  2. 選擇“Create API”,相當于打基礎。
  3. 選擇您想要構建的建筑物類型,在本例中為“HTTP API”選項。
  4. 單擊“構建”繼續。

下一步是在設置過程中在“名稱”字段中命名您的 API,就像命名建筑物一樣。檢查完 API 配置后,您可以通過單擊“檢查并創建”,然后單擊“創建”來創建 API。就像這樣,您的 API 就已構建完畢并可供使用。

定義您的 API 資源和方法

定義 API 資源和方法類似于設計建筑物的內部布局。在 API Gateway 中,資源以具有根資源 (/) 的樹形結構進行組織,并且可以包含子資源,從而建立相對于 API 基本 URL 的層次結構。為了簡化多個資源的創建,可以使用{proxy+}代理資源,代表其下的任意子資源路徑。

定義 API 涉及使用 HTTP 方法創建路由,其中??方法 ANY 可用于在運行時接受任何 HTTP 方法。這些路線就像建筑物中的走廊,將交通引導到正確的地方。為了實現所需的 API 方法,API 方法請求需要配置參數,例如路徑變量、標頭和查詢字符串參數,以及用于驗證和初始化目的的請求模型的定義。

每個 API 與每棟建筑一樣,必須至少有一個功能路由和集成,指定一個后端服務來處理請求,例如 Lambda 函數或 HTTP 端點。

部署您的 API

部署 API 是您的建筑的盛大開幕。它需要 AWS API Gateway 中的一個階段,該階段充當 API 的快照以供客戶端調用。在 API 創建過程中,會創建一個默認階段,該階段會自動配置為部署更改,就像建筑物的軟開放以測試操作一樣。

要手動部署 API,您需要選擇一個階段,檢查其設置,然后部署 API 以使其可通過階段的調用 URL 進行訪問,就像盛大的開幕式一樣。階段可以調整各種設置,包括啟用緩存、日志記錄和自定義 API 請求的限制設置,以確保構建順利運行。

實施API密鑰認證

Implementing API Key Authentication

API密鑰認證就像建筑物入口處的安全檢查。它是 AWS API Gateway 支持的用于控制和管理 API 訪問的多種機制之一。 API 密鑰一旦創建,其值就無法更改,從而確保每個密鑰在其整個生命周期中保持不變,就像永久訪問通行證一樣。

盡管如此,請記住,兩個訪問通行證盡管具有不同的名稱,但如果它們共享相同的值,則被視為相同。此原則適用于 API 密鑰,其中名稱不同但值相同的密鑰被 API Gateway 視為相同。 API 密鑰可以從標頭獲取,通常使用 X-API-Key 標頭,或者由 AWS API Gateway 中的 Lambda 授權者進行驗證,就像保安人員在入口處檢查通行證一樣。

啟用“需要 API 密鑰”選項

激活“需要 API 密鑰”選項就像在建筑物入口處建立安全檢查站一樣。要為方法強制使用 API 密鑰,您只需導航到 API Gateway 控制臺,選擇您的 REST API,然后在資源下選擇所需的方法。這就像為特定入口設置安全檢查站一樣。

在方法請求設置中,您可以:

配置源自標頭的 API 密鑰

設置源自標頭的 API 密鑰與建立需要在入口處提供訪問通行證的系統的過程類似。要使用標頭來源的 API 密鑰,必須在 API 網關設置中將 API 密鑰源設置為“HEADER”。當使用標頭來源的密鑰時,客戶端需要將 API 密鑰作為“X-API-Key”包含在 HTTP 請求標頭中,例如向保安人員顯示其訪問通行證。

可以使用 AWS CLI 命令 update-rest-api 和 –patch-operations 指定 op=replace,path=/apiKeySource,value=HEADER 將 API 密鑰源設置為“HEADER”。同樣,要通過 API Gateway 的 REST API 設置 API 密鑰源,您可以向 /restapis/{restapi_id}/ 發出 PATCH 請求,其中包含 patchOperations JSON 負載,其中包含適當的操作、路徑和值鍵,例如設置新的安全性協議。

管理 API 密鑰和使用計劃

Managing API Keys and Usage Plans

監督 API 密鑰和使用計劃類似于控制建筑物的訪問通行證和運營時間。 API 密鑰在 REST API 方法中用于控制訪問,并且可以與使用計劃一起使用來實現跟蹤和限制。它們可以直接在 AWS API Gateway 中生成,也可以從外部源(例如 CSV 文件)導入,就像現場頒發或以數字方式發送訪問通行證一樣。

將使用計劃視為建筑物的運營時間。 API 密鑰必須與使用計劃相關聯,以規范傳遞給用戶或客戶端的功能,例如指定訪問通行證持有者何時可以進入建筑物。

創建新的使用計劃

創建新的使用計劃就像為您的建筑物設置新的運營時間一樣。使用計劃與 API 密鑰相結合,使服務提供商能夠定義訪問級別并監控其 API 的使用情況。使用計劃指定每秒的請求率、突發容量以及設定時間段(天、周或月)的總體配額,例如指定每天、每周或每月允許的訪問者數量。

可以在使用計劃中的 API 和方法級別設置不同的限制和配額,例如為不同入口設置不同的訪客限制。 AWS 對每秒請求數實施默認配額,并采用令牌桶算法來確定突發容量,確保建筑物不會過度擁擠。然而,這些限制并不是硬性規定的,偶爾會超出限制,就像有時在特殊活動期間允許更多游客一樣。

將 API 密鑰與使用計劃關聯

將 API 密鑰與使用計劃關聯起來就像將訪問通行證與營業時間關聯起來一樣。 API密鑰可以與多個使用計劃關聯;但是,每個 API 密鑰只能與每個 API 階段的一個使用計劃相關聯,就像在特定入口的特定時間內有效的訪問通行證一樣。

要將現有 API 密鑰與使用計劃鏈接,您可以訪問 AWS API Gateway 中的“關聯 API 密鑰”選項卡,并利用“添加現有密鑰”選項來選擇和關聯所需密鑰,例如向數據庫添加訪問通行證。對于需要新 API 密鑰的情況,該過程包括通過使用計劃中的“創建并添加新密鑰”選項創建新 API 密鑰,并同時完成關聯,例如頒發新的訪問通行證并將其添加到數據庫同時。

API 密鑰與使用計劃關聯后,更改可能需要幾分鐘才能傳播,之后 API 密鑰可用于根據計劃的限制進行 API 調用,就像訪問通行證需要一段時間才能獲取一樣活性。

測試您的安全 API

測試安全 API 可以與在建筑物中進行安全演習進行比較。為此,請使用 Postman 或 cURL 等工具,因為它們可以在請求標頭中包含 API 密鑰,類似于驗證訪問通行證的功能。您可以通過向其調用 URL 發送請求(包括必要的 API 密鑰)來測試 API,就像運行模擬練習一樣。

要使用 Curl 測試 API,您可以按照以下步驟操作:

  1. 使用提供的調用 URL。
  2. 在請求標頭中傳遞 API 密鑰。
  3. 檢查門禁掃描儀是否正常工作。
  4. 無論是使用瀏覽器還是 Curl,通過輸入調用 URL 來測試 API 的方法都是相似的。
  5. 您還可以在不同入口處檢查通行證,以確保其正常工作。

使用 API 密鑰進行 API 調用

使用 API 密鑰進行 API 調用就像使用訪問通行證進入建筑物一樣。配置用于標頭來源的 API 密鑰值后,客戶端可以通過在請求的 X-API-Key 標頭中提供 API 密鑰來調用 API 方法,就像在入口處顯示訪問通行證一樣。這種簡單而有效的方法確保只有那些擁有正確憑證(類似于正確的訪問通行證)的人才能進入 API 并與 API 交互,從而維護系統的完整性和安全性。

使用Postman等測試工具時,API密鑰通過輸入添加到請求標頭中,例如將訪問通行證號碼輸入到掃描儀中。此過程簡單且用戶友好,可以快速輕松地進行身份驗證。該密鑰必須包含在每個請求中,作為一致的檢查點,在與 API 資源進行任何交互之前驗證請求者的身份和訪問權限。它是工作流程的無縫部分,雖然簡單,但在 API 的整體安全性和功能中發揮著關鍵作用。

處理錯誤和訪問沖突

在測試期間處理錯誤和訪問違規就像在演習期間處理安全漏洞一樣。對缺少所需 API 密鑰的 AWS API Gateway 終端節點的請求會導致 403 禁止錯誤,就像未顯示訪問通行證時發出警報一樣。

由于 API 密鑰違規而導致 AWS API Gateway 響應正文中的錯誤消息闡明了錯誤原因,就像保安解釋警報響起的原因一樣。這有助于及時識別并糾正問題。

API 密鑰管理最佳實踐

Best Practices for API Key Management

API 密鑰的有效管理反映了建筑物安全系統的維護。可以使用 AWS CloudWatch 和 AWS CloudTrail 安全監控 API 密鑰,以幫助確保安全訪問 API,例如使用閉路電視攝像頭和訪問日志來維護建筑安全。

AWS Security Hub 可用于監控 API 網關和 API 密鑰的使用是否符合安全最佳實踐,例如安全審核以確保遵循所有安全協議。建立定期輪換 API 密鑰的策略非常重要,建議每 30 天、60 天或 90 天輪換一次,以滿足各種合規性法規,就像定期更改安全代碼一樣。

應刪除未使用或不需要的 API 密鑰,以最大限度地降低惡意行為者利用的風險,例如禁用丟失或被盜的訪問通行證。與第三方合作伙伴的合作對于確保他們創建或管理的任何 API 密鑰得到適當的保護至關重要,例如與安全公司合作以確保有效的安全管理。

定期輪換 API 密鑰

API 密鑰的定期輪換相當于建筑物安全代碼的定期更改。它降低了盜竊或泄露的風險,確保只有授權用戶或應用程序才能訪問您的數據,例如更改訪問代碼以防止未經授權的訪問。

API 密鑰輪換涉及:

限制特定用戶或客戶端的訪問

限制特定用戶或客戶端的訪問類似于僅允許建筑物中選定的一組人員進入。 API 密鑰本身并不能提供可靠的方法來限制對 AWS 內特定用戶或客戶端的訪問。如果用戶擁有使用計劃中某個 API 的有效 API 密鑰,則他們可以訪問該計劃中包含的所有 API,這會影響精細控制,就像允許進入建筑物所有區域的全通行證一樣。

因此,建議使用 IAM 角色、Lambda 授權者或 Amazon Cognito 用戶池(而不僅僅是 API 密鑰)來控制哪些用戶或客戶端可以訪問您的 API,例如使用生物識別訪問控制或個人識別碼 (PIN) 來更好地控制哪些用戶或客戶端可以訪問您的 API訪問控制。

 總結

總之,使用 AWS API Gateway 和 API 密鑰保護您的 API 就像為您的建筑擁有強大的安全系統一樣。從了解 API 網關和 API 密鑰的作用,到創建 API、定義資源和方法、部署 API 以及實施 API 密鑰身份驗證,我們像安全專家一樣引導整個過程。我們還深入研究了管理 API 密鑰和使用計劃、測試安全 API 以及 API 密鑰管理的最佳實踐。有了這些知識,您現在可以自信地保護您的 API 并確保其高效、安全的運行。

原文鏈接:https://www.moesif.com/blog/technical/api-development/API-Keys-in-AWS-Gateway/

上一篇:

掌握REST API進行測試:質量保證的基本方法和工具

下一篇:

質量保證測試人員的終極API指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

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

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

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

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

#AI深度推理大模型API

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

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