SECURITY

セキュリティへの取り組み

filesは、運用代行者とクライアントのInstagramデータ、制作物、業務情報を預かる責任を重く受け止めています。 クラウド基盤と、files独自の認証・権限確認・監視・削除手順を組み合わせます。このページでは、アプリに実装した対策と、本番環境で継続確認する対策を分けて説明します。

最終更新日: 2026年10月28日 実装済み: アプリのコードと自動テストで確認 本番確認: クラウド・監視設定を継続点検
稼働基盤
AWS
ファイル保存
非公開設定+期限付きURL
ログイン保護
Google認証・管理者2段階認証
ファイル閲覧
有効期限付きURL

1. 基本方針

filesは、Instagram連携・分析データ、クライアント情報、制作案件、制作素材、レポート、ユーザー情報および契約情報を、 サービス提供に必要な範囲で取り扱います。取得する情報とアクセスできる人を必要な範囲に絞り、不正アクセス、漏えい、改ざん、滅失等のリスク低減に継続して取り組みます。

どのようなシステムにもリスクを完全にゼロにする保証はありません。filesはこの前提を隠さず、予防だけでなく、異常の検知、影響範囲の確認、停止・復旧、必要な連絡までを安全管理の一部として運用します。 本ページは対策の概要であり、無事故、完全性、可用性または特定の認証取得を保証するものではありません。

2. AWSとCloudflare R2によるクラウド基盤

本番アプリケーションとバッチ処理はAmazon Web Services(AWS)上で稼働し、データベースにはAmazon RDSを利用しています。 制作物、投稿素材、プロフィール画像、サポート添付は、Cloudflare R2を非公開ストレージとして利用する構成です。

  • アプリケーション設定ではR2上のファイルを非公開として扱い、files側で閲覧権限を確認した後に、有効期限付きの署名URLを発行します。本番bucketの公開設定も運営者が継続確認します。
  • アップロード先はサーバー側で生成し、利用者が任意の保存先を指定できない構成にしています。
  • 署名URLの全文やR2上の保存先は、通常のアプリケーションログや障害通知へ残さない設計です。
  • Cloudflare R2では、保存されたオブジェクトとメタデータが自動的に暗号化され、通信もTLSで保護されます。

AWSやR2を利用するだけで安全性が自動的に保証されるわけではありません。クラウド事業者が保護する基盤に加え、filesが非公開設定、権限管理、認証情報の管理、更新、監視を担います。 詳細はCloudflare R2のデータセキュリティ情報もご確認いただけます。

3. 通信と認証

  • サービスへの通信をTLS等により暗号化します。
  • ユーザーのログインはGoogleアカウント連携に限定し、files独自のログイン用パスワードを保持しません。
  • Google OAuthの認可開始時に推測困難なstateをセッションへ保存し、コールバック時の一致確認を必須にして、ログイン要求のすり替えを防ぎます。
  • Google IDトークンは公式ライブラリで署名を検証し、発行元(iss)、対象(aud)、有効期限(exp)、GoogleアカウントID、確認済みメールアドレスをサーバー側で確認します。
  • Googleに要求する権限は認証に必要なopenid・email・profileだけです。Googleのアクセストークンやリフレッシュトークンはfilesへ保存しません。
  • セッションCookieにはSecure、HttpOnly、SameSite=Laxを設定し、本番環境ではセッションデータを暗号化します。
  • 新規管理者のパスワードは14文字以上かつ大文字・小文字・数字・記号を必須とし、メールで届く有効期限付き確認コードによる2段階認証を使用します。ログインとコード確認には試行回数制限を設けています。
  • 一定時間操作がない場合はセッションを終了し、再ログインを求めます。

Googleアカウント自体の保護のため、ユーザーの皆さまにも Googleアカウント側での2段階認証またはパスキー の設定をおすすめします。これはfiles独自の追加認証ではなく、Googleアカウントを保護するための設定です。

4. アクセス制御

ログイン状態、メール認証、契約状態を確認し、ユーザーと連携アカウントに応じて利用できる情報・機能を制限します。 管理機能へのアクセスも、必要な権限を持つアカウントに限定します。

  • 企画、制作物、素材提出の外部共有では、推測しにくい共有URLだけに頼らず、登録済みのメールまたは連携済みLINEへ送る10分間有効の認証コードを必須にします。投稿編集者向け共有は登録メールへ認証コードを送ります。
  • 共有URLには有効期限を設け、期限未設定、期限切れ、無効化済みのURLは内容を表示しません。
  • 確認コードと共有画面の操作には用途別の試行回数制限を設け、共有画面へのアクセスを記録します。
  • 状態を変更するリクエストにはCSRF対策を適用します。案件、企画、クライアント、投稿編集者、Instagramアカウント等は、画面表示に頼らず、URLに含まれる対象を含めて所有者・利用権限をすべてサーバー側で確認します。
  • 各機能内の権限確認に加え、ログイン済みルート共通の所有者確認を重ねて適用し、他ユーザーのデータへの横断アクセスを拒否します。
  • 管理画面と一般ユーザー画面を分離し、管理機能は管理者として認証されたアカウントに限定します。

5. Instagram連携

  • Instagramの公式APIとOAuth認可を利用します。
  • アカウント選択後、所有者(クライアント等)からfiles利用の承諾と必要な権限を得ていることを確認したアカウントだけを連携します。
  • 分析・投稿に必要なAPI権限だけを、ユーザーの認可に基づいて取得します。
  • Instagramのパスワードをfilesが取得・保存することはありません。
  • Instagramアクセストークンは、アプリケーション層で暗号化してデータベースへ保存します。
  • アクセストークン、署名、確認コード等を通常の画面や障害通知へそのまま表示しないよう、ログ記録時に除外または置換します。
  • 連携解除後は、新たな同期や投稿公開を停止します。

6. 決済情報

決済、請求、サブスクリプション管理にはStripeを利用します。 クレジットカード番号はStripeが取り扱い、filesでは保持しません。filesが受け取る決済通知はStripeの署名を検証し、契約状態や決済結果など、サービス提供に必要な情報のみを管理します。

7. 制作物・素材の管理

制作素材やレポートへのアクセス時は、ユーザーまたは共有先の認証・認可状態を確認します。 ファイル本体を恒久的な公開URLにせず、閲覧・ダウンロード・Metaへの投稿処理に必要な時だけ有効期限付きURLを発行します。削除処理に失敗した場合は再試行し、最終的な失敗を運営者が確認できる仕組みを設けています。

  • アップロードされた画像・PDF・動画は、拡張子や申告されたMIMEタイプだけに頼らず、ファイル署名を確認します。
  • 動画は実際のコンテナ形式とストリーム情報を解析し、許可したMP4・MOVとして扱えることを確認してから利用可能にします。
  • 検証が完了していない、または検証に失敗した制作物は、投稿や通常利用へ進めない状態として管理します。

取得情報を減らすため、クライアントおよび投稿編集者の本人確認書類・契約書等をfiles内で管理する機能は提供せず、これらの文書を保管しません。

8. データの保持と削除

保存期間を必要性に応じて区分し、ユーザー操作によるAI関連データの削除、退会時の関連業務データ削除、ファイル削除の再試行処理を用意しています。 法令、請求、紛争対応または不正利用防止に必要な最小限の記録や、バックアップ・委託先からの消去には一定期間を要する場合があります。

  • AI処理ログおよび障害解析用の生データは、原則180日を上限に削除または内容を消去します。
  • Instagram連携解除後は新規同期と公開処理を停止します。
  • ストレージ削除に失敗した処理はキューで再試行し、最終失敗を運営者が確認します。

9. 監視とインシデント対応

アプリケーションエラー、ログイン後の操作、Meta API、AI処理、R2の保存・削除、Stripe決済通知等の成否を記録し、異常を運営者へ通知できるようにしています。 URL内のコード、トークン、署名、秘密情報やファイル保存先は、障害通知にそのまま載せないよう除外・置換します。

情報漏えいや不正アクセス等が疑われる場合は、事実確認、影響範囲の特定、証跡の保全、拡大防止、原因究明、復旧および再発防止を行います。 個人の権利利益を害するおそれが大きい場合等は、法令に従い、個人情報保護委員会への報告と本人への通知を行います。ユーザーへは、判明した事実、想定される影響、推奨する対応および問い合わせ先を、状況に応じてメールまたはサービス内でお知らせします。

10. 外部サービスとの連携

filesは、機能提供に必要な範囲で外部サービスを利用します。連携先と目的を明確にし、取得・送信する情報を必要な範囲に限定します。

  • Google: ユーザー認証。取得範囲はopenid・email・profileに限定
  • Meta / Instagram: アカウント連携、メディア・インサイト取得、コンテンツ公開
  • Stripe: 決済、請求、サブスクリプション管理
  • OpenAI API: 分析・提案に必要な範囲へ情報を絞り、識別情報を可能な範囲で除外して送信
  • LINE、メール配信サービス: ユーザーが設定した通知、認証、重要なお知らせの送信
  • Slack: お問い合わせの受信および障害・運用通知。秘密情報や認証情報を除外し、必要な範囲に限定

LINE連携用のチャネルシークレットとアクセストークンも、アプリケーション層で暗号化して保存します。

外部事業者の障害や仕様変更はfilesだけでは防げないため、送信情報の限定、失敗記録、再試行、ユーザーへの状態表示を組み合わせて影響を抑えます。取扱先と国外処理の詳細はプライバシーポリシーに記載します。

11. 運営体制と第三者認証について

filesは、files合同会社が運営しています。セキュリティに関する判断、外部サービスの設定確認、障害通知の確認、インシデント時の初動窓口を運営者に集約し、責任の所在を明確にしています。 本ページはfilesが実施する対策と運用方針を説明するもので、ISMS等の第三者認証の取得を示すものではありません。 認証・制度への参加状況は、取得または宣言が完了した時点で正確な名称とともに掲載します。

12. 脆弱性・セキュリティ事象の報告

セキュリティ上の懸念、不審な挙動または脆弱性を発見した場合は、対象URL、再現手順、発生日時、影響の見立てを可能な範囲で以下の窓口へご連絡ください。受領後、内容を確認して必要な対応を行います。

  • 必要最小限の確認にとどめ、他人のデータへのアクセス、変更、削除、サービス妨害または大量の自動試験は行わないでください。
  • 個人情報、認証情報または取得したデータをメール本文へ記載せず、まず概要だけをご連絡ください。
  • 修正や利用者保護のための時間を確保できるよう、運営者との調整前に詳細を公開しないようお願いします。
セキュリティ窓口: info@files-lab.com