鍵を発行しない運用
「開発用のAPIキーを、毎回発行して配る必要はあるの?」
会社のアカウントでログインし、配る長期キーを減らす方法を見てみましょう。
01困りごと
鍵の管理が増えていく
長期キーの管理保管も期限も交換も、APIキーが増えるほど大変だ……。
02工夫
会社のIDで権限を渡す
対応方式を確認対応するツールなら、会社のアカウントに利用権限を付けよう。
03試す
ブラウザでログイン
資格情報は残るログインして通行証を受け取った。この通行証で使えるんだ。
04改善
長期キーを減らせた
管理する対象が変わる配るAPIキーが減った!通行証の保護と失効管理は続けよう。
なぜ長期の鍵の配布を減らすのか
手元の作業ツールからデータベースやクラウドを管理するとき、長期のAPIキーを発行して貼り付ける以外の方法もあります。対応するツールではブラウザで本人を確かめ、必要な資格情報を取得します。手動で鍵を配る場面を減らし、誰に権限を渡したかを管理しやすくします。
鍵を発行しないログインの流れ
各ステップ・参加者・分岐をクリックすると、その仕組みの説明がここに表示されます。
この図をテキストで読む
シーケンス図「鍵を発行しないログインの流れ」。参加者3人、ステップ5個。 【参加者】(左から右) - あなた: ブラウザで本人確認 - 作業ツール: パソコン上の道具 - クラウドサービス: DB・クラウドの受付 【流れ】(上から下へ) ── ① ブラウザでログイン・必要時に再認証 ── 1. 作業ツール → あなた: ブラウザを開いて本人確認を依頼 2. あなた → クラウドサービス: ブラウザでログイン(二段階認証) 3. クラウドサービス → 作業ツール: 短命の通行証を発行(応答) ── ② 日々の作業(鍵は登場しない) ── 4. 作業ツール → クラウドサービス: 通行証を自動で提示して作業 5. クラウドサービス → 作業ツール: 有効性を確認して実行(応答)
もし API キーを配っていたら?
各ステップ・参加者・分岐をクリックすると、その仕組みの説明がここに表示されます。
発行した瞬間から、保管・配布・更新・失効の管理が一生続く
この図をテキストで読む
シーケンス図「API キーを配る運用」。参加者2人、ステップ3個。 【参加者】(左から右) - 発行する人: 鍵の一生を管理 - 各メンバーの PC: 鍵が居座る 【流れ】(上から下へ) 1. 発行する人(自身で処理): 管理画面で API キーを発行 2. 発行する人 → 各メンバーの PC: 全員に配って設定ファイルに保管 3. 発行する人 → 各メンバーの PC: 更新のたびに全員へ配り直し
鍵を渡さず、担当者に権限を渡す
データベースの管理を引き継ぐとき、共通の管理用キーをチャットで渡すと、後から誰が持っているか追いにくくなります。各担当者のアカウントに必要な権限を付け、本人としてログインする方法を使えるか確認します。
たとえばNeon CLIはブラウザ認証で利用でき、管理用APIキーの手動発行を省けます。ただし、ログイン後の資格情報は設定ファイルやOSのキーチェーンへ保存されるため、その保存先は保護します。
Google Cloudなどのクラウドでも、組織の権限管理を使って担当者のアカウントへ必要な権限を渡します。担当を外すときは権限を解除し、既存セッションや発行済み資格情報へどう反映されるかを確かめます。
人がいない自動処理は、どう入る?
テストなどを自動で行う仕組み(CI)や公開の自動処理には、ブラウザを開く担当者がいません。そこで、個人のアカウントを使い回すのではなく、実行している処理自体のIDを相手に確かめてもらいます。
対応する環境では、外部のIDを確認する仕組み(OIDC)を使う連携などで、短期の資格情報を取得します。どのリポジトリや実行条件を信頼するかを絞り、処理に必要な権限だけを付けます。自動処理だから長期の鍵が必須、というわけではありません。
鍵が必要な場合の扱い
やむを得ず長期の鍵を使う場合は、個人ではなく組織で管理し、権限を最小に絞って金庫に預けます。交換・失効の手順も決めます。
押さえておきたい用語
- ブラウザ経由のOAuth / OIDC
- API キー
- 短命トークン
- 招待(メンバーシップ)
- 自動処理のID連携(OIDC / WIF)