Optpath テクニカルドキュメント

システムアーキテクチャ概要

Notion image

概要

本サービスは Google Cloud 上に構築され、フロントエンド・アプリケーション・データベース・ストレージといった主要コンポーネントを、セキュリティ・可用性・拡張性を考慮したクラウドネイティブ構成で提供しています。

全体の通信は TLS によって暗号化され、内部通信は VPC に閉域化されています。主要データは冗長化され、高可用性を確保しています。

データフロー

  1. クライアントからのアクセスは HTTPS(TLS 1.2 以上、TLS 1.3 優先) により ALB で受信されます。
  1. ALB で TLS を終端し、リクエストは Cloud Run – Web / API に転送されます。
  1. API 層が必要に応じて Cloud SQL(HA 構成) または Cloud Storage(ゾーン冗長化) にアクセスします。
  1. 処理結果は Web 層を通じてクライアントに返却されます。

コンポーネント

  • アプリケーション層:Cloud Run(Web / API)により、サーバーレスでスケーラブルなアプリケーション基盤を提供。
  • データ層:Cloud SQL(HA 構成)、Cloud Storage(ゾーン冗長化)によりデータ可用性を確保。
  • ネットワーク層:Application Load Balancer による TLS 終端と VPC 内閉域通信により、外部・内部通信の双方を保護。

管理責任分界

  • 当社の責任範囲
    • アプリケーションコード
    • Google Cloud サービスの設定(ALB, Cloud Run, Cloud SQL, Cloud Storage, VPC 等)
    • IAM / サービスアカウントの管理
    • ログ監視・障害対応体制
  • Google Cloud の責任範囲
    • データセンターセキュリティ、物理インフラ
    • 仮想化基盤、Cloud Run の稼働環境
    • Cloud SQL / Cloud Storage の基盤冗長性

セキュリティおよび可用性対策

不正侵入対策

本サービスでは、外部からの攻撃や内部の不正アクセスを防止するために、以下のような多層的な対策を実施しています。

  1. Web アプリケーションファイアウォール(WAF)
      • Google Cloud Armor を導入し、アプリケーションレベルでの不正アクセスや DDoS 攻撃からシステムを防御しています。
      • OWASP Top 10 に準拠したルールやカスタムポリシーを適用することで、SQL インジェクションやクロスサイトスクリプティング等の代表的な攻撃手法に対しても防御を実現しています。
  1. 開発者権限管理
      • 開発・運用に関わる権限は、Google Cloud IAM およびサービスアカウントにより厳格に管理しています。
      • 環境の設定変更や重要なリソース操作は、一部の権限を付与されたメンバーに限定しています。
      • その他のメンバーには役割に応じた最小限の権限のみを付与し、最小権限の原則に基づいた運用を実施することにより、内部からの不正アクセスや誤操作のリスクを最小化しています。

運用管理

本サービスでは、安定したシステム運用を実現するため、監視・検知・障害対応に関して以下の運用管理を実施しています。

  1. ログ管理・監視
      • サービス稼働状況を継続的に監視する仕組みを導入しています。
      • アプリケーションログおよびシステムログを収集し、異常検知や障害の早期発見に活用しています。
  1. アラート通知
      • 障害や異常の兆候を検出した場合、監視システムによりアラートが自動生成され、社内の運用担当者へ通知されます。
      • アラートは即時に社内共有され、担当者が迅速に対応できる体制を整備しています。
      • なお、外部向けの自動周知システムは運用していませんが、重大な影響が想定される場合は速やかに顧客への個別連絡や状況共有を行います。
  1. 障害対応体制
      • 社内で障害対応手順を整備しており、障害検知から復旧までのプロセスを標準化しています。
      • 発生した障害については原因分析と再発防止策を検討・実施し、継続的に運用体制の改善を行っています。

通信の暗号化の実施

本サービスでは、外部通信および内部通信の双方において、最新の業界標準に準拠した暗号化を実施し、通信経路の安全性を確保しています。

1. クライアント—フロントエンド間通信

  • TLS 終端:Google Cloud Application Load Balancer (ALB) にて TLS(HTTPS)を終端し、クライアント通信を保護しています。
  • 証明書管理:Google Cloud Certificate Manager を利用し、証明書の発行・更新・ローテーションを自動化。証明書管理の属人化リスクを排除しています。
  • 規格準拠:TLS 1.2 以上(TLS 1.3 優先)を採用しており、RFC 8996(TLS 1.0/1.1 廃止)、NIST SP 800-52r2、PCI DSS などの業界標準に準拠しています。
  • HSTS 対応:本サービスは Google 管理の .app ドメインを利用しており、HSTS Preload List に登録済みです。すべてのアクセスが強制的に HTTPS 経由となり、暗号化通信が常に保証されます。

2. 内部通信

  • 閉域ネットワーク:フロントエンド以降の通信は Google Cloud Virtual Private Cloud (VPC) 内で完結し、インターネットを経由しません。これにより内部コンポーネント間の通信は閉域ネットワークで保護されています。

取扱データの冗長化

本サービスでは、取扱データの可用性を確保するため、ストレージ・データベース・アプリケーション層において冗長化を実施しています。

  1. ストレージ(Cloud Storage)
      • Google Cloud Storage を利用しており、リージョン内の複数ゾーンにわたって自動的にデータがレプリケーションされています。
      • 単一ゾーン障害が発生した場合でもデータの可用性が維持されます。
  1. データベース(Cloud SQL)
      • 高可用性(HA)構成を有効化しており、プライマリとスタンバイを別ゾーンに配置しています。
      • 障害発生時には自動的にフェイルオーバーが行われ、復旧時間(RTO)を最小化します。
  1. アプリケーション層(Cloud Run)
      • アプリケーションは Google Cloud Run 上で稼働しており、Google のサーバーレス基盤によって冗長化とスケーラビリティが標準的に提供されています。
      • リクエストは自動的に複数のインスタンスに分散され、障害時にもサービス継続性が確保されます。

データ取り扱い方針

本サービスでは、利用者のデータを安全かつ適切に取り扱うため、以下の方針に基づいて管理・運用を行っています。

本方針は、システムのセキュリティおよび可用性対策とあわせて、データ保護の観点から実施している主な取り組みを示したものです。

データ保管と暗号化

  • すべてのデータは Google Cloud 上の日本国内リージョンに保管しています。
  • 保存データには Google Cloud によるストレージレベルの暗号化(AES256)が自動的に適用され、保管時に暗号化されています。
  • ユーザー認証情報(パスワード)は、復号不可能な形式(ハッシュ化)で安全に保存しています。

アップロードデータの取り扱い

  • ユーザーがアップロードするデータは、契約上の目的(分析やレポート生成等)に限定して利用しています。
  • アップロードされたファイルは、Google Cloud Virtual Private Cloud(VPC)内の閉域環境に保管され、外部ネットワークから直接アクセスすることはできません。
  • 運用上必要な場合に限り、適切な権限を付与された開発・運用担当者がアクセスできる体制としています。
  • アクセス権限は Google Cloud IAM によって管理され、アクセスログを監査可能な体制で運用しています。
Did this answer your question?
😞
😐
🤩