interpolateコマンド
テンプレート内Keeper表記法の、ボルト上シークレット実値への置換
interpolate コマンド
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
セキュリティ上の挙動
重大: シェルインジェクション対策
既定では、eval や source と併用したときのコマンドインジェクションを防ぐため、改行、バッククォート、$, ;, |, &, >, < などのシェルメタ文字を含むシークレットは受け付けません。
安全な使い方:
推奨: ファイルへ書き出してから
sourceする。危険: 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 が必要)
--allow-unsafe-for-eval は、Keeperへの書き込み権限を持つユーザーをすべて信頼できる場合にのみ使ってください。「セキュリティ上の挙動」をご参照ください。
既定値と変換
既定値と変換を含むテンプレート:
実行例
シークレットが存在しないか参照できないときは、既定値が自動的に使われます。変換は取得値と既定値の両方に適用されます。
その他の使い方
標準入力から処理:
複数ファイルを処理:
バックアップ付きインプレース編集:
ドライラン (変更なしで内容確認):
最終更新

