セキュリティのベストプラクティス
NU Signal Partners APIを安全に統合するためのガイドです。
シークレットを保護する
- APIキーのシークレットと視聴者IDのsaltは一度だけ表示または把握できます。シークレットマネージャーに保存し、ソース管理、クライアントバンドル、ログ、エラーレポートには入れないでください。
- シークレットが漏えいしたら直ちに失効またはローテーションしてください(APIキー)。
キーはサーバーだけで使用する
- APIはバックエンドから呼び出してください。
nsp_test_やnsp_live_をブラウザ、モバイルアプリ、配布クライアントに埋め込まないでください。 - 再生トークン要求など、クライアント起点のフローはすべてサーバー経由にし、キーと視聴者saltを非公開に保ちます。
キーを定期的にローテーションする
- 定期的に、また漏えいが疑われるたびにoverlap-and-revokeでローテーションします。作成、配布、確認後に旧キーを失効します。キーの失効は発行済みトークンやセッションを取り消さず、それぞれのTTLで失効するためTTLは短くしてください。
視聴者IDをハッシュ化 — PII禁止
viewer_id_hashは貴社側で計算したSHA-256(stable_viewer_id + salt)でなければなりません。Productionは64文字の小文字16進数のみ受け付けます。生のメール、電話番号、デバイスIDを送信しないでください。NUは生のPIIを受信・保存しません(再生API)。- 再生の
preferencesにも同じ規則が適用されます。非PIIの嗜好シグナルだけを送信してください。@または空白を含む値は422 validation_failedで拒否されます。
オリジンとIPを制限する
allowed_originsで再生トークンを自社ドメインだけに発行し、allowed_ipsでAPIリクエストを自社サーバーアドレスに固定します(APIキー)。
最小権限のスコープ
- 各キーにはコンポーネントが必要とする権限だけを付与します。たとえば取り込みには
settlement:disputeではなくevents:writeが必要です。大量処理と機密処理を分けてください(認証)。 api_keys:writeは保管庫に保存した運用キーだけに付与し、再生やイベントのランタイムキーにはキー管理スコープを付与しないでください。
再生URLを公開しない
webview_urlと署名付きHLS/DASHマニフェストは短命で(既定1,800秒、絶対最大7,200秒、Production既定上限1,800秒)、署名トークンを含みます。Bearerシークレットとして扱い、ログ記録、expires_at後のキャッシュ・共有、共有リンクへのwebview_url掲載をしないでください。必要に応じ再発行し、webview_urlは視聴者のWebViewまたはiframe内だけで開きます。