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

前两篇讲到了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的名称和位置即可

250b36536e35998df6d88631ab742951.png

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

5ed8980cabdfa5284245c463d2c69a3c.png

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

7d26bb813e46dbb074ad197b83b057d2.png

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

5218d57d244810599c6ca84810996fd4.png

这样,这个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"

5fbf3ab258ed7d06464694554ecaf0c2.png

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

944d6e0eba08fabc36701f7b50e1346f.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从多级延迟触发器到边沿检测

本文记录一下关于延迟触发器链与它的常用用法(即边沿检测。多级延迟的触发器应该是比较常用的,当我们需要对信号信号进行延时,这个时候我们就用到了延迟触发器链。下面就来记录一下吧。 一、多级延迟触发器(或延迟触发器链&#x…

iOS 11: CORE ML—浅析

本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/OWD5UEiVu5JpYArcd2H9ig 作者:liujizhou 导语:在刚刚过去的WWDC上&#xff0…

angular的uiRouter服务学习(5) --- $state.includes()方法

$state.includes 方法用于判断当前激活状态是否是指定的状态或者是指定状态的子状态. $state.includes(stateOrName,params,options) $state.includes方法接受三个参数,其中第二和第三个都不知道是干啥的...估计也不太用得到,就暂时不管了... stateOrName:字符串(必填). 是一个…

前端学习(2487):在VUE中使用element-ui的el-select组件时出现该报错

一. 报错场景 在VUE中使用element-ui的el-select组件时出现该报错 [Vue warn]: Missing required prop: "value" 1 二. 报错原因 2.1.el-select中没有进行双向数据绑定(v-model) 2.2 el-option没有进行value赋值 三. 具体示例 3.1 报错…

php 正则mysql语句_MySQL正则表达式搜索 - mysql数据库栏目 - 自学php

products表如下:1. 基本字符匹配vcrH1NrV7j2wdDL0cv3o6zWu9KqcHJvZF9uYW1l1tCw/LqswcvLcvRy/e1xNfWt/uzb/J0tTBy6OstvhMSUtFyOe57K708PNqMXkt/ujrMTHw7TSqsfzcHJvZF9uYW1l0vL0cv3tcTX1rf70qrN6sirxqXF5KO60rKzcrHy7XPwsPmtcTA/dfTo6zQ6NKqyrnTwyBMSUtFIA"JetPa…

python 类和对象 有必要学吗_类与对象-python学习19

类与对象类:我们常用类来划分一个个特定的群体;我们所说的类,是物以类聚的类,是分门别类的类,是多个类似事物组成的群体的统称。类的概念能帮助我们快速理解和判断事物的性质。类(class),比如整数、字符串、…

最简单的基于FFmpeg的移动端样例:IOS 视频转码器

最简单的基于FFmpeg的移动端样例系列文章列表:最简单的基于FFmpeg的移动端样例:Android HelloWorld最简单的基于FFmpeg的移动端样例:Android 视频解码器最简单的基于FFmpeg的移动端样例:Android 视频解码器-单个库版最简单的基于F…

PHP_CodeIgniter _remap重新定义方法

如果controller定义了_remap方法, 在_remap中重新定义方法 class Test extends CI_Controller{public function index(){echo "hello world";}//index.php/Test/success/id/1aapublic function _remap($method,$params){if($methodsuccess){$method . 2; …

php20个字,北京人会说不会写的20个字,第一个我就跪了

这20个字你们都会写吗?扽■ 【读音】dn■ 【释义】拉,猛拉,使伸直或平整。■ 【举例】快来人啊,我扽不住他啦!熥■ 【读音】tēng■ 【释义】把已经熟了的食物再加热。■ 【举例】馒头凉了,熥熥再吃。皴■ 【读音】cūn■ 【释义…