一,引言

  之前讲解的ADF 集成Azure DevOps 实现CI/CD,在 Releases Pipeline 阶段,我们是将两个 Blob Storage 的链接字符串复制、粘贴到 ”Override template parameters“,这样虽然说实现了对应的功能,但是也暴露出一定的问题,就是将 “UAT”,甚至 “Pro” 环境的链接字符串暴露出来了,这样是很危险的。也是不允许的。

这个时候,有人就说了,可以使用共享访问签名,设定有效期等限制。

确实是可以的,但是今天我们使用另外一个方式-----使用 Key Vault 托管 Blob Storage 的密钥信息。OK,开始今天的表演!!!!!

--------------------我是分割线--------------------

1,Azure Data Factory(一)入门简介

2,Azure Data Factory(二)复制数据

3,Azure Data Factory(三)集成 Azure Devops 实现CI/CD

4,Azure Data Factory(四)集成 Logic App 的邮件通知提醒

5,Azure Data Factory(五)Blob Storage 密钥管理问题

二,正文

  关于密钥创建配置等问题,我之前有介绍过-----Azure Kay Vault(一).NET Core Console App 获取密钥保管库中的机密信息 大家可以进行参考,创建Azure Key Vault,并且将两个 Blob Storage 的链接字符串配置到 Azure Key Vault 中

为Azure DevOps 关联的 sp 配置访问权限,点击图中圈中的 “+ Add Access Policy”

Configure from template(optional)选择:“Secret Management”

Key permissions 选择:“List,Get”

Select principal 选择:Azure DevOps 管理的 sp

其他选择默认,点击 “Add” 添加操作

紧接着点击 “Save” 进行保存操作

接着回到Azure DevOps 中,需要在 Releases Pipeline 配置添加 Key Vault 步骤。

修改当前步骤的相关参数

Display name:“Azure Key Vault: cnbateblog-keyvault-UAT”

Azure subscription:选择当前 UAT 环境的 Key Vault 所在的订阅 

Key vault:“cnbateblog-keyvault-UAT”

Secrets filter(机密过滤器):“from-db1-uat,to-db2-uat”(两个机密名称用 “,"进行分割开)

以逗号分隔的机密名称列表,或留下*从选定的密钥库下载所有机密

接下来修改 ARM 模板部署中的覆盖参数,将原有的两个 Blob 的连接字符串改为 key vault 的两个机密 key 了

-factoryName "ADF-CnBateBlogWeb-UAT" -CnBateBlogFromBlobStorage_connectionString $(from-db1-uat) -CnBateBlobToBlobStorage_connectionString $(to-db2-uat)

修改完成后,点击 ”Save“ 进行保存

最后,我们可以手动触发 Releases Pipeline,测试以下结果

Success!!!!!

Bingo,今天的分享到此结束

三,结尾

  今天的内容其实很简单,就是将之前接触的 Azure Key Vault 结合 Azure Devops 运用起来,这就是一个很好的例子,同时里面还牵扯到 sp 的内容,虽然说整个 sp 不是我们手动创建的,是Azure Devops 帮我们创建的,但是我们还是需要回顾一下,想想其中的原理。当然,还有很多不完善的地方以及需要持续演进优化的,但是它目前已经满足了演示的需要。此外,本文所分享的内容也存在着很多我自己的一些理解,因为每个人的经历和认知都不同吧。

最后,谢谢大家的阅读!!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

作者:Allen

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

Azure Data Factory(五)Blob Storage 密钥管理问题的更多相关文章

  1. Azure Data Factory(二)复制数据

    一,引言 上一篇主要只讲了Azure Data Factory的一些主要概念,今天开始新的内容,我们开始通过Azure DevOps 或者 git 管理 Azure Data Factory 中的源代 ...

  2. Azure Data Factory(三)集成 Azure Devops 实现CI/CD

    一,引言 由于上一节文章内容过长,无法分享Azure Data Factory 的持续集成,持续发布.今天将着重介绍一下在使用 Azure DevOps Pipeline 发布,自动进行持续集成,并且 ...

  3. Azure Data Factory(一)入门简介

    一,引言 今天分享一个新的Azure 服务-----Azure Data Factory(Azure 数据工厂),怎么理解,参考根据官方解释-----数据工厂解释:大数据需要可以启用协调和操作过程以将 ...

  4. ADF 第一篇:Azure Data Factory介绍

    Azure Data Factory(简写 ADF)是Azure的云ETL服务,简单的说,就是云上的SSIS.ADF是基于云的ETL,用于数据集成和数据转换,不需要代码,直接通过UI(code-fre ...

  5. Azure Data Factory(四)集成 Logic App 的邮件通知提醒

    一,引言 上一篇有介绍到使用Azure Data Factory 复制数据,然后有集成 Azure DevOps 实现CI/CD,但是对于真正的项目来说,这些肯定是不够的,比如说在执行 Azure P ...

  6. Windows Azure入门教学:使用Blob Storage

    对于.net开发人员,这是一个新的领域,但是并不困难.本文将会介绍如何使用Blob Storage.Blob Storage可以看做是云端的文件系统.与桌面操作系统上不同,我们是通过REST API来 ...

  7. [转]windows azure How to use Blob storage from .NET

    本文转自:http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/?rnd=1 ...

  8. Azure Blob Storage从入门到精通

    今天推荐的是一个系列文章,让读者阅读完成后可以对Azure Blob Storage的开发有一个全面的了解,可谓是从入门到精通. Azure在最初的版本里面就提供了非结构化数据的存储服务,也即Blob ...

  9. Azure Functions(二)集成 Azure Blob Storage 存储文件

    一,引言 上一篇文章有介绍到什么是 SeverLess ,ServerLess 都有哪些特点,以及多云环境下 ServerLess 都有哪些解决方案.在这众多解决方案中就包括 Function App ...

随机推荐

  1. 关于 ECMAScript、JavaScript、ES6、ECMAScript 2015

    ECMAScript 是一种规范,而 JavaScript 是对规范的实现.ECMA 是标准化组织. 最早的 JavaScript 是由 Netscape 公司开发的,并提交给 ECMA 标准化组织, ...

  2. Mybatis老手复习文档

    Mybatis学习笔记 再次学习Mybatis,日后,有时间会把这个文档更新,改的越来越好,然后,改成新手老手通用的文档 1.我的认识 Mybatis 是一个持久层框架,(之前 我虽然学了这个myba ...

  3. python写文件时遇到UnicodeEncodeError: 'gbk' codec can't encode character的解决方式

    在window平台,文件的默认编码是gbk, 此时如果写入的字符串的编码是utf-8就会引发这种错误,打开文件的编码必须与字符串的编码一致 with open('content.txt','w',en ...

  4. 联赛模拟测试18 A. 施工 单调队列(栈)优化DP

    题目描述 分析 对于 \(Subtask\ 1\),可以写一个 \(n^3\) 的 \(DP\),\(f[i][j]\) 代表第 \(i\) 个建筑高度为 \(j\) 时的最小花费,随便转移即可 时间 ...

  5. rabbitmq 延时队列

    前言 某个产品 或者订单,有个有效期 过了有效期要取消 方法一 : 写个脚本,用crontab 定时扫描 改变状态 但是最低只能一分钟 ,不适合 方法二 : 用swoole得毫秒定时器,每秒钟去扫描表 ...

  6. socket php

    $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); socket_bind($socket,'0.0.0.0',6666); while(tru ...

  7. Python字典的初识、增删改查及嵌套

    为什么要有字典? 列表可以存储大量的数据,但数据间的关联型不强 列表的查询速度相对慢 dict:字典,容器型数据类型 数据类型的分类: 可变与不可变 可变(不可哈希)的数据类型: 列表list,字典d ...

  8. Helium文档9-WebUI自动化-find_all获取页面table数据

    前言 find_all关键字根据官方介绍的作用是查找所有出现GUI元素,并且返回list,下面通过举例说明 入参介绍 def find_all(predicate): ""&quo ...

  9. 1-1Java概述

    001_Java语言发展史 Sun公司:Stanford University Network  002Java跨平台原理 平台:指的是操作系统Windows,Mac,Linux等. 总结:在需要运行 ...

  10. MySQL开启日志记录执行过的SQL语句

    当需要分析执行过的SQL语句来判断问题,可以通过打开查询日志功能,但是重启MySQL服务后需要重新配置. 查询日志查询功能: SHOW VARIABLES LIKE 'general%'; gener ...