雲計算設計模式(十) 守門員模式

2022-04-18 11:05:33 字數 1652 閱讀 7575

通過使用充當客戶端和應用程式或服務之間的**,驗證和進行消毒的請求,並將它們之間的請求和資料的專用主機例項保護的應用程式和服務。這可以提供乙個額外的安全層,並限制了系統的攻擊面。 

應用程式通過接受和處理請求揭露它們的功能提供給客戶。在雲託管方案,應用程式暴露終端客戶機連線,一般包括**來處理來自客戶端的請求。此**可以執行認證和驗證,一些或所有請求的處理,並有可能訪問儲存等服務代表客戶端的。 

如果惡意使用者能夠危及系統和訪問應用程式的託管環境,它使用安全機制,諸如憑證和儲存金鑰,並且該服務並訪問資料,被暴露。因此,惡意使用者可能能夠獲得無節制訪問敏感資訊和其他服務。 

為了儘量減少接觸到敏感資訊和服務客戶的風險,去耦,揭露出從處理請求並訪問儲存在**公共端點的主機或任務。這可以通過使用乙個立面或專用任務,與客戶端進行互動,然後手拿開的請求(可能通過乙個去耦介面)連線到主機或任務將要處理的請求來實現。圖1示出了這種方法的乙個高層檢視。

圖1 - 這種模式的高階概述

守門員模式可以簡單地用來保護儲存,或者它可被用作乙個更全面的立面,以保護所有的應用程式的功能。的重要因素是:

•控制驗證。守門員驗證所有請求,並拒絕那些不符合驗證要求。

•有限的風險和**。守門員不具有訪問所使用的可信主機訪問儲存和服務的憑證或金鑰。如果關守被攻破,攻擊者無法獲得訪問這些憑據或金鑰。

•適當的安全性。守門員執行在乙個有限的特權模式,而應用程式的其餘部分在訪問儲存和服務所需要的完全信任模式下執行。如果關守被破壞,它不能直接訪問應用程式的服務或資料。

此圖案有效地作用就像乙個防火牆在乙個典型的網路拓撲。它允許關守來檢查請求並做出關於是否將請求傳遞到可信主機決定(有時也被稱為鑰匙之王),執行所需的任務。這一決定通常需要守門員來驗證並將其傳遞到受信任主機前消毒要求的內容。

在決定如何實現這個模式時,請考慮以下幾點:

•確保受信任主機到網守請求通過僅暴露內部或保護端點,只有連線到守門員。受信任主機不應該暴露任何外部端點或介面。

•關守必須在有限的特權模式下執行。通常,這意味著執行守門員和獨立的託管服務或虛擬機器的可信主機。

•關守不應該執行相關的應用程式或服務,或訪問任何資料的任何處理。它的功能是純粹的驗證和消毒要求。受信任的主機可能需要執行的請求額外的驗證,但核心的驗證應該由守門員進行。

•使用守門員和信任的主機或任務,如果這是可能的之間的安全通訊通道(https,ssl或tls)。然而,一些託管環境可能不支援https內部端點。

•新增額外的層,以實現守門員模式的應用有可能對應用程式的效能造成一定影響,由於它需要額外的處理和網路通訊。

•關守例項可能是乙個單點故障。為了最大限度地減少故障的影響,考慮部署其他例項,並使用自動縮放機制,以確保有足夠的能力來保持可用性。

這種模式非常適合於:

•應用程式,處理敏感資訊,揭露必須具有高一定程度的保護免受惡意攻擊,或執行不得破壞關鍵業務服務。

•分布式應用中,有必要從主要任務分別執行請求驗證,或集中此驗證,以簡化維護和管理。

在乙個雲託管的情況下,該模式可以通過使用乙個內部端點,乙個佇列,或儲存作為中間通訊機制解耦從受信任的角色和服務應用程式中的關守角色或虛擬機器來實現。圖2示出了使用內部的端點時的基本原則。

圖2 - 的模式使用雲服務的網路和輔助角色的乙個例子

本文翻譯自msdn:

雲計算設計模式(一)Cache Aside模式

雲計算設計模式 一 cache aside模式 按照需要將資料從資料儲存中載入到快取中。這將提高訪問資料的效能,也會幫助提高儲存在快取中的資料和資料儲存中資料的一致性。上下文和問題 應用使用快取來提公升重複訪問儲存在資料儲存中資料的效能。然而,希望快取中的資料和資料儲存中的資料總是保持一致,是不現實...

設計模式(十) 模板模式

模板模式通常又叫模板方法模式 template method pattern 是指定義乙個演算法的骨架,並允許子類為乙個或多個步驟提供實現。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法的某些步驟,屬於行為性設計模式。比如購買商品一般都有固定的流程,比如先檢視庫存,然後生成訂單,折扣...

設計模式 十 外觀模式

這篇部落格我想說一下外觀模式,外觀模式的理解非常簡單。外觀模式 facade pattern 隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增乙個介面,來隱藏系統的複雜性。可以看到就是關於封裝的理解。部落格只是將老師的部落格 進行貼...