不卡av在线播放_欧美成人AU在线看_亚洲一区二区 视频_五月天亚洲无码伊人

當前位置:文章中心>新聞快遞
公告通知 新聞快遞 技術(shù)教程 產(chǎn)品展示

構(gòu)建云原生權(quán)限的五個優(yōu)秀實踐

發(fā)布時間:2022-05-13 點擊數(shù):700
為了讓人們的工作和生活更輕松,需要了解構(gòu)建云原生權(quán)限帶來的獨特挑戰(zhàn),并了解構(gòu)建云原生權(quán)限的五個優(yōu)秀實踐,這些實踐可以為開發(fā)人員減少很多麻煩。

基于云原生/微服務(wù)的產(chǎn)品很復雜,為這些產(chǎn)品構(gòu)建訪問控制和管理權(quán)限也很復雜。而且每次拉取請求只會讓情況變得更糟。大多數(shù)開發(fā)人員最終都會為他們的產(chǎn)品多次構(gòu)建授權(quán)或訪問控制,他們被迫根據(jù)每個新客戶、產(chǎn)品或安全需求進行重構(gòu)。

編輯搜圖

為了讓人們的工作和生活更輕松,需要了解構(gòu)建云原生權(quán)限帶來的獨特挑戰(zhàn),并了解構(gòu)建云原生權(quán)限的五個最佳實踐,這些實踐可以為開發(fā)人員減少很多麻煩。

應用程序和訪問權(quán)限已更改

開發(fā)人員在過去使用帶有授權(quán)或訪問控制的單一框架(如Django或Spring)來構(gòu)建授權(quán),但當創(chuàng)建云原生應用程序時,這些不再適用。

這有幾個原因:

  • 首先,應用程序本身不再是單一的——它們基于微服務(wù)并且正在變得高度分散。當開發(fā)人員需要合并部署在邊緣,并且通常也需要訪問控制的設(shè)備或?qū)嵗龝r,這一點也值得引起注意。

  • 其次,云原生應用程序往往需要集成第三方服務(wù)(例如計費、身份驗證、數(shù)據(jù)庫、分析等),并且除了開發(fā)人員自己的應用程序的微服務(wù)之外,還需要能夠控制對它們的訪問。

  • 第三,更加動態(tài)和分布式的應用程序需要使用一堆不同的授權(quán)模型(例如RBAC、ReBAC、ABAC),這些模型基于多個數(shù)據(jù)源和越來越復雜的規(guī)則。最后,安全、隱私和合規(guī)性需求也在上升(面對日益復雜的網(wǎng)絡(luò)威脅)并且變得非常復雜。開發(fā)人員發(fā)現(xiàn)自己不僅要管理誰應該訪問數(shù)據(jù),還要管理數(shù)據(jù)在不同服務(wù)之間的傳播方式。

授權(quán)的現(xiàn)實

所有這些新需求都要求在考慮授權(quán)時采用不同的思維方式:

  • 授權(quán)不再是事后事項,必須提前計劃。

  • 授權(quán)是一項持續(xù)的努力,而不是一次性解決的問題。它必須與產(chǎn)品一起不斷發(fā)展。

  • 授權(quán)是客戶體驗的關(guān)鍵,因為它會影響用戶連接和邀請他人使用產(chǎn)品的方式。如果體驗不好,他們不會喜歡。

  • 授權(quán)連接到更大的身份和訪問管理空間。

構(gòu)建云原生權(quán)限的五個最佳實踐

為了處理所有這些更改,有一些最佳實踐可以幫助開發(fā)人員構(gòu)建云原生權(quán)限,并有時間實際開發(fā)功能,而不是在處理權(quán)限方面不堪重負。

1. 解耦策略和代碼

構(gòu)建云原生權(quán)限的最重要實踐之一是策略和代碼的解耦。將授權(quán)層的代碼與應用程序代碼本身混合在一起可能會產(chǎn)生很大的問題。更重要的是,它造成了在不同微服務(wù)之間復制代碼時難以升級、添加功能和整體監(jiān)控代碼的情況。每一項更改都需要重構(gòu)大量代碼,這些代碼只會隨著這些微服務(wù)的發(fā)展而彼此偏離得更遠。

這可以通過(在理想情況下)創(chuàng)建一個單獨的授權(quán)微服務(wù)將策略與代碼解耦來避免這種情況,其他服務(wù)將使用該微服務(wù)來滿足它們的授權(quán)需求。例如,開放策略管理或Spice DB等開源策略/權(quán)限引擎允許開發(fā)人員在單獨的服務(wù)中管理授權(quán)。

2. 事件驅(qū)動

開發(fā)人員希望正在構(gòu)建的應用程序是動態(tài)的。應用程序通常包括用戶邀請、角色分配或使用第三方數(shù)據(jù)源等功能——所有這些都應該實時管理。如果沒有這種能力,做出授權(quán)決策的能力將顯著降低。

這要求開發(fā)人員將授權(quán)層設(shè)計為事件驅(qū)動的。他們希望創(chuàng)建一個現(xiàn)實,每次發(fā)生影響授權(quán)的事件時,它都會立即通過系統(tǒng)傳遞,以確保授權(quán)層了解它,并與應用程序和任何相關(guān)的第三方數(shù)據(jù)服務(wù)保持同步。

在理想情況下,為了實現(xiàn)這一點,開發(fā)人員將授權(quán)數(shù)據(jù)與應用程序數(shù)據(jù)分離(因為并非所有與應用程序相關(guān)的數(shù)據(jù)都與授權(quán)相關(guān),反之亦然),在授權(quán)層中創(chuàng)建一個精益模型,然后通過實時事件使其與應用程序和其他源保持同步。

例如,開放策略管理層是一個開源項目,可以使開放策略管理成為事件驅(qū)動的。這使開發(fā)人員可以響應策略和數(shù)據(jù)更改,向其代理推送實時更新,并使開放策略達到實時應用程序所需的速度。

3. 利益相關(guān)者的后臺集成

授權(quán)層是產(chǎn)品本身的一部分,在以產(chǎn)品為中心的企業(yè)中,有各種利益相關(guān)者需要能夠連接到訪問控制體驗。與開發(fā)人員一起,這些包括DevOps、產(chǎn)品經(jīng)理、安全、合規(guī)、銷售、營銷等。在構(gòu)建授權(quán)層時,希望通過后臺系統(tǒng)為這些不同的利益相關(guān)者提供控制和接口。這要求從一開始就考慮不同利益相關(guān)者從訪問控制界面到產(chǎn)品的需求。應該讓每個人都滿意。

4. 客戶接口

與考慮利益相關(guān)者要求的方式類似,開發(fā)人員還需要考慮最終用戶/客戶。授權(quán)不僅與管理產(chǎn)品有關(guān),而且與產(chǎn)品的最終用戶有關(guān)。例如,如果用戶需要訪問他們自己的審計日志(幾乎每個B2B應用程序用戶都需要),他們應該能夠輕松地看到在產(chǎn)品中所做的事情。提前認識到這一需求需要構(gòu)建授權(quán)層,使其能夠鎖定滿足最終用戶需求的不同接口。

5. GitOps

因此創(chuàng)建了一個單獨的微服務(wù)來管理權(quán)限,并且能夠以事件驅(qū)動的方式向它提供更新?,F(xiàn)在如何管理這些更改、應用版本、應用各種制衡,并確保微服務(wù)的代碼和數(shù)據(jù)符合需求和要求?其答案是GitOps。

使用GitOps可以讓開發(fā)人員為每個版本更改創(chuàng)建一個拉取請求。然后,當開發(fā)人員更新產(chǎn)品及其訪問控制功能時,他們可以使用新代碼推動提交,讓這些代碼通過必要的測試和檢查,并將它們應用到授權(quán)層。

云原生權(quán)限的未來發(fā)展

隨著復雜性的增加以及客戶和安全需求的不斷涌現(xiàn),以一種為未來做好準備且不需要大量重構(gòu)或重寫的方式構(gòu)建產(chǎn)品的訪問控制至關(guān)重要。為授權(quán)創(chuàng)建單獨的微服務(wù),將其設(shè)計為事件驅(qū)動,為各種利益相關(guān)者和客戶提供控制和接口,并使用GitOps使開發(fā)人員能夠創(chuàng)建盡可能面向未來的產(chǎn)品,并防止他們不得不多次重建授權(quán)層,而無論需求如何。