溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Azure虛擬機(jī)管理最佳實(shí)踐之用戶(hù)憑據(jù)

發(fā)布時(shí)間:2020-07-31 09:32:02 來(lái)源:網(wǎng)絡(luò) 閱讀:1192 作者:翟老貓 欄目:安全技術(shù)

還記的之前老貓關(guān)于通過(guò)Powershell遠(yuǎn)程管理Azure中虛擬機(jī)的博文的腳本中,每個(gè)虛擬機(jī)訪(fǎng)問(wèn)都需要通過(guò)get-credential交互方式取得用于訪(fǎng)問(wèn)的用戶(hù)憑據(jù),但是這這種方式每次都要進(jìn)行用戶(hù)交互,如果反復(fù)運(yùn)行的腳本顯然不是個(gè)好方式,如何加密保留用戶(hù)的憑據(jù)以便反復(fù)使用就是個(gè)最佳實(shí)踐的內(nèi)容。當(dāng)然現(xiàn)在國(guó)際版Azure中提供的自動(dòng)化服務(wù)功能包含的Asset可以安全保留憑據(jù)用于自動(dòng)化腳本調(diào)用,由于目前國(guó)內(nèi)的Azure服務(wù)還沒(méi)有這項(xiàng)功能,因此暫時(shí)只能按下不表了,當(dāng)然如果只能這樣本文也就結(jié)束了,這里介紹一個(gè)方法可以用于在自動(dòng)化服務(wù)到來(lái)之前參考使用。


由于這個(gè)方法采用通過(guò)證書(shū)進(jìn)行加密和解密的過(guò)程,因此需要用到在管理客戶(hù)端的證書(shū)私鑰進(jìn)行解密,證書(shū)公鑰進(jìn)行加密;如果對(duì)自制自簽名證書(shū)不太了解的話(huà)可以參考通過(guò)MakeCert工具創(chuàng)建自簽名證書(shū)的方法;通過(guò)這種方式只要管理節(jié)點(diǎn)或在Azure的虛擬機(jī)中具有相應(yīng)證書(shū)私鑰的話(huà)都也可以通過(guò)這種方式保存的加密文件安全的獲得用戶(hù)憑據(jù)。


通過(guò)證書(shū)公鑰加密并且通過(guò)Base64格式保留到當(dāng)前用戶(hù)環(huán)境的Mypassword.txt中,

$cert = Get-ChildItem Cert:\LocalMachine\My\[certificate thumbprint]
$bytes = [Text.Encoding]::UTF8.GetBytes("putyourpasswordhere")
$encrypt = $cert.PublicKey.Key.Encrypt($bytes, $true)
$base64 = [Convert]::ToBase64String($encrypt)
Set-Content $HOME\Myencrptpwd.txt $base64


在相應(yīng)安裝證書(shū)私鑰節(jié)點(diǎn)獲得用戶(hù)憑據(jù)用于運(yùn)行腳本使用:

$cert = Get-ChildItem Cert:\LocalMachine\My\[certificate thumbprint]
$base64 = Get-Content $HOME\Myencrptpwd.txt
$encrypt = [Convert]::FromBase64String($base64)
$bytes = $cert.PrivateKey.Decrypt($encrypt,$true)
$password = [Text.Encoding]::UTF8.GetString($bytes)


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI