IBM Cloud Docs
Vault CLI のセットアップ

Vault CLI のセットアップ

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

すべての操作は、Vault CLI に使用可能なガイドラインに従います。 Vault CLIの使い方については、 Vaultのドキュメントを参照してください。

前提条件

  • Vault CLIをダウンロードしてインストールします。

  • IBM Cloud API キーを作成するか、または IBM Cloud IAM アクセス・トークンを生成します。

    ユーザーのアカウントの資格情報を提供すると、Vault はユーザーの身元や、Secrets Manager インスタンスに特定の Vault コマンドを実行するための正しいアクセス権限レベルの有無を理解できるようになります。

  • オプション: jqをダウンロードしてインストールする

    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 エンドポイント。

    Secrets Manager UI の Endpoints ページで、または HTTP リクエストで取得する ことで、固有のエンドポイント URL を見つけることができます。

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