Azure實踐之如何通過郵件實現(xiàn)Azure VM的開關(guān)機

通過郵件實現(xiàn)Azure中VM的開關(guān)機?這有可能實現(xiàn)嗎?當(dāng)然是可以的,而且其實還非常簡單,今天就來分享一波吧?
實際上分析這個需求可以發(fā)現(xiàn),如果想通過發(fā)送一封郵件就對Azure中的環(huán)境進行操作,那么首先第一個要解決的問題就是身份驗證了,郵件本身肯定是不會帶credential的,一種方法是可以把用戶名密碼寫在郵件內(nèi)容里,這個當(dāng)然很傻了,絕對不會推薦這么做的,另外一種方法是可以通過Azure key vault,把用戶名密碼寫在key vault中,這種方法其實是可以的,相對來說也比較安全。之前也有分享過一些基本的用法,有興趣的可以看看https://blog.51cto.com/mxyit/2346350?
這樣總體上來說可以保證用戶密碼的可用性和安全性,但是其實這種方法也是很麻煩的,目前來說在Azure中可以做身份驗證的方法有這么幾種?
1:Azure AD?用戶credential登陸?
這種方法是最傳統(tǒng),也是最古老的,直接在應(yīng)用程序中使用用戶名和密碼登陸,需要注意的是如何保護credential的安全性,是應(yīng)該應(yīng)該關(guān)注的一個重點,這種方法基本上企業(yè)是很少會用的,因為安全性實在太差,個人用戶偶爾在測試環(huán)境用一下倒是還可以?
以下是如何通過PowerShell的方式使用Azure AD?用戶密碼登陸?
2:Azure service principal方式?
如果有需要訪問或修改資源的代碼,則可以為應(yīng)用創(chuàng)建標識。?此標識稱為服務(wù)主體。 可以將所需權(quán)限分配給服務(wù)主體,這種方式通過RBAC給service principal賦予角色,之后應(yīng)用程序即可擁有對應(yīng)的權(quán)限,我們在操作時可以通過Portal或者PowerShell的方式注冊一個application,我們可以通過PowerShell直接登錄,可以看到登陸方法和用戶名密碼的方式類似?
3:托管標識方式?
借助?Azure Active Directory?的托管標識,應(yīng)用可以輕松訪問其他受?AAD?保護的資源(如?Azure Key Vault)。 標識由?Azure?平臺托管,無需設(shè)置或轉(zhuǎn)交任何機密?
你的應(yīng)用程序可以被授予兩種類型的標識:?
系統(tǒng)分配的標識與你的應(yīng)用程序相綁定,如果刪除應(yīng)用,標識也會被刪除。?一個應(yīng)用只能具有一個系統(tǒng)分配的標識。?
用戶分配的標識是可以分配給應(yīng)用的獨立?Azure?資源。 一個應(yīng)用可以具有多個用戶分配的標識。?
這種方式不需要用戶名密碼,如果應(yīng)用程序需要調(diào)用Azure的資源,不需要使用用戶名密碼或者service principal,可以使用標識向支持?Azure AD?身份驗證的任何服務(wù)(包括?Key Vault)證明身份,無需在代碼中放入任何憑據(jù)。?
簡單理解來說,RBAC以前是將用戶角色分配給Azure AD的用戶,組或者是service principal,但是通過identity,我們可以直接將權(quán)限assign給app service,key vault或者是VM?
以下是一些應(yīng)用的案例,比如可以在app service里找到identity,然后開啟identity?
在IAM中可以看到,assign access to中不光是Azure AD user,還可以選擇其他的Azure service?
當(dāng)然,這個服務(wù)目前來說還只在Azure Global有,mooncake目前還沒有這個服務(wù)?
這樣,web app即可擁有對應(yīng)的權(quán)限!無需任何用戶名和密碼,這種方式也是比較推薦的?
下邊回到我們的原始需求,來看下郵件開關(guān)機應(yīng)該如何解決安全問題。
了解更多網(wǎng)絡(luò)知識關(guān)注:http://www.vecloud.com/