Skip to content

Latest commit

 

History

History
47 lines (32 loc) · 2.73 KB

File metadata and controls

47 lines (32 loc) · 2.73 KB

microsegmentation-deepdive

English | 日本語

マイクロセグメンテーションは語られまくっているが、end-to-end で動かす場が少ない。このリポは 8 種類の実装をラップトップ 1 台で実際に走らせて、パケットに何が起きるかを目で見て確認するためのもの。

中身

# 方式 ツール 実際に動かすこと
01 K8s NetworkPolicy Calico CNI kind クラスタで attacker Pod の nc がポリシー適用後にブロックされる
02 Cilium L7 + Hubble Cilium eBPF + Envoy curl DELETE が Envoy 由来の 403 を返し、attacker は L4 でタイムアウト、Hubble UI に verdict が出る
03 Calico tiered global policy Calico GlobalNetworkPolicy 名前空間横断で order/tier 評価
04 Istio mTLS + AuthZ Istio サイドカー STRICT mTLS と principal ベース拒否
05 SPIFFE/SPIRE + Envoy SPIRE Server/Agent + Envoy Envoy が SDS 経由で X.509-SVID を取得し、mTLS に使う
06 ホストファイアウォール (エージェント風) privileged Docker 内の nftables controller から各ホストにルール配布
07 Admission 時制御 OPA Gatekeeper 必須ラベルがない Pod が kubectl apply の時点で拒否される
08 AWS Security Group as code LocalStack + OpenTofu オフライン環境で VPC/SG を作って API を眺める

各ディレクトリに固有の README、run.shcleanup.sh、manifests が入っている。スクリプトは idempotent で、自分で後片付けもする。

ゼロから入る場合は番号順に積み上がる構成: 01 で L3/L4 のベースラインを作り、02 で L7 と identity を導入、04/05 でラベル信頼から証明書信頼へ、06 でホスト側の視点、07 で admission 時のガードレール、08 でクラウド API 表面、という流れ。

必要なもの

Docker (Docker Desktop / Rancher Desktop / OrbStack のいずれか) と kind kubectl helm。パターンごとに追加で cilium istioctl tofu jq が要る場合がある。

make check-tools

で入っているもの / 足りないものが一覧表示される。

ラボの走らせ方

cd 02-cilium-l7-identity
./run.sh
# ... 接続性チェックの PASS/FAIL が出力される
./cleanup.sh

全部を一気に消したい時は make clean-all で各ディレクトリの cleanup.sh を順に走らせる。

License

MIT。