MENU

問い合わせ


    APIキーが漏れて高額請求が来た。払わないといけない?先に決めておく責任分担と、請求を抑える5つの備え

    クラウドやAIのAPIを使ったシステムで、身に覚えのない高額請求が届く。しかも原因は、公開リポジトリ(=ソースコードを置いて誰でも見られる状態にしたサービス)にAPIキーが上がっていたことだった。発注者としては「うちが悪いのか、開発会社が悪いのか、そもそも払う必要はあるのか」と頭が真っ白になる場面です。

    「漏れたAPIキーを他人に使われて高額請求が来た。払わないといけないのか」

    先に結論をお伝えします。請求の扱いは、クラウド事業者との契約と、開発会社との契約の2か所で別々に決まります。どちらも「払わなくてよい」と一律には言えず、事業者の判断で一部が調整される例もあれば、そうならない例もあります。だからこそ、起きてから交渉するのではなく、起きる前に「誰が何を管理し、上限をいくらにするか」を決めておくことが、いちばん確実な備えになります。

    この記事では、請求が誰に向かうのかの考え方、起きてしまった直後の動き方、そして発注の段階で開発会社と決めておきたい5つの備えを、チェックリストと質問例つきで解説します。なお、個別の請求の支払い義務や契約上の責任は、契約内容や事情によって変わります。具体的な判断は、契約書をもとに弁護士や各事業者の窓口へ確認してください。

    目次

    なぜ漏れたキーの請求が、契約者に届くのか

    APIキーは「使った分を請求する権利証」のようなもの

    APIキー(=外部のサービスをプログラムから呼び出すための合言葉)は、持っている人なら誰でもそのサービスを使えるものです。サービス側から見ると、正しい持ち主が使っているのか、キーを拾った第三者が使っているのかは区別できません。そのため、キーを使った分の利用料は、原則としてそのキーが紐づく契約者のアカウントに請求されます。

    クラウド事業者は「責任共有」の考え方を取っている

    大手クラウドでは、事業者が守る範囲(設備やサービス基盤)と、利用者が守る範囲(アカウント、アクセスキー、権限設定など)を分ける「責任共有モデル」という考え方が示されています。

    📰 出典:AWS「責任共有モデル」

    AWSの説明では、クラウドの「中」での設定や、利用者側の認証情報の管理は利用者の責任範囲に含まれます。APIキーやアクセスキーを漏らさないことは、利用者側で守る領域に入ると考えておくのが無難です。

    ただし、実際の請求について、事業者に問い合わせると一部が調整されたという報告が見られる一方、調整されなかったという報告もあります。公式な基準が公表されているわけではないため、「必ず免除される」「必ず請求される」のどちらも前提にはできません。

    開発会社との間では「契約で何を決めていたか」で変わる

    もうひとつの請求先が、開発会社との契約です。たとえば次のような点で、扱いが変わってきます。

    確認する点発注者・開発会社のどちらの責任になりやすいか
    キーを管理していたのは誰か管理していた側の運用ルールが問われやすい
    契約書にセキュリティ要件や秘密情報の取扱いがあるか書いてあれば、それが判断の出発点になる
    納品後か、保守期間中か保守契約に含まれる対応範囲によって変わる
    上限設定やアラートを依頼していたか依頼していたのに未実施なら、実施側の説明が必要になる
    キーの置き場所を決めるルールがあったか決めたルールを守っていたかが論点になる

    どちらが悪いと決めつけず、契約書と作業の記録をもとに事実を並べるのが現実的な進め方です。

    高額請求に気づいた直後にやる5ステップ

    実際に起きてしまった場合の初動です。コマンド操作が必要な部分は、開発会社や情シス担当に依頼してかまいません。

    1. 漏れたキーを無効にする:発行元の管理画面でキーを削除または停止し、新しいキーに入れ替えます。まず被害の拡大を止める作業で、他の作業より優先します
    2. 何に使われたかを確認する:事業者の利用状況の画面や監査ログで、いつ・どのサービスが・どれだけ使われたかを控えます。画面は後から変わるので、スクリーンショットを残しておきましょう
    3. 事業者のサポートへ早めに連絡する:不正利用の疑いがあることを伝え、請求の扱いを相談します。対応は事業者ごとに違うため、結果を保証するものではありません
    4. 開発会社と社内に共有する:誰が・いつ・何を確認したかを時系列で記録します。責任の所在を話し合うのは、止血と記録が済んでからで十分です
    5. 同じキーをほかの場所でも使っていないか調べる:別のシステムや社外の関係者に同じキーを渡していないかを洗い出し、あれば同時に入れ替えます

    キーが漏れたこと自体への対処(再発防止やリポジトリの履歴の扱い)は、別の記事で詳しく説明しています。

    APIキーをチャットやコードに書いてしまった!漏洩したときの対処法と再発防止

    発注の段階で開発会社と決めておきたい5つの備え

    請求の金額を小さく抑える最大の方法は、事前に仕組みを入れておくことです。次の5つは、見積もりや要件の段階で話題にできます。

    備え1:キーを「置いてはいけない場所」を決める

    ソースコード、公開リポジトリ、チャットやメール、スマホアプリの中に、キーを直接書かないというルールを最初に決めます。キーの保管には、クラウドが用意する秘密情報の保管機能(シークレット管理)を使うのが一般的です。誰が使えるかを絞れ、入れ替えもしやすくなります。

    備え2:キーごとに「できること」を絞る

    ひとつのキーで何でもできる状態だと、漏れたときの被害が大きくなります。Google Cloudの資料でも、APIキーは使えるAPIや呼び出し元を制限して使う考え方が案内されています。

    📰 出典:Google Cloud「APIキーの管理のベストプラクティス」

    「このキーは地図の表示だけ」「このキーはこのサーバーからだけ」のように、用途と使える範囲を絞っておくと、漏れても使われ方が限定されます。

    備え3:予算アラートと利用上限を入れる

    請求が高額になるのは、気づくのが遅れて使われ続けるからです。クラウドには、予算を超えそうなときに通知する機能があります。たとえばAWSには、費用が設定額に近づいたらメールなどで知らせる「AWS Budgets」があります。

    📰 出典:AWS「AWS Budgets」

    ここで押さえたいのは、多くの場合、アラートは「知らせるだけ」で、自動で止めてくれるとは限らない点です。止める仕組みを入れるのか、通知を受けた人がどう動くのかまで決めておきましょう。AI関連のAPIでは、事業者側で月の利用上限を設定できるものもあるので、使うサービスの管理画面で確認してもらいます。

    備え4:通知の宛先と、気づいた時の連絡手順を決める

    アラートが届く先が、退職した担当者や使っていないメールアドレスだと意味がありません。通知は複数人で受け取り、「気づいたら誰が最初にキーを止めるか」「夜間や休日はどうするか」を決めておきます。

    備え5:契約書に「責任の範囲」と「起きた時の費用負担」を書く

    最後は契約の面です。キーの管理を開発会社が担う場合、運用ルールを守っていたのに起きた場合の扱いと、守っていなかった場合の扱いを分けて書いておくと、揉めにくくなります。

    • キーの管理担当と、権限を持つ人の範囲
    • 不正利用の疑いに気づいた時の連絡期限と連絡先
    • 事業者から請求の調整を受けられたときの扱い
    • 保守契約でどこまで対応するか(ログの確認、キーの入れ替えなど)

    法律や契約の細かな判断は専門家に確認する前提で、条文の案づくりは弁護士にも相談してください。

    やりがちな失敗

    • 請求が来てから責任の話から始める:止血が遅れ、請求が増え続けます。まずキーを止めて記録を残してください
    • アラートを入れたことで安心する:通知を受ける人と止める手順がなければ、効果は限定的です
    • キーを1本だけ作って全員で使い回す:誰が使ったか分からず、入れ替えの影響も大きくなります
    • 「開発会社が管理しているはず」と思い込む:契約でキーの管理担当が決まっていなければ、実際は誰も管理していないことがあります
    • 「事業者に言えば全額免除される」と期待する:調整されるかどうかは事業者の判断で、保証はありません

    発注者がやることチェックリスト

    • ☐ 使っている外部サービス(クラウド、AI、地図、決済など)の一覧と、キーの発行元を把握した
    • ☐ キーの管理担当(誰が発行し、誰が入れ替えるか)を決めた
    • ☐ キーをソースコードや公開リポジトリに置かないルールを開発会社と合意した
    • ☐ キーごとに使える範囲を絞ってもらうことを依頼した
    • ☐ 予算アラートが設定され、通知が複数人に届くことを確認した
    • ☐ 気づいた時に誰がキーを止めるか、夜間・休日の連絡先を決めた
    • ☐ 契約書に、不正利用の連絡期限と費用負担の考え方を書いた
    • ☐ 万一に備え、事業者のサポート窓口とプラン(問い合わせ可能な範囲)を確認した

    開発会社への質問例

    打ち合わせや見積もりの段階で、そのまま使える質問です。

    • 「このシステムで使う外部サービスのAPIキーは、誰が発行して、どこに保管しますか?」
    • 「キーごとに、使える機能や呼び出し元を絞る設定は見積もりに含まれていますか?」
    • 「利用料が急に増えた時、アラートはどこに届き、最初に誰が何をしますか?」
    • 「キーが外に出た疑いがある時、連絡は何時間以内にもらえますか?対応は保守契約の範囲ですか?」
    • 「外部サービスの請求が想定を超えた場合、費用の負担や調整の相談は契約上どう扱いますか?」

    答え方から、その開発会社がキーの管理を運用のルールとして考えているかどうかが見えてきます。

    まとめ:請求は「起きてから」ではなく「起きる前」に分担を決める

    漏れたAPIキーによる請求は、クラウド事業者との契約と開発会社との契約の両方で扱いが決まり、どちらも一律に免除されるものではありません。発注者としては、次の流れで備えておくと安心です。

    • キーの置き場所と管理担当を決める
    • キーごとに使える範囲を絞る
    • 予算アラートと、気づいた後の止め方を決める
    • 契約書で連絡期限と費用負担の考え方をそろえる

    次の打ち合わせで、まず「キーは誰がどこで管理しますか?」の一言から確認してみてください。

    あわせて読みたい関連記事

    システム制作・運用・保守のお問い合わせはこちら


      よかったらシェアしてね!
      • URLをコピーしました!
      • URLをコピーしました!

      この記事を書いた人

      株式会社THIRD HERO代表取締役 朝野貴朗
      Webシステム開発を中心に、toC向けサービスサイトの運営、ツール開発などを行ってまいりました。

      目次