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

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

API是應(yīng)用程序的微服務(wù)和容器的粘合劑。 它們?yōu)槲⒎?wù)器提供相互通信的通道谆刨,為數(shù)據(jù)提供訪問塘娶,它們是互聯(lián)網(wǎng)的傳感器。

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

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

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

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

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

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

解決API安全風(fēng)險

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

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

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

實現(xiàn)安全API

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

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

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

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

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

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

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

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

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

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

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

幸運的是晴叨,作為工程師,我們有預(yù)測和補償這些問題的工具矾屯。 分析兼蕊,監(jiān)控,日志聚合件蚕,警報孙技,負載平衡产禾,單元測試,緩存...牵啦。

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

API性能監(jiān)控

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

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

外部API性能最佳實踐

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

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

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

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

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

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

通過優(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)系作者
  • 序言:七十年代末移稳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子会油,更是在濱河造成了極大的恐慌个粱,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翻翩,死亡現(xiàn)場離奇詭異都许,居然都是意外死亡,警方通過查閱死者的電腦和手機嫂冻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門胶征,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桨仿,你說我怎么就攤上這事睛低。” “怎么了服傍?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵钱雷,是天一觀的道長。 經(jīng)常有香客問我吹零,道長罩抗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任瘪校,我火速辦了婚禮澄暮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阱扬。我一直安慰自己泣懊,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布麻惶。 她就那樣靜靜地躺著馍刮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窃蹋。 梳的紋絲不亂的頭發(fā)上卡啰,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天静稻,我揣著相機與錄音,去河邊找鬼匈辱。 笑死振湾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亡脸。 我是一名探鬼主播押搪,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浅碾!你這毒婦竟也來了大州?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤垂谢,失蹤者是張志新(化名)和其女友劉穎厦画,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滥朱,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡根暑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了焚虱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片购裙。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡懂版,死狀恐怖鹃栽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躯畴,我是刑警寧澤民鼓,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站蓬抄,受9級特大地震影響丰嘉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嚷缭,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一饮亏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阅爽,春花似錦路幸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至百侧,卻和暖如春砰识,著一層夾襖步出監(jiān)牢的瞬間能扒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工辫狼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留初斑,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓膨处,卻偏偏與公主長得像越平,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子灵迫,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容