メインコンテンツまでスキップ

システム構成

1. システム概要

1.1 システム概要

  • システムはAWS上に構築されており、マイクロサービスアーキテクチャを採用しています。
  • 開発環境、UAT(User Acceptance Test)環境、および、本番環境の3環境にて運用されています。各環境はAWSアカウントが分離されており、それぞれ異なるAWSアカウントを利用しています。
  • 通知証跡が保存されるAWSアカウントについては専用のAWSアカウントを利用しており、上記3環境とは異なるAWSアカウントで運用されています。
  • システムは大きくフロントエンド(ここでは管理画面を意味します、xIDアプリは含みません)、バックエンドサービス群、データベースにて構成されています。
  • グローバルサービスを除くリソースは東京リージョン(ap-northeast-1)に配置されています。
  • DNSとしてAmazon Route 53を利用しています。

1.2 利用AWSサービス

  • フロントエンドは次のサービスを利用しています。
    • Amazon CloudFront
    • Amazon Simple Storage Service
  • バックエンドサービス群は次のサービスを利用しています。
    • Amazon Virtual Private Cloud(VPC)
    • Elastic Load Balancing
    • AWS AppMesh
    • AWS Cloud Map
    • Amazon Elastic Container Registry
    • Amazon Elastic Container Service(ECS)
    • AWS Systems Manager
    • AWS Step Functions
    • AWS Lambda
    • Amazon Pinpoint
    • Amazon Data Firehose
  • データベースにはAmazon Aurora PostgreSQL(Amazon Relational Database Service)を利用しています。
  • その他、運用、管理、セキュリティ、サービス監視といった用途にて、次のサービス(既出は除く)を利用しています。
    • AWS Organizations
    • AWS Identity and Access Management(IAM)
    • AWS CloudTrail
    • AWS Config
    • Amazon EventBridge
    • Amazon CloudWatch
    • CloudWatch Logs
    • AWS X-Ray
    • Amazon Elastic File System(EFS)
    • Amazon Managed Service for Prometheus
    • Amazon Managed Grafana
    • Amazon Simple Notification Service
    • AWS Chatbot
    • Amazon EC2
    • AWS Backup
    • AWS Glue
    • Amazon Athena
    • Amazon QuickSight
    • AWS IAM Identity Center
    • AWS WAF
    • AWS Security Hub
    • AWS Key Management Service
    • Amazon GuardDuty

なお、記載の利用AWSサービスについては、政府情報システムのためのセキュリティ評価制度 (ISMAP)についてのAWS保証プログラムの適用範囲となっています。
詳細については下記、AWS提供のドキュメントページをご覧ください。
https://aws.amazon.com/jp/compliance/services-in-scope/ISMAP/

1.3 ネットワーク構成

  • 東京リージョンで利用可能な3つのアベイラビリティゾーンを利用した冗長化構成をとっています。
  • AWS VPCを利用し、プライベートサブネットとパブリックサブネットを使用してセグメント化されています。
  • パブリックサブネットには、Application Load Balancer、および、NAT Gatewayが配置されます。
  • プライベートサブネットには、バックエンドサービスが実行されるECSサービス、Lambda関数、および、Auroraクラスターが配置されます。
    • Lambda関数についてはVPC内のリソースにアクセスが必要なもののみ、VPC内で実行されます。 network_summary

1.4 システム概要図

システム概要図を示します。 system_architecture_diagram

2. AWS権限設定

2.1 リソースにおける権限設定

各リソースには役割に応じた適切なIAMロールを割り当てています。
例えばAuroraクラスターへの接続はIAMデータベース認証を用いて行われますが、データベースへのアクセスのあるリソースにのみ、IAMポリシーにて権限が付与されています。

2.2 ユーザーの権限設定

AWS IAM Identity Centerを使用して社内ユーザーの認証、および、認可を行っています。
各ユーザーの役割に応じた適切な権限管理(例えば開発者は開発環境にのみアクセス可能など)を行い、特に本番環境へのアクセスは業務上必要な者のみに制限されています。
部署異動、退職等による権限の変更については適宜行っています。

管理者(スーパーユーザー)権限についての補足

手動による変更作業においては管理者(スーパーユーザー)権限を利用してますが、対応者をCTO、および、プロダクト責任者のみに限定して運用しています。
他開発者、委託先等の簡易的に作業を行うという運用は現在とっておりません。

2.3 多要素認証

アクセスについて、多要素認証を必須としています。

3. ネットワークセキュリティ

3.1 セキュリティグループとネットワークACL

  • 受信側のセキュリティグループを用いて必要最小限の許可設定にてアクセス制御を行っています。
  • ネットワークACLにて明示的な拒否、明示的な許可、暗黙の拒否を用いた設定を行っています。

3.2 通信の暗号化

TLSを使用してデータの暗号化を実施しています。
利用可能なTLSバージョンはv1.2以上です。

3.3 DDoS攻撃への対策

AWS Shieldにて保護されています。

4. データセキュリティ

4.1 データ保管先

  • サービスに利用されるデータはAuroraクラスター、および、S3に記録、保存されます。
  • ECSサービスの各タスクは読み取り専用コンテナとして実行され、自身のストレージ領域やEFSへの書き込みは行われません。
  • タスクに利用されるコンテナイメージはAmazon ECR上のプライベートリポジトリに保存されます。
    • コンテナイメージのタグはイミュータブル設定とされ、上書き不可での運用となります。
  • サービス更新時は新しいコンテナイメージから新しいタスクが起動され、古いタスクは停止されます。
  • 各タスクはログイン不可として設定されます。

4.2 データベース暗号化

Auroraクラスターは暗号化されています。

4.3 データへのアクセス制御

  • Aurora PostgreSQLクラスターへのアクセスはIAM認証にて制御されています。
  • S3バケットはパブリックブロック設定を行っています。
  • S3バケット内オブジェクトへのアクセスについては、同一アカウント内においてはIAM、クロスアカウントにおいてはIAM、および、バケットポリシーを使用してデータのアクセスを制御しています。

4.4 データへのアクセスログ

  • データベース内の個人情報を含むデータへのアクセスについては監査ログが取得されます。
  • S3バケットのアクセスについてはCloudTrailを利用したオブジェクトレベルのアクセスログが取得されます。

5. アプリケーションセキュリティ

5.1 Web Application Firewall

CloudFront、および、ALBにAWS WAFを設定し、各種ルールを設定、運用しています。

5.2 脆弱性スキャン

コンテナイメージはAmazon Inspectorを利用して、イメージ登録時、および、定期的にイメージスキャンが実行されています。
脆弱性検知した場合、随時ライブラリ等のアップデートを実施しています。

5.3 セキュリティイベントの監視

下記のサービスを利用し、異常検知時は運用者に通知を送信するように構成されています。

  • AWS Security Hub
  • Amazon GuardDuty
  • Amazon Simple Notification Service
  • AWS Chatbot

5.4 サイトの改ざんへの対策

サイトを構成する静的ファイルについてはS3バケットにホストされていますが、該当のS3バケットの変更監視をしています。
リリース作業などを除き、不審な変更検知があった場合には直ちに確認、および、適切な対応を実施する運用となっています。
(今のところ、当事象の発生はありません。)

6. サービス運用

6.1 SmartPOST Admin Pannel

xID社のSmartPOST運用者はSmartPOST Admin Pannel と呼ばれる専用の管理画面を用いて自治体アカウントの管理等を実施します。

6.2 障害検知

下記のサービスを利用し、異常検知時は運用者に通知を送信するように構成されています。

  • CloudWatch
  • CloudWatch Logs
  • Amazon Simple Notification Service
  • AWS Chatbot

なお、運用者への通知後の対応については、障害発生時の対応手順を文書化しており、手順に沿った対応が行われます。

6.3 ログ管理と保持ポリシー

ログは次のサービスに保存されます。保持期間はCloudTrail(AWSサービスの操作履歴)については1年、その他ログについては3カ月としています。

  • Amazon CloudWatch Logs
  • Amazon Simple Storage Service

6.4 バックアップと復旧戦略

Auroraクラスターに対し、日次の自動バックアップを設定しています。
トランザクションログが正常に利用できる場合はポイントインタイムリカバリにてなるべく現在時刻に近い時刻で正常に復旧可能なポイントへ復旧します。
ポイントインタイムリカバリが使用不可の場合、自動バックアップで取得されているスナップショットからAuroraクラスターを復旧します。

6.5 本番環境へのアクセス

本番環境へのアクセスは次の機会に限定されています。

  • リリース作業
  • 障害、不具合が疑われる場合の調査、および、対応 (必要な場合、個人情報を含むデータにアクセスすることがあります)

6.6 運用端末管理(セキュリティ対策)について

当社はリモートワークを前提として運用設計されており、作業者の業務端末を利用して環境へアクセスします。
作業場所の固定された専用運用端末は利用しておりません。
端末のOS、および、アプリケーションのセキュリティアップデートを適宜、適用しています。
また、ウィルス対策ソフトによる定期スキャンを実施しています。

6.7 運用担当者のセキュリティ教育について

当社はISMSの認証を取得(認証登録番号:MSA-IS-553)しており、基準にのっとったセキュリティ研修を実施しています。

7. SmartPOSTが利用するAWS以外のサードパーティサービス

SmartPOSTでは次のサードパーティサービスを利用しています。※()内は用途です。

  • R-Cloud Proxy(LGWANからのSmartPOST利用)
  • SendGrid(メール送信)
  • Firebase(プッシュ通知)
  • Apple Push Notification Service(プッシュ通知)
  • Zendesk(サポートリクエスト)
  • テックタッチ (システム利用の案内、画面推移情報の取得)
  • Slack(通知送信先)