APIキーを安全に共有する

使用後に消える暗号化リンクで、開発者にAPIキーを安全に渡そう。

問題

SlackチャンネルやメールスレッドにペーストされたAPIキーは、そのチャンネルの全メンバーに見え、検索にインデックスされ、ログに永続する。漏洩したAPIキーは、本番サービスやデータベース、課金アカウントへのフルアクセスを与えることがある――監査証跡すら残らないことも多い。

Vaulted のサポート内容

Vaultedを使えば、APIキーは送信前にブラウザ上でAES-256-GCMによって暗号化される。リンクは設定した閲覧回数に達すると期限切れとなり、古いメッセージにキーが残り続けるリスクを排除する。ゼロ知識アーキテクチャにより、Vaulted自身もそのキーを読み取ることができない。

手順

  1. APIキーをVaultedに貼り付ける
  2. 閲覧回数の上限を選ぶ(例:1人の受信者なら1回)
  3. 必要としている開発者にリンクを共有する
  4. 開発者がリンクを開いてキーをコピーし、リンクは期限切れとなる

コマンドラインからAPIキーを共有する

ブラウザを開かずにVaulted CLIでAPIキーを共有できる: npx vaulted-cli "sk_live_abc123" --views 1 --expires 1h。さらにセキュリティを高めるにはパスフレーズを追加できる: npx vaulted-cli "sk_live_abc123" -v 1 -p mypassphrase。グローバルインストールは npm install -g vaulted-cli。

GitHub ActionsでAPIキーを共有する

Vaulted GitHub ActionでCI/CDワークフロー内のAPIキーを共有できる: uses: vaulted-fyi/share-secret@v1 でsecretにAPIキーを設定する。このActionはクライアントサイドで暗号化し、自己消滅リンクを出力する。GitHub Marketplaceで公開中。