Smart Assist ネットワーク技術者育成テキスト
EN

第6章 Smart Assist通信設計の技術解剖


6.1 実際の通信シーケンス図

Smart Assist PCがAWSクラウドへ未確定画像を送信し、分類結果を取得するまでの通信シーケンスを時系列で示す。

Smart Assist PC DNS FW/NAT AWS (Smart Assist) 1 DNS問い合わせ 2 DNS応答 3 TCP 3ウェイハンドシェイク 4 TLSハンドシェイク (証明書検証・鍵交換) 5 HTTPS リクエスト(画像送信) 6 HTTPS レスポンス(受付確認) ... 時間経過 ... 7 HTTPS リクエスト(結果問い合わせ) 8 HTTPS レスポンス(分類結果) 凡例 通常の通信 TLS暗号化された通信

各ステップを以降の節で詳しく解説する。


6.2 DNS解決の流れ

ステップ①②の詳細

Smart Assist PCが最初に行うのは、接続先のFQDNをIPアドレスに変換するDNS問い合わせである。

Smart Assist PC 院内DNS フォワーダ 外部DNS 権威DNS IPアドレス: 52.194.10.20

病院環境での注意点

確認ポイント内容
DNSサーバのアドレスSmart Assist PCに設定されたDNSサーバは何か
外部名前解決の可否院内DNSからインターネット上のFQDNを解決できるか
ファイアウォールのDNS許可DNSの53/udp通信がファイアウォールで許可されているか
DNSキャッシュ古いIPアドレスがキャッシュされていないか

AWS環境特有の注意

AWSのサービスでは、同じFQDNに対するIPアドレスが動的に変化することがある。そのため、ファイアウォールの許可ルールをIPアドレスではなくFQDNで設定することが推奨される(第7章で詳述)。

AWSのIPアドレスは"生き物"だと思え

AWSのIPアドレスがどれくらい変わるか、実感ない人が多いと思います。実はALBのIPアドレスは数時間単位で変わることもあるんです。負荷が増えればスケールアウトして新しいIPが追加され、減ればIPが減る。

だから「今のIPアドレスを調べてFWに設定すればOK」は絶対にNG。翌朝には違うIPになっていて通信が止まります。

FWの許可ルールは必ずFQDNで設定すること。FQDN許可に対応していないFWの場合の対処法は第7章で解説します。


6.3 TLSハンドシェイク

TLS/SSL

TLS証明書(Let's Encrypt ロゴ例)

ステップ③④の詳細

TCP接続が確立された後、TLSハンドシェイクが行われる。

Smart Assist PC AWS (Smart Assist) ClientHello (TLSバージョン, 暗号スイート一覧) ServerHello (選択された暗号スイート) Certificate (サーバ証明書) ServerHelloDone 【Smart Assist PCが証明書を検証】 ・発行者は信頼できるCAか? ・有効期限内か? ・ドメイン名は一致するか? ClientKeyExchange ChangeCipherSpec Finished ChangeCipherSpec Finished 暗号化通信開始

SSLインスペクションの影響

病院のプロキシやファイアウォールがSSLインスペクションを行っている場合、TLSハンドシェイクの動作が変わる。

【通常のTLS】 Smart Assist PC AWS TLS 【SSLインスペクションあり】 Smart Assist PC プロキシ/FW AWS TLS TLS (証明書A) (証明書B)

この場合、Smart Assist PCが受け取る証明書はAWSのものではなく、プロキシが発行した証明書になる。これが証明書エラーの原因となることがある(第10章で詳述)。

証明書の"issuer"を見る癖をつけよう

SSLインスペクションが入っているかどうか、実は証明書のissuer(発行者)を見れば一発で分かります

curl -v https://smartassist.example.com の出力で issuer: の行を確認してください。正常なら issuer: C=US, O=Amazon, CN=Amazon RSA 2048 M01 のように公的なCAの名前が出ます。

これが issuer: CN=Hospital-Proxy-CA とか issuer: CN=FortiGate-CA になっていたら、SSLインスペクションが入っている証拠。この確認は導入前のヒアリングでやっておくと、後のトラブルを未然に防げます。


6.4 画像データ送信の流れ

ステップ⑤⑥の詳細

TLSハンドシェイク完了後、暗号化された経路上でHTTPSリクエストとして画像データを送信する。

HTTPSリクエスト(イメージ):

  POST /api/v1/images HTTP/1.1
  Host: smartassist.example.com
  Content-Type: multipart/form-data
  Authorization: Bearer <認証トークン>

  [画像バイナリデータ]
  [検体ID]
  [自動分類結果]
  [タイムスタンプ]

通信の特性

項目内容
HTTPメソッドPOST(データの送信)
データサイズ画像データを含むため比較的大きい(数KB〜数MB)
認証APIトークンによる認証
暗号化TLSにより全データが暗号化されている

レスポンスの内容

HTTPSレスポンス(イメージ):

  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "status": "accepted",
    "request_id": "abc-123-def"
  }

このレスポンスは「データを受け付けた」という確認であり、分類結果はまだ返ってこない。


6.5 分類結果返却の仕組み

ステップ⑦⑧の詳細

遠隔技師が分類を完了した後、Smart Assist PCがクラウドに問い合わせることで結果を取得する。

HTTPSリクエスト(イメージ):

  GET /api/v1/results?since=2025-01-15T10:00:00Z HTTP/1.1
  Host: smartassist.example.com
  Authorization: Bearer <認証トークン>
HTTPSレスポンス(イメージ):

  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "results": [
      {
        "request_id": "abc-123-def",
        "specimen_id": "SP-20250115-001",
        "classifications": [
          { "image_id": "img-001", "category": "RBC", "confidence": 0.95 },
          { "image_id": "img-002", "category": "WBC", "confidence": 0.92 }
        ],
        "classified_by": "technician-A",
        "classified_at": "2025-01-15T10:30:00Z"
      }
    ]
  }

ポーリングの仕組み

Smart Assist PCは定期的にクラウドへ結果を問い合わせる。これをポーリング(Polling)と呼ぶ。

時間経過 PC AWS 「結果ある?」 「まだない」 待機... 「結果ある?」 「まだない」 待機... 「結果ある?」 「あります!」 結果取得

6.6 「Outbound Only」とは何を意味するのか

定義

「Outbound Only」とは、すべての通信が院内から外部への方向で開始されることを意味する。

通信方向の分類

方向定義Smart Assistでの該当
Outbound院内 → 外部への通信開始すべての通信が該当
Inbound外部 → 院内への通信開始該当なし
レスポンスOutbound通信に対する応答結果の返却

レスポンスはInboundではない

ファイアウォールの観点で重要なのは、Outbound通信に対するレスポンスは「Inbound通信」ではないという点である。

【ステートフルファイアウォールの動作】 PC FW AWS 1 Outbound通信 443/tcp SYN 通信を記録 2 レスポンス SYN-ACK, ACK, データ ①の応答 → 自動通過 ※ ②は新規の「Inbound通信」ではなく、①に対する「応答」として扱われる

Outbound Onlyであることのセキュリティ上の意味

ポイント説明
ポートリスニングなし院内側で外部からの接続を待ち受けるポートが存在しない
攻撃面の最小化外部から能動的に院内へ侵入する経路がない
FWルールの単純化Outboundの許可ルールのみで構成できる
"双方向通信ですか?"と聞かれたら

病院IT担当者から「Smart Assistは双方向通信ですか?」と聞かれるケース、非常に多いです。このとき「はい、結果が返ってくるので双方向です」と答えるのは最悪の回答です。

正しい回答は:「通信の開始は常に院内からクラウドへのOutbound方向です。結果の返却はHTTPSのレスポンスであり、ファイアウォールのステートフルインスペクションによって自動的に通過します。Inbound通信の許可ルールは不要です。」

この説明ができるかどうかで、病院IT担当者からの信頼度が大きく変わります。第12章のケーススタディ(12.3)で、この回答を間違えて3か月停滞した実例を紹介しています。


6.7 外部からの直接侵入がない理由

技術的な根拠

Smart Assistの通信設計において、外部(インターネット)から院内ネットワークへの直接侵入がないと言える技術的根拠を整理する。

根拠1: Inboundポートが開いていない

ファイアウォールのルール: 許可: 192.168.10.50 → smartassist.example.com:443 (Outbound) 拒否: * → 192.168.10.50:* (Inbound) ← そもそもルールが存在しない

外部から院内への新規接続を許可するファイアウォールルールが存在しないため、外部からの接続は物理的にブロックされる。

根拠2: NATの内側

院内PCはNATの内側に位置しており、外部からプライベートIPアドレスへ直接到達する方法がない。

外部の攻撃者 203.0.113.1 (病院のグローバルIP) NAT装置:セッションなし → 破棄 192.168.10.50 到達不可能

根拠3: リスニングサービスなし

Smart Assist PCは外部からの接続を待ち受けるサービス(Webサーバ、SSHサーバなど)を稼働させていない。仮にファイアウォールを通過できたとしても、接続を受け入れるプロセスが存在しない。

根拠4: TLSによる通信保護

TLSにより、通信経路上での盗聴・改ざん・なりすましが防止されている。中間者攻撃(MITM)による通信の傍受も困難である。

まとめ:病院IT担当者への説明

「外部から院内への侵入はありません」

技術的根拠:

  1. Inbound通信を許可するFWルールがない
  2. NATの内側であり、外部から直接到達不可能
  3. 院内PCにリスニングサービスがない
  4. TLSにより経路上の攻撃も防止

結果返却はOutbound通信のHTTPSレスポンスであり、
外部からの新規Inbound接続ではありません。


6.8 資料の読み方:ネットワーク説明資料(Network Explanatory Materials)

資料の概要

「SmartAssist Network Explanatory Materials」 は、Smart Assistクラウドのシステム構成とネットワーク接続方法を図解した技術資料である。病院IT部門がファイアウォール設定や接続方式を検討する際に使用する。

対応するファイル: UHW-PRJ2024040-L-2025-007a_SmartAssist Network Explanatory Materials

Smart Assistクラウドの構成要素

ネットワーク説明資料には、Smart Assistクラウドを構成するAWSサービスの全体像が示されている。担当者は各サービスの役割を理解しておく必要がある。

AWSサービス役割担当者が説明できるべきこと
Route 53DNSSmart Assistのドメイン名を解決する
Certificate ManagerTLS証明書管理HTTPS通信に使用する証明書を自動管理
WAFWebアプリケーションファイアウォール不正リクエストをフィルタリング
ALBApplication Load Balancer通信を複数のサーバーに分散する(第8章参照)
Cognitoユーザー認証・認可操作者の認証とアクセス制御を行う
Lambdaサーバーレス関数アプリケーションロジックの実行基盤
EC2仮想サーバーメンテナンス用のサーバー
S3オブジェクトストレージ画像データ・結果ファイルの保存
Aurora (PostgreSQL)データベースユーザー属性・測定ステータスの管理
SSM / Secrets Managerパラメータ・シークレット管理接続情報や認証情報の安全な管理

セキュリティ・監査サービス

Smart Assistクラウドでは以下のAWSセキュリティサービスが有効化されている。

サービス役割
CloudWatchログ監視・アラーム通知
CloudTrailすべてのAPI操作の記録(監査証跡)
GuardDuty脅威検出(IDS/IPS機能)
Configリソースの構成変更履歴の管理
Security Hubセキュリティ状態の一元管理
ShieldDDoS攻撃からの保護
Detectiveセキュリティデータの分析・可視化
Inspector脆弱性の自動検出
IAM Access Analyzerアクセス権限の異常検知

3つの接続オプション

ネットワーク説明資料では、病院からSmart Assistクラウドへの接続方法として3つのオプションが提示されている。

オプション方式病院側の要件特徴
Option 1Outbound直接接続FWでOutbound HTTPS許可最もシンプル。FQDNベースの許可設定が必要
Option 2AWS Client VPNVPNクライアントの導入VPN経由の暗号化通信。専用アプリが必要
Option 3プロキシ経由既存プロキシサーバーの利用病院のプロキシポリシーに準拠。ただしSmart Assistはプロキシ非サポートの場合あり

重要: いずれのオプションでも 静的なインバウンド設定は不要 である。通信方向はすべて病院側からクラウドへのOutboundである。

物理接続の構成

AUTION EYEとPC・LIS間の接続構成も資料に記載されている。

接続方式備考
AI-4510 → PCSED_PORT(USB経由)有線接続
PC → Hospital LISHOST_PORT(LAN経由)Smart Assist経由でのLIS接続
PC → Smart Assist CloudHTTPS (443)病院LANからOutbound

次章では、この通信を実現するためのファイアウォール設計と、病院IT担当者への申請方法を学ぶ。