メインコンテンツまでスキップ

ネットワークセキュリティ

防衛グレードのデプロイでは、ネットワークを主要なコントロールプレーンとして扱います。 このページでは、境界 の制御(ロードバランサー、WAF、ファイアウォール)と 内部 の制御(NetworkPolicy、mTLS、セグメンテーション)について説明します。

トラフィックフローと多層防御​

ロードバランシング​

環境推奨ロードバランサー
ベアメタル OpenShiftIngress 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クライアントロードバランサー VIP443/TCPユーザーアクセス(HTTPS)
2LBIngress Router443/TCPクラスターへの転送
3管理者OpenShift API6443/TCPクラスター管理
4ワーカーノードOpenBao VM8200/TCPシークレット取得
5ワーカーノードPostgreSQL VM5432/TCPデータベース
6ArgoCDGitLab443/TCP、22/TCPGitOps ソース
7クラスター / Veleroオブジェクトストレージ443/TCPバックアップ
8OpenBao VMHSMベンダーごとトラストアンカー(オプション)
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 を完全に オンプレミスに保持します。