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…

java amr 转mp3 报错_amr 转 MP3 报错it.sauronsoftware.jave.InputFormatException问

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼import it.sauronsoftware.jave.AudioAttributes;import it.sauronsoftware.jave.Encoder;import it.sauronsoftware.jave.EncoderException;import it.sauronsoftware.jave.EncodingAttributes;import it.sauronsoftware.jave.Inp…

正则表达式验证各种类型的数字

验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实数:^[0-9](.[0-9…

mysql 触发器 for each row 理解_“for each row”如何在mysql中的触发器中工作?

FOR EACH ROW表示每个匹配行的更新或删除.除非查询中有where条件,否则触发器主体不会遍历整个表数据.下面演示了一个工作示例:创建样本表:drop table if exists tbl_so_q23374151;create table tbl_so_q23374151 ( i int, v varchar(10) );-- set test d…

iOS 11: CORE ML—浅析

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

mysql定义shell变量_shell 变量的定义,赋值,运算

一、变量类型1.1、自定义变量1.定义变量不能使用纯数字命名,不能使用横杠命名变量名变量值[rootlocalhost ~]# nameerha2.引用变量$变量名 或者 ${变量量名}3.查看变量值echo$变量量名[rootlocalhost ~]# echo $nameerha4.取消变量[rootlocalhost ~]# unset name[ro…

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…

皇室战争

题目大意: 初始有E点体力值,每天可以开宝箱消耗k体力值,体力值要保证>0 每次开宝箱可获得k*a[i]的愉悦度 求最大愉悦度 样例输入115 2 22 1样例输出112样例1解释第一天用5体力, 接下来回复2点体力, 用光。限制与约定数据编号 cas N E 时间限制(S)0 10 10 10 11 100 100 100 …

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

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

codevs 2822 爱在心中

时间限制: 1 s空间限制: 128000 KB题目等级 : 钻石 Diamond题目描述 Description“每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动。爱因为在心中,平凡而不平庸,世界就像迷宫,却又让…

python 遍历对象_python js对象的遍历

下面是两组数据格式;都是以对象的形势;现在我要将属性值提取出来;做成一个二级部门导航栏;abc里面的做一级,asd做二级点击厂一宣示对应的部门;点击厂二时候宣示对应的部门;把原有的隐藏var abc{…

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

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