一,引言
之前讲解的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
版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。