Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
teller — 開発者向けクラウドネイティブシークレット管理 - シークレットのためにコマンドラインを離れる必要はありません | Kitploit
ツール/GitHubGitHub/tellerops/teller
クラウドインフラストラクチャセキュリティコード分析クラウドセキュリティDevSecOpsシークレット検出
GitHubtellerops/teller

teller

開発者向けクラウドネイティブシークレット管理 - シークレットのためにコマンドラインを離れる必要はありません

リポジトリを見る
3.2k2016ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有






:computer: シークレットを使うためにターミナルを離れる必要はありません
:pager: クラウド環境で作業するための簡単でクリーンなワークフローを作成します
:mag_right: シークレットをスキャンしてシークレットの蔓延と戦います


Teller - 開発者のためのオープンソースユニバーサルシークレットマネージャー

開発、テスト、アプリのビルド中にシークレットを使うためにターミナルを離れる必要はありません。

カスタムスクリプト、.zshrc ファイル内のトークン、bash 履歴に残る見える EXPORT、ワークステーション周辺に置き忘れられた .env.production ファイルなどを使う代わりに、teller を使って、お好みのヴォールト、キーストア、クラウドサービスに接続するだけで済みます(Teller は Hashicorp Vault、AWS Secrets Manager、Google Secret Manager などに対応しています)。

Teller は、自分自身の環境を整頓するためにも、チームのプロセスやベストプラクティスとしても使用できます。

teller を使ったクイックスタート

バイナリをダウンロード releases からバイナリを入手します。

ソースからビルド この方法を使えば、ソースコードを目視確認し、レビューし、自分でコピーをビルドできます。

これにより、バイナリがローカルマシンにインストールされます:

root@kitploit:~
$ cd teller-cli
$ cargo install --path .

新しい設定を作成

root@kitploit:~
$ teller new
? Select your secret providers ›
⬚ hashicorp_consul
⬚ aws_secretsmanager
⬚ ssm
⬚ dotenv
⬚ hashicorp
⬚ google_secretmanager

次に、新しく作成された .teller.yml を編集して、プロバイダーに必要なマップとキーを設定します。

teller.yml を見てみる

teller YAML はプロバイダーを記述し、各プロバイダー内の map は以下を記述します:

  • キーと値のペアを取得するルートパス
  • そのような各マップについて、後で操作に使用する一意の id
  • 各マップについて、オプションの特定のキー名マッピング - ソースプロバイダーから取得するキーの名前を変更できます

以下は設定ファイルの例です。設定の読み込み中に環境変数を取得するなどのテンプレート構造も含まれていることに注意してください:

root@kitploit:~
providers:
  hashi_1:
    kind: hashicorp
    maps:
      - id: test-load
        path: /{{ get_env(name="TEST_LOAD_1", default="test") }}/users/user1
        # if empty, map everything
        # == means map to same key name
        # otherwise key on left becomes right
        # in the future: key_transform: camelize, snake_case for automapping the keys
        keys:
          GITHUB_TOKEN: ==
          mg: FOO_BAR
  dot_1:
    kind: dotenv
    maps:
      - id: stg
        path: VAR_{{ get_env(name="STAGE", default="development") }}

これらのプロバイダーは、hashi_1 や dot_1 として指定できるようになりました。Teller はデフォルトで、すべてのプロバイダーから指定されたデータを取得します。

機能

🏃 サブプロセスの実行

デモ用 / 本番用の設定でプロセスを実行するために、環境変数を手動でエクスポートしたり設定したりしていませんか?

.env.production を使用して、ローカルプロジェクト自体に公開してしまい、痛い目にあったことはありませんか?

teller と、詮索する目に何も公開しない .teller.yml ファイルを使えば、ゼロリスクで流暢かつシームレスに作業できます。クォートも必要ありません:

root@kitploit:~
$ teller run --reset --shell -- node index.js

🔎 変数の確認

これにより、teller が取得した現在の変数が出力されます。もちろん、各変数の最初の2文字だけが表示されます。

root@kitploit:~
$ teller show

📺 ローカルシェルへの取り込み

シェルスクリプトや dotfile にシークレットをハードコードしていませんか?

場合によっては、変数を現在のシェルに eval で取り込むのが理にかなっています。例えば .zshrc では、すべてを .zshrc ファイル自体にハードコードするよりも、teller を使う方がはるかに理にかなっています。

その場合、次を追加する必要があります:

root@kitploit:~
eval "$(teller sh)"

🐳 簡単な Docker 環境

あらゆる種類の変数を取得して設定するのにうんざりしていて、それらがシェル履歴に残るのも心配ですか?

今後はこのワンライナーを使いましょう:

root@kitploit:~
$ docker run --rm -it --env-file <(teller env) alpine sh

⚠️ シークレットのスキャン

Teller は、シークレットの蔓延やハードコードされたシークレットへの対策に役立ち、ヴォールトを操作するための最高の生産性ツールにもなります。

また、CI に統合して、DevSecOps パイプラインのシフトレフトセキュリティツールとして機能させることもできます。

次のコマンドを実行して、コード内のヴォールトに保存されたシークレットを探します:

root@kitploit:~
$ teller scan

次のように CI でリンターとして実行できます:

root@kitploit:~
run: teller scan --error-if-found

何か見つかった場合、ビルドを中断します(終了コード 1 を返します)。

また、--json で結果を JSON としてエクスポートしたり、-b でバイナリファイルをスキャンしたりできます。

♻️ プロセス出力、ログ、ファイルからシークレットを伏せ字化(redact)する

teller はインフラ全体の redaction ツールとして使用でき、プロセスの出力を伏せ字化しながら実行したり、ログやログのライブテールをクリーンアップしたりできます。

プロセスの出力、tail、ログを teller にパイプすると、それらをライブで伏せ字化できます:

root@kitploit:~
$ cat some.log | teller redact

tail -f でも動作します:

root@kitploit:~
$ tail -f /var/log/apache.log | teller redact

最後に、伏せ字化したいファイルがある場合も、それを行うことができます:

root@kitploit:~
$ teller redact --in dirty.csv --out clean.csv

--in を省略すると Teller は stdin から読み取り、--out を省略すると Teller は stdout に出力します。

📜 テンプレートに値を埋め込む

カスタムテンプレートに値を埋め込むことができます:

root@kitploit:~
$ teller template --in config-templ.t

テンプレート形式は Tera で、これは liquid や handlebars と非常に似ています。

以下はテンプレートの例です:

root@kitploit:~
production_var: {{ key(name="PRINT_NAME")}}
production_mood: {{ key(name="PRINT_MOOD")}}

🔄 プロバイダー間でのデータのコピー/同期

プロバイダー間で同期したい場合は、teller copy で行うことができます。

特定のマッピングキーの同期

<provider name>/<map id> 形式を使用して、あるプロバイダーのマッピングを別のプロバイダーにコピーできます:

root@kitploit:~
$ teller copy --from source/dev --to target/prod,<...>

この簡素な例では、次の設定ファイルを使用します:

root@kitploit:~
providers:
  dot1:
    kind: dotenv
    maps:
      - id: one
        path: one.env
  dot2:
    kind: dotenv
    maps:
      - id: two
        path: two.env

これにより、次のことを行います:

  1. ソースマッピングからすべてのマップされた値を取得する
  2. 各ターゲットプロバイダーについて、一致するマッピングを見つけ、ソースからそのマッピングに値をコピーする

デフォルトでは、コピーはターゲットマッピングを 更新(upsert)します。置き換えたい場合は --replace を使用してください。

🚲 プロバイダーへの書き込みと複数プロバイダーへの書き込み

Teller プロバイダーは 書き込み ユースケースをサポートしており、プロバイダー へ 値を書き込むことができます。

この機能は、teller.yml ファイル内の定義に基づいて動作することを忘れないでください:

root@kitploit:~
$ teller put --providers new --map-id one NEW_VAR=s33kret

この例では、次の設定が使用されています:

root@kitploit:~
providers:
  new:
    kind: dotenv
    maps:
      - id: one
        path: new.env

いくつかの注意点:

  • 値は key=value 形式のキーと値のペアで、複数のペアを一度に指定できます
  • リテラルの機密値を指定する場合は、履歴に機密情報が記録されないように ENV 変数を使用してください
  • --providers フラグを使用すると、一度に1つ以上のプロバイダーにプッシュできます

❌ プロバイダーからの削除と複数プロバイダーからの削除

Teller プロバイダーは、プロバイダー から 値を 削除する ことをサポートしています。

root@kitploit:~
$ teller delete --providers new --map-id one DELETE_ME

いくつかの注意点:

  • 削除するキーを複数指定できます。例:
  • --providers フラグを使用すると、一度に1つ以上のプロバイダーにプッシュできます

YAML YAML 形式でのエクスポート

XXX TODO: コマンドエクスポートの仕組みを書き直す

YAML 形式でエクスポートできます。GCloud に適しています:

root@kitploit:~
$ teller export yaml

形式の例:

root@kitploit:~
FOO: "1"
KEY: VALUE

JSON JSON 形式でのエクスポート

JSON 形式でエクスポートできます。jq や他のワークフローにパイプするのに適しています:

root@kitploit:~
$ teller export json

形式の例:

root@kitploit:~
{
  "FOO": "1"
}

プロバイダー

プロバイダーとその設定値の一覧は、ドキュメント で確認できます。

テストチェックリスト:

  • Windows 上の docker: Docker を使用するコンテナベースのテストがある場合は、#[cfg(not(windows))] を使用して Windows 上では除外してください。

  • リソースのセマンティクス: プロバイダーを構築する際は、空 と 見つからない を2つの異なるセマンティクスとして扱います。プロバイダーが明示的な「見つからない」セマンティクス(404、NotFound など)をサポートしている場合は、Error::NotFound を使用します。それ以外の場合、プロバイダーが「見つからない」セマンティクスを空のデータバッグとして通知するときは、空の KV[] を返します(つまり、「空」のセマンティクスを「見つからない」に変換しないでください)。

テスト

テストは次のコマンドで実行します:

root@kitploit:~
$ cargo test --all --all-features

また、マシンに Docker(または同等のもの)が必要です。

謝辞:

すべての Contributors へ - あなたたちがこれを実現しています。ありがとうございます!

行動規範

Teller は CNCF Code of Conduct に従います。

著作権

Copyright (c) 2024 @jondot. 詳細は LICENSE を参照してください。

ツールをダウンロード