在由許多租戶共享的計算環(huán)境中存在針對保護敏感數據和減輕安全性威脅的挑戰(zhàn)。如果合適的安全性控制缺失,可能會導致安全性漏洞。本申請所針對的是有關該通用技術環(huán)境。
技術實現要素:
本公開的示例描述了多租戶環(huán)境中的安全性上下文強制執(zhí)行。安全性上下文數據可以通過非安全的多租戶計算環(huán)境被傳輸。安全性上下文數據由保護層保護,該保護層限制非受信資源運行租戶應用并限制未授權租戶訪問與租戶相關聯的上下文信息的能力。數據可以在多租戶環(huán)境中的組件處被接收和被評估。如果該組件是受信組件并且安全性上下文數據指示租戶被授權使用指定的上下文來執(zhí)行應用,則組件可以在與安全性上下文數據相關聯的上下文中運行租戶應用。
示例的附加方面、特征和/或優(yōu)點部分將在下面的說明書中被闡述,并且部分將從說明書中顯而易見,或者可以從公開的實踐中了解。
本發(fā)明內容被提供為在以簡化的形式介紹概念的選集,這些概念將在具體實施方式中被進一步描述。本發(fā)明內容不旨在標識所請求保護主題的關鍵特征或必要特征,也不旨在用于限制所請求保護主題的范圍。
附圖說明
參考以下附圖描述非限制性和非窮舉性的示例。
圖1示出了多租戶計算環(huán)境的系統(tǒng)的概況。
圖2是可以由多租戶計算環(huán)境中的租戶執(zhí)行的方法。
圖3是可以使用多租戶計算環(huán)境被執(zhí)行的方法。
圖4是說明多租戶計算環(huán)境上的請求的處理的方法。
圖5是示出可以利用其來實踐本發(fā)明的方面的計算設備的示例的框圖。
圖6A和6B是可以利用其來實踐本發(fā)明的方面的移動計算設備的簡化框圖。
圖7是可以利用其來實踐本發(fā)明的方面的分布式計算系統(tǒng)的簡化框圖。
具體實施方式
共享計算環(huán)境被許多不同的租戶訪問。租戶可以對應于單個用戶賬戶或群組用戶賬戶。作為非限制性示例,租戶可以與可能正在執(zhí)行服務或運行應用的組、組織、公司、業(yè)務或個人相關。租戶可以使用共享計算環(huán)境。共享計算環(huán)境可以是包括對于多于一個的租戶可訪問的數據或網絡資源的任意計算環(huán)境。分布式網絡是共享計算環(huán)境的示例。分布式網絡可以是使用共享資源提供用于通過網絡處理的服務的任意網絡模型。示例性的共享計算環(huán)境可以是基于云的,以跨各種數據結構和處理環(huán)境來訪問用于運行它們的應用的資源(處理能力和存儲)。出于該目的,多租戶可以使用共享應用平臺。共享應用平臺可以是為應用提供服務的系統(tǒng)的組件,服務包括操作系統(tǒng)、執(zhí)行服務、數據服務、云服務和開發(fā)工具以及其他示例。共享應用平臺可以是用于為租戶調度應用、管理共享資源以及監(jiān)控計算過程的健康和其他相關任務的一組工具和技術。
在由多個租戶共享的計算環(huán)境中傳輸的數據容易受到可能是有意或無意的安全性威脅??梢酝ㄟ^在不同的虛擬機上托管租戶應用來實施安全性措施以隔離租戶。當對大量租戶應用這種隔離時可能呈現擴展性問題(例如,共享應用平臺的計算資源的低效使用)。在極端情況下,諸如非軍事區(qū)(DMZ)的解決方案可以被實施。這種安全性措施可能需要專用資源(基本上用多個單租戶環(huán)境替代多租戶環(huán)境)的實施,其涉及較高的支持和運營成本,以及擴展性問題??商娲?,如果共享應用平臺的超級用戶賬戶充當租戶應用和外部數據結構/操作環(huán)境之間的中介,則其需要所有的租戶應該授權共享應用平臺訪問它們的數據源。這種方法容易出現開發(fā)錯誤,減少租戶對操作的責任并且可能導致對屬于其他租戶的數據的不可檢測的未授權訪問。
圖1示出了多租戶計算環(huán)境的系統(tǒng)100的概況。系統(tǒng)100是交互以形成集成的整體的相互依賴的組件的組合。系統(tǒng)100的組件可以包括硬件和運行在系統(tǒng)100的組件上的軟件,并可以與系統(tǒng)100的其他組件一起被連接到網絡。該示例中的多租戶計算環(huán)境是由多租戶共享的分布式網絡。多租戶分布式網絡可以是使用共享資源提供服務以用于通過網絡為多租戶處理數據的任意聯網模型。作為示例,多租戶計算環(huán)境可以是基于云的環(huán)境。系統(tǒng)100為通過多租戶計算環(huán)境傳輸的數據實施密封和解封方案。密封方案保護數據使得僅系統(tǒng)100的授權用戶或組件能夠訪問數據。解封方案是防止系統(tǒng)100的未授權用戶或組件訪問由密封方案密封的數據的過程。將這種安全性方案實施到諸如系統(tǒng)100的系統(tǒng)的安全性框架中可以防止非受信設備訪問敏感數據以及防止未授權應用使用租戶的賬戶運行。
系統(tǒng)100可以使得一個到多個租戶(例如租戶A 102、租戶B 104以及租戶C 106)能夠通過利用共享應用平臺108來使用用于在不同數據結構或操作系統(tǒng)上運行應用的計算資源,諸如數據資源120和數據資源122。諸如數據資源120或數據資源122的外部數據結構或操作環(huán)境是可連接到多租戶計算環(huán)境的一個組件或組件的集合。數據資源可以在共享應用平臺108的外部或被用于計算處理的組件。在其他示例中,數據資源可以是計算機資源、應用、數據庫、計算機程序或者可以由運行在多租戶計算環(huán)境中的應用遠程訪問的任意其他設備或信息。共享應用平臺108是能夠訪問多租戶計算環(huán)境的設施和數據資源的系統(tǒng)。共享應用平臺108實施安全性框架以將安全性上下文強加于租戶應用以限制對數據結構、外部存儲、操作環(huán)境等中的數據的未授權訪問。共享應用平臺108可以包括硬件和/或被實施在硬件組件上的軟件組件。軟件組件可以是計算機實施的過程或程序。多租戶計算環(huán)境的硬件組件具有用于實現軟件過程或程序的裝置。請參見圖5-7以獲得附加說明。在一個示例中,諸如租戶C 106的租戶當經由共享應用平臺108啟動它的應用時可能尋求對數據資源120的訪問。諸如租戶A 102和租戶B 104的其他租戶可能也尋求對數據資源102和122的訪問以用于數據處理。
共享應用平臺可以包括管理對密封數據的訪問的數個共享設備。作為示例,共享應用平臺108可以包括用于訪問秘密和在特定安全性上下文中啟動租戶應用的受信服務110以及受信服務110的受信秘密存儲118。然而,本領域技術任意將認識到,包括共享應用平臺使用的組件數目的共享應用平臺108的規(guī)??梢宰兓J苄欧?08用于管理對來自共享應用平臺108的受信秘密存儲118(例如,受信源)的租戶敏感數據或秘密數據的訪問,在多租戶計算環(huán)境中使用具有比受信機器賬戶或共享計算平臺108的其他共享組件更低的權限的特定安全性上下文內運行租戶應用,并且在運行時供應安全性上下文數據的必要片段以運行租戶的應用。受信秘密存儲118是確保安全性上下文數據的片段利用安全性層被密封的、僅受信設備110的受信組件能夠解封的秘密受信秘密源。在一個示例中,受信秘密存儲118可以是基于應用的。作為示例,受信秘密存儲118可以是通過將敏感信息綁定到包括被使用的軟件和硬件的平臺配置信息來保護敏感信息的受信平臺模塊(TPM)。作為示例,受信秘密存儲118可以被實施在諸如膝上型計算機、移動電話、平板電腦等移動設備的TPM芯片上。
來自租戶A 102、租戶B 104和租戶C 106的安全性上下文數據通過共享應用平臺108傳遞,該安全性上下文數據被應用到由租戶啟動的訪問諸如數據資源120或數據資源122的外部數據結構或操作環(huán)境的應用。共享應用平臺108可以被托管在地理上的分布式數據中心并且由組織內的許多不同的操作組可控制。作為示例,操作組可以是被分配以執(zhí)行特定任務的用戶的分組。因此,數據的安全性和租戶被授予以在特定安全性上下文下執(zhí)行應用的驗證是至關重要的。
不同組件可以被實施為共享應用平臺108的部分。如上所述,組件可以是適用于共享應用平臺108的任意硬件或軟件資源??梢员粚嵤┑囊粋€這種組件是可用于共享應用平臺108的一個或多個硬件設備的基于軟件的安全性框架。安全性框架提供用于在允許多租戶計算環(huán)境保持與諸如云計算環(huán)境的示例多租戶分布式網絡相關聯的開放時強制執(zhí)行應用級別安全性上下文的健壯工具。安全性框架可以被實施在共享應用平臺108上,其包括受信服務110、受信秘密存儲118和由受信服務實施用于保證被傳輸的安全性上下文數據的安全性的協(xié)議。該協(xié)議允許租戶將其安全性上下文的片段綁定到該租戶的應用并限制其他租戶濫用特定于租戶的信息的能力。共享應用平臺108實施該協(xié)議并在租戶應用被啟動時檢查以對租戶授權。受信服務110還建立與租戶的應用的安全連接以用于在必要時向租戶應用傳遞安全性上下文數據??傊@允許在多租戶計算環(huán)境內的租戶應用和在多租戶計算環(huán)境外的租戶數據的隔離。
為了實現這一點,實施安全性框架的共享應用平臺108可以執(zhí)行以下操作:
1.在租戶提供的賬戶下的應用的模擬。
2.建立受信設備110和租戶應用之間的安全連接。
3.用以使與租戶相關聯的安全性上下文數據不被其他租戶知道的密封方法;
4.限制對與租戶相關聯的未密封敏感數據的訪問,其中僅在高權限賬戶下運行的共享應用平臺108代碼的受信組件才能解封該敏感數據。
由于示例性共享應用平臺108具有促進與有價值的未來數據層的集成的多層可擴展性模型,因此示例性共享應用平臺108可以被定制以與任意外部數據結構一起工作。
多租戶計算環(huán)境的系統(tǒng)100可以提供數據保護服務,以防止來自非受信設備、程序以及用戶對敏感數據的未授權訪問。由計算環(huán)境提供的數據保護服務可以是基于軟件的并對實際存儲設備不可知的。在示例性計算環(huán)境中,租戶可以具有密封敏感數據的能力,但是僅共享應用平臺108的受信設備能夠解封租戶的敏感數據。示例性共享應用平臺108可以通過添加用于將租戶敏感數據綁定到它們的授權用戶的協(xié)議來提供除了計算環(huán)境的安全性之外的附加安全性。協(xié)議防止其他租戶為了在計算環(huán)境中運行它們的應用而對租戶的安全性上下文的未授權使用。安全性框架可以運行在示例性共享應用平臺108的一個或多個組件或設備上。
在系統(tǒng)100中,多個租戶可以與共享應用平臺108接口。如圖1所示,租戶A 102、租戶B 104和租戶C 106可以與受信秘密存儲118接口以密封安全性上下文數據的部分。安全性上下文數據的部分或片段可以是用于運行或執(zhí)行服務或應用的客戶端所特定的數據。在一個示例中,安全性上下文的多個片段或部分可以與租戶相關聯。此外,正由租戶運行的服務或應用可以與安全性上下文數據的多個片段或部分相關聯。受信秘密存儲118可以是由計算環(huán)境提供的數據保護服務,其是基于軟件的并對實際存儲設備不可知的。在示例計算環(huán)境中,租戶可以具有密封敏感數據的能力,但是僅共享應用平臺108的受信設備能夠解封租戶的敏感數據。例如,安全性上下文數據的部分可以被加密,使得僅共享應用平臺108的受信組件能夠訪問安全性上下文數據的部分。安全性上下文可以由以下表示:用于運行被授權允許訪問某些數據存儲的應用的服務賬戶、數據庫連接字符串(例如,使用SQL、MySQL等)、證書、或令牌、或租戶憑證等。安全性上下文數據使用由共享應用平臺108可用的協(xié)議被提交以驗證租戶具有經由共享應用平臺108在該賬戶下執(zhí)行某過程的訪問權。如由圖1中的通信101所示,諸如租戶C 106的租戶可以將安全性上下文數據傳輸到諸如受信秘密存儲118的受信源。
在一個示例中,運行在共享應用平臺108的受信服務110可以包括數個組件。受信服務110的組件可以是硬件和/或運行在硬件組件或設備上的軟件。作為示例,受信服務110可以包括用于管理租戶應用的組件。一旦租戶部署應用和安全性上下文數據,共享應用平臺108接管對應用請求的管理并能夠代表租戶運行租戶應用。作為示例,受信服務110可以包括組件或內部資源112(或,在備選示例中的內部資源),其可以執(zhí)行管理、處理和存儲等功能。在一個示例中,受信服務110可以包括組件或資源,諸如用于分配租戶應用請求的處理和處理用于評估和處理租戶應用請求的資源的管理資源。在一個示例中,計算資源(例如,內部資源112)可以被視為非受信的,因為非受信應用代碼可能正在上述資源上運行。租戶可以將安全性上下文數據部署到受信設備110的組件,例如,限制安全性上下文數據向受信服務110的受信資源的提供的受信秘密存儲118。在其中由非受信資源(例如,受信服務110外部的資源)做出對安全性上下文數據的請求時,該資源將被評估以確定其是否受信以運行租戶應用。如果資源被確定為非受信,則受信服務110可以阻止非受信資源接收其未被授權接收的安全性上下文數據。
如圖1中的通信線路116所示,當共享應用平臺108接收到用于運行租戶應用114的分配時,它可以要求取回與發(fā)起該請求的租戶(例如,租戶C 106)相關聯的安全性上下文數據的片段。針對安全性上下文數據的受信服務請求可以由受信服務110提交以用于訪問保存在諸如受信秘密存儲118的受信秘密存儲上的秘密。受信秘密存儲118可以是能夠保護諸如租戶安全性上下文數據的敏感數據的任意軟件或硬件實施。受信秘密存儲可以評估安全性上下文數據中被請求的片段以確定組件或資源是否被授權接收安全性上下文數據的該片段。在一個示例中,受信服務110的內部資源112可以被評估。例如圖1中通信線路116所示,如果受信服務110確定內部資源112被授權以接收安全性上下文數據的片段,則受信秘密存儲118將安全性上下文數據傳輸到受信服務110以用于評估。受信秘密存儲118可以以諸如加密數據的安全形式來傳輸安全性上下文數據,使得即使安全性漏洞發(fā)生并且非受信設備或服務接收到安全性上下文數據的該片段,安全性上下文數據也將不會被破解,因為非受信設備無法訪問安全形式的安全性上下文數據。
此外,當受信服務接收到安全性上下文數據的至少片段/部分時,其評估安全性上下文數據以確定租戶C 106是否被授權以使用安全性上下文數據來運行其應用。如果該檢查成功,則受信服務110允許內部資源112使用安全性上下文數據以在低權限非受信賬戶下運行租戶的應用而不訪問秘密存儲庫接口。在沒有被實施為在特定創(chuàng)建的安全性上下文中運行租戶的應用(例如,在諸如租戶C 106的租戶的服務賬戶下)的安全框架的情況下,租戶可能能夠提升權限并獲得對多租戶計算環(huán)境的資源的未授權訪問,例如其中租戶C 106可能能夠訪問對共享應用平臺108整體可用的任意資源、或屬于租戶B 104的安全性上下文數據的片段/部分。如上所述,安全性上下文數據的多個片段或部分可以與諸如租戶B 104的租戶相關聯。針對客戶端的應用執(zhí)行可能需要用于執(zhí)行過程的安全性上下文數據的一個或多個片段或部分。安全性上下文數據的片段/部分可以根據需要在運行時從受信服務110被傳遞到租戶C 106的應用。出于該目的,受信服務110發(fā)起其自身與租戶應用之間的安全連接,如由說明受信服務110和諸如數據資源120的外部資源的連接的通信線路119所示。作為示例,租戶B 104的應用和受信服務之間的安全連接對于租戶C 106的應用不可訪問,并且反之亦然。
圖2是可以由多租戶計算環(huán)境的租戶執(zhí)行的方法200。作為示例,租戶(如上所述)可以擁有或使用計算環(huán)境中的一個或多個組件(例如,應用/服務/硬件等)。方法200可以是計算機實施的方法,其中操作或過程在具有處理器的租戶操作的設備上被執(zhí)行。處理設備可以保護但不限于計算機、膝上型計算機、以及諸如智能電話或平板電腦的移動設備等。
方法200開始于決定操作202,其中與過程的執(zhí)行相關聯的安全性上下文數據的片段從租戶被傳輸到諸如圖1中的共享應用平臺108的共享應用平臺。安全性上下文數據的片段可以是可以被共享應用平臺108使用以為租戶尋求執(zhí)行的應用提供安全性上下文的任意數據。安全性上下文數據可以由以下表示:用于運行被授權允許訪問某些數據存儲的應用的服務賬戶、數據庫連接字符串(例如,使用SQL、MySQL等)、證書、或令牌等。安全性上下文數據可以通過非安全多租戶計算網絡被傳輸。在一個示例中,租戶可以針對其自身設置對于特定數據的權限或訪問權。在另一示例中,租戶可以針對另一租戶設置/限制訪問權。作為示例,租戶可以保護(例如,加密)可用于執(zhí)行租戶的應用的安全性上下文數據。租戶可以授權另一租戶使用安全數據以用于運行應用或服務。然而,雖然另一租戶可能能夠使用安全數據以運行或訪問應用或服務,但是實際的安全性上下文數據在其被保護時對于這樣的用戶是不透明的。安全性上下文數據可以被保持在安全受信存儲中,其可以是共享應用平臺108的組件并且可以是在多租戶計算機環(huán)境的設備上實施的硬件或軟件。作為示例,受信源可以是諸如圖1中的受信秘密存儲118的受信秘密源。
方法200進行到操作204,其中請求被生成。該請求可以是與在諸如圖1中的數據資源120的資源上執(zhí)行過程相關的應用請求。作為示例,所生成的請求可以包括可執(zhí)行文件或腳本??蓤?zhí)行文件或可執(zhí)行任務可以與要在多租戶計算網絡外部的數據上執(zhí)行的應用相關。
一旦請求被生成,則流程進行到決定操作206,其中做出對于租戶的注冊標識(ID)是否被提供以密封該請求的決定。在其中租戶注冊ID沒有被提供的情況下,方法進入分支“否”并且租戶被要求提供其租戶注冊ID(操作208)。一旦租戶ID被提供或生成,則安全性框架的協(xié)議可以與租戶設備或服務通信以利用第一保護層密封或包裹請求(操作210)。在示例性共享應用平臺中,第一保護層可以限制解封請求的能力。在操作210,安全性上下文數據被包裹在安全層中,該安全層限制非授權租戶使用安全性上下文數據的能力并且限制不安全多租戶計算網絡的其他用戶訪問它的能力。換句話說,請求被密封以防止多租戶分布式網絡的未授權設備或服務訪問與該請求相關聯的數據。在操作210中執(zhí)行的密封可以限制解封與該請求相關聯的數據的能力,使得僅共享應用平臺108的授權設備或服務能夠解封在操作210中實施的保護層。在示例性共享應用平臺中,授權組件可以是由多租戶計算環(huán)境的受信組件(例如,受信服務110)認證的組件。此外,操作210中的保護層可以被實施在公鑰基礎設施(PKI)的頂部上。在一個示例中,操作210中的第一安全層可以被實施在用于基于云的聯網的PKI的頂部上。
流程200接著進行到操作212,其中利用第二保護層密封該請求。在示例性共享應用平臺中,第二安全層可以防止未指定的租戶訪問數據或執(zhí)行與租戶相關聯的應用處理。在一個示例中,租戶注冊ID可以被用于利用第二保護層密封該應用請求。當多租戶計算環(huán)境中的租戶請求應用訪問時,安全性上下文數據可以被評估以授權租戶尋求應用訪問。如果租戶沒有被授權,則對該請求的租戶所特定的數據的訪問被拒絕。如上所述,租戶可以指定用于訪問與該請求相關聯的數據的訪問權或權限。流程200可以進行到決定操作214,其中租戶確認該請求是否已經利用操作214中實施的第二保護層被密封。如果沒有,則流程進入分支“否”并返回操作212。
一旦安全性上下文數據已經利用第一保護層和第二保護層被密封,則流程可以進行到操作216,其中被密封的請求通過多租戶計算環(huán)境被傳輸。
圖3是可以使用多租戶計算環(huán)境被執(zhí)行的方法。作為示例,方法300可以說明諸如圖1中的共享應用平臺108的共享應用平臺的組件之間的交互。方法300可以開始于操作302,其中多租戶計算環(huán)境的組件(諸如服務或設備)接收應用請求以用于處理。如圖2所描述的,該請求可以從多租戶計算環(huán)境的租戶(例如,圖1中的租戶C 106)被生成。在示例中,租戶可以尋求運行訪問多租戶計算環(huán)境中的資源的應用,資源諸如外部數據結構或數據資源。
一旦該請求被接收,則多租戶計算環(huán)境的資源或組件可以提交請求(操作304)以從諸如圖1中所描述的受信秘密存儲118的受信秘密源中取回與該請求相關的安全性上下文數據。受信秘密源可以是共享應用平臺的組件,該組件確保安全性上下文數據的片段使用安全層被密封并且僅受信服務才能對其解封。流程進行到決定306,其中受信秘密源可以確定做出針對安全性上下文數據的請求的服務或設備是否被授權接收與租戶相關聯的安全性上下文數據。也就是說,受信秘密源將不會展現安全性上下文數據,除非服務或設備被授權接收安全性上下文數據。服務或設備可以提供其受信的指示,并且多租戶計算環(huán)境的受信秘密源可以使用該指示以認證服務或設備作為受信服務或受信設備。作為示例,資源或組件可以將該請求的數據(例如,元數據)中的標識提供到受信秘密源。受信秘密源可以使用這樣的數據以確定是否要授權設備或服務用于安全性上下文數據的接收。
如果受信秘密源確定服務非受信,則流程將進入分支“否”,并且受信秘密源將拒絕針對安全性上下文數據的請求(例如,步驟308)。如果請求在操作308處被拒絕,則流程進行到操作310,其中共享應用平臺可以日志記錄用以訪問安全性上下文數據的未授權嘗試。多租戶計算平臺可以使用計數器來跟蹤入侵嘗試。
當服務或設備被認證時,受信秘密源可以傳輸安全性上下文數據并且受信服務可以被實施以強制執(zhí)行安全性上下文數據。受信設備可以接收安全性上下文數據(操作312)。流程進行到操作314,其中受信服務可以解封安全性上下文數據。作為示例,受信服務可以與用于共享應用平臺108的安全性框架的安全性組件接口,諸如用以包裹/解包應用安全性上下文數據以便于解封安全性上下文數據用于評估的協(xié)議。作為解封的示例,如果服務(或設備)受信,則協(xié)議可以使用僅由共享應用平臺108的安全性框架提供的私鑰來解密經加密的安全性上下文數據。如關于圖2所討論的,租戶可以加密要使用用于包裹應用安全性上下文數據的協(xié)議通過多租戶應用環(huán)境被傳輸的、與請求相關聯的數據。解封數據的能力被限制到僅共享應用平臺108受信組件。
一旦安全性上下文數據被解封(步驟314),則受信服務可以基于與應用請求相關聯的處理來評估安全性上下文數據(操作316)。如上所述,安全性上下文數據的多個片段可以與租戶相關聯。在操作316,受信服務評估發(fā)起請求的租戶是否具有訪問權以使用相關聯的安全性上下文數據來執(zhí)行其應用。作為示例,受信服務可以將租戶的標識符或(租戶注冊ID)的數據與從受信秘密源接收到的安全性上下文數據相比較。也就是說,操作316可以評估請求和安全性上下文數據。如果安全性上下文數據驗證通過則租戶被授權。在決定操作318,受信服務基于對請求和安全性上下文數據的評估(操作316)來確定租戶是否被授權以執(zhí)行請求的應用。
如果租戶沒有被授權以在所請求的上下文中執(zhí)行應用,則流程分支到操作320,其中請求被拒絕。當請求由于租戶不具有訪問權而被拒絕時,該拒絕被日志記錄為入侵嘗試(操作322)。共享應用平臺的安全性框架可以使用計數器以追蹤入侵嘗試。作為示例,計數器可以被用于追蹤請求訪問安全性上下文數據的組件所特定的數據,以及基于被用于對用以執(zhí)行過程的租戶的認證以及授權的安全性上下文數據的片段或部分而對用以執(zhí)行過程的租戶的授權所特定的數據。
如果租戶被授權以執(zhí)行請求的應用,則流程進行到操作324,其中受信服務在租戶的服務賬戶下處理或運行應用。在租戶自己的服務賬戶下運行處理可以幫助確保多個租戶能夠讓他們的過程安全地運行在共享應用平臺的同一組件上。租戶服務賬戶相對被托管在多租戶計算環(huán)境上的共享數據平臺的受信機器賬戶可以具有受限的權限。即,新過程可以被創(chuàng)建以執(zhí)行與租戶請求相關聯的處理,并且該新過程在僅被授予權限以執(zhí)行該處理的租戶服務賬戶上運行。這可以最小化多租戶計算環(huán)境中租戶的未授權訪問的風險。
流程接著可以進行到操作326,其中請求處理可以被報告回到發(fā)起請求的租戶。
在實施安全性框架的示例性共享應用平臺中,以下是描述由安全性框架提供的集成的安全性的表。
圖4是說明多租戶計算環(huán)境上的請求的處理的方法400。方法400在其中租戶被授權以在諸如圖1中的共享應用平臺108的共享應用平臺上執(zhí)行應用的點處被發(fā)起。方法400開始于操作402,其中安全連接通道(例如,安全通信管道)被創(chuàng)建在多租戶計算環(huán)境的兩個組件之間。安全連接通道是創(chuàng)建于共享應用平臺的組件和租戶應用之間的通信路徑。組件可以是適用于多租戶計算環(huán)境的任意受信硬件或軟件資源。
一旦安全連接通道被創(chuàng)建(操作402),則流程進行到操作404,其中過程在發(fā)起處理請求的租戶的服務賬戶下被運行在共享應用平臺的組件上。使用租戶服務賬戶運行該過程并通過安全連接與它交互以用于在運行時供應安全性上下文數據的片段提供了租戶可以安全地使其應用運行在也可能正在運行其他租戶應用的共享應用平臺上。這可以最小化租戶的數據將被泄露給其他租戶的未授權訪問的風險。在一個示例中,用于共享應用平臺的執(zhí)行上下文的強制執(zhí)行和供應的受信服務可以在租戶服務賬戶下模擬租戶工作,盡管用于執(zhí)行上下文的強制執(zhí)行和供應的受信服務在機器賬戶下執(zhí)行。在一個示例中,受信組件的機器賬戶可以是高權限賬戶。即,租戶服務賬戶具有最低可能權限并被授權以執(zhí)行僅在強制執(zhí)行的安全性上下文下被允許的處理。不管處理是否完成,流程進行到操作406,其中處理的報告被生成。在一個示例中,報告可以被提供給受信服務的管理員或監(jiān)視者。在另一示例中,報告可以被提供給發(fā)起應用請求的租戶。
一旦用于處理的請求已經完成,流程結束并且安全連接被終止(操作410)。在示例性共享應用平臺,如果租戶想用執(zhí)行另一應用,一旦租戶被共享應用平臺授權以執(zhí)行另一應用則新的安全連接通道將需要被建立。它由受信服務發(fā)起以防止安全性漏洞或租戶服務賬戶的濫用。
圖5-7和相關聯的描述提供了其中本發(fā)明的示例可以被實踐的各種操作環(huán)境的討論。然而,關于圖5-7所示出和討論的設備和系統(tǒng)是用于示例和說明的目的,并且不是可以用于實踐本文所描述的本發(fā)明的示例的大量的示例計算設備配置的限制。
圖5是示出本公開的示例可以利用其被實踐的計算設備502的物理組件、租戶的組件、共享應用平臺108或諸如本文所描述的數據資源120和122的數據資源的框圖。下面描述的計算設備組件可以適合于上述的計算設備。在基本配置中,計算設備502可以包括至少一個處理單元504以及系統(tǒng)存儲器506。根據計算設備的配置和類型,系統(tǒng)存儲器506可以包括但不限于,易失性存儲(例如,隨機存取存儲器)、非易失性存儲(例如,只讀存儲器)、閃速存儲器,或這樣的存儲器的任意組合。系統(tǒng)存儲器506可以包括操作系統(tǒng)507以及適合于運行諸如用于數據復制528、IO管理器524和其他實用程序526的軟件應用520的一個或多個程序模塊508。例如,操作系統(tǒng)507可以適合于控制計算設備502的操作。此外,本發(fā)明的示例可以與圖形庫、其他操作系統(tǒng)或其他應用程序結合而被實踐,并且不限于任意特定應用或系統(tǒng)。該基本配置在圖5中由虛線522內的那些組件所示出。計算設備502可以具備附加的特征或功能。例如,計算設備502也可以包括諸如磁盤、光盤或磁帶的附加數據存儲設備(可拆卸的和/或不可拆卸的)。這樣的附加存儲在圖5中由可拆卸存儲設備509和不可拆卸存儲設備510示出。
如上所述,數個程序模塊和數據文件可以被存儲在系統(tǒng)存儲器506中。當在處理單元504上執(zhí)行時,程序模塊508(例如,應用528、輸入/輸出(I/O)管理器524以及其他實用程序526)可以執(zhí)行過程,過程包括但不限于例如圖2-4中所示的操作流程200-400的階段中的一個或多個階段。根據本發(fā)明的示例可以使用的其他程序模塊可以包括電子郵件以及聯系人應用、文字處理應用、電子表格應用、數據庫應用、幻燈片演示應用、繪圖或計算機輔助應用程序等。
此外,本發(fā)明的示例可以被實踐在包括分立電子元件的電氣電路、包含邏輯門的封裝或集成的電子芯片、使用微處理器的電路、或包含電子元件或微處理器的單個芯片上。例如,本發(fā)明的示例可以經由片上系統(tǒng)(SOC)被實踐,其中圖5中所示的組件中的每個或許多組件可以被集成到單個集成芯片上。這種SOC設備可以包括一個或多個處理單元、圖形單元、通信單元、系統(tǒng)虛擬化單元以及各種應用功能,它們的全部被集成(或“被燒寫”)到芯片基板上作為單個集成電路。當經由SOC操作時,本文所描述的功能可以經由與計算設備502的其他組件一起被集成到單個集成電路(芯片)上的專用邏輯來被操作。本公開的示例還可以使用能夠執(zhí)行諸如與(AND)、或(OR)以及非(NOT)的邏輯操作的其他技術來被實踐,這樣的技術包括但不限于機械、光學、流體以及量子技術。此外,本發(fā)明的示例可以被實踐在通用計算機內或任意其他電路或系統(tǒng)中。
計算設備502也可以具有一個或多個輸入設備512,諸如鍵盤、鼠標、筆、聲音輸入設備、觸摸輸入設備等。還可以包括諸如顯示器、揚聲器、打印機等的輸出設備。前述設備是示例,并且其他設備可以被使用。計算設備504可以包括允許與其他計算設備518通信的一個或多個通信連接516。合適的通信連接516的示例包括但不限于,射頻發(fā)射器、接收器、和/或收發(fā)器電路、通用串行總線(USB)、并行和/或串行端口。
本文所用的術語“計算機可讀介質”可以包括計算機存儲介質。計算機存儲介質可以包括以用于信息的存儲的任意方法或技術來被實施的易失性的和非易失性的、可拆卸和不可拆卸的介質,信息諸如計算機可讀指令、數據結構或程序模塊。系統(tǒng)存儲器506、可拆卸存儲設備509以及不可拆卸存儲設備510都是計算機存儲介質的示例(例如存儲器存儲)。計算機存儲介質可以包括RAM、ROM、電可擦除只讀存儲器(EEPROM)、閃存或其它存儲器技術、CD-ROM、數字多功能盤(DVD)或其他光存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲設備、或可以被用于存儲信息并能被計算設備502訪問的任意其他制品。計算機存儲介質不包括載波或其他經傳播或調制的數據信號。
通信介質可以由計算機可讀指令、數據結構、程序模塊或諸如載波或其他傳輸機制的經調制的數據信號中的其他數據體現,并且包括任意信息傳遞介質。術語“經調制的數據信號”可以描述使一個或多個特性將信息編碼在信號中的方式被設置或改變的信號。通過示例而非限制的方式,通信介質可以包括諸如有線網絡或直接有線連接的有線介質,以及諸如聲學、射頻(RF)、紅外和其他無線介質的無線介質。
圖6A和6B示出了本發(fā)明的示例可以利用其之被實踐的移動計算設備,例如,移動電話、智能電話、平板個人計算機、膝上型計算機等。例如,移動計算設備600可以被用于實施租戶、共享應用平臺108的組件或數據資源。參考圖6A,用于實施示例的移動計算設備600的一個示例被示出。在基本配置中,移動計算設備600是具有輸入元件和輸出元件兩者的手持計算機。移動計算設備600通常包括顯示器605和允許用戶輸入信息到移動計算設備600中的一個或多個輸入按鈕610。移動計算設備600的顯示器605也可以用作輸入設備(例如,觸摸屏顯示器)。如果被包括,則一個可選側面輸入元件615允許其他用戶輸入。側面輸入元件615可以是旋轉開關、按鈕、或任意其他類型的手動輸入元件。在備選示例中,移動計算設備600可以包括更多或更少的輸入元件。例如,在一些示例中,顯示器605可以不是觸摸屏。在又一備選示例中,移動計算設備600是諸如蜂窩電話的便攜式電話系統(tǒng)。移動計算設備600還可以包括可選鍵盤635。可選鍵盤635可以是物理鍵盤或觸摸屏顯示器上生成的“軟”鍵盤。在各種示例中,輸出元件包括用于顯示圖形用戶界面(GUI)的顯示器605、視覺指示器620(例如,發(fā)光二極管)、和/或音頻換能器625(例如,揚聲器)。在一些示例中,移動計算設備600包括用于向用戶提供觸覺反饋的震動換能器。在又一示例中,移動計算設備600包括用于發(fā)送信號到外部設備或從外部設備接收信號的輸入和/或輸出端口,諸如音頻輸入(例如,麥克風插孔)、音頻輸出(例如,耳機插孔)和視頻輸出(例如,HDMI端口)。
圖6B是示出移動計算設備的一個示例的架構的框圖。即,移動計算設備600可以包括系統(tǒng)(即,架構)602來實現一些示例。在一個示例中,系統(tǒng)602被實施為能夠運行一個或多個應用(例如瀏覽器、電子郵件、日歷、聯系人管理器、消息客戶端、游戲、以及媒體客戶端/播放器)的“智能電話”。在一些示例中,系統(tǒng)602被集成為計算設備,諸如集成的個人數字助理(PDA)和無線電話。
一個或多個應用程序666可以被加載到存儲器662并且在操作系統(tǒng)664上運行或與之相關聯地運行。應用程序的示例包括電話撥號器程序、電子郵件程序、個人信息管理(PIM)程序、文字處理程序、電子表格程序、互聯網瀏覽器程序、消息程序等。系統(tǒng)602還包括存儲器662內的非易失性存儲區(qū)域668。非易失性存儲區(qū)域668可以被用于存儲系統(tǒng)602斷電時不應被丟失的持久性信息。應用程序666可以使用并在非易失性存儲區(qū)域668中存儲信息,諸如電子郵件應用使用的電子郵件或其他消息等。同步應用(未示出)也駐留在系統(tǒng)602上并且被編程以與駐留在主機計算機上的對應同步應用交互以保持被存儲在非易失性存儲區(qū)域668中的信息與被存儲在主機計算機處的對應信息同步。應當理解,包括用于數據復制529、IO管理器524以及本文描述的其他實用程序526的其他應用可以被加載到存儲器662中并且運行在移動計算設備600上。
系統(tǒng)602具有功率供應器670,其可以被實施為一個或多個電池。功率供應器670可以進一步包括諸如AC適配器或補充電池或對電池重新充電的加電對接底座的外部功率源。
系統(tǒng)602可以包括執(zhí)行促進系統(tǒng)602和一個或多個外圍設備之間的連接性的功能的外圍設備端口678。去往和來自外圍設備端口672的傳輸在操作系統(tǒng)664的控制下被引導。換句話說,由外圍設備端口678接收到的通信可以經由操作系統(tǒng)被傳播給應用程序666,并且反之亦然。
系統(tǒng)602也可以包括執(zhí)行發(fā)射和接收射頻通信的功能的無線電裝置672。無線電裝置672經由通信載體或服務提供商來促進系統(tǒng)602和“外部世界”之間的無線連接性。去往和來自無線電裝置672的傳輸在操作系統(tǒng)672的控制下被引導。換句話說,由無線電裝置672接收到的通信可以經由操作系統(tǒng)被傳播給應用程序666,并且反之亦然。
視覺指示器620可以用于提供視覺通知,和/或音頻接口674可以用于經由音頻換能器625產生可聽見的通知。在所示的示例中,視覺指示器620是發(fā)光二極管(LED)并且音頻換能器625是揚聲器。這些設備可以被直接耦合到功率供應器670,使得當被激活時即使處理器和其他組件可能關閉以用于節(jié)省電池電量,它們在由通知機制指示的時間段內保持開啟。LED可以被編程以無限地保持開啟,直到用戶采取行動以指示設備的上電狀態(tài)。音頻接口674用于向用戶提供可聽見的信號以及從用戶接收可聽見的信號。例如,除了被耦合到音頻換能器625之外,音頻接口672還可以被耦合到麥克風以接收音頻輸入,諸如以促進電話交談。根據本發(fā)明的示例,麥克風也可以作為音頻傳感器以促進通知的控制,如將在以下被詳細描述的。系統(tǒng)602可以進一步包括視頻接口676,其使得設備上的相機630的操作能夠記錄靜止圖片、視頻流等。
實施系統(tǒng)602的移動計算設備600可以具有附加的特征或功能。例如,移動計算設備600還可以包括諸如磁盤、光盤或磁帶的附加數據存儲設備(可拆卸的和/或不可拆卸的)。這樣的附加存儲在圖6B中由非易失性存儲區(qū)域668所示出。
由移動計算設備生成或捕獲的并且經由系統(tǒng)602存儲的數據/信息可以如上所描述的被本地地存儲在移動計算設備600上,或者數據可以被存儲在任意數量的存儲介質上,該任意數量的存儲介質可以由設備經由無線電裝置672或經由移動計算設備600和與移動計算設備600相關聯的分離的計算設備(例如,諸如互聯網的分布式計算網絡中的服務器計算機)之間的有線連接被訪問。應當理解,這樣的數據/信息可以經由移動計算設備600經由無線電裝置672或經由分布式計算網絡被訪問。類似地,這樣的數據/信息可以根據包括電子郵件和協(xié)作數據/信息共享系統(tǒng)的公知的數據/信息傳遞和存儲手段而在計算設備之間被容易地傳輸以用于存儲和使用。
圖7示出用于提供應用的系統(tǒng)的架構的示例,如上所述,該應用可靠地訪問存儲系統(tǒng)上的目標數據以及處理到一個或多個客戶端設備的通信故障。被訪問的、與之交互的、或與應用528、IO管理器524、其他實用程序526和存儲(例如,存儲104和存儲110)相關聯被編輯的目標數據可以被存儲在不同通信信道或其他存儲類型中。例如,各種文檔可以使用目錄服務722、門戶網站724、郵箱服務726、即時消息存儲庫728或社交聯網站點730被存儲。應用528、IO管理器524、其他實用程序526以及存儲系統(tǒng)可以使用這些類型的系統(tǒng)中的任意系統(tǒng)等來實現如上所述的數據利用。服務器720可以提供存儲系統(tǒng)以供通過網絡715而操作在通用計算設備502和移動設備600上的客戶端使用。通過示例的方式,網絡715可以包括互聯網或任意其他類型的局域網或廣域網,并且客戶端節(jié)點可以被實施為體現在個人計算機中的計算設備502、平板計算設備,和/或由移動計算設備600(例如,智能電話)實施??蛻舳擞嬎阍O備502或600的這些示例中的任意示例可以從存儲庫716獲得內容。
根據一個示例性計算機實現的過程,安全性上下文基于由租戶提供的要通過多租戶計算網絡被傳輸的安全性上下文數據被生成。在一個示例中,安全性上下文數據可以用于指定用于對與安全性上下文數據相關聯的數據的訪問的權利。所發(fā)送的安全性上下文數據包括以下至少一項:令牌、證書、數據庫連接字符串、或租戶服務賬戶憑證。安全性上下文數據利用保護層被包裹,該保護層限制由多租戶計算環(huán)境中的非受信設備和服務訪問安全性上下文數據的能力。此外,安全性上下文數據利用防止未授權租戶使用安全性上下文的保護層被包裹。用于處理的安全性上下文數據然后被傳輸到多租戶計算環(huán)境的共享應用平臺。在一個示例中,安全性上下文數據被發(fā)送到多租戶計算環(huán)境的受信秘密資源。
在示例計算機實施的方法中,數據在多租戶計算環(huán)境的組件處被接收。與租戶應用相關聯的安全性上下文數據可以被存儲到多租戶計算環(huán)境的受信秘密源。作為示例,受信秘密源可以是受信平臺模塊。如果組件被授權以接收安全性上下文數據,則組件可以接收與租戶應用相關聯的安全性上下文數據。組件可以向受信秘密源提供多租戶計算環(huán)境的組件是被授權以接收安全性上下文數據的受信組件的指示。安全性上下文數據是令牌、證書或憑證中的至少一項。組件評估安全性上下文數據以授權由租戶應用對安全性上下文數據的使用以用于執(zhí)行。組件可以實施受信服務以評估租戶的安全性上下文數據。在評估中,提供的租戶的注冊標識可以與租戶存儲的注冊標識相比較以確定租戶是否被授權以使用安全性上下文以用于運行租戶應用。組件可以使用受信組件上存在的私鑰來解封安全性上下文數據。如果租戶應用基于安全性上下文數據的評估而被授權,則作為受信組件的組件可以在與安全性上下文數據相關聯的上下文中運行租戶應用。作為示例,運行可以進一步包括發(fā)起受信組件以在為租戶供應的服務賬戶下運行租戶應用,該服務賬戶僅具有用于在與安全性上下文數據相關聯的上下文中運行應用的權限。為了運行租戶應用,安全通信信道可以在受信組件和租戶應用之間被創(chuàng)建。入侵嘗試可以被監(jiān)測以檢測對安全性上下文數據的未授權訪問。
在示例性系統(tǒng)中,在多租戶計算環(huán)境中操作的設備可以包括存儲器和至少一個處理器。設備的處理器可以被配置為執(zhí)行過程。過程可以包括在多租戶計算環(huán)境的受信組件處接收安全性上下文數據。作為示例,多租戶計算環(huán)境可以是云計算環(huán)境。設備可以訪問受信平臺模塊以接收安全性上下文數據,并且僅在設備是受信組件的情況下受信平臺模塊可以向該設備提供安全性上下文數據。設備基于安全性上下文數據的評估來確定租戶是否被授權以在安全性上下文下執(zhí)行應用。安全性上下文數據的評估可以包括實施受信服務以評估租戶的安全性上下文數據。作為示例,受信服務將與安全性上下文數據一起被提供的租戶的注冊標識與由受信服務存儲的租戶的注冊id相比較,以確定租戶是否被授權以使用安全性上下文來運行租戶的應用。如果租戶被授權,則受信組件使用租戶的服務賬戶以訪問多租戶計算環(huán)境的數據資源來運行應用。作為示例,租戶的服務賬戶被限制為僅執(zhí)行與安全性上下文數據相關聯的過程。
已經貫穿本說明書而對“一個示例”或“示例”做出的引用意指特定描述的特征、結構或特性被包括在至少一個示例中。因此,這樣的短語的使用可以指代多于僅一個示例。此外,所描述的特征、結構或特性可以在一個或多個示例中以任意合適的方式被組合。
然而,本領域技術人員可以意識到,這些示例可以在沒有具體細節(jié)中的一個或多個細節(jié)的情況下或者使用其他方法、資源或材料等被實踐。在其他情況下,公知的結構、資源或操作尚未被詳細地示出或描述以僅觀察示例的模糊方面。
盡管示例和應用已經被示出和描述,應當認識到示例不限于以上描述的精確配置和資源。可以在不脫離所請求保護的示例的范圍的情況下對本文所公開的方法和系統(tǒng)的布置、操作和細節(jié)做出對本領域技術人員而言顯而易見的各種修改、改變和變化。