Vault CLI のセットアップ

既に HashiCorp Vault コマンド・ライン・インターフェース (CLI) を使用している場合は、その CLI 形式とガイドラインを使用して、IBM Cloud® Secrets Manager と対話することができます。

すべての操作は、Vault CLI に使用可能なガイドラインに従います。 Vault CLI の使用方法について詳しく知りたい場合は、 Vault のドキュメントをご覧ください。

前提条件

jq は、JSONデータのスライスに役立ちます。 このチュートリアルでは、jqを使用して、IAM IdentityサービスAPIの呼び出し時に返されるアクセス・トークンを取得して使用します。

環境の設定

まず、Vault を使用して、Secrets Manager サービス・インスタンスにアクセスするための環境をセットアップします。 まず、Vault への認証に必要な認証情報を設定するシェルスクリプトを作成します。

  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 インスタンスに固有の Vault API エンドポイント。

    ユーザー固有のエンドポイント URL は、Secrets Manager UI の**「エンドポイント」**ページ、または 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)
    

Vault へのログイン

環境を構成したら、Secrets Manager インスタンスとの対話を開始するために、Vault にログインします。

  1. IBM Cloud IAM トークンを使用して、Vault に認証します。

    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にログインします。

    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 リファレンスをチェックしてください。