Azure DevOps Pipeline集中密钥管理.docx

上传人:b****7 文档编号:11329001 上传时间:2023-02-27 格式:DOCX 页数:12 大小:914.64KB
下载 相关 举报
Azure DevOps Pipeline集中密钥管理.docx_第1页
第1页 / 共12页
Azure DevOps Pipeline集中密钥管理.docx_第2页
第2页 / 共12页
Azure DevOps Pipeline集中密钥管理.docx_第3页
第3页 / 共12页
Azure DevOps Pipeline集中密钥管理.docx_第4页
第4页 / 共12页
Azure DevOps Pipeline集中密钥管理.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Azure DevOps Pipeline集中密钥管理.docx

《Azure DevOps Pipeline集中密钥管理.docx》由会员分享,可在线阅读,更多相关《Azure DevOps Pipeline集中密钥管理.docx(12页珍藏版)》请在冰豆网上搜索。

Azure DevOps Pipeline集中密钥管理.docx

AzureDevOpsPipeline集中密钥管理

AzureDevOpsPipeline集中密钥管理

AzureDevOpsPipeline结合KeyVault集中管理密钥

目录

一、背景概述3

二、基础知识4

三、示例场景5

四、配置步骤5

五、总结14

一、背景概述

在使用TFS/VSTS进行应用程序编译、部署阶段通常会用到一些密钥信息来完成程序的编译以及发布。

比如(密码、Token、数据库连接字符串等)。

为了保证密钥的安全性,通常我们会使用TFS提供的加密变量来存储这些信息,但是使用加密变量的方式可能会遇到一些问题:

 -密钥持有者不愿将密钥信息存储在TFS加密变量中,或者提供给TFS配置管理员。

 -密钥持有者需要频繁的在各个项目的编译发布流水线中配置密钥。

 -密钥存在泄漏的风险。

 -密钥一旦变更,所有项目的构建发布流水线密钥都会失效。

通过集中式的密钥存储服务,可以帮助我们解决上面遇到的问题。

这里小编将介绍如何通过AzureKeyVault存储密钥,并在TFS/VSTS构建、发布流程中使用。

二、基础知识

什么是TFS/VSTS加密变量:

在构建发布定义中创建变量时,为了保护一些密钥信息的安全,可以通过一个小锁按钮对变量进行加密,加密后的变量用户看不到明文,有效的防止了密码的泄漏,如下图所示:

什么是AzureKeyVault(密钥管理库):

 -AzureKeyVault是一个密钥存储服务,可以用来安全地存储和管理密钥。

 -使用AzureKeyVault可以集中存储密钥、控制分发。

减少密钥泄露。

 -TFS很好的集成了AzureKeyVault,可以在构建发布定义中方便的获取密钥。

详细说明:

三、示例场景

小编使用Docker的方式进行应用程序的编译、打包以及部署,并且使用的Azure容器镜像仓库进行Docker镜像的管理,每个微服务的编译发布过程中都需要访问密钥进行登录完成镜像的拉取、以及推送动作。

小编需要将Azure容器镜像仓库的访问密钥存储在AzureKeyVault并在多个发布定义中读取并使用从AzureKeyVault获取的容器仓库访问密钥。

四、配置步骤

1.创建AzureKeyVault

登录到Azure门户–点击创建资源–输入keyvault关键词–选择keyVault如下图所示:

输入密钥库名称,点击创建

点击机密–生成/导入- 输入密钥名称以及值,点击创建

2.关联Azure订阅

TFS关联Azure订阅之前需要先到Azure门户完成ServicePrinciple的创建,这里不做详细介绍。

请参考–

点击服务–新建服务终结点–Azure资源管理器

填写Azure订阅认证信息

3.配置变量组

为了方便此密钥可以在多个构建、发布定义中使用,这里没有使用进程变量,而是使用变量组的方式来实现变量共享。

点击版本和发布–库–创建变量组

变量组默认集成了AzureKeyVault,勾选AzureKeyVault并选择对应的订阅以及刚刚创建的AzureKeyVault实例,点击添加。

选择需要导入到此变量组的密钥,点击确定

添加完成后,如下图所示

4.发布定义关联变量组

编辑发布定义,选择变量–变量组–链接变量组

选择需要链接的变量组,并指定变量组作用范围:

发布:

可以作用于整个发布定义,以及所有的环境,适合通用性的变量,比如我们刚刚创建

的Azure容器仓库访问密钥。

环境:

可以应用某个变量组到特定的环境,例如数据库链接字符串,可以分别创建

Dev、QA、Prod变量组,并分别指定变量组范围到具体环境。

点击保存,完成变量组关联

5.发布定义中使用变量

由于AzureKeyVault已经导入到了变量组,所以在发布中使用KeyVault的方式与使用普通变量的方式一样。

直接通过$(ACR-PASSWORD)即可使用,如下图所示:

触发部署动作,部署阶段系统会自动下载我们导入的KeyVault对象密钥,并存储到变量中,供用户使用。

如下图所示:

五、总结

通过AzureKeyVault集中密钥管理的方式,密钥持有者不再需要存储密钥信息到构建、发布定义,有效的防止了密码泄漏的风险,由于密码集中管理到Azure,构建、发布定义使用时自动下载密钥,避免了因为密码失效导致的构建、发布失败等各种问题。

结合变量组的方式定义变量,可以在多个构建、发布定义中使用变量,避免了在多个发布、构建定义维护重复变量的成本。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1