ネットワークセキュリティ
防衛グレードのデプロイでは、ネットワークを主要なコントロールプレーンとして扱います。 このページでは、境界 の制御(ロードバランサー、WAF、ファイアウォール)と 内部 の制御(NetworkPolicy、mTLS、セグメンテーション)について説明します。
トラフィックフローと多層防御
ロードバランシング
| 環境 | 推奨ロードバランサー |
|---|---|
| ベアメタル OpenShift | Ingress Router の前段に配置する MetalLB(L2/BGP) |
| エンタープライズデータセンター | F5 BIG-IP LTM、Citrix ADC、または既存のハードウェア LB |
| VMware / OpenStack | プラットフォーム LB(NSX ALB、Octavia)または外部ハードウェア LB |
ガイダンス:
- HA のために すべての Ingress Router レプリカ間でロードバランシングを行います。 ルーターエンドポイントのヘルスチェックを実施します。
- WAF がペイロードを検査する必要があるかどうかに応じて、TLS を終端またはパススルー します(後述)。
- 監査ログのためにクライアントのソース IP(X-Forwarded-For / PROXY プロトコル)を 保持します。
Web アプリケーションファイアウォール(WAF)
WAF は HTTP(S) トラフィックをアプリケーション層攻撃(OWASP Top 10)について検査します。
| オプション | 備考 |
|---|---|
| ModSecurity + OWASP Core Rule Set(CRS) | オープンソース、オンプレミス / エアギャップにデプロイ可能 |
| F5 Advanced WAF(ASM) | エンタープライズ、BIG-IP LTM と統合 |
| Citrix Web App Firewall | エンタープライズ |
| Imperva / Fortinet FortiWeb | エンタープライズアプライアンス |
推奨されるベースライン:
- 短いチューニング期間の後、OWASP CRS を ブロッキング モードで有効化します。
- 該当する場合はリクエストサイズ制限、レート制限、地域/IP 許可リストを強制します。
- WAF ログを SIEM に転送します(コンプライアンスと監査 を参照)。
あらゆる場所で TLS を使用
- 外部: ロードバランサー / Ingress Router で TLS 1.2 以上(TLS 1.3 を推奨)。 エンタープライズ/内部 CA の証明書を使用します。エアギャップサイトにも適しています。
- 内部: サービス間トラフィックは暗号化されます。バックエンドは相互認証済み(mTLS) チャネルでのみ OpenBao に到達します。
- 暗号ポリシー: 強力な暗号スイートに制限します。OpenShift の
IngressControllerのtlsSecurityProfileはIntermediateまたはModernに設定できるほか、防衛環境向けの カスタム FIPS 準拠プロファイルに設定できます。
# Enforce a modern TLS profile on the Ingress Router
apiVersion: operator.openshift.io/v1
kind: IngressController
metadata:
name: default
namespace: openshift-ingress-operator
spec:
tlsSecurityProfile:
type: Modern
南北方向のファイアウォールルール
以下は許可すべき境界フローです。それ以外はすべて拒否します。
| # | 送信元 | 宛先 | ポート/プロトコル | 目的 |
|---|---|---|---|---|
| 1 | クライアント | ロードバランサー VIP | 443/TCP | ユーザーアクセス(HTTPS) |
| 2 | LB | Ingress Router | 443/TCP | クラスターへの転送 |
| 3 | 管理者 | OpenShift API | 6443/TCP | クラスター管理 |
| 4 | ワーカーノード | OpenBao VM | 8200/TCP | シークレット取得 |
| 5 | ワーカーノード | PostgreSQL VM | 5432/TCP | データベース |
| 6 | ArgoCD | GitLab | 443/TCP、22/TCP | GitOps ソース |
| 7 | クラスター / Velero | オブジェクトストレージ | 443/TCP | バックアップ |
| 8 | OpenBao VM | HSM | ベンダーごと | トラストアンカー(オプション) |
| 9 | ミラーレジストリ | クラスター | 443/TCP | エアギャップイメージのプル |
東西方向のマイクロセグメンテーション(NetworkPolicy)
クラスター内では デフォルト拒否 の姿勢を強制し、必要なフローのみを許可します。 これにより横方向の移動を封じ込めます。
# Default deny all ingress in the duokey namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-ingress
namespace: duokey
spec:
podSelector: {}
policyTypes: ["Ingress"]
---
# Allow only the frontend to reach the backend API
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-api
namespace: duokey
spec:
podSelector:
matchLabels: { app: duokey-api }
policyTypes: ["Ingress"]
ingress:
- from:
- podSelector:
matchLabels: { app: duokey-frontend }
ports:
- protocol: TCP
port: 8080
サービスメッシュと mTLS(オプション)
ゼロトラストの東西セキュリティのために、Red Hat OpenShift Service Mesh(Istio)を デプロイして、すべてのワークロード間で 厳格な mTLS を強制し、きめ細かな認可ポリシーと サービスごとのテレメトリを実現します。
ネットワークセグメンテーション(VLAN)
サポートするインフラストラクチャを分離された VLAN 上にセグメント化します。
| VLAN | 目的 |
|---|---|
| アプリケーション | OpenShift ワーカー/イングレストラフィック |
| バックエンド / データ | PostgreSQL、Redis、ストレージ |
| セキュア | OpenBao および HSM(最も制限された領域) |
| 管理 | アウトオブバンド / 管理アクセス |
エアギャップ
アーキテクチャ全体が アウトバウンドのインターネットアクセスなし で動作できます。 イメージには内部ミラーレジストリを使用し、IdP、シークレットマネージャー、HSM を完全に オンプレミスに保持します。