Vault CLI のセットアップ
既に HashiCorp Vault コマンド・ライン・インターフェース (CLI) を使用している場合は、その CLI 形式とガイドラインを使用して、IBM Cloud® Secrets Manager と対話することができます。
すべての操作は、Vault CLI に使用可能なガイドラインに従います。 Vault CLIの使い方については、 Vaultのドキュメントを参照してください。
前提条件
-
IBM Cloud API キーを作成するか、または IBM Cloud IAM アクセス・トークンを生成します。
ユーザーのアカウントの資格情報を提供すると、Vault はユーザーの身元や、Secrets Manager インスタンスに特定の Vault コマンドを実行するための正しいアクセス権限レベルの有無を理解できるようになります。
-
オプション: jqをダウンロードしてインストールする。
jq
は、JSONデータのスライスに役立ちます。 このチュートリアルでは、jq
を使用して、IAM IdentityサービスAPIの呼び出し時に返されるアクセス・トークンを取得して使用します。
環境の設定
まず、Vault を使用して、Secrets Manager サービス・インスタンスにアクセスするための環境をセットアップします。 Vaultの認証に必要な認証情報を設定するシェルスクリプトを作成することから始めます。
-
プロジェクト・ディレクトリーで、
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 インスタンスに固有の Vault API エンドポイント。 Secrets Manager UI の Endpoints ページで、または HTTP リクエストで取得する ことで、固有のエンドポイント URL を見つけることができます。
-
コマンド・ラインで
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)
Vault へのログイン
環境を構成したら、Secrets Manager インスタンスとの対話を開始するために、Vault にログインします。
-
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
-
前のステップで返された
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 リファレンスをチェックしてください。