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

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

还记的之前老猫关于通过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,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
机器学习/深度学习 Ubuntu Linux
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)
|
3月前
|
安全
【Azure 云服务】Azure Cloud Service 关于虚拟机资源,杀毒软件配置,补丁机制的问答
【Azure 云服务】Azure Cloud Service 关于虚拟机资源,杀毒软件配置,补丁机制的问答
|
3月前
|
API 网络架构 开发者
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
【Azure 环境】调用Azure RunCommand 的REST API 设置虚拟机的环境变量(SetEnvironmentVariable)
|
3月前
|
安全 Windows
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
【Azure 环境】Azure 的PaaS服务如果涉及到安全漏洞问题后,我们如何确认所用服务的实例(VM:虚拟机)的操作系统已修复该补丁呢?
|
3月前
|
安全 网络安全
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
【Azure 环境】当本地网络通过ER专线与Azure云上多个虚拟网络打通,如何通过特定的网络策略来限制本地部分网段访问云上虚拟机22端口?
|
3月前
|
API 网络架构
【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
【Azure Developer】如何通过Azure REST API 获取到虚拟机(VM)所使用的公共IP地址信息
|
3月前
|
JSON API 网络架构
【Azure Developer】Azure REST API: 如何通过 API查看 Recovery Services Vaults(恢复保管库)的备份策略信息? 如备份中是否含有虚拟机的Disk
【Azure Developer】Azure REST API: 如何通过 API查看 Recovery Services Vaults(恢复保管库)的备份策略信息? 如备份中是否含有虚拟机的Disk
|
3月前
|
存储 API 开发工具
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
|
3月前
|
Java 数据安全/隐私保护 Windows
【Azure Developer】使用Java代码启动Azure VM(虚拟机)
【Azure Developer】使用Java代码启动Azure VM(虚拟机)
|
3月前
|
存储 Java API
【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率
【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率