Azure关键库是一个用于安全管理密钥、机密和证书的产品。

我很乐意宣布两个新功能Azure关键库插入:

这些变化释放出来v1.8但请务必运行最新版本的插件,从那时起就有一些修复。

使用凭据提供者而不是您自己的脚本的一些优点:

  • 您的Jen必威国际有限公司kins作业消耗了无知的凭据,无知Azure Key Vault,因此他们留下了独立的。

  • 提供商集成了现有Jenkins认证用户的生态系统,比如Slack Notifications插件。必威国际有限公司

  • 凭证使用记录在Jenkins凭证跟踪日志中央。必威国际有限公司

  • 必威国际有限公司Jenkins可以同时使用多个凭据提供程序,因此您可以逐步将凭据逐步迁移到Azure Key Vault,同时消耗现有提供程序的其他凭据。

注意:目前仅通过凭证提供程序支持秘密文本凭据,您可以使用配置为代码集成来将Azure键Vault加载到系统凭据提供程序中的秘密,以解决此限制。

开始

安装Azure关键库插入

然后你需要配置插件。

Azure身份验证

有两种类型的认证,你可以使用“Microsoft Azure服务主体”或“Azure资源托管身份”

最简单的快速设置是“Microsoft Azure服务主体”,

$ az ad sp create-for-rbac --name http://服务 - 主体名称在/订阅/ ff251390-d7c3-4d2f-8352-f9c6f0cc8f3b中创建角色分配,“重试角色分配创建:1 /36重试角色分配创建:2/36 {“appid”:“021b5050-9177-4268-a300-7880f2beede3”,“displayname”:“service-princalpal-name”,“名称”:“http://服务 - 主体-Name“,”密码“:”D9D0D1BA-D16F-4E85-9B48-81A45A46448“,”租户“:”7E593E3E-9A1E-4C3D-A26A-B5F71DE28463“}

如果这不起作用,那就看看Microsoft文档创建服务校长。

注意:对于产品来说,“Azure资源的托管身份”更安全,因为不涉及密码,而且你不需要担心服务主体的密码或证书过期。

保险库设置

你需要创建一个保险库并让你的服务主体访问它:

RESOURCE_GROUP_NAME = my-resource-group az集团创建——位置uksouth名称$ RESOURCE_GROUP_NAME库=金库#你会需要一个唯一的名称为穹窿az keyvault创建资源组RESOURCE_GROUP_NAME美元——名称库美元az keyvault制定政策,资源组RESOURCE_GROUP_NAME——名称库\美元——secret-permissions得到列表——spnhttp://service-principal-name

必威国际有限公司詹金斯凭据

下一步是在Jenkins中配置凭据:必威国际有限公司

  1. 点击“凭据”

  2. 单击“系统”(它将显示在侧栏中的凭据链接下方)

  3. 单击“全局凭据(不受限制)”

  4. 点击“添加凭证”

  5. 选择“Microsoft Azure服务校长”Microsoft Azure服务主体下拉

  6. 从上面创建的凭证中填写表单,AppID是“客户ID”,密码为“客户机密”Microsoft Azure服务主凭证配置

  7. 点击“验证服务主体”,你会看到“成功验证了Microsoft Azure服务主体”。

  8. 点击“保存”

必威国际有限公司Jenkins Azure Key Vault插件配置

您现在有一个凭证,您可以用来与Jenkins与Azure资源进行交互,现在您需要配置插件:必威国际有限公司

  1. 返回Jenkins主页必威国际有限公司

  2. 点击“管理jenkins”必威国际有限公司

  3. 点击“系统配置”

  4. 搜索“Azure密钥库插件”

  5. 输入您的保管库URL并选择凭据Azure Key Vault插件配置

  6. 点击“保存”

在Azure密钥库中存储一个秘密

对于此后的阶段,您需要一个秘密,因此让我们现在创建一个:

$ az keyvault秘密集--vault-name $ your_vault --name secret-key  -  value my-super-secret

创建管道

安装管道插件,如果你还没有它。

从Jenkins主必威国际有限公司页,单击“新项目”,然后:

  1. 输入名称,即'key-gault-test'

  2. 点击“管道”

  3. 在管道定义中添加以下内容:

必威国际有限公司Jenkinsfile(陈述管道)
管道{代理任何环境{secret_key =凭据('密钥'阶段{阶段('Foo'){步骤{echo secret_key echo secret_key.substring(0.SECRET_KEY.size ()1//显示正确的秘密被加载,不要为真正的秘密做这个,除非你正在调试} } } }
切换脚本管道 (先进的)

现在,您已经使用本机Jenkins凭据集成成功地从Azure密钥库检索了凭据。必威国际有限公司

配置 - 代码集成

代码插件的配置已被设计为基于人类可读的声明性配置文件配置Jenkins的自肤化方式。必威国际有限公司写这样的文件应该很容易,而不是詹金斯专家。必威国际有限公司

对于许多秘密,凭据提供者足够,但是当与其他插件集成时,您可能需要多于字符串凭据。

你可以使用配置 - 代码插件(AKA JCASC)允许与其他凭据类型集成。

配置身份验证

由于初始启动期间jcasc插件在初始启动期间运行,因此在启动期间jcasc运行之前需要配置Azure键Vault凭据提供程序。

最简单的方法是通过jenkins启动之前设置的环境变量:必威国际有限公司

export AZURE_KEYVAULT_URL=https://my.vault.azure.net export AZURE_KEYVAULT_SP_CLIENT_ID=…出口AZURE_KEYVAULT_SP_CLIENT_SECRET =…出口AZURE_KEYVAULT_SP_SUBSCRIPTION_ID =…出口AZURE_KEYVAULT_SP_SUBSCRIPTION_ID =…

看到Azure-keyVault文档用于其他身份验证选项。

您现在可以在jenkins.yaml文件中引用Azure key vault秘密ID:必威国际有限公司

凭证系统domainCredentials: -凭证:-usernamePassword:描述:“github”ID:“Jenkins-GitH必威国际有限公司ub”密码:“$ {Jenkins-Github-apikey}”范围:全球用户名:“Jenkinsadmin”

感谢您的阅读,请使用右上角的Tweet按钮在Twitter上发送反馈,任何问题或功能请求使用GitHub的问题

关于作者
蒂姆·詹姆纳

必威国际有限公司Jenkins核心维护者,以及Slack,Azure-KeyVault和配置 - 代码插件。蒂姆于2013年开始使用Jenkin必威国际有限公司s,并成为2018年的积极贡献者。蒂姆在他的“自由”时间里享受开源软件。