用安全的API在云上開發(fā)良好的應用程序

容器,微服務和API,它們共同構(gòu)成了云計算的三位一體。作為云計算的一部分,它們都必須保證安全。如果API存在安全風險,那么另外兩個也會面臨風險,并且可能會危及企業(yè)的安全。

API是應用程序的微服務和容器的粘合劑。 它們?yōu)槲⒎掌魈峁┫嗷ネㄐ诺耐ǖ?,為?shù)據(jù)提供訪問,它們是互聯(lián)網(wǎng)的傳感器。

云計算倡導者面臨的挑戰(zhàn)是,API安全風險正在隨著技術(shù)的普及而上升。 為了應對未經(jīng)授權(quán)的更改數(shù)據(jù),數(shù)據(jù)泄漏和干擾合法活動所造成的各種威脅,需要采取多方面的方法。 該方法包括沙盒,網(wǎng)絡連接控制和加密。

API管理還可以幫助最小化與物流有關(guān)的安全風險,如主要汽車制造商面臨的安全風險。 其全電動車輛的服務和旅行歷史可以通過僅需要車輛識別號碼的API呼叫容易地被黑客入侵,這可以通過任何擋風玻璃容易地觀看。 我們需要做的更好。 其他API安全風險包括同時控制多個版本,特別是當外部客戶使用該API時,以及確定第三方API是否符合安全性,效率和性能標準的挑戰(zhàn)。

本手冊探討潛在的API安全風險,并提出了維護一個安全、可管理的環(huán)境的一系列最佳實踐。

為什么現(xiàn)在是實施安全API最佳實踐的時候了

應用程序(即使是第三方應用程序)越來越依賴網(wǎng)絡連接的API來在應用程序元素內(nèi)部和之間傳遞工作。 每個API都代表了一個關(guān)鍵特性,潛在的安全和合規(guī)性問題。 雖然在安全API方面有很多新的開發(fā)工具,但API安全性最佳實踐的秘訣就是流程而不是工具。 您的第一步應該是確定API暴露的主要安全風險,以特定的順序應用補救措施,以避免在過度使用他人并將安全性集成到應用程序生命周期管理中時丟失一些點,以防止您的預防措施泄漏。

自編程初期以來,API的概念發(fā)生了巨大變化。 今天,API是與應用程序功能或數(shù)據(jù)庫信息的網(wǎng)絡連接,這個新角色意味著API需要越來越嚴格的安全性和合規(guī)性保護來保護下面的信息。 大多數(shù)企業(yè)都知道這一點,并轉(zhuǎn)而保護他們的API,但很少有人通過實施安全的API最佳實踐來設法杜絕所有的風險。

解決API安全風險

我們正處于API使用的新時代的開始,現(xiàn)在需要解決這些風險。 現(xiàn)代API引入了三個明顯的安全隱患:未經(jīng)授權(quán)的信息更改,信息泄漏和對合法活動的干擾。 所有這三個都是有問題的,并且都來自相同的來源,因為聯(lián)網(wǎng)的API通常默認為所有網(wǎng)絡。

今天的API有一個網(wǎng)絡地址,可以將其編織成工作流程,任何知道或猜測地址的人都可以向API發(fā)送一些內(nèi)容。 如果請求是通過API下的軟件的方式構(gòu)建的,那么API代表的函數(shù)將會運行,并且會發(fā)生一些事情。 信息可能會返回給不應該被允許使用的人,也可能被更改。 即使是具有錯誤格式的“垃圾”請求也可能會浪費處理能力,為API和使用它的任何應用程序創(chuàng)造機會。

許多用戶期望通過使用位于API和可能訪問它們的應用程序之間的目錄或管理功能來解決安全API,因此僅提供間接和策略控制的訪問。 這種方法的問題是通常不會使API無法訪問,除非通過管理工具; API仍然是一個網(wǎng)絡尋址的實體,它可以通過掃描IP地址來定位。

實現(xiàn)安全API

最有效的API安全性最佳實踐從多區(qū)域網(wǎng)絡開始。 應用程序應在安全區(qū)域或沙箱內(nèi)運行,并僅向外界公開幾個服務地址。 不能向所有人提供的API應該托管在此安全區(qū)域內(nèi)。 一些托管架構(gòu),包括Docker容器,自然提供安全區(qū)域,它們可以通過現(xiàn)在可用的大多數(shù)私人軟件定義的網(wǎng)絡架構(gòu)來實現(xiàn)。 通過建立多區(qū)域網(wǎng)絡,安全的API問題將大大降低。

實現(xiàn)安全API最佳實踐的下一步是網(wǎng)絡連接控制。 不是通過管理員調(diào)解對API的訪問,而是通過網(wǎng)絡策略管理來控制API的地址。 這種方法測試消息的源IP地址,例如,只將消息從適當?shù)挠脩魝鬟f到API。 仍然有一些繞過這種保護的方法,但它提供了最好的保證,API將不被未經(jīng)授權(quán)的個人訪問; 它還提供防止拒絕服務攻擊您的API的保護。 對建立安全區(qū)域的網(wǎng)絡應用網(wǎng)絡連接控制是最簡單的,因為可以容易地識別區(qū)域內(nèi)流量。 因此,只有暴露在區(qū)域外使用的API才能得到保護。

網(wǎng)絡連接控制可以清除入侵者,但與公司內(nèi)部廣泛使用的應用程序相關(guān)的API可能仍然可以由不需要的人員或API代表的信息的權(quán)限進行訪問。 API管理可以“認證”用戶,在某些實現(xiàn)中,它也可以實際重定向流量,因此API消息只能來自API管理器,而不是直接從用戶的信息來源。 添加到網(wǎng)絡連接控制,這大大有助于實現(xiàn)安全的API最佳實踐。

最后一步是加密。 如果對API的消息必須加密,那么直接訪問API的嘗試將不會通過加密測試,并將被丟棄。 在大多數(shù)情況下,最好是由API的用戶直接生成加密,而不是API管理器。 但是請確保足夠的消息清楚地允許API管理員應用訪問策略。 通常,IP報頭是足夠的,但是在某些情況下,也可以使用較高層報頭進行認證。 如果API管理員需要的信息被加密,那么管理者將不得不解密然后再次加密,從而產(chǎn)生延遲。

實施所有這些步驟可以提供堅實的安全的API最佳實踐,但即使將所有這些措施付諸實踐的企業(yè)仍然可以發(fā)現(xiàn)其API是暴露的。 最大的問題發(fā)生在應用程序更改時,特別是當應用程序共享通過API訪問的組件時。 組件共享是大多數(shù)開發(fā)團隊的目標,旨在降低成本并加快對業(yè)務變化的響應。 分享API秘密意味著告訴他們,這可能意味著失去控制。

如果您有代表共享應用程序組件的API,請考慮在網(wǎng)絡計劃中為他們提供自己的區(qū)域或沙箱。 這使您可以選擇性地將連接控制和加密應用于需要比正常使用更多開放使用,但又不完全開放使用的API。 所以在規(guī)劃API安全性時先看連接控制。

安全API戰(zhàn)略的最大敵人是一心一意。 解決安全問題沒有銀彈。 以正確的順序和正確的重點,應用所有的API安全最佳實踐,才會產(chǎn)生最好的結(jié)果。

====================================

避免外部和內(nèi)部API性能問題的幾點技巧

在說服用戶整合到您的系統(tǒng)中后,您肯定不希望讓他們遭遇API性能問題。 確保用戶API性能不成問題。

我們需要承認,軟件不完美。 無論產(chǎn)品的可靠性如何,或者測試得多么完全,它仍然會時不時得發(fā)生故障或崩潰。 缺陷的存在是一個事實。

幸運的是,作為工程師,我們有預測和補償這些問題的工具。 分析,監(jiān)控,日志聚合,警報,負載平衡,單元測試,緩存...。

當涉及到創(chuàng)建和使用API時,這些策略變得非常重要,因為API不具有作為獨立的環(huán)境。 由于API是使用它們的每個應用程序中的潛在故障點,因此不僅要監(jiān)視您創(chuàng)建的組件的API性能,還要監(jiān)視您使用的組件的API性能。

API性能監(jiān)控

顯然,為了確保產(chǎn)品的快速和可靠,重要的是先一步發(fā)現(xiàn)潛在問題,但我們?nèi)绾潍@取API性能呢?

一般來說,獲取API性能與獲取任何其他類型的應用程序性能沒有什么不同。 主要關(guān)注的是請求延遲。如果API成為消費者應用程序的瓶頸,則意味著會丟失更多的性能。 對于內(nèi)部和外部API,請求延遲是一個相對簡單的統(tǒng)計,可以通過很多專業(yè)和商業(yè)的方法來獲取到。

外部API性能最佳實踐

內(nèi)部API性能監(jiān)測是一個非常簡單的過程,處理外部API可能會更困難一點; 特別是當它們影響到關(guān)鍵任務,并且可能缺少可靠性。

第三方API實際上是黑盒子; 請求進來,響應出來,幾乎沒有透明度。 幸運的是,上述相同的平臺和工具通常也可以用于監(jiān)視對外部API的請求的延遲。

監(jiān)控的具體實現(xiàn)將因平臺而異,但要特別注意隱含地跟蹤應用程序中的API請求,因為可能需要盡早盡快地識別問題。

如果API性能很差,并且在改善API的可用性上能做的很有限,那么將API請求從面向客戶端的代碼中移除,可以幫助緩解問題。更普遍的做法是,采用異步處理和數(shù)據(jù)管理。

了解每個API請求的平均延遲對于確定數(shù)據(jù)的緩存時長,哪些數(shù)據(jù)應該長期存儲,甚至哪些關(guān)鍵請求應該及時響應都非常有幫助。

最終,API性能監(jiān)控與任何其他類型的應用程序監(jiān)控沒有什么不同。 使用API的區(qū)別是應用程序如何應用它們。 在任何應用程序中都有很多依賴的部分,而這種依賴意味著要注意API在應用程序中是否能有效得運行。

通過優(yōu)化數(shù)據(jù)庫查詢和緩存耗時操作等一系列措施,可以大大提高API的整體運行狀況。

英文原文鏈接:

http://searchcloudapplications.techtarget.com/ehandbook/Sound-application-development-rests-with-secure-APIs-in-the-cloud

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容