Hashicorp保险库设置说明
主题
本文将进一步详细介绍如何安装和设置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键
请确保为密钥对设置密码:
创建密钥后,导出它们:
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:上面突出显示的值
-秘密引擎路径:“秘密”,如上所述
“测试配置”按钮应该通过,保存配置后,Vault将用于存储敏感的GPG签名密钥信息。
