Webサーバやtomcat等を搭載したAPサーバ、PostgreSQL等を搭載したDBサーバ、Zabbix等を搭載した監視サーバなど、
異なる機能をもつサーバがある場合に、セキュリティを高めるためそれぞれのサーバで必要なルールのみ適用したい、
といった要求事項に対応するパターンです。
K5では、システムのセキュリティを高める機能として、セキュリティグループという機能が提供されています。
セキュリティグループでは、仮想サーバに接続されたポートに対してパケットフィルタリングを行うことができます。
セキュリティグループには、以下の特徴があります。
そこで、機能や用途ごとにセキュリティグループを作成して必要なルールを記載し、各サーバに割り当てることで、
各サーバに対して必要最小限のルールを適用できるようになります。
以下では、セキュリティグループを Webサーバ/APサーバ/DBサーバ/監視サーバ別に分けた実装例を記載しています。
以下は、Webサーバ/APサーバ/DBサーバ/監視サーバを、階層のないネットワークにフラットに配備して、
セキュリティグループでアクセス制御を行っているイメージ図です。
このように、フラットな構成でもアクセス制御をかけられるのが セキュリティグループ の機能の特徴です。
また、本資料の 実装サンプル のように 接続先 を セキュリティグループ にしておくことで、
セキュリティの多重防御を意図して その他 に記載のようにネットワーク構成を階層化しても、
同じ セキュリティグループ の設定を使うことができます。
以下の内容で設定します。
セキュリティグループの設定方法については、インターネット接続パターン に記載の手順を参照してください。
ルール | 方向 | オープン ポート | ポート | 接続先 | セキュリティグループ または CIDR | IPバージョン |
---|---|---|---|---|---|---|
カスタムTCPルール | 受信 | ポート | 80 | CIDR | 0.0.0.0/0 | IPv4 |
カスタムTCPルール | 送信 | ポート | 9001 | セキュリティ グループ | SG_AP | IPv4 |
ルール | 方向 | オープン ポート | ポート | 接続先 | セキュリティグループ または CIDR | IPバージョン |
---|---|---|---|---|---|---|
カスタムTCPルール | 受信 | ポート | 9001 | セキュリティ グループ | SG_Web | IPv4 |
カスタムTCPルール | 送信 | ポート | 5432 | セキュリティ グループ | SG_DB | IPv4 |
ルール | 方向 | オープン ポート | ポート | 接続先 | セキュリティグループ または CIDR | IPバージョン |
---|---|---|---|---|---|---|
カスタムTCPルール | 受信 | ポート | 5432 | セキュリティ グループ | SG_AP | IPv4 |
ルール | 方向 | オープン ポート | ポート | 接続先 | セキュリティグループ または CIDR | IPバージョン |
---|---|---|---|---|---|---|
カスタムTCPルール | 受信 | ポート | 10050 | セキュリティ グループ | SG_ZBX_SV | IPv4 |
カスタムTCPルール | 送信 | ポート | 10051 | セキュリティ グループ | SG_ZBX_SV | IPv4 |
ルール | 方向 | オープン ポート | ポート | 接続先 | セキュリティグループ または CIDR | IPバージョン |
---|---|---|---|---|---|---|
カスタムTCPルール | 受信 | ポート | 10051 | セキュリティ グループ | SG_ZBX_AG | IPv4 |
カスタムTCPルール | 送信 | ポート | 10050 | セキュリティ グループ | SG_ZBX_AG | IPv4 |
本パターンを利用して、セキュリティグループを機能別・用途別に分けた場合のメリット・効果は以下の通りです。
ネットワーク構成を、フラットな構造の 構造 (イメージ図) から、以下のように 2階層のネットワークに変更しても、
本資料の 実装サンプル のように 接続先 を セキュリティグループ にしてあるルールについては、
セキュリティグループの設定は同じ設定が使用可能です。
※ 2階層のネットワーク構成については、『2階層ネットワーク構成』 をご参照ください。
■ルータ 1つで 2階層ネットワーク構成に変更した例 | ■ルータ 2つで 2階層ネットワーク構成に変更した例 |
|
|
監視用のセキュリティグループで、本パターンでは、監視サーバ用の "SG_ZBX_SV" と、
監視エージェント用の "SG_ZBX_AG" とで2つ作成しています。
これを、以下の "SG_ZBX" のように1つにまとめることも考えられます。
ルール | 方向 | オープン ポート | ポート | 接続先 | セキュリティグループ または CIDR | IPバージョン |
---|---|---|---|---|---|---|
カスタムTCPルール | 受信 | ポート | 10050 | セキュリティ グループ | SG_ZBX | IPv4 |
カスタムTCPルール | 送信 | ポート | 10050 | セキュリティ グループ | SG_ZBX | IPv4 |
カスタムTCPルール | 受信 | ポート | 10051 | セキュリティ グループ | SG_ZBX | IPv4 |
カスタムTCPルール | 送信 | ポート | 10051 | セキュリティ グループ | SG_ZBX | IPv4 |
このセキュリティグループを、Webサーバ/APサーバ/DBサーバ/監視サーバに適用すると、K5 の内部では以下のルールが生成されます。
本来は、必要なルールは上記表の ● のルールのみですが、セキュリティグループを SG_ZBX と1つにまとめてしまうことで、
上記表の × の箇所のルールのように、多数の無用なルールが生成されてしまいます。
こうした送受信を1つにまとめた設定方法は、無用のルールが追加されてしまうため、アクセス制御面で望ましくありません。
以下の図では、上記表の中の無用なルールから、例として、上記表の ※ のルールを構成図で太線の赤矢印で示しています。
このように、本来は送受信する必要がない経路にまでルールが生成されて、アクセスが許可されてしまうことになりますので、
セキュリティ上で問題となりえます。
さらに、ルールが多数生成されてしまうことにより、性能面で影響が懸念されます。
セキュリティグループ "SG_ZBX" を適用するサーバを増やしていくと、ルール数はサーバとポートと送受信方向の組み合わせの数の
累乗で増えていくため、非常に多くのルールが生成されてしまうこととなり、性能面で深刻な影響を与えることにもなりかねません。
そのため、セキュリティグループの設定では、本パターンの 実装サンプル のように、送信の設定と受信の設定を適切に分けて記載するよう
お願いいたします。