AxKeyStore
AxKeyStoreは、クライアント側で暗号化して秘密情報を暗号データのみとして保存するセキュアなオープンソースCLI。GitHubを未信頼ストレージに。
AxKeyStoreとは?
AxKeyStoreは、秘密鍵、キー、パスワードを管理するためのセキュアなオープンソースコマンドラインインターフェース(CLI)ツールです。主な目的は、自分のプライベートGitHubリポジトリを暗号化ストレージとして使用しつつ、GitHubを未信頼ストレージとして扱うことです。
AxKeyStoreでは、クライアント側で暗号化を実行します。リモートのGitHubリポジトリに保存されるのは暗号化データのみで、リポジトリに平文の秘密情報は残りません。また、ローカルファイルシステムに秘密鍵、マスターキー、パスワードを平文で保存することもありません。
主な機能
- GitHubプライベートリポジトリを暗号化バックエンドとして使用: 自分が制御するプライベートリポジトリに暗号化バイナリblobとして秘密情報を保存。
- すべての秘密情報処理をクライアント側暗号化: アップロード前に自分のマシンで秘密情報を暗号化。平文の秘密情報はネットワーク上を送信されません。
- ゼロトラスト/多層暗号化モデル: ローカル設定(GitHubアクセストークンやリポジトリ名を含む)を暗号化するLocal Master Key (LMK)と、保存される実際の秘密情報を暗号化するRemote Master Key (RMK)を使用。
- モダンな認証付き暗号化と鍵導出: LMK暗号化にArgon2idとXChaCha20-Poly1305を使用。3層構造により、GitHubに到達するのは暗号化アーティファクトのみ。
- GitHub AppsとDevice Flowによる統一認証: GitHub AppsとDevice Flowを組み合わせてセキュアに認証。
- 初期化と操作のためのCLIワークフロー: ログイン、リポジトリ初期化、シンプルなコマンドセットによる秘密情報管理コマンドを含む。
- 階層カテゴリ整理:
api/production/internalのようなカテゴリで秘密情報を整理。 - マルチプロファイル対応: 異なるログイン、マスターパスワード、GitHubリポジトリで複数の保管庫を管理。
AxKeyStoreの使い方
- CLIをインストール: macOS/Linuxでは提供のシェルインストールスクリプトを実行。WindowsではPowerShellインストールスクリプトを実行。スクリプトはバイナリをダウンロードし、
$HOME/.axkeystore/binに配置、PATHを設定。 - GitHubアカウントでログイン:
axkeystore loginを実行。初回ログイン時にMaster Passwordを設定。このパスワードで機密のローカルGitHubアクセストークンを暗号化。 - 必要なGitHub Appをインストール: ログイン中にCLIがユーザーまたは組織向けGitHub Appインストールリンクを提供。リポジトリアクセスを許可するためアプリをインストール。
- ストレージリポジトリを初期化:
axkeystore init --repo <repo-name>を実行(組織/オーナー指定時はmy-org/my-secret-storeのように)。他のマシンで既に初期化済みの場合は、初期化時にプロンプト。
初期化後、CLIを使ってプライベートGitHubリポジトリの暗号化blobとして資格情報を保存・取得できます。
ユースケース
- 平文で保存せずにGitHubホスト資格情報を保管: APIキー、パスワード、その他の秘密情報を暗号化データのみでプライベートリポジトリに保存。
- カテゴリで環境やドメイン別に秘密情報を分離:
api/production/internalのような階層カテゴリで整理し、環境間を簡単にナビゲート。 - 異なるGitHubリポジトリ間で複数の保管庫を管理: 異なるリポジトリやマスターパスワードで別プロファイルを維持。複数プロジェクトや組織で作業時に便利。
- ローカル資格情報保管をロックダウン: GitHubアクセストークンやリポジトリ名(ローカル資格情報)をLocal Master Keyで暗号化し、ユーザーのMaster Passwordで保護。
- 未信頼リモートストレージでのクロスマシン使用: 別のマシンで同じ暗号化リポジトリを初期化(init時にプロンプト)。リモートは暗号化blobのみを保持し、各クライアントが暗号化を処理。
FAQ
-
AxKeyStoreはGitHubに平文の秘密情報を保存しますか? いいえ。クライアント側で暗号化し、プライベートGitHubリポジトリには暗号化バイナリblobのみを保存します。
-
暗号化キーやマスターパスワードがネットワーク上で送信されますか? プロジェクトでは、平文の秘密情報、マスターキー、パスワードがネットワークに触れないと記述。暗号化は自分のマシンのみで実行。
-
AxKeyStoreはどのような認証を使いますか? GitHub AppsとDevice Flowを使用して認証します。
-
AxKeyStoreはローカルデータをどのように保護しますか? Master PasswordでArgon2idとXChaCha20-Poly1305により暗号化されたLocal Master Key (LMK)を使用し、LMKでGitHubアクセストークンやリポジトリ名などのローカル設定を暗号化。
-
インストールでサポートされるOSは? リポジトリにmacOS/Linux(
install.sh経由)とWindows(install.ps1経由)のインストールスクリプトを提供。
代替案
- クライアント側暗号化の他のCLIベースシークレットマネージャー: ローカルでシークレット暗号化し、暗号テキストのみをリモートバックエンド(S3、Git、その他のストレージ)に保存するツール(類似の非信頼ストレージモデル)を探す。
- 専用パスワードマネージャー(ボルトベースアプリ): 暗号化と同期を管理するローカルアプリやデスクトップ/モバイルボルトを使用;バックエンドがパスワードマネージャー管理のため、プライベートGitHubリポジトリを自分で制御するワークフローと異なる。
- 暗号化ツール付きGitベースシークレットストレージ: Gitに暗号化ファイルを保存し、自身の暗号化ツールに依存する手法;AxKeyStoreに比べ、専用CLIとそのキー管理モデルを使わず、自分で暗号化ワークフローを管理。
- 管理型暗号化のクラウドシークレットマネージャー: 管理システムにシークレットを保存するサービス;AxKeyStoreの記述モデルとは異なり、クライアント側非信頼ストレージアプローチが主設計パターンでない場合あり。
代替品
ClawTick
ClawTickはCLIでcronスケジュールに沿ってWebhookタスクを自動実行するAIエージェント向け基盤。監視・アラート・リトライ・実行ログ搭載。
Falconer
Falconerは、スピード重視のチーム向けの自己更新ナレッジ基盤。社内ドキュメントとコード文脈を一元化して共有・検索できます。
OpenFlags
OpenFlagsはオープンソースのセルフホスト型フィーチャーフラグ管理。アプリSDKでローカル評価し、制御プレーンで安全に段階展開。
skills-janitor
skills-janitorでClaude Codeのスキルを監査・使用状況を追跡し、9つの/コマンドと比較。重複や不備もチェック。依存なし。
Rectify
RectifyはSaaS向けオペレーション統合プラットフォーム。監視・分析・サポート・ロードマップ/変更履歴・エージェント管理を会話で一元操作。
Studio CLI
Studio CLIでターミナルからWordPress Studioの機能を管理。ローカルサイトやWordPress.comのプレビュ-作成・更新・削除、認証に対応。