interpolateコマンド

テンプレート内Keeper表記法の、ボルト上シークレット実値への置換

interpolate コマンド

説明: テンプレートに書かれたKeeper表記法を、ボルト上のシークレット実値に置き換えます。interpolate コマンドは表記法の参照を含むファイルを読み、ボルトから値を取り出して参照を実値に差し替えます。デプロイやCI/CD、シェル用の環境変数ファイルなど、安全に構成ファイルを用意する用途向けです。

パラメータ:

format: ksm interpolate [INPUT_FILE...] [OPTIONS]

オプション:

オプション
短縮形
説明

INPUT_FILE

入力テンプレート。未指定時は標準入力から読み取り

--output-file PATH

-o

標準出力ではなく指定ファイルへ書き出し

--in-place

-w

インプレース編集 (元ファイルを上書き)

--backup-suffix SUFFIX

-b

-w 使用時のバックアップ拡張子 (既定: .bak)

--dry-run

-n

変更せず置換内容のみ表示

--verbose

-v

置換ごとの詳細出力

--continue

-C

エラーが出ても処理継続

--validate

表記法がすべて解決済みであることの検証

--allow-unsafe-for-eval

[危険] eval / source 用にシェルメタ文字を含むシークレットを許可 (インジェクションリスクあり)

共通フラグ: --profile-name, --ini-file, --color/--no-color, --cache/--no-cache


Keeper表記法の形式

interpolate コマンドは、既定値や変換を伴う拡張Keeper表記法に対応します。

基本的な表記:

既定値付き(シェル風の :- 構文):

変換付き(パイプ | 演算子):

利用できる変換: base64, base64url, urlencode, urlencodeplus, upper, lower, trim, sha256, md5


セキュリティ上の挙動

安全な使い方:

  1. 推奨: ファイルへ書き出してから source する。

  2. 危険: Keeperへの書き込み権限を持つユーザーをすべて信頼できる場合に限り、--allow-unsafe-for-eval を使う。

その他のセキュリティ機能:

  • 出力ファイルは権限 0600 (所有者のみ読み書き)

  • 原子書き込みで途中状態のファイルを避ける

  • .gitignore に含まれないファイルに対するGitの警告

  • パストラバーサル対策


基本的なファイル処理

テンプレート: config.env.template

テンプレートを処理:

結果: config.env (権限 0600、所有者のみ読み書き)

シェル組み込みコマンド

課題: ksm exec では source などのシェル組み込みコマンドは実行できません。

解決: 代わりに ksm interpolate を使います。

例1: ファイルへ書き出す (推奨)

例2: 直接 eval--allow-unsafe-for-eval が必要)

既定値と変換

既定値と変換を含むテンプレート:

実行例

シークレットが存在しないか参照できないときは、既定値が自動的に使われます。変換は取得値と既定値の両方に適用されます。

その他の使い方

標準入力から処理:

複数ファイルを処理:

バックアップ付きインプレース編集:

ドライラン (変更なしで内容確認):

最終更新