<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>NetworkPolicy on Landry Zetam - Tech Blog</title><link>https://blog.landryzetam.net/tags/networkpolicy/</link><description>Recent content in NetworkPolicy on Landry Zetam - Tech Blog</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 11 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.landryzetam.net/tags/networkpolicy/index.xml" rel="self" type="application/rss+xml"/><item><title>NetworkPolicy vs AuthorizationPolicy: One Decides If the Call Connects, the Other Decides If Anyone Answers</title><link>https://blog.landryzetam.net/posts/network-policy-vs-authorization-policy/</link><pubDate>Thu, 11 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.landryzetam.net/posts/network-policy-vs-authorization-policy/</guid><description>&lt;p>Kubernetes gives you two resources that both look like &amp;ldquo;firewall rules for pods,&amp;rdquo; and most teams deploy one and assume they got the other for free. They didn&amp;rsquo;t. The two policies operate at different layers, speak different languages, and fail in completely different ways — and you almost certainly need both.&lt;/p>
&lt;h2 id="the-setup">The Setup&lt;/h2>
&lt;p>Picture a cluster running a service mesh (Istio, in my case) with a typical three-tier layout: an ingress gateway, a handful of API services, and a PostgreSQL database listening on port 5432. The security requirement sounds simple: only the API services should reach the database, and only the gateway should reach the APIs. The first instinct is to reach for &lt;em>a&lt;/em> policy — and Kubernetes hands you two that both claim to do this. &lt;code>NetworkPolicy&lt;/code> ships with Kubernetes itself (enforced by your CNI — Cilium, Calico). &lt;code>AuthorizationPolicy&lt;/code> ships with Istio (enforced by the Envoy sidecar). Same goal on paper, very different machinery underneath.&lt;/p></description></item></channel></rss>