Issue #275

Monday · August 24, 2026

🥖 Palate Cleanser

I didn't get any angry emails lashing out at my terrible understanding of the IAM Role Manager implementation. I guess that means insecure-by-default was the intended approach. :(

Let me balance the ledger a little, because the same month gave us account access manager, and this one looks promising. AAM lets Identity Center hand out the IAM roles you already have, where they already live, instead of making you rewrite them as permission sets first. If you have a large estate of roles brokered by something else, you no longer have to rebuild the lot as permission sets to move onto Identity Center, which matters because Identity Center invents its own role names with random suffixes, and AAM trades those permission set limits for plain IAM role ones. Your role tags still do attribute-based access control, your trust policy still decides who may assume, and the enablement walkthrough on YouTube is nice.

With a permission set you run aws configure sso and then aws sso login. With account access manager you sign into the account with a specific role in a web browser, and then type aws login to pull that browser session's credentials down to the CLI. Fine for one role. Annoying for anything you script across dozens of accounts from a laptop. The API that shipped on 11 August is control plane only, create and delete applications and entitlements, so there is no credential path to automate either, and while the docs name a runtime endpoint there is no public API behind it. Some folks have also reported that logging is harder than with permission sets, so if CloudTrail attribution is load-bearing for you, check that before you commit to it. Promising is the right word.

📋 Chef's selections

768 Leaked Corporate AWS Keys Held Full Admin Rights

by Truffle Security Research

Truffle re-tested 10,616 AWS key pairs that surfaced publicly between August 2022 and August 2026, and on 10 August 88 percent of them still authenticated, which is soda pressing. One in six of the 64,024 keys they have verified is a root key, and a root key cannot be scoped down, it is the account. Where ages were readable the median is 1,831 days old, only 13.7 percent were ever rotated, and 929 live IAM users already carry AWS's own AWSCompromisedKeyQuarantine policy, 112 of those on the version AWS stopped applying in 2023. AWS spotted the exposure, told the owner, and three years later the key still works. Worst of all, 130 live root keys belong to organization management accounts.

Open-source Post-quantum Cryptography Serverless CA

by Paul Schwarzenberger

Paul has run an open-source serverless private CA on AWS for a couple of years, and this release can make the whole hierarchy post-quantum, with CA private keys generated inside KMS HSMs and never exported. The neat bit of engineering is the certificate revocation list. KMS caps RAW signing at 4,096 bytes, so a big list will not sign, and all signing uses the EXTERNAL_MU message type, computing the 64-byte ML-DSA message representative outside KMS. He then lists what genuinely does not work yet, which is the part every "we are quantum ready" post leaves out. ALB and API Gateway will not do ML-DSA for mTLS, macOS Keychain errors on import, and mainstream browsers will not accept these certificates. If somebody wants your 2027 post-quantum plan, this is a working root you can deploy this afternoon and run beside your RSA hierarchy.

Threat hunt AI: How we built an AI security analyst on AWS for under $500/month

by Pablo Vidal

Pablo's team runs daily AI threat hunts across fifteen log sources for about $500 a month, and this is the build rather than the pitch, with the bill itemised. EventBridge and a Lambda start each hunt on a cron as a container that runs on ECS Fargate for 15 to 45 minutes, writes findings into the same Snowflake alerts table the SQL detections use, and stops, so no hunt is left running between investigations. A hunt is a YAML file. An objective in plain English, severity guidelines to calibrate the model's judgement, the false positives you already know about, and flags for which APIs the model may call during the investigation. The honest parts are the best parts, including why the single-shot version did not work and why the one awkward piece of infrastructure is a NAT gateway, because Snowflake wants a static IP to allowlist.

🥗 AWS security blogs

🍛 Reddit threads on r/aws


🤖 Dessert

Every machine-tracked change this week. Nobody else assembles this.

🧁 IAM permission changes

No changes this week.

🍪 API changes

🍹 IAM managed policy changes

☕ CloudFormation resource changes

🎮 Amazon Linux vulnerabilities

📺 AWS security bulletins

🚬 Security documentation changes

Get every AWS security change,
on a plate every Monday.

6,700+ engineers, builders and CISOs let us diff the AWS changelog every week.