One Door to the Models - egress control in an AI platform:
On a platform full of language models, the real data-loss path is outbound, and it's usually left wide open. How egress became a named, enforced, deny-by-default allowlist — and the security-review confession that got it there.
The tagsession-vs-externalid gotcha - The Authorization Failure That Every Policy Said Was Impossible
A deep dive into a subtle IAM trust-policy bug, and the debugging discipline that found it.
Learn while you build: the compound interest of asking why
There's a quiet cost to letting an AI agent/tool do your thinking that nobody puts on the invoice: you come out of the project having *shipped* something and *learned* nothing. The code exists; your understanding doesn't.
The Shared IAM Role That Only Looks Like Least-Privilege
Plenty of 'secure' AI deployments give every container one role scoped to 'what the platform needs.' That's least-privilege in a diagram and nothing of the sort in practice. Per-service task roles, and why blast radius sets the boundary
The LLM Gateway as a Security Control Plane
Plenty of 'secure' AI deployments give every container one role scoped to 'what the platform needs.' That's least-privilege in a diagram and nothing of the sort in practice. Per-service task roles, and why blast radius sets the boundary
CI/CD pipeline underbellies - Security tightened, Vigilance become the tax
A field note on hardening a multi-account AWS deployment pipeline: why pinning every dependency to an immutable commit is the right call, the maintenance trade it forces, and how to automate the vigilance instead of enduring it.
Ten Failures on the Way to One Door
The messy middle of shipping an enforcing egress proxy: a squid host-forgery wall, a boot race, an exec-format crash, silent secret drift. The failures taught more than the design did.
Keep Secrets Out of State — and Out of Your Apps
An AI gateway multiplies secret relationships — provider keys, DB creds, signing material. Three rules that keep values out of Terraform state, out of consumer services, and out of reach of a compromised database.
Maximum Security at Minimum Cost: The Engineering Decisions That Keep a Secure Pipeline Cheap
Security and frugality are usually framed as a tradeoff. Designed well, they align.
Reaching a Private Admin UI Without Opening a Door
Your gateway's admin console is correctly private, but a human still needs to reach it. An IP-locked, DDNS-tracked route that stays shut to everyone else — no public endpoint, no bastion dance.
The Cost of Security: A Hardware-Bound Private CA for Workstation-to-Cloud Authentication
Why I put the root CA itself inside a TPM — so no private key is ever stored as a file, anywhere — and wired it to AWS IAM Roles Anywhere for short-lived, hardware-rooted machine identity.
A Chatbot Answers. An Agent Acts. - Securing the Agentic Surface
Agents orchestrate sub-agents, call tools, and run code on a user's behalf — their capability is their risk. How to contain an agentic frontend before it can reach beyond its lane.
Zero Standing Credentials: How I Eliminated Long-Lived Secrets from a Client's Entire Deployment Pipeline
Workload identity federation, OIDC, and the case against the access key.
Isolation by Construction: Designing a Multi-Account AWS Architecture Where Boundaries Can't Be Bypassed
Why I stopped relying on naming conventions and started enforcing isolation structurally.
How I Built and Shipped This Site: Astro + GitHub Pages + Route 53
The architecture and deployment of agyaponggyamfi.com — Astro, GitHub Pages, and Route 53 — including the decisions and the errors along the way.