IBM Cloud Docs
设置 Vault CLI

设置 Vault CLI

如果您已在使用 HashiCorp 保险库命令行界面 (CLI),那么可以使用其 CLI 格式和准则与 IBM Cloud® Secrets Manager进行交互。

所有操作都遵循可用于保险库文件 CLI 的准则。 要了解有关使用保险库文件 CLI 的更多信息,请查看 保险库文件文档

先决条件

  • 下载并安装保险库文件 CLI

  • 创建 IBM Cloud API 密钥 或生成 IBM Cloud IAM 访问令牌。

    通过提供帐户凭证,保险库可以了解您是谁,以及您是否具有针对 Secrets Manager 实例运行特定保险库命令的正确访问级别。

  • 可选: 下载并安装 jq

    jq 可帮助您对 JSON 数据进行切片。 在本教程中使用 jq 来抓取和使用在调用 IAM Identity Service API 时返回的访问令牌。

设置环境

首先,设置环境以使用保险库文件访问 Secrets Manager 服务实例。 首先创建用于设置向保险库文件认证所需的凭证的 shell 脚本。

  1. 在项目目录中,创建 login-vault.sh 文件。

    touch login-vault.sh
    
  2. 将以下脚本复制并粘贴到 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 请求检索

  3. 通过在命令行中运行 chmod 命令,将该文件标记为可执行文件。

    chmod +x login-vault.sh
    
  4. 运行脚本以设置环境变量。

    source ./login-vault.sh
    
  5. 可选。 通过将环境变量打印到命令行窗口,验证是否正确设置了这些环境变量。

    echo $VAULT_ADDR && echo $IAM_TOKEN
    

    输出结果可能与下面的示例类似。

    https://e415e570-f073-423a-abdc-55de9b58f54e.us-south.secrets-manager.appdomain.cloud
    eyJraWQiOiIyMDIwMTAxODE3MDEiLCJhbGciOiJSUzI1NiJ9.eyJpYW1faWQi...(truncated)
    

登录到保险库文件

配置环境后,登录到保险库文件以开始与 Secrets Manager 实例进行交互。

  1. 使用 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
    
  2. 使用上一步中返回的 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 参考