<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>IAM on zoph.me</title>
    <link>/tags/iam/</link>
    <description>Recent content in IAM on zoph.me</description>
    <image>
      <title>zoph.me</title>
      <url>https://zoph.me/posts/resources/images/code-social.png</url>
      <link>https://zoph.me/posts/resources/images/code-social.png</link>
    </image>
    <generator>Hugo -- 0.148.2</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 04 Apr 2026 07:37:00 +0200</lastBuildDate>
    <atom:link href="/tags/iam/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Speeding Up IAMTrail: One Boto3 Process Instead of 1,500 CLI Invocations</title>
      <link>/posts/2026-04-04-iamtrail-optim/</link>
      <pubDate>Sat, 04 Apr 2026 07:37:00 +0200</pubDate>
      <guid>/posts/2026-04-04-iamtrail-optim/</guid>
      <description>&lt;h2 id=&#34;the-46-minute-problem&#34;&gt;The 46-Minute Problem&lt;/h2&gt;
&lt;p&gt;The IAMTrail detection engine fetches ~1,500 AWS managed IAM policies every run. The original approach was pure bash:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-1&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-1&#34;&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-2&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-2&#34;&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-3&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-3&#34;&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span class=&#34;lnt&#34; id=&#34;hl-0-4&#34;&gt;&lt;a class=&#34;lnlinks&#34; href=&#34;#hl-0-4&#34;&gt;4&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;aws iam list-policies --output json &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    jq -cr &lt;span class=&#34;s1&#34;&gt;&amp;#39;...&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    xargs -P &lt;span class=&#34;m&#34;&gt;16&lt;/span&gt; -n3 sh -c &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;      &lt;span class=&#34;s1&#34;&gt;&amp;#39;aws iam get-policy-version --policy-arn $1 --version-id $2 | jq --indent 4 . &amp;gt; &amp;#34;policies/$3&amp;#34;&amp;#39;&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Looks fine, right? Except each iteration spawns a full AWS CLI process. That means a fresh Python runtime, boto3 import, credential resolution, one single HTTP call, then exit. Times 1,500.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IAMTrail.com: The AWS Managed Policy Archive (Evolved from MAMIP)</title>
      <link>/posts/2025-10-23-mamip-compagnion-website/</link>
      <pubDate>Thu, 23 Oct 2025 13:37:00 +0200</pubDate>
      <guid>/posts/2025-10-23-mamip-compagnion-website/</guid>
      <description>&lt;h2 id=&#34;-the-origins&#34;&gt;📜 The Origins&lt;/h2&gt;
&lt;p&gt;Back in 2019, &lt;a href=&#34;https://twitter.com/0xdabbad00&#34;&gt;Scott Piper&lt;/a&gt; started a GitHub repository to track changes to AWS Managed Policies. It was a simple setup, manually triggered but it worked well and was incredibly useful. Using &lt;code&gt;git diff&lt;/code&gt; or the Github.com UI, Scott and the community could easily see how policies evolved over time.&lt;/p&gt;
&lt;p&gt;At that time, AWS didn&amp;rsquo;t publicly share the changes made to managed policies by the various &amp;ldquo;two-pizza&amp;rdquo; product teams inside AWS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The day when the AWS Support got access to your S3 data</title>
      <link>/posts/2021-12-22-the-day-when-aws-support-got-access-to-your-data/</link>
      <pubDate>Wed, 22 Dec 2021 13:37:00 +0200</pubDate>
      <guid>/posts/2021-12-22-the-day-when-aws-support-got-access-to-your-data/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Update from: 2021-12-23&lt;/p&gt;
&lt;p&gt;Official Security bulletin from AWS
AWSSupportServiceRolePolicy Informational Update&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://aws.amazon.com/security/security-bulletins/AWS-2021-007/&#34;&gt;https://aws.amazon.com/security/security-bulletins/AWS-2021-007/&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;You will find below details about the security incident that led to this unattended access for millions of AWS customers.&lt;/p&gt;
&lt;p&gt;On &lt;code&gt;22nd December 2021&lt;/code&gt;, AWS deployed a new version (&lt;code&gt;v20&lt;/code&gt;) of &lt;code&gt;AWSSupportServiceRolePolicy&lt;/code&gt;, used by a mandatory role &lt;code&gt;AWSServiceRoleForSupport&lt;/code&gt; for AWS Support access to all AWS Accounts. In this policy, they added the action &lt;code&gt;s3:getObject&lt;/code&gt;, which gives AWS Support teams access to all customer Amazon S3 data.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Does AWS drink its own champagne? 🍾</title>
      <link>/posts/2021-04-01-analysis-of-managed-policies/</link>
      <pubDate>Tue, 06 Apr 2021 13:37:00 +0200</pubDate>
      <guid>/posts/2021-04-01-analysis-of-managed-policies/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;TL;DR:
AWS Managed Policies are safe. Currently.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;arrows_counterclockwise-previously-in-policy-validation&#34;&gt;:arrows_counterclockwise: Previously in Policy Validation&lt;/h3&gt;
&lt;p&gt;Before the AWS Access Analyzer (AA) Policy Validation release, a few open source initiatives were available to lint AWS IAM Policies, like &lt;a href=&#34;https://github.com/duo-labs/parliament&#34;&gt;Parliament&lt;/a&gt; from &lt;a href=&#34;https://duo.com/labs/&#34;&gt;Duolabs&lt;/a&gt; and &lt;a href=&#34;https://github.com/salesforce/cloudsplaining&#34;&gt;CloudSplaining&lt;/a&gt; (Salesforce).&lt;/p&gt;
&lt;p&gt;The tricky part of these tools is that they are community-driven, from volunteer contributors, and most of the master data comes from AWS IAM docs web scraping. It is difficult to maintain over time, especially if the documentation format is changing, or if the documentation is not in sync with the IAM reality. It will be easier for everyone if the one who is providing the rules is the one who creates the validation tool to run against these rules. Isn&amp;rsquo;t it?&lt;/p&gt;</description>
    </item>
    <item>
      <title>[MAMIP] Monitor AWS Managed IAM Policies</title>
      <link>/posts/2019-09-08-mamip/</link>
      <pubDate>Sat, 22 Feb 2020 13:37:00 +0200</pubDate>
      <guid>/posts/2019-09-08-mamip/</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This article was originally posted in September 2019. Updated in February 2020.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;disclaimer&#34;&gt;Disclaimer&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Thanks to &lt;a href=&#34;https://github.com/0xdabbad00&#34;&gt;@0xdabbad00&lt;/a&gt; from &lt;a href=&#34;https://summitroute.com/&#34;&gt;SummitRoute&lt;/a&gt; for the original idea and &lt;code&gt;jq&lt;/code&gt; parsing.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h1 id=&#34;purpose&#34;&gt;Purpose&lt;/h1&gt;
&lt;p&gt;When your production workloads rely on AWS IAM Managed Policies (don&amp;rsquo;t do this), you will need to be notified when changes occur behind the scenes. It&amp;rsquo;s also interesting to monitor new AWS service releases ahead of the announcements to get spoiled.&lt;/p&gt;
&lt;p&gt;This pet project automates the retrieval (every 4 hours) of new AWS Managed IAM Policies to make it easier to monitor and get alerted when changes occur (by AWS), using the &amp;ldquo;Watch&amp;rdquo; feature on GitHub, RSS or a dedicated &lt;a href=&#34;https://twitter.com/mamip_aws&#34;&gt;Twitter Account&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
