概念と基礎知識
Amuletは保守終了した実験的プロジェクトです。このページは既存利用者向けに当時の概念を保存していますが、保証境界と移行手順を優先してください。新規production利用は推奨しません。
1. ターミナルとは「対話」の窓
ターミナル(コマンドライン、コンソールとも呼ばれます)は、文字を使ってコンピュータに直接命令を出すための窓口です。
- macOS / Linux:
ターミナル.appやzsh,bash - Windows:
PowerShellやコマンドプロンプト,Windows Terminal
Amuletは、このターミナル上で動く CLI(Command Line Interface)ツール です。マウスでボタンをクリックする代わりに、コマンド(文字列)を打ち込んで操作します。
2. ディスクとメモリの決定的な違い
セキュリティを理解する上で、一番大切なのが 「情報の保存場所」 です。
| 場所 | 特徴 | セキュリティ的な性質 |
|---|---|---|
| ディスク (SSD/HDD) | 電源を切ってもデータが残る(ファイル) | 「痕跡」が残る。うっかり盗まれたり、AIに読み取られるリスクがある。 |
| メモリ (RAM) | 実行中プロセスが使う一時的な作業領域 | 永続保存を減らせるが、特権プロセス、debug、swap、ホスト侵害からは露出し得る。 |
Amuletの答え
多くのツールは .env という ファイル(ディスク) にパスワードを書き込みますが、これは「鍵をかけずに机の上に置く」ようなものです。
Amuletはシークレット値を暗号化したvaultとしてディスクに置き、unseal時には平文を出力します。これは保存時の偶発的な露出を減らせますが、呼び出し元、shell、下流process、swap構成、logが平文を保存・露出する可能性は残ります。
3. 「標準入出力」と「パイプ」
Amuletを使いこなす鍵は、Unix/Linuxの伝統的な仕組みである 「標準入出力」 です。
- 標準入力 (stdin): プログラムに情報を「流し込む」入り口。
- 標準出力 (stdout): プログラムが結果を「吐き出す」出口。
パイプ | というバケツリレー
ターミナルでは、|(パイプ)という記号を使って、あるプログラムの「出口」を別のプログラムの「入り口」に繋ぐことができます。
echo -n "my-secret-key" | amulet seal MY_KEYこのコマンドでは、
echoが秘密の文字列を吐き出し、- そのままファイルに書き込むことなく、
- 空中(メモリ経由) で直接
amuletに渡しています。
このpipelineでは平文ファイルを作らずに受け渡せます。ただし、zero-traceを保証するものではありません。
4. Windows ユーザーの方へ
Windowsの PowerShell でも、同じようにパイプを使った操作が可能です。ただし、文字の扱い(エンコーディング)に少し癖があります。
- Unix系:
echo -n "value" | ... - PowerShell:
echo "value" | ...(デフォルトで末尾に改行が入ることがあるため、Amuletではこれらを適切に処理するよう設計されています)
Windows環境でも同じstdin/stdoutのworkflowを使えますが、ホスト侵害や平文出力に関する制限は同じです。
5. Amulet の立ち位置(AI時代のセキュリティ)
最近では、GitHub Copilot や ChatGPT などの AIアシスタント がコードをスキャンして助けてくれます。これは非常に便利ですが、一つ大きなリスクがあります。
「AIは、プロジェクト内にある .env ファイルや平文の秘密情報を、学習データやプロンプトとして読み取ってしまう可能性がある」 ということです。
Amuletが低減できること
値をvault内で暗号化しておくことで、誤コミットや通常のプロジェクトファイルだけを読むAIツールへの偶発的な露出を減らせます。Amuletを実行できる、同じuser sessionを観測できる、または復号credentialへアクセスできるagentからは保護できません。
次のステップ
既にAmuletを利用している場合は、保証境界と移行手順を確認してください。インストールページは歴史資料・復旧資料としてのみ残しています。