前两篇讲到了terraform,作为跨平台的IAC工具绝对是没话说的,很非常好用,今天再讲回Azure原生的ARM Template,ARM Template好处就是作为微软的亲儿子,兼容性啥的绝对没话说,但是JSON对于非开发者来说实在用着别扭,繁琐的{}[]这些能搞懵不少人。两者之间各有优劣,用哪种方式都不奇怪,所以今天也来谈一谈ARM Template里的一些小技巧,首先来谈下ARM Template和Key Valut的结合

在部署Azure资源时,经常会涉及到一些机密信息的问题,比如在创建VM时候要指定password或者key值,在创建数据库的时候也要指定账号密码,如果作为明文输入的话肯定是不行的,但是指定为securestring又显得比较麻烦,每次都要手动输入,因为这东西不接受默认值,所以两者都不方便,比较理想的方式其实是结合Azure Key Vault来做

Key Vault是Azure中专门用来管理一些机密信息的服务,像一些加密的字符串,证书之类的都可以用key vault来管理,相当于就是个保险柜一样,可以把敏感的东西锁在里边,需要的时候再取出来,详细的介绍可以参考官方的文档

下边来演示下具体怎么来用,以一个例子为背景

我们在创建Windows VM的时候需要指定password,而这个password就可以首先先存储在key vault中,然后在ARM Template里引用这个值,这样既保护了密码的安全,又不需要手动指定

下边看下具体怎么实现,首先从创建key vault开始,这一步没啥特殊的,指定好key vault的名称和位置即可

下一步一定要注意,这里必须勾选用于模板部署的Azure资源管理器

接下来创建一个secret作为密码

输入这个secret的名称以及对应的值

这样,这个password就在key vault里存在了,接下来就可以在ARM Template里引用了

首先我们可以把password定义成一个parameter,这样这个值就是一个可变得值了,如果需要不同的password的话,也可以在部署的时候重新进行赋值

adminPasswordOrKey": {

"type": "securestring",

"metadata": {

"description": "SSH Key or password for the Virtual Machine. SSH key is recommended."

}

}

接下来可以编辑parameter file,在这里设置一个default值来引用刚才创建的secret

parameters": {

"adminPasswordOrKey": {

"reference": {

"keyVault": {

"id": "/subscriptions//resourceGroups/mykeyvaultdeploymentrg/providers/Microsoft.KeyVault/vaults/"

},

"secretName": "password"

}

其他ARM Template里的内容和正常部署VM都是一样的,部署时指定parameterfile和templatefile即可

New-AzResourceGroupDeployment -ResourceGroupName 'garrickmeng' -TemplateFile "D:\Tech\Cloud\Azure\ARM Template\VM\101-vm-simple-linux - key valut integration\azuredeploy.json" -TemplateParameterFile "D:\Tech\Cloud\Azure\ARM Template\VM\101-vm-simple-linux - key valut integration\azuredeploy.parameters.json"

使用paasword也可以正常进行SSH连接

java获取keyvault_ARM Template 结合key vault存储机密信息 (一)相关推荐

  1. java获取keyvault_利用KeyVault来加强存储Azure Storage访问密钥管理

    很多时候管理Azure的存储账号我们都需要通过下面的界面管理访问密钥,大部分情况下通过密钥的轮替使用更新就可以做到安全管理了. 但是很多时候存储账号的Key就会不小心分发到开人员.测试人员.和管理员手 ...

  2. java 获取permgen_java – 如何查看PermGen中存储的确切内容?

    在我的应用程序中,我有一个PermGen内存不足错误,我想知道导致它的原因. 我通过VisualVM连接到我的应用程序. 我想知道在我的应用程序中究竟消耗了如此多的PermGen内存,但我无法在Vis ...

  3. java获取keyvault_教程:在 Java Spring Boot 应用中使用 Azure 应用程序配置 Key Vault 引用 | Microsoft Docs...

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 教程:在 Java S ...

  4. java获取keyvault_使用 Key Vault 引用 - Azure App Service | Microsoft Docs

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. 使用应用服务和 Azu ...

  5. 在ASP.Net Core和JAVA中,使用Azure配置密钥——Key Vault

    思路浅析 在软件开发中,项目安全是重中之重,特别是在多部门或者开源项目中,如何保存我们的密钥,但又不影响本地的开发,更需要我们开发者需要考虑的问题,这里简单的列举了下平时开发中我们做的方案: 1.本地 ...

  6. Java Map中如何使用key获取value数据呢?

    转自: Java Map中如何使用key获取value数据呢? 下文笔者讲述使用Map.get()方法获取集合中的value值的方法分享,如下所示: 实现思路:借助Map的get方法即可获取value ...

  7. Java获取map中key和value的方法

    最近项目技术转型,开始使用java来写需求.需求中碰到需要获取map中key和value的地方,网络上查了下,得到了解决方法.为防止遗忘,故记录于此. java中获取map中key和value的方式有 ...

  8. Java获取系统时间日期存储到数据库Timestamp时间限制

    由于Java中没有datetime数据类型,timestamp类型数据在数据库中只能存储到2038年,数据库中存完整的时间日期可以使用datetime.本文主要探索在Java中使用Timestamp类 ...

  9. Oracle LiveLabs实验:DB Security - Key Vault

    概述 此实验关于Oracle Key Vault. 此实验申请地址在这里,时间为55分钟. 实验帮助在这里. 实验生成需要15分钟左右,最终会生成2个虚机,以下为我的专属配置: 129.146.74. ...

最新文章

  1. 【深度学习入门到精通系列】Python批量实现图像镜像翻转
  2. Web.config中连接字符串的加密和解密
  3. [转]IE下对文件(图片)进行base64转换
  4. java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法
  5. python打包zip文件_python 解压文件,合并文件 打包成zip格式文件 生成MD5值
  6. ubuntu中如何解压rar文件
  7. 【Not all parameters were used in the SQL statement】
  8. 前端学习(2939):vue组件的使用
  9. Windows server2008 搭建ASP接口訪问连接oracle数据库全过程记录
  10. 使用Tomcat Maven插件进行项目部署
  11. 和pythondjango后端_webGIS实践:4_0_python django后端搭建web工程
  12. list stream().forEach
  13. Centos7下yum安装GlusterFS方法
  14. sstv解码_新的业余无线电 SSTV 设备已运抵国际空间站
  15. python判断文字是否是中文
  16. 影视剪辑,零基础如何自学入门剪辑,视频剪辑入门规划
  17. 基于pytorch训练的VGG16神经网络模型完成手写数字的分割与识别
  18. 软考信息系统项目管理师论成本管理范文
  19. 利用Java8新特性stream流给集合中的某个属性赋值
  20. 摄像头poe供电原理_如何区分摄像头是否支持PoE供电摄像头?

热门文章

  1. plsql轻量版游标的使用
  2. oracle之控制用户权限和练习
  3. 前端学习(1319):node.js异步编程
  4. 前端学习(1222):综合案例图书管理1
  5. 前端学习(1147):ES6学习目标
  6. spring mvc学习(32):原生代码导入
  7. 第三十九期:收藏 | 第一次有人把“分布式事务”讲的这么简单明了
  8. java学习(82):静态代码块内部类
  9. 基于display:table的CSS布局
  10. 计算机多媒体设计徽章,酷毙了:Hackaday将会议徽章设计成一台可编程的电脑