Fireworks AI 入門 — 初心者のためのハンズオンガイド|2026-09 版
第 13 章

アカウント運用 — API キー・利用量・請求・チーム

誰がいくら使ったかを把握し、上限を掛け、鍵を安全に配る

この章で分かること

これは何か

第 2 章では、API キーを 1 つ発行して FIREWORKS_API_KEY に入れるところまでを扱った。個人で試す分にはそれで十分だが、チームで運用し始めると「誰が何をどこまでできるのか」「自動化はどう鍵を持たせるのか」「今月いくら使ったのか」「使いすぎたら誰が止められるのか」という別の問いが出てくる。この章はその問いに答えるための画面群を扱う。

コンソール(app.fireworks.ai)では、アカウント運用の画面は 2 つの URL 系統に分かれている。/account/ 配下にはメンバー管理の Users(/account/users)、支払いの Billing(/account/billing)、利用量の Usage(/account/usage)があり、/settings/ 配下には 第 2 章で使った API Keys(/settings/users/api-keys)、ユーザー個別の利用上限を設定する Usage limits(/settings/usage-limits)、Enterprise 向けの Governances → Model Access(/settings/governances/model-access)がある。同じ操作でも、コンソールのボタン一つで済むものと、firectl や REST API でしか触れないものが混在している。

いつ使うのか

この章の機能は、次のような場面で使う。

紛らわしいのは、効き方の似た 3 つの制限機構である。支出の天井を作るもの(アカウントクォータ・Usage limits)と、使えるモデルを絞るもの(Model access policy)が混在している。効く単位も変更できる人も違う。

機構何を制御するか単位変更できる人
アカウントクォータ(スペンドティア・RPM 上限)Serverless の TPM 上限の天井と、アカウント全体のリクエスト速度アカウント全体ティアはクレジット投入で自動昇格。月次スペンド上限の変更手段として公式ドキュメントに記載があるのは firectl quota update monthly-spend-usd --value <AMOUNT> のみ(Billing 画面について明記されているのは通知しきい値の追加)
Usage limits(ユーザー個別上限)ユーザー 1 人あたりのサーバーレス利用上限(申請制の per-user 利用上限機能)ユーザー単位Admin が Settings → Usage limits で設定
Model access policyモデルごとに 4 ケイパビリティ(serverless / Fast / dedicated deployments / training)を許可・拒否モデル単位、ただしアカウント全体に一律適用Admin(Enterprise 限定)

Serverless の TPM(tokens per minute)そのものやアダプティブ上限の詳細は 第 5 章で扱った。この章では、その上限がどう決まるか(スペンドティア)と、上限を超えたときに何が止まるか(アカウント停止・ユーザー上限)を扱う。

仕組み(1)— ロールと権限の境界線

アカウント内の各ユーザーには 4 種類のロールのいずれかが割り当てられる。既定は User で、これは「他人が所有するリソースまで編集できる」強い権限を持つ点に注意がいる。権限はロールが上がるごとに単純に積み上がっていく構造になっている。

Inference User 閲覧・推論+自分の鍵 Contributor +自分のリソース作成 User(既定) +他人のリソース編集 Admin +ユーザー管理・SA鍵
図 13-1 Inference User の「閲覧・推論+自分の鍵」を土台に、Contributor は自分のリソース作成、User は他人のリソース編集、Admin はユーザー管理・SA(サービスアカウント)鍵発行まで権限が積み上がる。破線は権限が追加される境界線。

実務で効く境界を権限マトリクスから抜き出すと次のとおりになる。Contributor と Inference User はアカウントで有効化されていない場合があり、使うには Fireworks サポートへの連絡が要る(2026-09 時点)。

できることInference UserContributorUserAdmin
推論の実行・全リソースの閲覧✅✅✅✅
自分の API キーの作成・削除✅✅✅✅
新規リソース(デプロイ・学習ジョブ等)の作成❌✅✅✅
他人が所有するリソースの編集・削除❌❌✅✅
ユーザー管理・サービスアカウントのキー発行❌❌❌✅

全ロールに共通する 2 点も覚えておくとよい。自分の API キーの作成・削除はどのロールでも可能(Inference User でも自分のキーは作れる)で、全ユーザー・全サービスアカウントの一覧を見ることも全ロール共通である。制限されているのは「変更」の側だけだ。ロールは firectl user update <USER_ID> --role=<ROLE> で変更する。<ROLE> に入る文字列は admin / user / contributor / inference-user のハイフン区切りである。

仕組み(2)— サービスアカウントと API キーの配り方

サービスアカウントは、人間のログイン情報に依存せずアプリ・スクリプト・自動化システムを認証させる仕組みで、CI/CD パイプラインやバックエンドサービス向けに用意されている。共有クレデンシャルを避けられるだけでなく、監査ログ上で「自動化システムが行った操作」と「人間が行った操作」を区別できることが目的として明記されている。サービスアカウントは Web UI からログインできず、OIDC トークンも使えない。できることは API キーによる操作だけである。

ここで注意が要るのは、サービスアカウントの既定ロールも userだという点だ。User ロールは他人のリソースまで編集できる強い権限なので、最小権限で運用したいなら作成時に --role=contributor や --role=inference-user を明示する必要がある。

ユーザー本人 全ロールで可 平文キー表示 作成時のみ (fw_...) 環境変数へ保存 FIREWORKS_API_KEY Admin SA用キーはAdmin限定 平文キー表示 作成時のみ (fw_...) CI/CD へ配布 自動化システム用 発行 保存 発行(Admin) 配布
図 13-2 ユーザー本人のキー発行(全ロール可)とサービスアカウント用キーの発行(Admin 限定)は別経路だが、どちらも平文キーは作成時にしか表示されない点は共通している。

キーの実体には運用上の重要な性質がいくつかある。平文の値(key フィールド)は作成時のみ返され、以後は Fireworks 側にも保存されない。取り逃したら再作成するしかない。名前(displayName)を省略すると "default" になる。expireTime を指定しなければキーは無期限で有効であり、lastUsed は未使用のキーには値が入らないため、使われていない古いキーの棚卸しに使える。監査ログ上でサービスアカウントは <サービスアカウントID>@<アカウントID>.sa.fireworks.ai という合成メールアドレス形式で現れるので、監査ログをメールアドレスで絞り込むときはこの形式を使う。

課金面では、サービスアカウントの使用量はアカウントと同じクォータ・上限を共有し、人間のユーザーとは別枠になっていない。ただし後述する利用量 API では api_key_id / api_key_name の次元でキー単位に分解できるため、「どのサービスアカウントがいくら使ったか」自体は追跡できる。

仕組み(3)— スペンドティアとクォータ

使いすぎを防ぐ仕組みは 3 層に分かれる。①②は firectl quota list で確認し(月次スペンド上限の変更も firectl)、③だけはコンソールの Usage limits 画面から設定する。

① アカウント全体のリクエスト上限。全 API 呼び出しは、1 分あたりに送れるリクエストの本数(RPM: requests per minute)という 1 つの速度の枠を共有する。支払い方法が未登録か、有効なクレジット残高が無いアカウントは 10 RPM(どちらか一方でも欠けていれば 10 RPM のままで、カードを登録しただけで残高が 0 なら上がらない)、支払い方法が登録済みで、かつ有効なクレジットがあるアカウントは 6,000 RPM(最大)になる(いずれも 2026-09 時点)。この 6,000 RPM はアカウント全体に適用される固定の天井で、サーバーレス専用でもアダプティブでもなく、スペンドティアを上げても動かない。TPM がトークンの量の上限であるのに対し、RPM は回数の上限で、1 回のリクエストが大きいか小さいかは問わない。

② スペンドティア。主な役割は Serverless の TPM(tokens per minute)上限の天井を決めることで、5 段階ある。プリペイドクレジットを追加すると数分でティアが上がる(例: 100 USD の追加で Tier 1 → Tier 2)。右列の上限額はレガシーの後払いアカウントにのみ適用され、プリペイドアカウントはティアと独立に月次スペンド上限を設定できる(いずれも 2026-09 時点)。

ティア到達条件レガシー後払いアカウントの月次スペンド上限
Tier 1有効な支払方法と請求プロファイル50 USD
Tier 250 USD の消費またはクレジット追加500 USD
Tier 3500 USD の消費またはクレジット追加5,000 USD
Tier 45,000 USD の消費またはクレジット追加50,000 USD
Unlimited要問い合わせ無制限
支払方法登録 Tier 1 +50 USD Tier 2 +500 USD Tier 3 +5,000 USD Tier 4 要問合せ Unlimited アカウント全体 6,000 RPM(全ティア共通・固定)
図 13-3 棒の高さはスペンドティアが上げる Serverless の TPM 上限の伸びを表し、棒の上のラベルは 1 つ上のティアへ上がる条件(消費またはクレジット追加額)を示す。下に敷かれた帯はアカウント全体のリクエスト速度上限(6,000 RPM)で、ティアを上げても動かない固定の天井であることを示す。棒(TPM)と帯(RPM)は単位が異なる別レーンである点に注意。

トレーニング用の GPU クォータは、on-demand デプロイメントのクォータとは別枠で、スペンドティアに応じて自動付与される。Tier 1 では Blackwell(B200/B300)枠が 0 で、現行のマネージド学習の shape は Blackwell 上で動くため、事実上トレーニングには Tier 2 以上が要る(H200 は Tier 1 でも 16、H100/A100 は 8 ある)。on-demand デプロイメントは既定で A100 / H100 / H200 / B200 それぞれ 8 GPU、on-demand LoRA は 100 が既定クォータである。学習ジョブが HTTP 429 quota_exceeded で拒否されたら、ティアを上げて再投入する(いずれも 2026-09 時点)。

③ ユーザー個別の Usage limits(申請制の per-user 利用上限機能。有効化には Fireworks への連絡が要る)。有効化されたアカウントでは、Admin が Settings → Usage limits でアカウント既定の 1 ユーザーあたり上限(公式ドキュメントは新規アカウントの既定を 100 USD と記載。2026-09 時点)と、ユーザー個別の override を設定できる。一般メンバーはアカウント既定値と自分自身の使用量・上限だけを見られる。対象はサーバーレス推論のみ(MiniMax M2.7 を除く)で dedicated(GPU 時間)は対象外、上限到達時のレスポンスは HTTP 402 になる。

月次スペンド上限については、既定で 80% 到達時に警告メールが送られ、Billing 画面から通知しきい値を追加できる。100% に到達すると、サーバーレス推論・デプロイメント・トレーニングの全 API リクエストが自動的に停止する。再開には月次スペンド上限の引き上げが必要で、クレジット残高も尽きていればクレジット追加も要る。この停止挙動は Enterprise アカウントには適用されず、Enterprise の支出アラートは通知のみである。支払い問題によるアカウント停止は、Billing ページで支払い方法の問題を解消してクレジットを追加すると(後払いアカウントなら未払いの請求書を精算すると)1 時間以内に自動で再有効化される。

仕組み(4)— 利用量とコストの読み方

Usage 画面(/account/usage)は時系列の集計メトリクスを見る場所で、モダリティ別のタブ(Voice タブなど)を持つ。ただし Usage 画面が数えるのは「サーバーが受理したリクエスト」だけで、接続前に失敗したリクエストは画面上ゼロに見える。クライアント側でエラーが出ているのにダッシュボードがきれいなら、原因はクライアント側(タイムアウトや DNS 解決の失敗など)を疑う。デプロイメント・モデル・API キー・カスタムタグ(Enterprise 限定)別の詳しい内訳は、コンソールではなく CLI と HTTP API の 2 経路で取る。

ここで区別すべきなのが「利用量(Usage)」と「コスト(Cost)」という 2 つの軸である。Usage はトークン数や GPU 秒などの計量された数量で、ドルは含まない。ドルが必要なら別のエンドポイントを叩く必要があり、レート適用後の値はどれも「請求済みの金額」そのものではなく、固定費・請求書レベルの割引・最低額・クレジット・税を除いた「レート適用済みの見積もり」である。

計測データ (Usage) トークン数・GPU秒 レート適用コスト (Cost) 請求済みではない見積もり 請求書 実際の支払額 料金レート適用 加減算して確定 GET billingUsage billing/summary・usageCosts:query
図 13-4 計量データ(Usage)に料金レートを適用するとコスト(Cost)になり、そこに固定費・割引・クレジット・税を加減算して初めて実際の請求書の金額になる。中間の Cost は「請求済み」ではない点に注意。

コストを取得するエンドポイントは 3 本立てで、それぞれ返すものが違う。

CSV でまとめて取りたい場合は 2 つのエクスポートがある。firectl billing export-metrics は全使用タイプの生ダンプ(ドルなし、1 回最大 31 日)、firectl billing export-usage-costs はサーバーレスに限定したレート適用済みのドル CSV で、モデル/モデルティア/ユーザー/API キーのいずれか 1 次元でグループ化する(1 回最大 31 日、かつ --start-time は過去 100 日より前を指定できない)。

Enterprise のガバナンス機能

Enterprise アカウントには、この章で扱った権限管理をさらに引き締める機能がある。モデルアクセスポリシー(Settings → Governances → Model Access)は、モデルごとに serverless 推論・Serverless Fast・dedicated deployments・training の 4 ケイパビリティを許可(allowlist)または拒否(blocklist)できる。ただしポリシーはアカウント全体に一律適用され、チームやユーザー単位では出し分けられない。反映まで数分(アイドルな API キーでは最大 1 時間)かかり、ルール数はおよそ 85 件が上限である(2026-09 時点)。閲覧は誰でもできるが、更新は Admin のみ。同様に、利用量の内訳をチーム・プロジェクト・環境別のカスタムタグで分解する機能も Enterprise 限定である。

監査ログ(コンソールサイドバーの Account settings 配下)は、ストレージへの読み取り・書き込み・削除の全操作を timestamp・principal・response code・resource path・message の 5 列で記録する。カスタム SSO(社内の ID 基盤(Okta や Microsoft Entra ID など)でのログインに一本化する仕組みである SSO・シングルサインオンを、OIDC または SAML 2.0 で Fireworks に持ち込める機能)や、ID 基盤側のユーザーの増減を Fireworks 側へ自動同期する仕組みである SCIM プロビジョニングも Enterprise 限定で、SCIM を使う場合は「グループ同期とグループ→ロールのマッピングが未サポートで、プロビジョニングされたユーザーは全員 User ロールになる」点に注意が要る。

ここまでの 3 つと異なり、ここから先はプランを問わず全アカウントに適用される既定の挙動である。Fireworks は既定でゼロデータリテンション(Zero Data Retention)であり、プロンプトと生成結果はリクエスト処理中の揮発メモリ上にしか存在せず(プロンプトキャッシュが有効な場合は、関連する KV キャッシュを含め数分間保持されることがある)、永続ストレージには記録されない(トークン数などのメタデータはサービス提供に必要な範囲で記録される)。この既定には例外が 2 つある。1 つは第 7 章で扱った Responses API で、store=True が既定のためユーザープロンプト・モデル応答・呼び出したツールを含む会話全体が保存され、30 日後に自動削除される(保存させたくない場合は store=False を渡す)。もう 1 つは FireOptimizer のように、ユーザーが明示的にオプトインした高度機能である。個別の契約条件や監査レポートは、Fireworks の Trust Center や担当者に確認する。

ハンズオン 13-1 サービスアカウントを作成し、キーを発行して権限を確認後に削除する

  1. Admin 権限を持つユーザーとして firectl login 済みであることを確認する。
  2. サービスアカウントを、既定より弱い contributor ロールで明示的に作成する。contributor が未有効化のアカウントではこのコマンドが失敗する(→ ロールの節)。その場合は --role を付けずに作成し、最小権限化はサポートへの有効化依頼後に firectl user update ci-bot --role=contributor で行う。
firectl user create --user-id "ci-bot" --service-account --role=contributor
  1. このサービスアカウント用の API キーを発行する(Admin 限定の操作)。--key-name で用途がわかる名前を付ける。
firectl api-key create --service-account="ci-bot" --key-name="CI Pipeline Key" -o json

出力の key(fw_... の値)はこの瞬間しか見られないので、CI のシークレットストアなどに控える。同じ出力に含まれる keyId(削除に使う安定 ID)も後片付けのために控えておく。

  1. サービスアカウント一覧を絞り込み、ci-bot が一覧に現れ、role が指定したロール(手順 2 で --role を付けなかった場合は既定の user)になっていることを確認する。
firectl user list --filter 'service_account=true' -o json
  1. 控えておいた keyId で、先に発行したキーを削除する(他人・サービスアカウントのキー削除は Admin 限定の操作)。
firectl api-key delete <KEY_ID>
  1. 検証が終わったらサービスアカウントを削除する。
firectl user delete ci-bot

ハンズオン 13-2 firectl で先月の Serverless 利用量をモデル別に取得する

  1. firectl login 済みであることを確認する(未ログインなら firectl login を 1 回実行する。認証情報は ~/.fireworks/auth.ini に保存される)。API キーを直接使いたい場合は --api-key グローバルフラグでも渡せる。
  2. 先月分(2026-08-01 〜 2026-09-01)の Serverless 利用量を、モデル別にグループ化して取得する。読み取り専用の問い合わせで課金は発生しない。
firectl billing get-usage \
  --start-time 2026-08-01 --end-time 2026-09-01 \
  --usage-type serverless \
  --group-by model_name

モデルごとのプロンプト/コンプリーショントークン数が表として出力される。--start-time は含む、--end-time は含まない点に注意。

  1. 数量ではなく、アカウント全体のドル総額だけを見たい場合は次のように叩く。
firectl billing get-usage \
  --start-time 2026-08-01 --end-time 2026-09-01 \
  --account-costs-only

この値はアカウント全体のレート適用済み金額であり、クレジットや調整が入る前の見積もりである点を忘れないこと。

つまずきポイント

サービスアカウントの既定ロールは user。 --role を付けずに作成すると、他人が所有するリソースまで編集できる強い権限を自動化システムに与えてしまう。CI/CD 用なら --role=contributor か --role=inference-user を明示するのが安全である。

「Usage」と「Cost」を混同しない。 数量が欲しいのか、ドル額が欲しいのかでエンドポイントが変わる。特に GET /billingUsage はグループ化はできるがフィルタはできず、HTTP でフィルタしたい場合は POST /billingUsage:query に切り替える必要がある非対称な設計になっている。

月次スペンド上限は 100% で全 API を止める。 サーバーレス推論・デプロイメント・トレーニングすべてが自動停止し、上限の引き上げ(と場合によってはクレジット追加)をしないと再開しない。ただし Enterprise アカウントはこの停止の対象外で、アラートは通知のみである点は逆に見落としやすい。

SSO 強制は API キーとサービスアカウントには効かない。 SSO を強制しても、API キー経由のアクセス経路はそのまま残る。人間の経路(SSO)と機械の経路(API キー)は完全に別系統の統制が必要で、キーのライフサイクル管理(expireTime の設定や棚卸し)を別立てで運用しないとセキュリティの抜け穴になる。

理解度チェック

Q1. サービスアカウントを最小権限で運用したい場合、作成時に何をすべきですか?

サービスアカウントの既定ロールは他人のリソースまで編集できる user なので、firectl user create --user-id "<名前>" --service-account --role=contributor(または inference-user)のように、作成時に弱いロールを明示的に指定する。

Q2. アカウント全体の 6,000 RPM 上限は、スペンドティアを Tier 4 に上げれば緩和されますか?

されない。6,000 RPM はアカウント全体に適用される固定の天井で、サーバーレス専用でもアダプティブでもない。スペンドティアが上げるのは Serverless の TPM(tokens per minute)上限の天井であり、リクエスト速度の上限とは別物である。

Q3. GET /billingUsage と POST /usageCosts:query は何が違いますか?

GET /billingUsage はトークン数や GPU 秒などの計量された数量を返し、ドルは含まない。POST /usageCosts:query は HOUR/DAY/MODEL/USER/API_KEY のうち最大 2 次元で分解した、レート適用済みのドル小計を返す。数量が欲しいか金額が欲しいかで使い分ける。

Q4. 月次スペンド上限が 100% に達すると何が起きますか? Enterprise アカウントでも同じですか?

サーバーレス推論・デプロイメント・トレーニングの全 API リクエストが自動的に停止する。再開には上限の引き上げ(とクレジット追加)が要る。ただし Enterprise アカウントではこの停止は起きず、支出アラートは通知のみとして扱われる。

Q5. モデルアクセスポリシーで、特定のチームだけモデル A を使えないように設定できますか?

できない。モデルアクセスポリシーはアカウント全体に一律適用される仕組みで、チームやユーザー単位で出し分けることは現状サポートされていない(Enterprise 限定機能)。

まとめ

次章では、コンソール画面の外から Fireworks を操る道具箱として、firectl・各言語 SDK・FireRouter・FireConnect といったツールとの連携を扱う。

参考リンク