【发布时间】:2022-05-01 00:32:55
【问题描述】:
我可以使用JWT auth方法获取token:
export VAULT_TOKEN=\
$(vault write -field=token auth/jwt/login role=$my_role_name jwt=$CI_JOB_JWT)
在执行上述操作后,我还可以使用vault kv get 获取变量。但是,我不能使用这里描述的 gitlab 的内置方法:
https://docs.gitlab.com/ee/ci/secrets/index.html#use-vault-secrets-in-a-ci-job
test:
stage: validate
secrets:
TESTSECRET:
vault: gitlab-ci/TEST_SEC/value@$SECRET_MOUNT
script:
- echo $TESTSECRET
未返回错误,但未获取密钥。
在 CI 变量中我有:
VAULT_SERVER_URL: "http://myvaultserver.myvaultdomain.net:8200"
VAULT_AUTH_ROLE: "my_role_name"
我不确定 gitlab-ci 是否需要更多配置才能使此内置方法正常工作,因为 Vault CLI 方法(在 CI 作业中)可以正常工作。
【问题讨论】:
-
如果您确信设置和配置正确,您可能需要为此提出问题。
-
可能。他们的文档在内置方法上有点粗略,并且以某种方式他们将“/data”添加到每个保管库路径,即使初始设置没有提到路径中的“/data”字符串。