Azure Key Vault(金鑰庫)是用於安全地儲存和訪問Secret的雲服務,Secret是需要嚴格控制訪問許可權的內容,例如API金鑰,密碼,證書或加密金鑰。Key Vault Service支援兩種型別的容器:保管庫(Valut)和託管HSM池(Hardware Security Module Pools)。 Valut支援儲存軟體和HSM-backed的金鑰,Secret和證書,託管HSM池僅支援HSM-backed的金鑰。
使用者從Key Valut中獲取Secret,使用Secret作為身份驗證來訪問資料。
一,Azure Key Valut的作用
Azure Key Vault是用於管理金鑰,機密和證書的雲服務,Key Vault避免了開發人員直接在程式碼中儲存Secret資訊的情況。Key Valut可以集中儲存應用程式Secret,這大大減少了Secret被洩露的可能。Key Valut不經能夠安全地儲存由HSM支援的Secret和Key,還提供了對所有Secret訪問和嘗試使用的日誌,因此具有完整的稽核跟蹤以確保合規性。
- Secret 管理:Azure Key Valut用於安全地儲存和嚴格控制對token,密碼,證書,API金鑰和其他Secret的訪問
- 金鑰管理:Azure Key Vault可以用作金鑰管理解決方案,使用Azure Key Vault可以輕鬆建立和控制用於加密資料的加密金鑰。
- 證書管理:Azure Key Vault也是一項服務,使您可以輕鬆地設定,管理和部署公共和私有傳輸層安全性/安全套接字層(TLS / SSL)證書,以與Azure和內部連線的資源一起使用。
Azure Key Vault具有兩個服務層:使用軟體金鑰加密的標準服務層和包含受HSM保護的金鑰的高階服務層。
二,Azure Key Valut的相關概念
租戶(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 Valut提供了一種安全地儲存憑據以及其他金鑰和Secret的方法,但是您的程式碼需要通過Key Valut進行身份驗證才能檢索它們。使用託管身份可以很簡單地解決此問題:通過在Azure AD中為Azure服務提供自動託管身份,使用者可以使用此託管身份對Key Vault或支援Azure AD身份驗證的任何服務進行身份驗證,而無需在程式碼中包含任何憑據。
訪問Key Valut: 要對Key Vault進行任何操作,首先需要對其進行身份驗證。 推薦使用“Azure資源的託管身份”對Key Vault進行身份驗證。當向Azure中的虛擬機器上部署應用程式時,可以向有權訪問Key Vault的虛擬機器分配身份,還可以把身份分配給其他Azure資源,這種方法的好處是應用程式或服務不負責管理第一個Secret的輪換, Azure自動旋轉身份。
三,建立Azure Key Valut
使用Partal UI建立Azure Key Valut
step1:Basic 選項卡
Basic 選項卡部分,第一部分是設定Subscription 和 Resource Group,第二部分是設定Soft Deletion
軟刪除保護將自動在此金鑰庫(Key Valut)上啟用,此功能用於在保留期內恢復或永久刪除金鑰庫和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 Valut
四,配置Key Valut
開啟一個新建的Key Valut,從overview選項卡中,可以看到Key Valut的必要資訊(Essential Info),其中Valut URL用於唯一標識給Key Valut:
在Settings分組中開啟Secrets,本文示例如何配置一個新的Secret。
點選“+Generate/Import”,開啟“Create a Secret”對話方塊,新建一個Secret,一個Secret主要是由Name和Value來構成的。
使用者從Key Valut中獲取Secret,使用Secret作為身份驗證來訪問資料。
參考文件: