Hashicorp保险库设置说明

帕特里克·罗素
2021-11-02 17:45

主题

本文将进一步详细介绍如何安装和设置Hashicorp Vault,以便与JFrog Artifactory一起使用。

影响版本

以下是在本文创作期间测试过的Artifactory和Vault版本:

Hashicorp Vault 1.8.2

JFrog Artifactory 7.24.3

决议

1]安装保险库

安装和配置Hashicorp Vault可以通过几个命令从终端完成。命令以Hashicorp Vault Linux安装文档

curl - ssl https://apt.releases.hashicorp.com/gpg| sudo apt-key add -

Sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com$(lsb_release -cs) main"

Sudo apt-get update && Sudo apt-get install vault

这将安装应用程序,“vault”命令行界面应该在安装后可用。接下来,启动Vault应用程序:

保险库服务器

在本文中,使用“dev”模式。这将显示密封密钥和根令牌。保存这些值,它们将在以后使用:

开封关键:我们[…]dXAI =

根标记南卡罗来纳州:[…]b2Ja

在本文中,Vault的安装将在运行Artifactory的同一台机器上完成。

如果在另一台主机上进行安装,则需要设置以下URL以匹配远程地址。要访问Vault管理api,请设置VAULT_TOKEN的环境变量根标记先前打印的值:

出口VAULT_ADDR = ' http://127.0.0.1:8200 '
出口VAULT_TOKEN = " s.2WVfqFkeTLt3XBivcWuyX7lA "

2]生成GPG密钥

我们记录了如何创建GPG密钥在维基上,但GPG程序的参数需要以特定的方式归档,以便与Vault一起工作:

gpg——full-generate-key

#选择RSA
请选择您需要的密钥类型:

(1) RSA和RSA(默认)

使用默认值:2048
RSA密钥长度可能在1024到4096位之间。

你想要多大的键?(2048) 2048

#为过期日期选择默认值:0
密钥是否有效?(0) <-接受默认值
[…]
这对吗?(y / N) y

#输入用户ID、电子邮件或评论。这是为了跟踪目的,不会影响生成的GPG密钥

真实姓名:例如Joe
邮箱:Ex.Joe@m.si-fil.com
注释:示例GPG键

请确保为密钥对设置密码:

用户添加图片"src=

创建密钥后,导出它们:

gpg——list-secret-keys——keyid-format LONG

/用户/ jfrog / .gnupg / secring.gpg
------------------------------------

第4096R/3AA5C34371567BD2条2016-03-10[有效期:2017-03-10]
uid jfrog
ssb 4096R/42B317FD4BA89E7A 2016-03-10

#导出私钥和公钥到文件
GPG——私有输出。key——armor——export-secret-keys 8F76A58562F73776

GPG——输出公共。钥匙——装甲——出口8F76A58562F73776

3]添加密钥到Vault

我们需要将这些密钥添加到Vault以进行身份验证。最后两个gpg命令应该生成一个“公众。Key / private.key对文件,vault命令行接口接受这些文件作为输入:

Vault kv put secret/gpg_pub_key pub_key=@public.key

Vault kv put secret/gpg_priv_key priv_key=@private.key

vault kv put secret/passphrase pp=Password1

确保值是正确创建的:

Vault kv get secret/gpg_pub_key

Vault kv get secret/gpg_priv_key

保险库kv获得秘密/密码

4]在Vault中为Artifactory创建一个“AppRole

Vault需要了解Artifactory应用程序,以便Artifactory可以对其进行身份验证。首先,我们需要创建一个AppRole文件:

Echo的路径"secret/*" {
能力= ["create", "read", "update", "delete", "list", "sudo"]
}' > artifactory-policy.hcl

然后将这个文件加载到Vault中:

保险库策略请写入artifactory-policy artifactory-policy.hcl

使用Vault API,创建Artifactory AppRole策略.您需要生成一个API令牌来对Vault服务器使用Curl:

创建保险库令牌

>关键值
--- -----
令牌s.SjsIRo41P8YSHGHyr4pL7mug
token_accessor rMj2ug7vBN1g6OXIkLZK8rJl
[…]

然后使用令牌创建AppRole并注册Artifactory:

旋度\
——header "X-Vault-Token: s.SjsIRo41P8YSHGHyr4pL7mug" \
——请求POST \
——data '{"type": " aple "}' \
http://127.0.0.1:8200/v1/sys/auth/approle

旋度\
——header "X-Vault-Token: s.SjsIRo41P8YSHGHyr4pL7mug" \
——请求POST \
——data“{"policies": "artifactory-policy"}”\
http://127.0.0.1:8200/v1/auth/approle/role/artifactory-role

最后,Artifactory还需要appllerole_id而且secret_id物品。这些可以使用curl和Vault令牌检索:

旋度

-header "X-Vault-Token: s.SjsIRo41P8YSHGHyr4pL7mug"

http://127.0.0.1:8200/v1 /认证/ approle /角色/ test-role / role-id

role_id”:“76237 df0 - 463 - e - fad3 - d1cb eb292e5fed20"}

旋度

-header "X-Vault-Token: s.SjsIRo41P8YSHGHyr4pL7mug"

请求后

http://127.0.0.1:8200/v1 /认证/ approle /角色/ test-role / secret-id

“数据”:{"secret_id”:“151年b7163 - 8 d49 - 833 - e - 5398 - 52 - d815b7ddfc”、“secret_id_accessor”:“f981c017-d8fb-fac1-a6c0-acf766e594f9”、“secret_id_ttl”:0}

5]启用Artifactory中的TLS

要使用Vault,您需要在Artifactory应用程序上启用TLS。详细描述了如何做到这一点在这里,所需步骤的概要可参阅以下:

A]通过添加TLS设置启用TLS访问:

#如果文件不存在,没关系vim $ART_HOME/etc/access/access.config.lastest.yml

B .增加以下几行:

Security: tls: true

C .更改文件名:

Cp access.config.latest.yml access.config.import.yml

D .重启Artifactory使更改生效:

服务重新启动

6]在Artifactory中启用Vault

Artifactory需要从Vault中配置三个项目:

- - - - - -Vault Base Url:http://127.0.0.1:8200

- - - - - -AppRole ID:上面突出显示的值

- - - - - -秘密ID:上面突出显示的值

-秘密引擎路径:“秘密”,如上所述

用户添加图片"src=

“测试配置”按钮应该通过,保存配置后,Vault将用于存储敏感的GPG签名密钥信息。