
API キー管理ガイド: SendGrid の具体例で学ぶ推奨構成
はじめに
本記事では、SendGrid を例に、 API キー漏出時のリスクと、推奨されるキーの扱い方を整理します。
API キーとは
API を呼び出す権限を与える秘密情報の総称です。本人確認の代替となるため、第三者に取得されると正規ユーザーになりすまされます。生成・保管・受け渡し・失効の各工程を管理すること、および、権限の最小化と、監査できる状態の担保が重要です。
SendGrid とは
SendGrid は、トランザクションメールとキャンペーン配信を提供するクラウド型メール配信基盤です。Mail Send API や管理系 API を備え、ドメイン認証、レピュテーション管理、イベント計測を通じて配信のオブザーバビリティを提供します。
対象読者
- API キーを利用してシステムを開発・運用している方
- セキュリティ運用の担当者
参考
API キーが漏出するとどうなるのか
API キーが漏出してしまうと、攻撃者は正規ユーザーになりすまして API を呼び出せます。たとえば SendGrid の API キーは Mail Send API や管理系 API への入口です。漏出すると、攻撃者は正規の送信者になりすましてメールを大量送信するなどの操作を行えるようになります。その結果として、次のような問題が生じる可能性があります。
- 不正送信の急増によるブロックやスパム判定の増加
- アカウントが審査対象になり、状況によっては一時停止される
- 送信ドメインと送信 IP のレピュテーション低下
- 課金超過の発生
ハードコーディングの禁止
API キーをコードに埋め込まないことが重要です。
なぜハードコーディングが危険か
- 履歴からの再現: Git の履歴やバックアップに残り、削除後も過去コミットから復元可能
- 意図せぬ公開: 個人リポジトリや検証用ブランチの公開、スクリーンショット共有、エラーログ貼付からの漏出
- 監査不能: 誰がいつ触れたか不明瞭で、退職や委託終了後に追跡ができない
安全な置き場所と渡し方
- 置き場所: クラウドのシークレットマネージャに保管し、用途別と環境別で分割し、名称とラベルによる識別を行う
- 渡し方: 実行ロールに最小権限を付与し、起動時にランタイムが環境変数として一時注入
- 記録と可視化: 取得イベントの監査ログ化
コード上の API キーはゼロ・保管は金庫・受け渡しは環境変数・参照は最小権限、という四点を揃えることが重要です。これで、API の漏出リスクが大きく下げられます。
API キーの権限設定とローテーション
API キーに最小権限と定期ローテーションを適用することで、被害範囲を局所化することができます。
-
権限スコープの最小化
API キーを使ってアクセスできる機能の範囲を適切に設定します。SendGrid では API Key Permissions を Custom Access に設定します。たとえば送信だけが必要なら Mail Send のみを許可します。
-
定期ローテーション
定期的に新しい鍵を発行し、旧鍵を無効化することで、漏出時の悪用可能期間を短縮し、権限変更や担当者異動に伴う問題を回避できます。
IP 制限でつくる第二の防壁
特定の IP にのみアクセスを制限することで、鍵が漏れても外部から使えない状態を作ることが可能です。SendGrid では IP 許可リストでアクセス可能な IP アドレス範囲を設定できます。
なぜ IP 制限が有効か
- 盗難前提の多層防御: API キーが漏れても、許可外ネットワークからの呼び出し遮断
- 影響範囲の局所化: 本番と検証の送信元を分離しリスクを減らす
- 誤用の早期検知: 許可外アクセスの拒否ログ、異常兆候の可視化
SendGrid での設定方法
- Settings > IP Access Management を開く
- Add IP Addresses で IP を登録
この設定で、認証は API キー、認可は IP 許可リストという二段構えになります。鍵が漏れても、許可外の場所からは実害に至りにくい状態を維持できます。
ログの取得とアラート設定
継続的な監視を行うことで、異常を早期に検知することができます。SendGrid では下記のような方法で監視が可能です。
- ログ収集: Email Activity API 等を使用し定期取得
- アラート設定: Settings > Alert Settings で Email Credit Usage を有効化
もし不正アクセスが起きたら
下記の対処方法が有効です。
- 当該 API キーの無効化
- IP 許可リストの最小化
- 管理アカウントのパスワードリセット
- MFA 再登録
CSV の取得
SendGrid では、 Activity メニューから、該当期間やイベント種別を指定して過去の Activity ログをエクスポートできます。調査のために役立てることができます。
まとめ
本記事では、API キー全般の扱いに関する指針を整理しました。記事の中で紹介した手法を実践することで、認証情報の悪用による不正操作のリスクを下げられます。今回は特に SendGrid を例に、具体的な設定方法を記載しました。利用するサービス次第で手順は異なるため、自組織に合わせて読み替え、定期的な見直しを行ってください。