Istio ambient mesh review
Skill Raishin/vanguard-frontier-agentic/skills/istio/istio-ambient-mesh-review
Use this skill for Istio service mesh review across both sidecar mode and ambient mode (ztunnel L4 + optional waypoint L7). Covers PeerAuthentication, AuthorizationPolicy, RequestAuthentication, Gateway, VirtualService, DestinationRule, Sidecar, and waypoint placement. Trigger when the user asks whether an Istio policy is correct, whether mTLS is strict, whether L7 AuthorizationPolicy will actually be enforced in ambient mode, or whether a mesh-wide PeerAuthentication change is safe.From its SKILL.md
npx -y skills add Raishin/vanguard-frontier-agentic --skill istio-ambient-mesh-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 20 stars20 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.6 KB, 652 tokens by cl100k_base, as published. Nobody here has run it
Istio Ambient Mesh Review
Purpose
Review Istio configuration against zero-trust correctness and the most common ambient-mode trap: L7 AuthorizationPolicy rules silently ignored when no waypoint is deployed. Ambient mode uses ztunnel for L4 zero-trust on every node, but L7 features (HTTP method, path, JWT claim matching, request header inspection) require an explicit waypoint proxy. Without one, the L7 rules in the policy are accepted but never enforced.
Lean operating rules
- Prefer live cluster evidence (
kubectl get peerauthentication,authorizationpolicy,requestauthentication,gateway,virtualservice,destinationrule,sidecar -A -o yamlplusistioctl analyzeandistioctl x ztunnel-config) when the active client exposes it; otherwise fall back to official Istio documentation (istio.io) and sanitized YAML. - Separate confirmed facts from inference. If mesh mode (sidecar vs ambient), waypoint deployment, and namespace labels were not queried, say so.
- Ambient L7 policy without a waypoint is a critical finding — the policy looks active, the API server accepts it, but ztunnel only enforces L4. The L7 fields are silently bypassed.
- Treat
PeerAuthenticationwithmode: PERMISSIVEormode: DISABLEin production as a critical finding — mTLS is the foundation of mesh zero-trust. - Treat any mesh-wide (root namespace)
PeerAuthenticationchange as a critical-blast-radius finding — the entire mesh is affected at once. - Challenge
AuthorizationPolicywithaction: ALLOWand broadfromselectors — the default action when no policy is provisioned is ALLOW, so the only thing that creates zero-trust is a deny policy or an explicit ALLOW with bounded scope. - Challenge
RequestAuthenticationJWKs URL changes — JWT validation depends on this. - Keep the answer scoped, reversible, least-privilege, and explicit about blockers or unknowns.
References
Load these only when needed:
- Evidence path and tooling — use when choosing live cluster evidence, confirming mesh mode and waypoint deployment, or switching to documentation mode.
- Workflow and output contract — use when executing the full review, applying ambient/sidecar stress checks, or formatting the final answer.
- Official sources — use when you need the detailed Istio documentation list, ambient mode internals, and grounded insights.
Response minimum
Return, at minimum:
- the scoped target (mesh-wide vs namespace-scoped vs workload-scoped) and evidence level,
- the mesh mode (sidecar, ambient, mixed) and the waypoint deployment state for the workloads involved,
- the mTLS posture (
STRICT/PERMISSIVE/DISABLE) on PeerAuthentication, - the AuthorizationPolicy enforcement layer (L4 ztunnel-enforced vs L7 waypoint-enforced) and whether L7 rules will actually run,
- the safest next actions and rollback plan,
- the assumptions or blockers that prevent stronger conclusions.
What ships with it: 4 files
18.3 KB alongside SKILL.md
references/
- mcp-and-evidence.md3.4 KB
- official-sources.md5.2 KB
- workflow-and-output.md8.3 KB
- metadata.json1.4 KB