コンテンツにスキップ

保健衛生システムNW設定変更方針

1. 概要

本書は、認知症検診管理システムの EC2(Back)から保健衛生システム(衛生DB)の SQL Server を直接参照する方式を採用する場合のネットワーク設定変更方針を示す。

本方式は、認知症検診管理システムが衛生DBに対して参照クエリを実行する構成である。

基本方針

  • 衛生DBに対して、認知症検診 EC2 から SQL Server の待受ポートへの通信のみを許可する
  • 通信元は認知症検診 EC2 のセキュリティグループIDで制限する
  • 許可ポートは衛生システムの SQL Server が実際に使用しているポートのみとする
  • 認知症検診管理システムから衛生DBへの通信のみを許可し、衛生DBから認知症検診管理システムへの新規接続は許可しない
  • データベースユーザーは参照専用権限とし、参照対象は合意済みのテーブルまたはビューに限定する
  • 接続情報は環境変数、AWS Systems Manager Parameter Store、AWS Secrets Manager などで管理し、ソースコードやドキュメントに実パスワードを記載しない

2. 対象環境

本番環境・テスト環境の両方に対して同一方針で設定変更を行う。

項目本番テスト
認知症検診 EC2認知症検診管理システム(本番)VPC内認知症検診管理システム(検証)VPC内
衛生システム SQL Server衛生システム(本番)VPC内衛生システム(検証)VPC内
VPC関係同一VPC同一VPC

3. AWS設定変更内容

3.1 セキュリティグループ(衛生システム SQL Server側)

衛生システムのSQL Serverインスタンスに関連付けられたセキュリティグループに、以下のインバウンドルールを追加する。

インバウンドルール追加:

項目設定値
タイプカスタムTCP
プロトコルTCP
ポート範囲1433(SQL Server既定ポート)
ソース認知症検診 EC2のセキュリティグループID
説明認知症検診管理システムからの参照接続
  • 認知症検診 EC2のセキュリティグループIDを指定する
  • 衛生システム側のSQL Serverポートが1433以外の場合は、実際の待受ポート番号に読み替える
  • 既存ルールと重複または広い許可がある場合は、追加ルールだけでなく既存ルールの見直し要否を確認する

3.2 セキュリティグループ(認知症検診 EC2側)

認知症検診 EC2のセキュリティグループのアウトバウンドルールを確認する。

確認事項:

  • デフォルトのアウトバウンドルール(全トラフィック許可: 0.0.0.0/0)が設定されている場合、追加変更は不要
  • アウトバウンドが制限されている場合は、以下のルールを追加する

アウトバウンドルール追加(必要な場合のみ):

項目設定値
タイプカスタムTCP
プロトコルTCP
ポート範囲1433
デスティネーション衛生システム SQL ServerのセキュリティグループID
説明衛生DBへの参照接続
  • アウトバウンドが全許可の場合でも、基盤運用方針として最小許可が求められる場合は、衛生DB宛の明示ルールへ切り替える

3.3 ネットワークACL

  • 実際のポート範囲は、認知症検診 EC2 のOS、SQL Server クライアント、基盤標準に合わせて決定する。

4. SQL Server データベースユーザー設定

  • 衛生システム側のSQL Serverに参照専用ユーザーを作成する。権限は合意済みの参照対象に限定し、dbo スキーマ全体への SELECT 付与は行わない。
  • ユーザー名・パスワードは衛生システム管理者と協議の上で決定する
  • 参照対象は、宛名番号、氏名、生年月日、性別、住所など、要件定義で合意した項目に限定する
  • 参照対象が複数テーブルにまたがる場合は、認知症検診管理システム向けの参照ビューを作成し、ビューにのみ SELECT 権限を付与する
  • パスワードはソースコード、手順書、チケット本文に記載せず、基盤運用で定めた秘密情報管理先に登録する
  • SQL Server 接続時は暗号化を有効化し、証明書検証方式を接続文字列と運用手順に明記する

5. 設定変更手順

5.1 事前確認

  1. DB直接参照方式が関係者合意済みであることを確認する
  2. 関連文書がDB直接参照方式と矛盾していないことを確認する
  3. 衛生システム SQL Serverの接続先、待受ポート、サブネット、セキュリティグループIDを確認する
  4. 認知症検診 EC2のサブネット、セキュリティグループIDを確認する
  5. ネットワークACLを確認する
  6. 参照対象テーブルまたはビュー、参照項目、DBユーザー名、資格情報管理先を確認する

5.2 テスト環境

  1. 衛生システム側 SQL Server に参照専用ログイン・ユーザーを作成する
  2. 参照対象ビューまたはテーブルに SELECT 権限を付与する
  3. 衛生システム側セキュリティグループにインバウンドルールを追加する
  4. 認知症検診 EC2側セキュリティグループにアウトバウンドルールを追加する(必要な場合)
  5. カスタムネットワークACLがある場合は、SQL Server 宛通信と戻り通信を許可する
  6. 認知症検診 EC2からポート疎通を確認する
  7. 参照専用ユーザーで SQL Server 接続を確認する
  8. SELECT が成功し、INSERT/UPDATE/DELETE が拒否されることを確認する
  9. アプリケーションから接続・クエリ実行を確認する

5.3 本番環境

テスト環境で問題がないことを確認した後、本番環境に同一方針で適用する。本番適用時は、変更前のセキュリティグループルール、ネットワークACL、DBログイン・ユーザー状態を記録してから作業する。

6. 疎通確認方法

6.1 ネットワーク疎通確認

  • 認知症検診 EC2からSQL Serverへのネットワーク到達性を確認する。
  • 接続先に DNS 名を利用する場合は、名前解決結果も確認する。

6.2 データベース接続確認

  • 参照専用ユーザーで接続し、SELECT操作が可能であること、INSERT/UPDATE/DELETE操作が拒否されることを確認する。
  • アプリケーションログに資格情報や個人情報が出力されないことを確認する。

7. ロールバック手順

設定変更後に問題が発生した場合は、以下の手順でロールバックする。

  1. アプリケーション側の衛生DB参照機能を停止または無効化する
  2. 衛生システム側セキュリティグループから追加したインバウンドルールを削除する
  3. 認知症検診 EC2側のアウトバウンドルール(追加した場合)を削除する
  4. 追加したネットワークACLルール(追加した場合)を削除する
  5. SQL Serverの参照専用ユーザーを削除する
  6. SQL Serverの参照専用ログインを削除する
  7. アプリケーション側の接続情報・秘密情報を削除または無効化する
  8. 変更前状態に戻ったことを、疎通不可、ログイン不可、アプリケーション動作の観点で確認する