Azure實踐之如何通過郵件實現Azure VM的開關機(一)—— 需求分析以及Azure身份驗證剖

 通過郵件實現Azure中VM的開關機?這有可能實現嗎?當然是可以的,而且其實還非常簡單,今天就來分享一波吧

 

 實際上分析這個需求可以發現,如果想通過發送一封郵件就對Azure中的環境進行操作,那麼首先第一個要解決的問題就是身份驗證了,郵件本身肯定是不會帶credential的,一種方法是可以把用戶名密碼寫在郵件內容裏,這個當然很傻了,絕對不會推薦這麼做的,另外一種方法是可以通過Azure key vault,把用戶名密碼寫在key vault中,這種方法其實是可以的,相對來說也比較安全。之前也有分享過一些基本的用法,有興趣的可以看看http://blog.51cto.com/mxyit/2346350


 這樣總體上來說可以保證用戶密碼的可用性和安全性,但是其實這種方法也是很麻煩的,目前來說在Azure中可以做身份驗證的方法有這麼幾種


1:Azure AD 用戶credential登陸

這種方法是最傳統,也是最古老的,直接在應用程序中使用用戶名和密碼登陸,需要注意的是如何保護credential的安全性,是應該應該關注的一個重點,這種方法基本上企業是很少會用的,因爲安全性實在太差,個人用戶偶爾在測試環境用一下倒是還可以

 

以下是如何通過PowerShell的方式使用Azure AD 用戶密碼登陸

image001.png


2:Azure service principal方式

如果有需要訪問或修改資源的代碼,則可以爲應用創建標識。 此標識稱爲服務主體。 可以將所需權限分配給服務主體,這種方式通過RBAC給service principal賦予角色,之後應用程序即可擁有對應的權限,我們在操作時可以通過Portal或者PowerShell的方式註冊一個application,我們可以通過PowerShell直接登錄,可以看到登陸方法和用戶名密碼的方式類似

image003.png



3:託管標識方式

藉助 Azure Active Directory 的託管標識,應用可以輕鬆訪問其他受 AAD 保護的資源(如 Azure Key Vault)。 標識由 Azure 平臺託管,無需設置或轉交任何機密

 

你的應用程序可以被授予兩種類型的標識:

  • 系統分配的標識與你的應用程序相綁定,如果刪除應用,標識也會被刪除。 一個應用只能具有一個系統分配的標識。

  • 用戶分配的標識是可以分配給應用的獨立 Azure 資源。 一個應用可以具有多個用戶分配的標識。

 

這種方式不需要用戶名密碼,如果應用程序需要調用Azure的資源,不需要使用用戶名密碼或者service principal,可以使用標識向支持 Azure AD 身份驗證的任何服務(包括 Key Vault)證明身份,無需在代碼中放入任何憑據。


簡單理解來說,RBAC以前是將用戶角色分配給Azure AD的用戶,組或者是service principal,但是通過identity,我們可以直接將權限assign給app service,key vault或者是VM

 

以下是一些應用的案例,比如可以在app service裏找到identity,然後開啓identity

image005.png


在IAM中可以看到,assign access to中不光是Azure AD user,還可以選擇其他的Azure service

image007.png



當然,這個服務目前來說還只在Azure Global有,mooncake目前還沒有這個服務


這樣,web app即可擁有對應的權限!無需任何用戶名和密碼,這種方式也是比較推薦的

 

下邊回到我們的原始需求,來看下郵件開關機應該如何解決安全問題


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章