Azure Key Valut 簡介

悅光陰發表於2021-01-18

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作為身份驗證來訪問資料。 

 

 

 

 

參考文件:

About Azure Key Vault

相關文章