保健衛生システム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 事前確認
- DB直接参照方式が関係者合意済みであることを確認する
- 関連文書がDB直接参照方式と矛盾していないことを確認する
- 衛生システム SQL Serverの接続先、待受ポート、サブネット、セキュリティグループIDを確認する
- 認知症検診 EC2のサブネット、セキュリティグループIDを確認する
- ネットワークACLを確認する
- 参照対象テーブルまたはビュー、参照項目、DBユーザー名、資格情報管理先を確認する
5.2 テスト環境
- 衛生システム側 SQL Server に参照専用ログイン・ユーザーを作成する
- 参照対象ビューまたはテーブルに SELECT 権限を付与する
- 衛生システム側セキュリティグループにインバウンドルールを追加する
- 認知症検診 EC2側セキュリティグループにアウトバウンドルールを追加する(必要な場合)
- カスタムネットワークACLがある場合は、SQL Server 宛通信と戻り通信を許可する
- 認知症検診 EC2からポート疎通を確認する
- 参照専用ユーザーで SQL Server 接続を確認する
- SELECT が成功し、INSERT/UPDATE/DELETE が拒否されることを確認する
- アプリケーションから接続・クエリ実行を確認する
5.3 本番環境
テスト環境で問題がないことを確認した後、本番環境に同一方針で適用する。本番適用時は、変更前のセキュリティグループルール、ネットワークACL、DBログイン・ユーザー状態を記録してから作業する。
6. 疎通確認方法
6.1 ネットワーク疎通確認
- 認知症検診 EC2からSQL Serverへのネットワーク到達性を確認する。
- 接続先に DNS 名を利用する場合は、名前解決結果も確認する。
6.2 データベース接続確認
- 参照専用ユーザーで接続し、SELECT操作が可能であること、INSERT/UPDATE/DELETE操作が拒否されることを確認する。
- アプリケーションログに資格情報や個人情報が出力されないことを確認する。
7. ロールバック手順
設定変更後に問題が発生した場合は、以下の手順でロールバックする。
- アプリケーション側の衛生DB参照機能を停止または無効化する
- 衛生システム側セキュリティグループから追加したインバウンドルールを削除する
- 認知症検診 EC2側のアウトバウンドルール(追加した場合)を削除する
- 追加したネットワークACLルール(追加した場合)を削除する
- SQL Serverの参照専用ユーザーを削除する
- SQL Serverの参照専用ログインを削除する
- アプリケーション側の接続情報・秘密情報を削除または無効化する
- 変更前状態に戻ったことを、疎通不可、ログイン不可、アプリケーション動作の観点で確認する