<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloudwatch on ferkakta.dev</title><link>https://ferkakta.dev/tags/cloudwatch/</link><description>Recent content in Cloudwatch on ferkakta.dev</description><generator>Hugo</generator><language>en-US</language><copyright>Copyright fizz.</copyright><lastBuildDate>Mon, 02 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://ferkakta.dev/tags/cloudwatch/index.xml" rel="self" type="application/rss+xml"/><item><title>Per-Tenant CloudWatch Log Isolation on EKS, or: Why I Stopped Using aws-for-fluent-bit</title><link>https://ferkakta.dev/per-tenant-cloudwatch-log-isolation-eks/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://ferkakta.dev/per-tenant-cloudwatch-log-isolation-eks/</guid><description>&lt;h2 id="the-starting-assumption"&gt;The starting assumption&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m building &lt;a href="https://ramparts.dev"&gt;ramparts&lt;/a&gt;, a multi-tenant compliance platform running on EKS. Each tenant gets a Kubernetes namespace &amp;ndash; &lt;code&gt;tenant-acme&lt;/code&gt;, &lt;code&gt;tenant-globex&lt;/code&gt;, whatever &amp;ndash; and the compliance controls require that their application logs land in isolated storage with 365-day retention. CMMC maps this to AU-2 (audit events), AU-3 (audit content), AU-11 (retention), and AC-4 (information flow isolation). A tenant cannot read another tenant&amp;rsquo;s container output.&lt;/p&gt;
&lt;p&gt;The obvious first move was &lt;code&gt;aws-for-fluent-bit&lt;/code&gt;, AWS&amp;rsquo;s own Helm chart and container image for shipping logs to CloudWatch. AWS service, AWS chart, AWS logging destination. The blessed path.&lt;/p&gt;</description></item><item><title>Why we removed aws-for-fluent-bit from EKS</title><link>https://ferkakta.dev/why-we-removed-aws-for-fluent-bit-from-eks/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://ferkakta.dev/why-we-removed-aws-for-fluent-bit-from-eks/</guid><description>&lt;p&gt;We deployed &lt;code&gt;aws-for-fluent-bit&lt;/code&gt; because AWS recommends it.&lt;/p&gt;
&lt;p&gt;If you follow the EKS logging documentation, that&amp;rsquo;s the default path. It assumes you use AWS&amp;rsquo;s distribution of Fluent Bit rather than the upstream Helm chart.&lt;/p&gt;
&lt;p&gt;We did.&lt;/p&gt;
&lt;p&gt;Two days later, we ripped it out.&lt;/p&gt;
&lt;p&gt;The AWS chart and the upstream chart are not the same thing. The differences aren&amp;rsquo;t cosmetic. They affect how quickly you receive security patches, how transparently your configuration maps to the underlying plugin, and how many boundaries sit between your logs and the CloudWatch API.&lt;/p&gt;</description></item><item><title>Stop copying AWS managed policies — deny what you don't want instead</title><link>https://ferkakta.dev/iam-deny-overlay-managed-policies/</link><pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate><guid>https://ferkakta.dev/iam-deny-overlay-managed-policies/</guid><description>&lt;p&gt;I needed to give a developer full CloudWatch read access — metrics, alarms, dashboards, log groups — but deny access to three categories of log groups containing security-sensitive data: WorkSpaces OS event logs, VPC flow logs, and WAF request logs.&lt;/p&gt;
&lt;p&gt;The reflex is to copy &lt;code&gt;CloudWatchReadOnlyAccess&lt;/code&gt; into a custom policy and delete the parts you don&amp;rsquo;t want. I&amp;rsquo;ve seen this in every organization I&amp;rsquo;ve worked in. It produces a policy with 50+ actions that you now own. Every time AWS ships a new CloudWatch feature, your policy is stale. You won&amp;rsquo;t update it. It&amp;rsquo;ll rot.&lt;/p&gt;</description></item><item><title>Amazon WorkSpaces are invisible to SSM and CloudWatch (and how to fix it)</title><link>https://ferkakta.dev/workspaces-ssm-cloudwatch-bootstrap/</link><pubDate>Thu, 12 Feb 2026 10:00:00 -0600</pubDate><guid>https://ferkakta.dev/workspaces-ssm-cloudwatch-bootstrap/</guid><description>&lt;p&gt;I spent an afternoon arguing with Windows about whether I was allowed to be root on a machine I created. Six hours and six layers of undocumented workarounds later, I got CMMC-compliant audit logging on a desktop that doesn&amp;rsquo;t know it exists.&lt;/p&gt;
&lt;h2 id="the-problem"&gt;The problem&lt;/h2&gt;
&lt;p&gt;WorkSpaces don&amp;rsquo;t show up in AWS Systems Manager. They&amp;rsquo;re not EC2 instances — no instance profile, no metadata endpoint, no identity. SSM Agent is pre-installed but thinks it&amp;rsquo;s nobody. CloudWatch Agent has no credentials and doesn&amp;rsquo;t know what region it&amp;rsquo;s in.&lt;/p&gt;</description></item></channel></rss>