Azure Key Vault(密鑰庫)是用於安全地存儲和訪問Secret的雲服務,Secret是需要嚴格控制訪問權限的內容,例如API密鑰,密碼,證書或加密密鑰。Key Vault Service支持兩種類型的容器:保管庫(Vault)和托管HSM池(Hardware Security Module Pools)。 Vault支持存儲軟件和HSM-backed的密鑰,Secret和證書,托管HSM池僅支持HSM-backed的密鑰。
用戶從Key Vault中獲取Secret,使用Secret作為身份驗證來訪問數據。
一,Azure Key Vault的作用
Azure Key Vault是用於管理密鑰,機密和證書的雲服務,Key Vault避免了開發人員直接在代碼中存儲Secret信息的情況。Key Vault可以集中存儲應用程序Secret,這大大減少了Secret被泄露的可能。Key Vault不經能夠安全地存儲由HSM支持的Secret和Key,還提供了對所有Secret訪問和嘗試使用的日志,因此具有完整的審核跟蹤以確保合規性。
- Secret 管理:Azure Key Vault用於安全地存儲和嚴格控制對token,密碼,證書,API密鑰和其他Secret的訪問
- 密鑰管理:Azure Key Vault可以用作密鑰管理解決方案,使用Azure Key Vault可以輕松創建和控制用於加密數據的加密密鑰。
- 證書管理:Azure Key Vault也是一項服務,使您可以輕松地設置,管理和部署公共和私有傳輸層安全性/安全套接字層(TLS / SSL)證書,以與Azure和內部連接的資源一起使用。
Azure Key Vault具有兩個服務層:使用軟件密鑰加密的標准服務層和包含受HSM保護的密鑰的高級服務層。
二,Azure Key Vault的相關概念
租戶(Tenant):租戶是擁有和管理Microsoft雲服務的特定實例的組織,它最常用於指一個組織的Azure和Microsoft 365服務集。
安全主體(Security Pricipal):Azure安全主體是用戶創建的安全身份ID,應用程序,服務和自動化工具使用安全主體來訪問特定的Azure資源。可以把Security Pricipal視為具有特定角色且受到嚴格控制的權限的“用戶身份”(用戶名和密碼,或證書)。與一般用戶身份不同,安全主體只需要做特定的事情。如果僅授予它執行管理任務所需的最低權限級別,則可以提高安全性。與應用程序或服務一起使用的安全主體專門稱為服務主體(Service Principal)。
資源(Resource):資源是可通過Azure進行管理的項目,常見資源包括虛擬機,存儲帳戶,Web應用程序,數據庫和虛擬網絡。
資源組(Resource Group):資源組是一個容器,其中包含Azure解決方案的相關資源。資源組可以包含解決方案的所有資源,也可以僅包含要作為一個組進行管理的資源。
Azure Active Directory(簡稱 Azure AD):Azure AD是租戶的AD服務,每個Directory都有一個或多個Domain,一個Directory可以有許多與其相關聯的訂閱(Subscription),但只能有一個租戶。
托管ID(Managed identities): Azure Key Vault提供了一種安全地存儲憑據以及其他密鑰和Secret的方法,但是您的代碼需要通過Key Vault進行身份驗證才能檢索它們。使用托管身份可以很簡單地解決此問題:通過在Azure AD中為Azure服務提供自動托管身份,用戶可以使用此托管身份對Key Vault或支持Azure AD身份驗證的任何服務進行身份驗證,而無需在代碼中包含任何憑據。
訪問Key Vault: 要對Key Vault進行任何操作,首先需要對其進行身份驗證。 推薦使用“Azure資源的托管身份”對Key Vault進行身份驗證。當向Azure中的虛擬機上部署應用程序時,可以向有權訪問Key Vault的虛擬機分配身份,還可以把身份分配給其他Azure資源,這種方法的好處是應用程序或服務不負責管理第一個Secret的輪換, Azure自動旋轉身份。
三,創建Azure Key Vault
使用Partal UI創建Azure Key Vault
step1:Basic 選項卡
Basic 選項卡部分,第一部分是設置Subscription 和 Resource Group,第二部分是設置Soft Deletion
軟刪除保護將自動在此密鑰庫(Key Vault)上啟用,此功能用於在保留期內恢復或永久刪除密鑰庫和Secret,軟刪除保護適用於密鑰保管庫和密鑰保管庫中存儲的Secret。在Basic選項卡中,選項"Days to retain deleted values"用於設置軟刪除保護的保留期(retention period)。要強制執行保留期,並防止在保留期內永久刪除密鑰庫或Secret,可以打開清除保護(Purge Protection)。 啟用清除保護后,用戶或Microsoft無法清除機密。選項“Enable purge protection (enforce a mandatory retention period for deleted vaults and vault objects)” 用於啟用清除保護(Purge Protection),強制保留期。
Step2:設置Access Policy
設置訪問策略(Access Policy)也分兩部分,第一部分是設置 Enable Access to,第二部分是設置Permission Model和Access Policy。
通過“+Add Access Policy”來添加新的訪問策略。
Step3:Networking選項卡
設置網絡連接,勾選 “Public endpoint(all networks)”
點擊“Review+Create”按鈕,創建Key Vault
四,配置Key Vault
打開一個新建的Key Vault,從overview選項卡中,可以看到Key Vault的必要信息(Essential Info),其中Vault URL用於唯一標識給Key Vault:
在Settings分組中打開Secrets,本文示例如何配置一個新的Secret。
點擊“+Generate/Import”,打開“Create a Secret”對話框,新建一個Secret,一個Secret主要是由Name和Value來構成的。其中Name是Secret的名稱,Value是要保護的密碼、憑證等私密數據。
用戶從Key Vault中獲取Secret,使用Secret(即Value屬性保存的值)作為身份驗證來訪問數據。
參考文檔: