设置 Vault CLI
如果您已在使用 HashiCorp 保险库命令行界面 (CLI),那么可以使用其 CLI 格式和准则与 IBM Cloud® Secrets Manager进行交互。
所有操作都遵循可用于保险库文件 CLI 的准则。 要了解有关使用保险库文件 CLI 的更多信息,请查看 保险库文件文档。
先决条件
-
创建 IBM Cloud API 密钥 或生成 IBM Cloud IAM 访问令牌。
通过提供帐户凭证,保险库可以了解您是谁,以及您是否具有针对 Secrets Manager 实例运行特定保险库命令的正确访问级别。
-
可选: 下载并安装 jq。
jq
可帮助您对 JSON 数据进行切片。 在本教程中使用jq
来抓取和使用在调用 IAM Identity Service API 时返回的访问令牌。
设置环境
首先,设置环境以使用保险库文件访问 Secrets Manager 服务实例。 首先创建用于设置向保险库文件认证所需的凭证的 shell 脚本。
-
在项目目录中,创建
login-vault.sh
文件。touch login-vault.sh
-
将以下脚本复制并粘贴到
login-vault.sh
中,然后更新占位符值。#!/bin/sh IBM_CLOUD_API_KEY="xxxxx" export VAULT_ADDR="https://<instance_ID>.<region>.secrets-manager.appdomain.cloud" export IAM_TOKEN=`curl -s -X POST \ "https://iam.cloud.ibm.com/identity/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Accept: application/json" \ -d "grant_type=urn%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey&apikey=$IBM_CLOUD_API_KEY" | jq -j ".access_token"`
根据下表替换占位符值。
提取令牌所需的必要变量 变量 描述 IBM_CLOUD_API_KEY
对 Secrets Manager 实例至少具有 查看者 平台访问权 和 读者 服务访问权 的 IBM Cloud API 密钥。 VAULT_ADDR
对于 Secrets Manager 实例唯一的保险库 API 端点。 您可以在 Secrets Manager 用户界面的端点页面中找到您的唯一端点 URL,或 通过 HTTP 请求检索。
-
通过在命令行中运行
chmod
命令,将该文件标记为可执行文件。chmod +x login-vault.sh
-
运行脚本以设置环境变量。
source ./login-vault.sh
-
可选。 通过将环境变量打印到命令行窗口,验证是否正确设置了这些环境变量。
echo $VAULT_ADDR && echo $IAM_TOKEN
输出结果可能与下面的示例类似。
https://e415e570-f073-423a-abdc-55de9b58f54e.us-south.secrets-manager.appdomain.cloud eyJraWQiOiIyMDIwMTAxODE3MDEiLCJhbGciOiJSUzI1NiJ9.eyJpYW1faWQi...(truncated)
登录到保险库文件
配置环境后,登录到保险库文件以开始与 Secrets Manager 实例进行交互。
-
使用 IBM Cloud IAM 令牌向保险库文件认证。
vault write auth/ibmcloud/login token=$IAM_TOKEN
以下屏幕显示示例输出。
Key Value --- ----- token s.5DQYF57xU1qOAIj2PhnMC39H token_accessor C14JDJ6KtwQKQR5UNR5NIC7J token_duration 1h token_renewable true token_policies ["default" "instance-manager"] identity_policies [] policies ["default" "instance-manager"] token_meta_grant_type urn:ibm:params:oauth:grant-type:apikey token_meta_name test-ibm-cloud-api-key token_meta_resource crn:v1:bluemix:public:secrets-manager:us-south:a/791f5fb10986423e97aa8512f18b7e65:e415e570-f073-423a-abdc-55de9b58f54e:: token_meta_user iam-ServiceId-222b47ab-b08e-4619-b68f-8014a2c3acb8 token_meta_bss_acc 791f5fb10986423e97aa8512f18b7e65
-
使用上一步中返回的
token
值登录到保险库文件。vault login <token>
以下屏幕显示示例输出。
Success! You are now authenticated. The token information displayed is already stored in the token helper. You do NOT need to run "vault login" again. Future Vault requests will automatically use this token. Key Value --- ----- token s.6yFk0Z1IRi0Yc5DtwIKuENDJ token_accessor BnEHQuAxTiHJGhP1x0hNqagV token_duration 57m58s token_renewable true token_policies ["default" "instance-manager"] identity_policies [] policies ["default" "instance-manager"] token_meta_grant_type urn:ibm:params:oauth:grant-type:apikey token_meta_name test-ibm-cloud-api-key token_meta_resource crn:v1:bluemix:public:secrets-manager:us-south:a/791f5fb10986423e97aa8512f18b7e65:e415e570-f073-423a-abdc-55de9b58f54e:: token_meta_user iam-ServiceId-222b47ab-b08e-4619-b68f-8014a2c3acb8 token_meta_bss_acc 791f5fb10986423e97aa8512f18b7e65
现在,您可以使用 Vault CLI 命令与 Secrets Manager 实例进行交互。 要了解更多信息,请查看 CLI 参考。