<?xml version="1.0" encoding="UTF-8"?><oembed><type>video</type><version>1.0</version><html>&lt;iframe src=&quot;https://www.loom.com/embed/66702ae923074b529204650ea497eeb6&quot; frameborder=&quot;0&quot; width=&quot;1148&quot; height=&quot;861&quot; webkitallowfullscreen mozallowfullscreen allowfullscreen&gt;&lt;/iframe&gt;</html><height>861</height><width>1148</width><provider_name>Loom</provider_name><provider_url>https://www.loom.com</provider_url><thumbnail_height>861</thumbnail_height><thumbnail_width>1148</thumbnail_width><thumbnail_url>https://cdn.loom.com/sessions/thumbnails/66702ae923074b529204650ea497eeb6-d9eac50f33b2baee.gif</thumbnail_url><duration>471.184</duration><title>Production Zero Trust S3, CloudFront, Terraform</title><description>Today I’m walking you through my production ready zero trust infrastructure build for a private Next.js site. I use Terraform to provision a private S3 bucket secured with CloudFront origin access control, plus routing support for Next.js 404s. My CI CD runs via GitHub Actions with OIDC, no long lived IAM keys, and a pull request build gate that blocks merges on failures. I also cover remote Terraform state in S3 with native S3 state locking. No action is requested from you.</description></oembed>