Azure虚拟机管理最佳实践之用户凭据

  1. 云栖社区>
  2. 博客列表>
  3. 正文

Azure虚拟机管理最佳实践之用户凭据

余二五 2017-11-16 23:51:00 浏览91 评论0

摘要: 还记的之前老猫关于通过Powershell远程管理Azure中虚拟机的博文的脚本中,每个虚拟机访问都需要通过get-credential交互方式取得用于访问的用户凭据,但是这这种方式每次都要进行用户交互,如果反复运行的脚本显然不是个好方式,如何加密保留用户的凭据以便反复使用就是个最佳实践的内容。

还记的之前老猫关于通过Powershell远程管理Azure中虚拟机的博文的脚本中,每个虚拟机访问都需要通过get-credential交互方式取得用于访问的用户凭据,但是这这种方式每次都要进行用户交互,如果反复运行的脚本显然不是个好方式,如何加密保留用户的凭据以便反复使用就是个最佳实践的内容。当然现在国际版Azure中提供的自动化服务功能包含的Asset可以安全保留凭据用于自动化脚本调用,由于目前国内的Azure服务还没有这项功能,因此暂时只能按下不表了,当然如果只能这样本文也就结束了,这里介绍一个方法可以用于在自动化服务到来之前参考使用。


由于这个方法采用通过证书进行加密和解密的过程,因此需要用到在管理客户端的证书私钥进行解密,证书公钥进行加密;如果对自制自签名证书不太了解的话可以参考通过MakeCert工具创建自签名证书的方法;通过这种方式只要管理节点或在Azure的虚拟机中具有相应证书私钥的话都也可以通过这种方式保存的加密文件安全的获得用户凭据。


通过证书公钥加密并且通过Base64格式保留到当前用户环境的Mypassword.txt中,

1
2
3
4
5
$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


在相应安装证书私钥节点获得用户凭据用于运行脚本使用:

1
2
3
4
5
$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)









本文转自 翟老猫 51CTO博客,原文链接:http://blog.51cto.com/3387405/1599122,如需转载请自行联系原作者

用云栖社区APP,舒服~

【云栖快讯】Apache旗下顶级开源盛会 HBasecon Asia 2018将于8月17日在京举行,现场仅600席,免费赠票领取入口  详情请点击

网友评论

余二五
文章21627篇 | 关注48
关注
一款安全易用的管理类服务。您无需花费大量成本来保护密钥的保密性、完整性和可用性,借助密钥管理... 查看详情
主机市场占用率第一,20年专业品质保证 查看详情
用配置管理(Application Configuration Management,简称 ... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航