<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">

<channel>
	<title>AWS Security Blog</title>
	<atom:link href="https://aws.amazon.com/blogs/security/feed/" rel="self" type="application/rss+xml"/>
	<link>https://aws.amazon.com/blogs/security/</link>
	<description>The latest AWS security, identity, and compliance launches, announcements, and how-to posts.</description>
	<lastBuildDate>Thu, 07 May 2026 18:52:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>ICYMI: April 2026 @AWS Security</title>
		<link>https://aws.amazon.com/blogs/security/icymi-april-2026-aws-security/</link>
					
		
		<dc:creator><![CDATA[Rodolfo Brenes]]></dc:creator>
		<pubDate>Thu, 07 May 2026 18:52:59 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Foundational (100)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">ba5a1e86d1af5a1ef063c7183c192af6f15c747c</guid>

					<description>Read all about the latest AWS security features, compliance updates, and hands-on resources in our new, monthly digest posts. You’ll find expert blog posts, new service capabilities, code samples, and workshops. AWS Security Blog posts This month’s AWS Security Blog posts covered AI security, identity and access management, threat intelligence, data protection, and multicloud operations. […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;Read all about the latest AWS security features, compliance updates, and hands-on resources in our new, monthly digest posts. You’ll find expert blog posts, new service capabilities, code samples, and workshops.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;AWS Security Blog posts&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;This month’s AWS Security Blog posts covered AI security, identity and access management, threat intelligence, data protection, and multicloud operations. Whether you’re securing agentic AI systems, upgrading to post-quantum cryptography, or streamlining forensic collection, these posts offer practical guidance across the security landscape.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Identity&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;ul class="qs:text-body-default" style="border: 0px solid;margin: 1rem 0px;padding: 0px;font-size: 14px;line-height: 1.42857;letter-spacing: 0.15px;font-weight: 400;, Helvetica, Arial, sans-serif;font-style: normal;text-align: start;text-indent: 0px;text-transform: none" id="rte-23125a00-4907-11f1-ac83-ff75b74aca25"&gt;&lt;/ul&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/access-control-with-iam-identity-center-session-tags/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Access control with IAM Identity Center session tags&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Author: Rashmi Iyer | Published: April 28, 2026&lt;/i&gt;&lt;br&gt; Learn to combine &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam/identity-center/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS IAM Identity Center&lt;/a&gt;&lt;/span&gt; permission sets with session tags from Microsoft Entra ID to implement fine-grained attribute-based access control (ABAC) across multiple AWS accounts.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/can-i-do-that-with-policy-understanding-the-aws-service-authorization-reference/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Can I do that with policy? Understanding the AWS Service Authorization Reference&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Anshu Bathla, Prafful Gupta | Published: April 27, 2026&lt;/i&gt;&lt;br&gt; Learn to use the AWS Service Authorization Reference to determine what’s achievable with IAM policies, recognize scenarios needing alternative solutions, and build more effective security controls.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;AI Security&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/secure-ai-agent-access-patterns-to-aws-resources-using-model-context-protocol/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Secure AI agent access patterns to AWS resources using Model Context Protocol&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Author: Riggs Goodman III | Published: April 14, 2026&lt;/i&gt;&lt;br&gt; Learn to secure AI agent access to AWS resources via MCP using three principles: least privilege, organizational role governance, and differentiating AI-driven from human-initiated actions.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/four-security-principles-for-agentic-ai-systems/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Four security principles for agentic AI systems&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Mark Ryland, Riggs Goodman III, Todd MacDermid | Published: April 2, 2026&lt;/i&gt;&lt;br&gt; Learn four security principles from AWS’s NIST response for securing agentic AI: secure development lifecycle, traditional controls, deterministic external enforcement, and earned autonomy through evaluation.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/designing-trust-and-safety-into-amazon-bedrock-powered-applications/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Designing trust and safety into Amazon Bedrock powered applications&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Author: Victor Lungu | Published: April 29, 2026&lt;/i&gt;&lt;br&gt; Learn to integrate responsible AI concepts into &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/bedrock/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock&lt;/a&gt;&lt;/span&gt; applications, including abuse detection, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudwatch/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CloudWatch&lt;/a&gt;&lt;/span&gt; monitoring, Bedrock Guardrails configuration, and the abuse response process.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/building-ai-defenses-at-scale-before-the-threats-emerge/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Building AI defenses at scale: before the threats emerge&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Author: Amy Herzog | Published: April 7, 2026&lt;/i&gt;&lt;br&gt; AWS CISO announces Project Glasswing with Anthropic, introducing Claude Mythos Preview for vulnerability research, plus the general availability of &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-agent/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Agent&lt;/a&gt;&lt;/span&gt; for autonomous penetration testing.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Governance and compliance&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;ul class="qs:text-body-default" style="border: 0px solid;margin: 1rem 0px;padding: 0px;font-size: 14px;line-height: 1.42857;letter-spacing: 0.15px;font-weight: 400;, Helvetica, Arial, sans-serif;font-style: normal;text-align: start;text-indent: 0px;text-transform: none" id="rte-553c9b30-4907-11f1-ac83-ff75b74aca25"&gt;&lt;/ul&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/mt/shift-left-tag-compliance-using-aws-organizations-and-terraform/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Shift-Left Tag Compliance using AWS Organizations and Terraform&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Welly Siauw, Sourav Kundu, Manu Chandrasekhar | Published: April 27, 2026&lt;/i&gt;&lt;br&gt; Learn to validate tag compliance during development using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/organizations/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Organizations&lt;/a&gt;&lt;/span&gt; tag policies, a reusable Terraform tagging module, and a test-driven approach that dynamically validates against live organizational policies.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Detection and incident response&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/what-the-march-2026-threat-technique-catalog-update-means-for-your-aws-environment/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;What the March 2026 Threat Technique Catalog update means for your AWS environment&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Shannon Brazil, Cydney Stude | Published: April 28, 2026&lt;/i&gt;&lt;br&gt; The AWS CIRT’s latest Threat Technique Catalog update covers &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cognito/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Cognito&lt;/a&gt;&lt;/span&gt; refresh token abuse, AMI image deletion targeting recovery, and trust policy modifications for persistence and privilege escalation.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/a-framework-for-securely-collecting-forensic-artifacts-into-s3-buckets/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;A framework for securely collecting forensic artifacts into S3 buckets&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Jason Garman, Vaishnav Murthy | Published: April 8, 2026&lt;/i&gt;&lt;br&gt; Learn to securely collect forensic artifacts into &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/s/idc-server-side-test/awswt-934-new-template-s3/variant-s3/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon S3&lt;/a&gt;&lt;/span&gt; using time-limited, least-privilege credentials with AWS STS session policies and automated AWS Step Functions workflows.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/transform-security-logs-into-ocsf-format-using-a-configuration-driven-etl-solution/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Transform security logs into OCSF format using a configuration-driven ETL solution&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Vivek Gautam, Arpit Gupta, Ryan Gomes | Published: April 17, 2026&lt;/i&gt;&lt;br&gt; Learn to transform custom security logs into OCSF format using an AWS ProServe configuration-driven ETL solution with &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/step-functions/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Step Functions&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/glue/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Glue&lt;/a&gt;&lt;/span&gt; or &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/emr/serverless/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EMR Serverless&lt;/a&gt;&lt;/span&gt;, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-lake/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Security Lake&lt;/a&gt;&lt;/span&gt; integration.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/a-technical-walkthrough-of-multicloud-full-stack-security-using-aws-security-hub-extended/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;A technical walkthrough of multicloud full-stack security using AWS Security Hub Extended&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Matt Meck, Michael Fuller | Published: April 22, 2026&lt;/i&gt;&lt;br&gt; Learn how AWS Security Hub Extended simplifies multicloud security procurement and operations through curated partner solutions, unified billing, and OCSF-based findings consolidation.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Data protection&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;ul class="qs:text-body-default" style="border: 0px solid;margin: 1rem 0px;padding: 0px;font-size: 14px;line-height: 1.42857;letter-spacing: 0.15px;font-weight: 400;, Helvetica, Arial, sans-serif;font-style: normal;text-align: start;text-indent: 0px;text-transform: none" id="rte-91e97170-4907-11f1-ac83-ff75b74aca25"&gt;&lt;/ul&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/protecting-your-secrets-from-tomorrows-quantum-risks/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Protecting your secrets from tomorrow’s quantum risks&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Stéphanie Mbappe, Tobias Nickl | Published: April 24, 2026&lt;/i&gt;&lt;br&gt; Learn to upgrade &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/secrets-manager/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Secrets Manager&lt;/a&gt;&lt;/span&gt; clients to use hybrid post-quantum TLS with ML-KEM, protecting secrets against harvest-now-decrypt-later attacks, and verify connections via &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudtrail/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-aws-kms-and-aws-encryption-sdk-overcome-symmetric-encryption-bounds/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;How AWS KMS and AWS Encryption SDK overcome symmetric encryption bounds&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Panos Kampanakis, Matthew Campagna, Patrick Palmer | Published: April 3, 2026&lt;/i&gt;&lt;br&gt; Learn how &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/kms/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Key Management Service&lt;/a&gt;&lt;/span&gt; and the AWS Encryption SDK use derived key methods to automatically handle AES-GCM encryption limits, eliminating the need to manually track bounds or rotate keys.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-to-clone-an-aws-cloudhsm-cluster-across-regions-2/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;How to clone an AWS CloudHSM cluster across Regions&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt;&lt;i&gt;Authors: Desiree Brunner, Rickard Löfström | Published: April 20, 2026&lt;/i&gt;&lt;br&gt; Learn to clone an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudhsm/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudHSM&lt;/a&gt;&lt;/span&gt; cluster to another Region using CopyBackupToRegion, then synchronize keys—including non-exportable keys—across cloned clusters for disaster recovery.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;April Security Bulletins&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Investigations of reported security vulnerabilities affecting Amazon and AWS services, software, and products.&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-5b6b8f50-4990-11f1-a1c2-efa7582b8a13"&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-025-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CVE-2026-7791 – Local Privilege Escalation via TOCTOU Race Condition in Amazon WorkSpaces Skylight Agent&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-024-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CVE-2026-7461 – OS Command Injection in Amazon ECS Agent via FSx Windows File Server Volume Credentials&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-023-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Issue with FreeRTOS-Plus-TCP – IPv6 Router Advertisement Memory Safety Issues&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-022-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CVE-2026-7424 – Integer Underflow in DHCPv6 Sub-Option Parser in FreeRTOS-Plus-TCP&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-021-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Issue with FreeRTOS-Plus-TCP – MAC Address Validation Bypass and ICMP Echo Reply Integer Underflow&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-020-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CVE-2026-7191- Arbitrary Code Execution via Sandbox Bypass in QnABot on AWS&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-019-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Issues in tough library and tuftool CLI utility&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-018-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Issue with AWS Ops Wheel (CVE-2026-6911 and CVE-2026-6912)&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-017-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CVE-2026-6550 – Key commitment policy bypass via shared key cache in AWS Encryption SDK for Python&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-016-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CVE-2026-6437 – Mount Option Injection in Amazon EFS CSI Driver&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-015-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CVE-2026-5747 – Out-of-bounds Write in Firecracker virtio-pci Transport&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-014-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Issues with AWS Research and Engineering Studio (RES)&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-013-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Issues with Amazon Athena ODBC Driver&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security-bulletins/2026-012-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CVE-2026-5429 – Kiro IDE Webview Cross-Site Scripting via Workspace Color Theme&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;AWS Samples&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;This month brings 16 new AWS samples spanning identity, governance, compliance, detection and incident response, AI Security, data protection, and infrastructure security. From beginner-friendly AI agent development on Amazon Bedrock to automated Control Tower re-registration at scale, these ready-to-deploy repositories help you implement security best practices across your AWS environment.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Identity&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;ul class="qs:text-body-default" style="border: 0px solid;margin: 1rem 0px;padding: 0px;font-size: 14px;line-height: 1.42857;letter-spacing: 0.15px;font-weight: 400;, Helvetica, Arial, sans-serif;font-style: normal;text-align: start;text-indent: 0px;text-transform: none" id="rte-a003e530-4905-11f1-b6aa-bd5d4bbe4433"&gt;&lt;/ul&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-cognito-m2m-token-cache-on-aws" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Amazon Cognito OAuth2 Token Proxy with Caching&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to deploy an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/api-gateway/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon API Gateway&lt;/a&gt;&lt;/span&gt; proxy for Cognito’s OAuth2 token endpoint with intelligent caching and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/waf/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS WAF&lt;/a&gt;&lt;/span&gt; protection, reducing M2M authentication costs by over 90%.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-cognito-apigateway-authorization" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Cognito API Gateway Authorization Demo&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to implement user-specific data protection using Amazon Cognito, API Gateway, and an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/lambda/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Lambda&lt;/a&gt;&lt;/span&gt; authorizer that enforces JWT sub claim matching to prevent cross-user data access.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-redshift-iamra-template" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Securely Connecting On-Premises Data Systems to Amazon Redshift with IAM Roles Anywhere&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to deploy a fully private environment connecting on-premises workloads to &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/redshift/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Redshift&lt;/a&gt;&lt;/span&gt; using X.509 certificate authentication via &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam/roles-anywhere/" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM Roles Anywhere&lt;/a&gt;&lt;/span&gt; for short-lived credentials.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-automated-iam-access-keys-lifecycle" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;AWS IAM Access Key Lifecycle Management with Human Approval&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to automate organization-wide detection, disabling, and deletion of unused IAM access keys using Step Functions, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam/access-analyzer/" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM Access Analyzer&lt;/a&gt;&lt;/span&gt;, and a secure human-in-the-loop approval workflow.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-secrets-manager-audit" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Secrets Manager Audit&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to resolve and report who can access your AWS Secrets Manager secrets—across accounts, through Identity Center, and down to the human behind the IAM role—in a single command.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Governance&lt;/b&gt;&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-ControlTower-Organization-ReRegistration" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Control Tower Organization Re-Registration Automation&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to automate &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/controltower/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Control Tower&lt;/a&gt;&lt;/span&gt; OU re-registration and account updates at scale using lifecycle events, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/eventbridge/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EventBridge&lt;/a&gt;&lt;/span&gt;, and AWS Lambda to resolve mixed governance after landing zone changes.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-agent-skills-for-builders" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Sample Agent Skills for Builders&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; A curated collection of installable agent skills that extend AI coding agents (Claude Code, Cursor, Copilot) with production-ready AWS, CDK, security scanning, and engineering workflows.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-stop-ai-agent-hallucinations-workshop" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;How to Stop AI Agent Hallucinations: 5 Techniques + Production on Amazon Bedrock AgentCore&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to detect, prevent, and self-correct AI agent hallucinations using Graph-RAG, semantic tool selection, multi-agent validation, neurosymbolic guardrails, and agent steering with Strands Agents.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Compliance&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-compliance-lens" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Compliance Lens&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to deploy a serverless solution that analyzes &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/config/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Config&lt;/a&gt;&lt;/span&gt; snapshots across an AWS Organization, compares them against conformance pack rule sets, and visualizes compliance posture via &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/quick/quicksight/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon QuickSight&lt;/a&gt;&lt;/span&gt; dashboards.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-terraform-for-security-agent" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;AWS Security Agent Terraform Configuration&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to provision AWS Security Agent resources using the AWSCC Terraform provider, automating agent space creation, IAM roles, target domain registration, and penetration test setup.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Detection and incident response&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-agent-demo" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;AWS Security Agent Demo Suite&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to use AWS Security Agent across three scenarios: automated design reviews, AI-generated infrastructure code review via GitHub, and penetration testing against intentionally vulnerable applications.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-agentic-ai-security-operations-using-quick-suite" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Agentic SOC Workshop — CDK Infrastructure&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to build an AI-powered Security Operations Center agent that investigates &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/guardduty/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon GuardDuty&lt;/a&gt;&lt;/span&gt; findings, queries CloudTrail logs, and takes automated containment actions using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/bedrock/agentcore/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock AgentCore&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Data Protection&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-emr-eks-spark-kerberos-hms" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Implementing Kerberos Authentication for Apache Spark Jobs on Amazon EMR on EKS to Access a Kerberos-Enabled Hive Metastore&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to configure Kerberos authentication for Spark jobs on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/emr/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EMR&lt;/a&gt;&lt;/span&gt; on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/eks/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Kubernetes Service&lt;/a&gt;&lt;/span&gt;, connecting to a Kerberos-enabled Hive Metastore using Microsoft Active Directory as the KDC.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-nitro-enclaves-k8s-app" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;AWS Nitro Enclaves with Kubernetes – Hello World Example&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to deploy a Hello World application inside an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ec2/nitro/nitro-enclaves/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Nitro Enclave&lt;/a&gt;&lt;/span&gt; on Amazon EKS, covering cluster creation, device plugin setup, and enclave image building.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Infrastructure security&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;ul class="qs:text-body-default" style="border: 0px solid;margin: 1rem 0px;padding: 0px;font-size: 14px;line-height: 1.42857;letter-spacing: 0.15px;font-weight: 400;, Helvetica, Arial, sans-serif;font-style: normal;text-align: start;text-indent: 0px;text-transform: none" id="rte-b3e189d0-4906-11f1-b6c9-8340686e52e3"&gt;&lt;/ul&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-multi-tenant-openclaw-on-firecracker" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Multi-Tenant OpenClaw on Firecracker&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to deploy isolated, multi-tenant OpenClaw AI agents on AWS using Firecracker microVMs with per-tenant kernel/network isolation, auto-scaling, backup/restore, and a web management console.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;AI Security&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-amazon-bedrock-for-beginners" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;b&gt;Amazon Bedrock for Beginners – From First Prompt to AI Agent&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;br&gt; Learn to build AI applications on Amazon Bedrock, from basic API calls to a full agent with RAG, guardrails, tool use, and the Strands Agents SDK.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;April 2026 reinforces that securing AI workloads now requires the same rigor applied to traditional infrastructure. The posts and samples in this edition provide concrete patterns for enforcing least privilege on agentic systems, automating governance at organizational scale, and preparing cryptographic implementations for post-quantum requirements. The security bulletins address vulnerabilities across compute, networking, and developer tooling, reinforcing the need to apply patches consistently. Each resource includes deployment steps or runnable code so you can validate the approach in your own environment before adopting it. Subscribe to the AWS Security Blog RSS feed to receive updates as they publish, and revisit this digest monthly for a consolidated view of what changed and what to act on.&lt;/p&gt; 
  &lt;hr&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;If you have feedback about this post, submit comments in the&lt;strong&gt; Comments&lt;/strong&gt; section below. If you have questions about this post, &lt;a href="https://console.aws.amazon.com/support/home" target="_blank" rel="noopener"&gt;contact AWS Support&lt;/a&gt;.&lt;/p&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2025/09/16/Rodolfo-Brenes-author.jpeg" alt="Rodolfo Brenes" width="120" height="160" class="aligncenter size-full wp-image-29371"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Rodolfo Brenes&lt;/h3&gt; 
  &lt;p&gt;Rodolfo is a Principal Solutions Architect focused on Cloud Governance and Compliance. With over 18 years of experience, he currently leads a technical field community in AWS helping customers scale and improve their security and governance frameworks. Besides work, Rodolfo enjoys video games, playing with his four cats, and won’t say no to a good outdoor adventure.&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2023/03/15/Anna-Brinkmann.jpg" alt="Anna Brinkmann" width="120" height="160" class="aligncenter size-full wp-image-29371"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Anna Brinkmann&lt;/h3&gt; 
  &lt;p&gt;Anna is a project manager and editor with more than 18 years of experience with content management in the technology space. For the past 6 years, she has run the &lt;em&gt;AWS Security Blog&lt;/em&gt;. In her free time, Anna gardens, spends time with family and friends, and learns new slang words from her kids.&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>AWS achieves SNI 27017, SNI 27018, and SNI 9001 certifications for the AWS Asia Pacific (Jakarta) Region</title>
		<link>https://aws.amazon.com/blogs/security/aws-achieves-sni-27017-sni-27018-and-sni-9001-certifications-for-the-aws-asia-pacific-jakarta-region/</link>
					
		
		<dc:creator><![CDATA[Ignatius Lee]]></dc:creator>
		<pubDate>Thu, 07 May 2026 16:03:47 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Foundational (100)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">f32f3712e8c4ff6a25d4f68cb07a5e5e06c5a72e</guid>

					<description>Amazon Web Services (AWS) achieved three Standar Nasional Indonesia (SNI) certifications for the AWS Asia Pacific (Jakarta) Region: SNI ISO/IEC 27017:2015, SNI ISO/IEC 27018:2019, and SNI ISO 9001:2015. SNI represents Indonesia’s national standards framework, comprising standards that are broadly applicable across industries within the country. These certifications further demonstrate that AWS services meet nationally recognized […]</description>
										<content:encoded>&lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Web Services (AWS)&lt;/a&gt;&lt;/span&gt; achieved three Standar Nasional Indonesia (SNI) certifications for the AWS Asia Pacific (Jakarta) Region: SNI ISO/IEC 27017:2015, SNI ISO/IEC 27018:2019, and SNI ISO 9001:2015. SNI represents Indonesia’s national standards framework, comprising standards that are broadly applicable across industries within the country. These certifications further demonstrate that AWS services meet nationally recognized requirements.&lt;/p&gt; 
&lt;p&gt;The certifications were assessed by an independent third-party auditor accredited by the Komite Akreditasi Nasional (KAN), Indonesia’s National Accreditation Committee, in accordance with applicable local regulatory requirements, helping customers rely on trusted, locally recognized validation for their compliance needs.&lt;/p&gt; 
&lt;p&gt;All three certifications are based on international ISO standards adapted for Indonesia:&lt;/p&gt; 
&lt;ul class="rte2-style-ul" id="rte-edc65322-43e7-11f1-b780-45e3b686e047"&gt; 
 &lt;li&gt;&lt;b&gt;SNI 27017&lt;/b&gt; adds cloud-specific security controls that complement ISO/IEC 27001, helping you run workloads securely while reducing security assessment overhead.&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;SNI 27018&lt;/b&gt; focuses on protecting personally identifiable information (PII) in public clouds. This certification confirms that AWS handles your data according to international privacy standards.&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;SNI 9001&lt;/b&gt; establishes quality management systems that ensure consistent service delivery and continuous improvement across AWS operations.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Together with the existing SNI 27001 certification achieved in 2023, AWS is now the first cloud service provider (CSP) to hold all four SNI certifications—SNI 27001, SNI 27017, SNI 27018, and SNI 9001—demonstrating comprehensive alignment with Indonesia’s national standards for information security, cloud security, privacy, and quality management, and helping customers address a broad range of regulatory and risk management requirements.&lt;/p&gt; 
&lt;p&gt;Customers can access the corresponding certificates through &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/artifact/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Artifact&lt;/a&gt;&lt;/span&gt;, a self-service portal that provides on-demand access to AWS compliance documentation. For a full list of AWS services covered under the SNI certification, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/compliance/services-in-scope/SNI27001/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Services in Scope&lt;/a&gt;&lt;/span&gt; compliance page&lt;/p&gt; 
&lt;p&gt;AWS continues to expand the scope of its compliance programs to help customers meet their architectural, business, and regulatory requirements. For more information regarding these certifications, contact your AWS Accounts team.&lt;/p&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/04/Ignatius-Lee.jpg" alt="Ignatius Lee" width="120" height="160" class="aligncenter size-full wp-image-42056"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Ignatius Lee&lt;/h3&gt; 
  &lt;p&gt;Ignatius is a Security Assurance professional based in Singapore, responsible for third-party audits in Indonesia. He joined Security Assurance in early 2025 and has delivered and contributed to key audit programs across Hong Kong, Singapore, and Australia.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>New compliance guide available: ISO/IEC 42001:2023 on AWS</title>
		<link>https://aws.amazon.com/blogs/security/new-compliance-guide-available-iso-iec-420012023-on-aws/</link>
					
		
		<dc:creator><![CDATA[Abdul Javid]]></dc:creator>
		<pubDate>Wed, 06 May 2026 19:39:19 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Generative AI]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[AWS Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<category><![CDATA[Whitepaper]]></category>
		<guid isPermaLink="false">f95609d7be965cc4bc635b8c6fa49439dc0fe996</guid>

					<description>We have released our latest compliance guide, ISO/IEC 42001:2023 on AWS, which provides practical guidance for organizations designing and operating an Artificial Intelligence Management System (AIMS) using AWS services. As organizations deploy AI and generative AI workloads in the cloud, aligning with globally recognized standards such as ISO/IEC 42001:2023 becomes an important step toward strengthening […]</description>
										<content:encoded>&lt;p&gt;We have released our latest compliance guide, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://d1.awsstatic.com/onedam/marketing-channels/website/aws/en_US/whitepapers/compliance/iso_42001_responsible_management_of_ai_systems.pdf" target="_blank" rel="noopener" data-cms-ai="0"&gt;ISO/IEC 42001:2023 on AWS&lt;/a&gt;&lt;/span&gt;, which provides practical guidance for organizations designing and operating an Artificial Intelligence Management System (AIMS) using AWS services.&lt;/p&gt; 
&lt;p&gt;As organizations deploy AI and generative AI workloads in the cloud, aligning with globally recognized standards such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.iso.org/standard/42001" target="_blank" rel="noopener" data-cms-ai="0"&gt;ISO/IEC 42001:2023&lt;/a&gt;&lt;/span&gt; becomes an important step toward strengthening AI governance, risk management, and responsible AI practices. This guide helps cloud architects, AI/ML engineers, security teams, compliance leaders, and DevOps practitioners understand how to implement and operate ISO 42001-aligned controls using AWS services while applying the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/compliance/shared-responsibility-model/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Shared Responsibility Model&lt;/a&gt;&lt;/span&gt; for AI.&lt;/p&gt; 
&lt;p&gt;The guide explains how organizations can integrate AWS services into their AIMS to support the requirements defined in ISO 42001:2023 clauses 4–10 and the Annex A control specific to AI systems. It also highlights how AWS AI services, security capabilities, monitoring, and automation can help customers maintain visibility over AI systems, improve operational consistency, and prepare audit-ready evidence.&lt;/p&gt; 
&lt;p&gt;While AWS provides a secure and compliant cloud infrastructure with built-in responsible AI capabilities, customers remain responsible for defining their AIMS scope, implementing controls, and demonstrating conformity during certification audits.&lt;/p&gt; 
&lt;h2&gt;Inside the guide:&lt;/h2&gt; 
&lt;ul class="rte2-style-ul" id="rte-04688fe2-45b3-11f1-94e7-5daf1278fba8"&gt; 
 &lt;li&gt;&lt;b&gt;Overview&lt;/b&gt; of the ISO/IEC 42001:2023 framework, including understanding ISO 42001 and its Annexes, and how it relates to the broader ISO AI standards family&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Guidance&lt;/b&gt; for integrating with AWS security architecture and applying the AWS Shared Responsibility Model for AI workloads&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Context and scoping considerations&lt;/b&gt; for establishing an AIMS on AWS, including defining AI system boundaries within your environment&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Mapping&lt;/b&gt; of ISO 42001:2023 clauses 4–10 to AWS services and architectural capabilities, covering organizational context, leadership, planning, support, operation, performance evaluation, and improvement&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Implementation guidance for&lt;/b&gt; specific Annex A controls (A.2–A.10), including AI policies, internal organization, resources for AI systems, impact assessments, AI system life cycle management, data governance, transparency for interested parties, use of AI systems, and third-party and customer relationships&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Recommendations&lt;/b&gt; for evidence collection, documentation, and audit readiness using AWS native tooling&lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;Best practices for operationalizing AI compliance&lt;/b&gt; activities through automation and infrastructure-as-code&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Use this guide to map ISO 42001 clauses and Annex A controls to your AWS environment, automate evidence collection, and reduce the effort involved in preparing for a certification audit.&lt;/p&gt; 
&lt;p&gt;Download: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://d1.awsstatic.com/onedam/marketing-channels/website/aws/en_US/whitepapers/compliance/iso_42001_responsible_management_of_ai_systems.pdf" target="_blank" rel="noopener" data-cms-ai="0"&gt;ISO/IEC 42001:2023 on AWS Compliance Guide&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;For further assistance, contact &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-assurance-services/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Assurance Services&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 
&lt;p&gt;If you have feedback about this post, please submit comments in the &lt;strong&gt;Comments&lt;/strong&gt; section below.&lt;/p&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2024/11/14/abdul-javid.png" alt="Abdul Javid" width="120" height="160" class="aligncenter size-full wp-image-31628"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Abdul Javid&lt;/h3&gt; 
  &lt;p&gt;Abdul is a Senior Security Assurance Consultant and a PECB ISO 42001 Lead Auditor, IAPP Certified AI Governance Professional and ISACA Advanced in AI Security Management. He draws on his extensive experience of over 25 years to guide AWS customers on compliance matters. He holds an M.S. in Computer Science from IIT Chicago and numerous certifications from IAPP, AWS, ISO, HITRUST, ISACA, CMMC, PMI, PCI DSS, and ISC2.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/06/satish-uppalapati-author.jpg" alt="" width="683" height="683" class="aligncenter size-full wp-image-41687"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Satish Uppalapati&lt;/h3&gt; 
  &lt;p&gt;Satish is an Associate Assurance Consultant with AWS Security Assurance Services and has more than 8 years of experience in IT risk, governance, and regulatory assurance. He works with AWS customers to help align cloud environments with frameworks such as ISO 27001, SOC 2, and FFIEC. Satish also focuses on advancing governance for AI systems, including emerging standards such as ISO/IEC 42001.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/06/Amber-Welch.jpg" alt="Amber Welch" width="120" height="160" class="aligncenter size-full wp-image-42080"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Amber Welch&lt;/h3&gt; 
  &lt;p&gt;Amber is an AWS Security Assurance Services Senior Privacy Consultant, advising AWS customers on their AI and privacy risk management and compliance. She has an M.A. in English and ISO 42001 Lead Auditor, IAPP CIPM, and IAPP CIPP/E certifications. Amber has spoken and written extensively on AI and privacy topics, and is an AWS Privacy Reference Architecture primary author.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2024/10/21/Jonathan-Jenkyn-Author.jpg" alt="Jonathan-Jenkyn" width="120" height="160" class="aligncenter size-full wp-image-15518"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Jonathan Jenkyn&lt;/h3&gt; 
  &lt;p&gt;Jonathan (“JJ”) is a Sr Security Assurance Solution Architect with AWS Security Assurance Services. With over 30 years of experience, he is a proven security leader who delivers robust cloud security outcomes. JJ is also an active member of the AWS People with Disabilities affinity group and enjoys running, cycling, and spending time with his family.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/06/Muhammad-Sharief.jpg" alt="Muhammad Sharief" width="120" height="160" class="aligncenter size-full wp-image-42079"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Muhammad Sharief&lt;/h3&gt; 
  &lt;p&gt;Muhammad is a Security Assurance Consultant with AWS Security Assurance Services (SAS) and a PECB-certified ISO/IEC 42001 Lead Auditor. He helps enterprise customers across AWS GovCloud (US) and commercial environments achieve and maintain compliance with FedRAMP, CMMC, ISO 27001, ISO 42001, and NIST 800-53. Muhammad works closely with customers, partners, and AWS service teams to design automated evidence collection architectures, advance AI governance, and align cloud security and compliance requirements with business objectives.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Introducing AI traffic analysis dashboards for AWS WAF</title>
		<link>https://aws.amazon.com/blogs/security/introducing-ai-traffic-analysis-dashboards-for-aws-waf/</link>
					
		
		<dc:creator><![CDATA[Christopher Jen]]></dc:creator>
		<pubDate>Tue, 05 May 2026 18:56:54 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[AWS WAF]]></category>
		<category><![CDATA[Foundational (100)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">ef47fffd36306b4b293cd0216cc3616db555ef26</guid>

					<description>As AI agents, bots, and programmatic access become an increasingly significant portion of web traffic, organizations need better tools to understand, analyze, and manage this activity. Today, we’re excited to announce AI Traffic Analysis dashboards for AWS WAF protection packs—also known as web access control lists (web ACLs)—providing comprehensive visibility into AI bot and agent […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;As AI agents, bots, and programmatic access become an increasingly significant portion of web traffic, organizations need better tools to understand, analyze, and manage this activity. Today, we’re excited to announce AI Traffic Analysis dashboards for &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/waf" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS WAF&lt;/a&gt;&lt;/span&gt; protection packs—also known as web access control lists (web ACLs)—providing comprehensive visibility into AI bot and agent behavior across your applications.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;The challenge: Understanding AI bot traffic&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The rapid proliferation of AI bots—from search engine crawlers to research agents—has fundamentally changed the nature of web traffic. Organizations across industries are discovering that AI agents now represent 30–60% of their total traffic, driving significant infrastructure costs without always generating business value.&lt;/p&gt; 
  &lt;p&gt;Traditional bot management tools weren’t designed for the nuances of AI traffic. Teams need to answer critical questions such as: Which AI organizations are accessing our content? What are they trying to accomplish? Which endpoints are most frequently targeted? How has this activity changed over time? Most importantly, how can we turn this visibility into actionable business decisions?&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Introducing the AI Traffic Analysis dashboard&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The new AI Traffic Analysis dashboard provides specialized visibility into AI bot and agent activity, available directly within your AWS WAF protection pack (web ACL) console. With this launch, AWS WAF Bot Control expands its detection coverage to track more than 650 unique bots and agents, offering one of the most comprehensive AI bot detection catalogs available. A detection catalog that will keep growing and be updated to align with the pace of the industry’s changes.&lt;/p&gt; 
  &lt;p&gt;This dashboard goes beyond standard security metrics to deliver AI-specific insights that help you understand and manage this critical traffic segment.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Key capabilities&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;ul id="rte-1a0f6a90-11a5-11f1-82b3-f90d9a51c5c8" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;b&gt;Bot identification and verification: &lt;/b&gt;See which AI bots are accessing your applications, including bot names, owning organizations, and verification status. Quickly distinguish between legitimate AI agents from known organizations and potentially suspicious activity.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Intent classification: &lt;/b&gt;Understand the purpose behind AI bot requests. The dashboard categorizes bot behavior patterns—whether crawling for search indexing, conducting research, gathering training data, or other activities—helping you align access policies with business objectives.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Access pattern analysis: &lt;/b&gt;Identify your most frequently accessed URLs and endpoints by AI agents. This visibility helps you understand which content is most valuable to AI organizations and optimize your infrastructure accordingly.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Temporal trends and historical analysis: &lt;/b&gt;Track AI bot activity patterns by time of day and analyze historical trends over the past 14 days. Detect anomalies, understand peak usage periods, and identify emerging patterns in AI traffic.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Organization breakdown: &lt;/b&gt;View traffic volume segmented by bot owner organization, giving you clear visibility into which AI companies are accessing your content and at what scale.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;How it works&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;AI Traffic Analysis dashboards integrate seamlessly with AWS WAF Bot Control for common bots using the same traffic evaluation engine while providing specialized analytics for AI-specific patterns. The dashboards display near real-time summaries based on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudwatch" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CloudWatch&lt;/a&gt;&lt;/span&gt; metrics collected as AWS WAF evaluates your web traffic.&lt;/p&gt; 
  &lt;p&gt;To access the AI Traffic Analysis dashboard:&lt;/p&gt; 
  &lt;ol id="rte-35b60f50-10f2-11f1-aad6-95a00c60dd8a" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Navigate to your protection pack (web ACL) in the AWS Management Console for AWS WAF.&lt;/li&gt; 
   &lt;li&gt;Select the &lt;b&gt;AI Traffic Analysis &lt;/b&gt;tab.&lt;/li&gt; 
   &lt;li&gt;Apply filters for bot organization, intent type, or verification status as needed.&lt;/li&gt; 
   &lt;li&gt;Analyze the comprehensive visualizations across bot identity, intent classification, access patterns, and temporal trends.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;The dashboard populates automatically once your protection pack begins receiving AI bot traffic, so you have visibility exactly when you need it.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;From visibility to action&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;This new capability addresses a critical need as organizations navigate the evolving landscape of AI-driven web traffic. With detailed insights into AI bot behavior, you can:&lt;/p&gt; 
  &lt;ul id="rte-1a0f6a91-11a5-11f1-82b3-f90d9a51c5c8" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;b&gt;Make informed access decisions: &lt;/b&gt;Understand bot intent before implementing allow or block rules.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Optimize infrastructure investment: &lt;/b&gt;Identify high-traffic endpoints and plan capacity accordingly. Know whether your infrastructure costs are supporting business value or used without programmatic compensation mechanism.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Implement tiered access strategies: &lt;/b&gt;Serve different content or pricing based on AI agent verification and intent.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Detect anomalies and emerging patterns: &lt;/b&gt;Spot unusual patterns that might indicate emerging threats or opportunities. Real-time visibility helps you respond quickly to changes in AI bot behavior.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Support cross-organizational strategy: &lt;/b&gt;Provide data to stakeholders across security, product, and business teams for informed decisions about AI bot access policies and monetization opportunities.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Customize as needed:&lt;/b&gt; AI Traffic analyses are emitted as CloudWatch metrics that an organization can use to customize CloudWatch or another supported observability product as needed. Moreover, by using CloudWatch metrics, an organization can build proactive measures such as alerts or business actions such as rate or limit changes.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Monetize AI traffic at the edge&lt;/b&gt;: For a reference architecture that combines WAF Bot Control AI visibility, traffic control, and content monetization using the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://x402.org" target="_blank" rel="noopener" data-cms-ai="0"&gt;x402 payment protocol&lt;/a&gt;&lt;/span&gt;, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-x402-content-monetization-with-cloudfront-and-waf" target="_blank" rel="noopener" data-cms-ai="0"&gt;sample-x402-content-monetization-with-cloudfront-and-waf&lt;/a&gt;&lt;/span&gt; project on GitHub. It demonstrates how to classify AI bot traffic, enforce per-path pricing policies, and settle payments at the edge using Amazon CloudFront and Lambda@Edge – with zero changes to your existing origins.&lt;br&gt; 
    &lt;blockquote&gt;
     &lt;p&gt; &lt;strong&gt;Note&lt;/strong&gt;: This &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Samples&lt;/a&gt;&lt;/span&gt; solution is not a supported product in their own right, but educational examples to help our customers use our products for their applications. As our customer, any applications you integrate this example into should be thoroughly tested, secured, and optimized according to your business’s security standards &amp;amp; policies before deploying to production or handling production workloads. Deploying it will provision resources that incur additional AWS charges, so review costs before deploying and delete the stack when no longer needed.&lt;/p&gt;
    &lt;/blockquote&gt; &lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Programmatic access: Automate your AI traffic insights&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;In addition to the console dashboard, you can programmatically query AI bot traffic data using the &lt;b&gt;GetTopPathStatisticsByTraffic&lt;/b&gt; action, available through the AWS WAF API, AWS SDKs, and AWS CLI. This action returns the top URI paths by bot traffic volume for a given web ACL and time window. Each path in the response includes request counts, traffic percentages, and the top bots accessing it. You can filter results by bot category (for example, &lt;b&gt;ai&lt;/b&gt;), organization, or specific bot name, and use a URI path prefix (for example, &lt;b&gt;/api/&lt;/b&gt;) to drill down into specific areas of your application. The following AWS CLI example shows how to query the top paths accessed by AI bots for a specific web ACL.&lt;/p&gt; 
  &lt;p&gt;The following AWS CLI example shows how to query the top paths accessed by AI bots for a specific web ACL:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws wafv2 get-top-path-statistics-by-traffic \
  --web-acl-arn "arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \
  --scope "CLOUDFRONT" \
  --time-window StartTime=2026-02-25T00:00:00Z,EndTime=2026-02-26T00:00:00Z \
  --bot-category "ai" \
  --uri-path-prefix "/api/" \
  --limit 5 \
  --number-of-top-traffic-bots-per-path 3&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;A sample response:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
  "TopPathStatistics": [
    {
      "Path": "/api/v1/products",
      "RequestCount": 145320,
      "TrafficPercentage": 32.4,
      "TopBots": [
        { "BotName": "ExampleBotA", "Organization": "ExampleOrgA", "RequestCount": 98210 },
        { "BotName": "ExampleBotB", "Organization": "ExampleOrgB", "RequestCount": 47110 },
        { "BotName": "ExampleBotC", "Organization": "ExampleOrgC", "RequestCount": 0 }
      ]
    },
    {
      "Path": "/api/v2/search",
      "RequestCount": 87650,
      "TrafficPercentage": 19.5,
      "TopBots": [
        { "BotName": "ExampleBotA", "Organization": "ExampleOrgA", "RequestCount": 52300 },
        { "BotName": "ExampleBotC", "Organization": "ExampleOrgC", "RequestCount": 35350 },
        { "BotName": "ExampleBotB", "Organization": "ExampleOrgB", "RequestCount": 0 }
      ]
    }
  ],
  "TimeWindow": {
    "StartTime": "2026-02-25T00:00:00Z",
    "EndTime": "2026-02-26T00:00:00Z"
  }
}&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Programmatic access enables you to:&lt;/p&gt; 
  &lt;ul id="rte-977744f2-168a-11f1-8700-23c2c4be00ea" class="rte2-style-ul"&gt; 
   &lt;li&gt;Build custom dashboards or integrate AI traffic data into existing observability platforms.&lt;/li&gt; 
   &lt;li&gt;Automate alerting when specific paths see unusual bot traffic spikes.&lt;/li&gt; 
   &lt;li&gt;Feed traffic data into business intelligence pipelines for content monetization decisions.&lt;/li&gt; 
   &lt;li&gt;Investigate and debug AI bot activity within a specific timeframe to identify the root cause of traffic anomalies or incidents.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;For detailed usage information, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/waf/latest/APIReference/API_GetTopPathStatisticsByTraffic.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;GetTopPathStatisticsByTraffic API reference&lt;/a&gt;&lt;/span&gt; and the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cli/latest/reference/wafv2/get-top-path-statistics-by-traffic.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CLI command reference&lt;/a&gt;&lt;/span&gt;. This API pairs naturally with the CloudWatch metrics approach described above, giving you both real-time metric streams and on-demand path-level analytics for comprehensive AI traffic management.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Availability&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;For customers on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudfront/pricing/" target="_blank" rel="noopener" data-cms-ai="0"&gt;flat-rate pricing plans&lt;/a&gt;&lt;/span&gt;, the AI Traffic Analysis dashboard is included with all paid plans. Read more about CloudFront flat-rate pricing in the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/networking-and-content-delivery/introducing-flat-rate-pricing-plans-with-no-overages/" target="_blank" rel="noopener" data-cms-ai="0"&gt;launch blog post&lt;/a&gt;&lt;/span&gt;. For AWS WAF customers not subscribed to flat-rate plans, the AI traffic analysis dashboard is available at no additional cost. See &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/waf/pricing/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS WAF pricing&lt;/a&gt;&lt;/span&gt; for details.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Get started today&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The AI Traffic Analysis dashboard represents a significant step forward in managing the intersection of AI and web security. As AI agents continue to grow as a percentage of overall web traffic, having the right visibility tools becomes essential for both security and business success.&lt;/p&gt; 
  &lt;p&gt;To learn more about AWS WAF Bot Control and AI Traffic Analysis dashboards, visit the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/waf/latest/developerguide/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS WAF Developer Guide&lt;/a&gt;&lt;/span&gt; or explore the feature directly in your AWS WAF console.&lt;/p&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the &lt;strong&gt;Comments&lt;/strong&gt; section below. &lt;/p&gt; 
  &lt;footer&gt; 
   &lt;div class="blog-author-box"&gt; 
    &lt;div class="blog-author-image"&gt;
     &lt;img loading="lazy" class="aligncenter size-full wp-image-31782" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/30/Christopher-Jen-author.jpg" alt="Christopher Jen" width="120" height="160"&gt;
    &lt;/div&gt; 
    &lt;h3 class="lb-h4"&gt;Christopher Jen&lt;/h3&gt; 
    &lt;p&gt;Christopher is a go-to-market leader at Amazon Web Services (AWS), specializing in Edge Services, Cyber Security, AI Security, and Agentic Identification. Based in London, he’s a seasoned business development and partnerships executive with a track record of driving growth across cloud, security, and emerging technology domains.&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class="blog-author-box"&gt; 
    &lt;div class="blog-author-image"&gt;
     &lt;img loading="lazy" class="aligncenter size-full wp-image-31782" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/30/Eitav-Arditti-author.jpg" alt="Eitav Arditti" width="120" height="160"&gt;
    &lt;/div&gt; 
    &lt;h3 class="lb-h4"&gt;Eitav Arditti&lt;/h3&gt; 
    &lt;p&gt;Eitav is an AWS Senior Solutions Architect with over 15 years of experience in the AdTech industry. He specializes in Edge computing, Serverless, Containers, and Platform Engineering. Eitav helps organizations design cost-efficient, large-scale AWS architectures that integrate cloud-focused and Edge services such as CloudFront and WAF to deliver secure, performant, and globally scalable solutions that accelerate business growth.&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class="blog-author-box"&gt; 
    &lt;div class="blog-author-image"&gt; 
     &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2021/06/17/Kaustubh-Phatak-Author.jpg" alt="Author" width="120" height="160" class="aligncenter size-full wp-image-20812"&gt; 
    &lt;/div&gt; 
    &lt;h3 class="lb-h4"&gt;Kaustubh Phatak&lt;/h3&gt; 
    &lt;p&gt;Kaustubh is a product leader specializing in AI/ML systems and enterprise security solutions. He has led cross-functional teams in deploying AI-powered products at scale, working closely with security architects and CISOs to address the intersection of AI innovation and cybersecurity risk. His work focuses on translating complex technical capabilities into business value, particularly in emerging technology domains where traditional frameworks don’t apply.&lt;/p&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
  &lt;/footer&gt; 
 &lt;/div&gt; 
&lt;/div&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Five ways to use Kiro and Amazon Q to strengthen your security posture</title>
		<link>https://aws.amazon.com/blogs/security/five-ways-to-use-kiro-and-amazon-q-to-strengthen-your-security-posture/</link>
					
		
		<dc:creator><![CDATA[Roger Nem]]></dc:creator>
		<pubDate>Tue, 05 May 2026 15:00:07 +0000</pubDate>
				<category><![CDATA[Advanced (300)]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Generative AI]]></category>
		<category><![CDATA[Kiro]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">87f80daca40481b23143fae64ce64e05143eb9ca</guid>

					<description>A Monday morning security alert flags unauthorized access attempts, security group misconfigurations, and AWS Identity and Access Management (IAM) policy violations. Your team needs answers fast. Security teams are using Kiro and Amazon Q Developer to handle repetitive tasks—scanning resources, drafting policies, and researching Common Vulnerabilities and Exposures (CVEs)—so engineers can focus on risk decisions […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;A Monday morning security alert flags unauthorized access attempts, security group misconfigurations, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Identity and Access Management (IAM)&lt;/a&gt;&lt;/span&gt; policy violations. Your team needs answers fast.&lt;/p&gt; 
  &lt;p&gt;Security teams are using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://kiro.dev/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Kiro&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/q/developer/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Q Developer&lt;/a&gt;&lt;/span&gt; to handle repetitive tasks—scanning resources, drafting policies, and researching Common Vulnerabilities and Exposures (CVEs)—so engineers can focus on risk decisions and complex scenarios that require human judgment, resulting in faster threat response and more consistent security coverage.&lt;/p&gt; 
  &lt;p&gt;This post shows you five ways to use Kiro and Amazon Q Developer to strengthen your AWS security posture based on the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Well-Architected Framework Security Pillar&lt;/a&gt;&lt;/span&gt;. Each technique builds on a common foundation described after the tool overview below.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;About these tools&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;a href="https://aws.amazon.com/" rel="noopener" target="_blank"&gt;Amazon Web Services (AWS)&lt;/a&gt; gives customers choices when it comes to AI-assisted development and security automation. Whether you prefer Kiro’s agentic integrated development environment (IDE) experience or the deep integration of Amazon Q Developer into your existing AWS environment, both tools can help you implement the security practices described in this post. The right choice depends on your team’s workflow, and in many cases both tools are complementary and can be used together.&lt;/p&gt; 
  &lt;p&gt;Kiro is an AI-powered, agentic, IDE designed by AWS for specification-driven development, combining natural language prompting with structured, intentional coding to generate, test, and deploy applications.&lt;/p&gt; 
  &lt;p&gt;Amazon Q Developer is the generative AI assistant integrated into AWS development and cloud environments, designed to answer questions, generate code, troubleshoot issues, and automate operational tasks across AWS services.&lt;/p&gt; 
  &lt;p&gt;For setup instructions and to learn more, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://kiro.dev/docs/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Kiro documentation&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/amazonq/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Q Developer documentation&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;1. Embed security best practices with persistent context&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Providing AI assistants with the right context helps them produce more consistent and relevant results. Each of the five techniques in this post becomes significantly more powerful when your AI assistant already understands your organization’s security standards. Setting up persistent context first means every subsequent interaction builds on that foundation, and the results you get from triage, remediation, reviews, and policy development will better reflect your specific environment rather than generic best practices.&lt;/p&gt; 
  &lt;p&gt;Without persistent context, you need to repeat the same security requirements in every prompt such as &lt;code style="color: #000000"&gt;"enable encryption, use least privilege IAM settings, and enable logging,"&lt;/code&gt; which leads to inconsistent results and missed controls. Amazon Q Developer IDE Plugin &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/context-project-rules.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;rules&lt;/a&gt;&lt;/span&gt; and Kiro steering files (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://kiro.dev/docs/cli/steering/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CLI&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://kiro.dev/docs/steering/" target="_blank" rel="noopener" data-cms-ai="0"&gt;IDE&lt;/a&gt;&lt;/span&gt;) solve exactly this problem: you can use them to codify your organization’s security standards so AI automatically builds secure infrastructure consistently, without requiring you to repeat requirements in every prompt. Both tools support this capability independently, so you can configure whichever fits your workflow, or use both together for coverage across your full development environment. The following steps show you how to get started with each.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;&lt;b&gt;For Amazon Q Developer:&lt;/b&gt;&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-31df4720-3f3c-11f1-b0f7-a35d8556057d" start="1"&gt; 
   &lt;li&gt;Create directory: &lt;code class="CodeInline" style="color: #000"&gt;.amazonq/rules/&lt;/code&gt; in your project root.&lt;/li&gt; 
   &lt;li&gt;Create file: &lt;code class="CodeInline" style="color: #000"&gt;.amazonq/rules/security-standards.md&lt;/code&gt;.&lt;/li&gt; 
   &lt;li&gt;Paste your organization’s security standards in natural language (see “Example security standards context file” below).&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;&lt;b&gt;For Kiro (steering files):&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;In Kiro, persistent context documents are called steering files. They give the agent ongoing awareness of your architecture decisions, coding standards, and security requirements across every interaction and every session.&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-31df4721-3f3c-11f1-b0f7-a35d8556057d" start="1"&gt; 
   &lt;li&gt;Create file: &lt;code class="CodeInline" style="color: #000"&gt;security-standards.md&lt;/code&gt; in your project root.&lt;/li&gt; 
   &lt;li&gt;Reference it in prompts: &lt;code class="CodeInline" style="color: #000"&gt;Using security-standards.md as context, create...&lt;/code&gt;.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;&lt;b&gt;Pro tip&lt;/b&gt;: You can use Kiro itself to help you create steering files. Describe your security requirements in natural language and ask Kiro to generate a structured steering file for your review before saving and activating it. This means your AI assistant can help you build the very context it will later use, making the setup process faster and more thorough.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Example security standards context file:&lt;/b&gt;&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;# AWS Security Standards

## Identity and Access Management
- All IAM roles must use least privilege principles
- Require MFA for console access
- Enable IAM Access Analyzer for all accounts
- Rotate access keys every 90 days
- Use IAM roles for EC2 instances, never embed access keys

## Data Protection
- Enable encryption at rest for all storage services (S3, EBS, RDS)
- Use AWS KMS customer-managed keys for sensitive data
- Enable encryption in transit with TLS 1.2 minimum
- Implement S3 bucket policies denying unencrypted uploads
- Enable versioning and MFA delete for critical S3 buckets

## Infrastructure Protection
- Security groups must follow least privilege (no 0.0.0.0/0 on sensitive ports)
- Deploy resources in private subnets when possible
- Enable VPC Flow Logs for network monitoring
- Use AWS WAF for public-facing applications
- Implement Network ACLs as additional defense layer

## Detective Controls
- Enable CloudTrail in all regions with log file validation
- Configure CloudWatch alarms for security events
- Enable GuardDuty for threat detection
- Set up AWS Config rules for compliance monitoring
- Implement centralized logging with retention policies

## Incident Response
- Create SNS topics for security alerts
- Configure automated responses with AWS Lambda
- Maintain runbooks for common security incidents
- Enable AWS Systems Manager for secure instance access
- Implement automated backup and recovery procedure&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;b&gt;What this unlocks:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Without persistent context, a prompt like &lt;code class="CodeInline" style="color: #000"&gt;Create a Lambda function to process customer data&lt;/code&gt; could produce a basic function with no encryption, logging, or IAM configuration. AI output is non-deterministic, meaning that without guidance it might or might not include those controls. Steering files and rules documents minimize those variables by providing stronger guidance as part of every prompt and inference input.&lt;/p&gt; 
  &lt;p&gt;With your security standards embedded as in the example above, however, the same prompt generates a function with KMS-encrypted environment variables, a CloudWatch log group with 90-day retention, least-privilege IAM, VPC placement in private subnets, a dead-letter queue, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/xray" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS X-Ray&lt;/a&gt;&lt;/span&gt; tracing—all automatically. &lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Where it works:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;This persistent context approach applies across both tools and all infrastructure generation workflows:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-f7773550-3a9c-11f1-af79-a1ca739faefb"&gt; 
   &lt;li&gt;&lt;b&gt;Amazon Q Developer IDE Plugin&lt;/b&gt;: Rules in &lt;code class="CodeInline" style="color: #000"&gt;.amazonq/rules/&lt;/code&gt; apply automatically to every code generation and review interaction.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Kiro&lt;/b&gt;: Steering files provide the agent with continuous architectural and security awareness across sessions and projects.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;&lt;b&gt;The shift-left impact:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;This approach isn’t a replacement for your existing continuous integration and delivery (CI/CD) security automation. It’s a powerful complement to it, and that distinction matters. By embedding security standards directly into the development workflow, you shift security validation further left than pipeline checks can reach. Developers across your organization, not just security specialists, can generate infrastructure that meets your security standards from the first line of code. This scales security expertise into non-security roles, empowers development teams to self-serve on compliance requirements, and reduces the volume of findings that ever reach your automated pipeline checks.&lt;/p&gt; 
  &lt;p&gt;The result is security functioning as an enabler of faster development rather than a gate that slows it down, and security engineers spending their time on policy design and complex risk decisions rather than remediating avoidable misconfigurations.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Measurable impact:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Track these metrics to quantify the value of persistent context:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-f7775c60-3a9c-11f1-af79-a1ca739faefb"&gt; 
   &lt;li&gt;&lt;b&gt;Security findings during code review&lt;/b&gt;: Establish a 30–60 day baseline before enabling context files, then compare&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Time from development to deployment:&lt;/b&gt; Track average cycle time before and after&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Remediation cost&lt;/b&gt;: Research consistently shows defects fixed in development cost significantly less than those fixed in production. Track your own ratio for 60 days&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Standards consistency&lt;/b&gt;: Audit a random sample of infrastructure pull requests for compliance with your top 10 policies&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;&lt;b&gt;Implementation recommendation: &lt;/b&gt;Start by codifying your top 10 most frequently violated security policies as context. Measure the reduction in these specific findings over 30–60 days to quantify the impact on your team.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;2. Accelerate security finding triage and investigation&lt;/b&gt;&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-hub/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub&lt;/a&gt;&lt;/span&gt; consolidates findings from services such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/guardduty/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon GuardDuty&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/config/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Config&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/inspector/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Inspector&lt;/a&gt;&lt;/span&gt;, and third-party security tools into a single dashboard, providing centralized security finding visibility and built-in triage capabilities across your AWS environment. &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/security-hub-extended.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub Extended&lt;/a&gt;&lt;/span&gt; will bring even more capabilities into this mix, giving customers expanded control and additional opportunities to leverage the AI-assisted workflows described in this post at greater scale and with deeper integration across your security toolchain.&lt;/p&gt; 
  &lt;p&gt;Kiro can complement Security Hub by helping you correlate findings across accounts, understand CVE context, and develop remediation approaches, including:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-edf1b1b0-fc92-11f0-a3fd-431944c9185f"&gt; 
   &lt;li&gt;Query findings using natural language across multiple AWS accounts and AWS Regions&lt;/li&gt; 
   &lt;li&gt;Understand specific CVEs and their potential impact on your infrastructure&lt;/li&gt; 
   &lt;li&gt;Generate investigation queries for &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudtrail/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Virtual Private Cloud (Amazon VPC) Flow Logs&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;Correlate security events across different time periods and services&lt;/li&gt; 
   &lt;li&gt;Access the latest AWS security documentation and best practices&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;&lt;b&gt;How it works – Model Context Protocols:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;To enable these capabilities, Kiro uses Model Context Protocols (MCPs)—a standardized way for AI assistants to securely connect with external tools, services, and data sources, enabling them to take actions, retrieve real-time information, and interact with APIs beyond their built-in capabilities.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://awslabs.github.io/mcp/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Open source MCP servers for AWS&lt;/a&gt;&lt;/span&gt; are a suite of specialized MCP servers that enable Kiro to interact with AWS security services, providing real-time visibility into your security posture. To get started, configure security-focused MCP servers in your Kiro settings file (as shown in the following example). For full instructions on configuring MCP servers in Kiro, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://kiro.dev/docs/mcp" target="_blank" rel="noopener" data-cms-ai="0"&gt;Kiro MCP documentation&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Note on authentication&lt;/b&gt;: Before querying Security Hub, verify you have configured valid AWS credentials for the target account. Set the &lt;code class="CodeInline" style="color: #000"&gt;AWS_PROFILE&lt;/code&gt; value to a named profile in your &lt;code class="CodeInline" style="color: #000"&gt;~/.aws/credentials&lt;/code&gt; file that has the appropriate permissions, or configure credentials using the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cli" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Command Line Interface (AWS CLI)&lt;/a&gt;&lt;/span&gt; (&lt;code class="CodeInline" style="color: #000"&gt;aws configure&lt;/code&gt;). Without valid credentials for the target account, Kiro will not be able to retrieve findings.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
    "mcpServers": {
        "awslabs.aws-api-mcp-server": {
            "command": "uvx",
            "args": ["awslabs.aws-api-mcp-server@latest"],
            "env": {
                "FASTMCP_LOG_LEVEL": "ERROR",
                "AWS_PROFILE": "&amp;lt;PROFILE&amp;gt;",
                "AWS_REGION": "us-east-1"
            },
            "timeout": 120000,
            "disabled": false
        },
        "awslabs.cloudtrail-mcp-server": {
            "command": "uvx",
            "args": ["awslabs.cloudtrail-mcp-server@latest"],
            "env": {
                "FASTMCP_LOG_LEVEL": "ERROR",
                "AWS_PROFILE": "&amp;lt;PROFILE&amp;gt;"
            },
            "disabled": false
        },
        "awslabs.iam-mcp-server": {
            "command": "uvx",
            "args": ["awslabs.iam-mcp-server@latest"],
            "env": {
                "FASTMCP_LOG_LEVEL": "ERROR",
                "AWS_PROFILE": "&amp;lt;PROFILE&amp;gt;"
            },
            "disabled": false
        }
    }
}&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Configure the following security-focused MCP servers to get started:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-edf1b1b1-fc92-11f0-a3fd-431944c9185f"&gt; 
   &lt;li&gt;&lt;b&gt;AWS API MCP Server&lt;/b&gt;: Interact with Security Hub, GuardDuty, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam/access-analyzer" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM Access Analyzer&lt;/a&gt;&lt;/span&gt;, and AWS Config through AWS CLI commands&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;CloudTrail MCP Server&lt;/b&gt;: Audit trail analysis and compliance monitoring&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;AWS IAM MCP Server&lt;/b&gt;: Manage &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM &lt;/a&gt;&lt;/span&gt; users, roles, policies, and permissions&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;AWS Knowledge MCP Server&lt;/b&gt;: Access up-to-date AWS security documentation and best practices&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;For a full list of available MCP servers, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/awslabs/mcp" target="_blank" rel="noopener" data-cms-ai="0"&gt;awslabs/mcp GitHub repository&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Example: querying Security Hub with Kiro:&lt;/b&gt;&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-c90be8a0-1805-11f1-8e8a-1fa0536e4708" start="1"&gt; 
   &lt;li&gt;Open your terminal or Kiro IDE.&lt;/li&gt; 
   &lt;li&gt;Enter the following command:&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;"Show me all critical security findings from Security Hub in my production account ID &amp;lt;ACCOUNT ID&amp;gt;"&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;b&gt;Example output:&lt;/b&gt;&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;&amp;gt; Found 4 critical security findings in account 123456789012:

## Configuration Issues (2)

1. SSM.7 - SSM documents block public sharing disabled
- Status: FAILED (since July 17, 2025)
- Impact: Systems Manager documents can be publicly shared
- Remediation: Enable block public sharing setting for SSM documents
- [Documentation](https://docs.aws.amazon.com/console/securityhub/SSM.7/remediation)

2. Config.1 - AWS Config not properly configured
- Status: FAILED (since March 4, 2025)
- Issue: Config isn't recording required IAM resource types (User, Role, Group, Policy)
- Standards affected: CIS, NIST 800-53, PCI DSS, AWS Foundational Security
- Remediation: Enable recording for IAM resources in AWS Config
- [Documentation](https://docs.aws.amazon.com/console/securityhub/Config.1/remediation)

## Vulnerabilities (2)

3. CVE-2020-36242 in Lambda function: MyLambdaOne
- Package: cryptography version 3.2.1
- CVSS Score: 9.1 (Critical)
- Issue: Integer/buffer overflow in Fernet encryption class
- Fix: Upgrade to cryptography 3.3.2
- Function: SPC-1233HH5R-MyLambdaOne-lUh3ESH0MdXF

4. CVE-2020-36242 in Lambda function: AutoUpdateMyLambdaOne
- Package: cryptography version 3.2.1
- CVSS Score: 9.1 (Critical)
- Same vulnerability as above
- Function: SPC-1233HH5R-AutoUpdateMyLambdaOne-d9HIBfxThbFW&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;b&gt;Real-world impact: &lt;/b&gt;&lt;br&gt; Security finding triage that previously required navigating multiple consoles, correlating logs manually, and researching CVE databases can be accelerated significantly. Teams that have integrated AI-assisted triage into their Security Hub workflows report reducing mean time to triage for critical findings from hours to minutes, enabling faster containment and more consistent coverage across accounts.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;3. &lt;/b&gt;Accelerate remediation of security findings&lt;b&gt; in your infrastructure as code&lt;/b&gt;&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;AI assistants can scan your infrastructure code and flag security issues with specific fix recommendations. However, implementing these changes requires careful review, testing, and validation before any changes reach production.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Important:&lt;/b&gt; AI-generated remediation suggestions must be reviewed by a qualified security engineer before implementation. Automated application of AI-generated changes without human validation can introduce unintended misconfigurations or service disruptions. Treat AI output as a starting point, not a finished product.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;The workflow:&lt;/b&gt;&lt;br&gt; You can execute this workflow in either Kiro or Amazon Q Developer, depending on which tool fits your existing development environment:&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-edf1b1b2-fc92-11f0-a3fd-431944c9185f" start="1"&gt; 
   &lt;li&gt;Ask Kiro or Amazon Q Developer to scan your infrastructure files and identify security gaps.&lt;/li&gt; 
   &lt;li&gt;Review AI-generated remediation suggestions with your security team.&lt;/li&gt; 
   &lt;li&gt;Test changes in non-production environments.&lt;/li&gt; 
   &lt;li&gt;Validate using AWS security services such as IAM Access Analyzer, AWS Config, and Security Hub.&lt;/li&gt; 
   &lt;li&gt;Deploy to production with monitoring and rollback procedures in place.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;&lt;b&gt;Example prompt:&lt;/b&gt;&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;"Scan my infrastructure at /path/to/templates, identify all S3 buckets without encryption, enable AES-256 encryption, add bucket policies to deny unencrypted uploads, and provide the deployment command"&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;b&gt;What happens:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;The AI assistant analyzes your infrastructure files, whether written in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudFormation&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://developer.hashicorp.com/terraform/docs" target="_blank" rel="noopener" data-cms-ai="0"&gt;Terraform &lt;/a&gt;&lt;/span&gt;, or &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cdk/v2/guide/home.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Cloud Development Kit (AWS CDK)&lt;/a&gt;&lt;/span&gt;, and identifies resources that violate security best practices. It then implements controls such as encryption at rest using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/kms/latest/developerguide/overview.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Key Management Service (AWS KMS)&lt;/a&gt;&lt;/span&gt; or &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Storage Service (Amazon S3)&lt;/a&gt;&lt;/span&gt;-managed keys, adds bucket policies enforcing encryption in transit, configures public access blocks, and generates the exact deployment command with a change preview so you can review what will be modified before anything is applied.&lt;/p&gt; 
  &lt;p&gt;Based on the example security standards context file above, the following controls would be applied across all generated infrastructure: encryption at rest and in transit, least-privilege IAM policies, security group optimizations, VPC configurations, logging enablement, and backup and recovery settings.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Validation required&lt;/b&gt;: &lt;br&gt; AI-generated configurations deserve the same thoughtful review as other infrastructure code. Even a policy that looks correct on the surface might need tuning to match your organization’s least-privilege standards, or encryption settings might need adjusting to satisfy specific compliance requirements. Running those changes through a non-production environment and having a human confirm the results before anything reaches production are part of good infrastructure practices, whether the code was written by a person or generated by AI.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Real-world impact:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Identifying non-compliant resources across multiple accounts manually can take many hours and generating remediation templates for each resource can add significant time. Security teams that have adopted AI-assisted infrastructure scanning report spending less time on manual identification and template generation, and with AI assistance the same identification and drafting work can be completed in much less time. Customers report that a full remediation cycle that previously occupied their team for the better part of a day can be completed in under an hour when AI handles the scanning and template generation. It is worth noting that manual remediation time grows considerably at scale, as remediating dozens of non-compliant resources is not a linear exercise. Validation time in non-production environments remains essential regardless of how the remediation was generated, and should always be factored into your planning.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;4. &lt;/b&gt;Perform in-depth security reviews&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Amazon Q Developer and Kiro can analyze your infrastructure code and identify potential security issues across multiple categories aligned with the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Well-Architected Framework Security Pillar&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Using Amazon Q Developer:&lt;/b&gt;&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-edf1b1b5-fc92-11f0-a3fd-431944c9185f" start="1"&gt; 
   &lt;li&gt;Open your infrastructure file in your IDE.&lt;/li&gt; 
   &lt;li&gt;Select the code you want to review.&lt;/li&gt; 
   &lt;li&gt;Open the context menu and choose &lt;b&gt;Send to Amazon Q&lt;/b&gt;, then choose &lt;b&gt;Optimize&lt;/b&gt;.&lt;/li&gt; 
   &lt;li&gt;Select &lt;b&gt;Focus on security best practices&lt;/b&gt;.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;&lt;b&gt;Using Kiro:&lt;/b&gt;&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-591e71d1-3a78-11f1-af79-a1ca739faefb" start="1"&gt; 
   &lt;li&gt;Open your infrastructure file in Kiro.&lt;/li&gt; 
   &lt;li&gt;Enter a natural language prompt such as: &lt;code class="CodeInline" style="color: #000"&gt;Perform a comprehensive security review of this CloudFormation template and identify all deviations from our standards.&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;Kiro will automatically apply your steering files as additional context when generating its response.&lt;/li&gt; 
   &lt;li&gt;Review the findings and iterate with follow-up prompts.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;&lt;b&gt;Security categories evaluated: &lt;/b&gt;For the complete, up-to-date list of security categories and controls, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/security.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Well-Architected Framework Security Pillar documentation&lt;/a&gt;&lt;/span&gt;. Current categories include but are not limited to:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-1b6f19d2-1704-11f1-a98d-47b8dcd149de"&gt; 
   &lt;li&gt;&lt;b&gt;Identity and access management&lt;/b&gt;: Overly permissive IAM policies, missing multi-factor authentication (MFA) requirements, unused credentials and access keys, cross-account access risks&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Detective controls&lt;/b&gt;: CloudTrail logging configuration, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudwatch" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CloudWatch&lt;/a&gt;&lt;/span&gt; alarm coverage, GuardDuty enablement status, and AWS Config rule implementation&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Infrastructure protection&lt;/b&gt;: Security group misconfigurations, public subnet exposure, missing &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/waf" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS WAF&lt;/a&gt;&lt;/span&gt; rules, unencrypted network traffic&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Data protection&lt;/b&gt;: Storage encryption status, KMS key rotation policies, backup configurations, S3 bucket access controls&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Incident response&lt;/b&gt;: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sns" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Notification Service (Amazon SNS)&lt;/a&gt;&lt;/span&gt; alerting setup, log retention policies, automated response mechanisms&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;&lt;b&gt;Example output:&lt;/b&gt;&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;Security Recommendations:
- Enable S3 bucket encryption with KMS: Critical
- Implement least privilege IAM policies: High
- Enable GuardDuty threat detection: High
- Configure VPC Flow Logs: Medium
- Add WAF rules for API Gateway: Medium
- Enable CloudTrail in all regions: Critical
- Implement automated backup policies: High

Total security improvements: 23 findings across 5 Well-Architected pillars&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;b&gt;Keeping your configuration files current:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;A security architect review remains valuable for keeping your steering files and rules documents complete and current. The goal is an AI assistant that already understands your environment, not one that needs correcting after every interaction. Treat your configuration files as living documents and update them when your security standards evolve, when new services are adopted, or when post-incident reviews reveal gaps. As this post notes, project rules reduce architectural drift and help maintain consistency as AI agents operate more autonomously.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Real-world impact:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Security reviews that previously required a security engineer to manually inspect infrastructure templates line by line can be completed in significantly less time with AI assistance. Teams using AI-assisted security reviews as a pre-commit gate—before code reaches CI/CD pipeline checks—report catching a meaningful portion of security findings earlier in the development cycle where they are faster and less costly to address. Integrating this review step into pull request workflows means security validation happens continuously rather than only at deployment gates.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;5. Assist with service control policy development&lt;/b&gt;&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;You can use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Organizations Service Control Policies&lt;/a&gt;&lt;/span&gt; (SCPs) to apply preventive controls consistently across every account in your organization, enforcing security baselines without relying on individual account administrators. Kiro can generate initial SCP drafts from natural language security requirements, speeding up the drafting and iteration process considerably. Because SCPs are preventive controls that can’t be bypassed by administrators, misconfigurations can cause organization-wide service disruptions, making expert validation and staged testing essential before any SCP reaches production.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Step 1: Generate an SCP draft:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Describe your security requirements in natural language:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;"Create an SCP with these security controls:
- Deny creation of S3 buckets without encryption
- Require MFA for IAM user console access
- Prevent public RDS snapshots
- Deny security group rules allowing 0.0.0.0/0 on sensitive ports
- Enforce encryption for all EBS volumes
- Require VPC Flow Logs on all VPCs
- Deny IAM policy creation without approval tags
- Restrict resource creation to approved regions only"&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Kiro generates a complete SCP policy JSON with proper deny statements, condition keys for MFA and encryption enforcement, resource-level restrictions, and regional compliance requirements.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Step 2: Validate and lint the SCP:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Use Kiro or Amazon Q Developer to assist with policy linting and initial testing as a first layer of validation. &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/about-aws/whats-new/2026/02/aws-iam-policy-autopilot-kiro-power/" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM Policy Autopilot, available as a Kiro Power&lt;/a&gt;&lt;/span&gt; with one-click installation directly from the Kiro IDE, can analyze your application’s usage and generate necessary permissions based on the SDK calls it discovers. IAM Policy Autopilot also integrates as an MCP server with Kiro, Amazon Q Developer, and other MCP-compatible coding assistants, making it a natural part of your existing workflow rather than a separate tool.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;"Review this SCP JSON for syntax errors, overly broad deny statements, and missing condition keys. Flag any statements that could unintentionally block legitimate operations."&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html" rel="noopener" target="_blank"&gt;IAM Policy Simulator&lt;/a&gt; then adds another layer of validation on top of the AI-assisted linting, so you can test policy behavior, verify condition keys are correctly applied, and confirm that no legitimate operations are unintentionally blocked. IAM Policy Autopilot complements existing IAM tools such as IAM Access Analyzer by providing functional policies as a starting point, which you can then validate using IAM Access Analyzer policy validation or refine over time with unused access analysis. Together, these tools form a layered validation approach where each one strengthens the output of the previous step.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Step 3: Test in a sandbox environment:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Create a test organizational unit (OU) with non-production accounts and apply the SCP to the test OU. Attempt operations that should be blocked and confirm that no legitimate operations are unintentionally blocked. Use Kiro to pre-validate your infrastructure code against the proposed SCP before sandbox testing:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;"Analyze my current infrastructure against this proposed SCP and identify resources that would be non-compliant"&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;This scan covers your infrastructure code files. For live account scanning across your organization, use the following AWS services:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-f7778370-3a9c-11f1-af79-a1ca739faefb"&gt; 
   &lt;li&gt;AWS Config with the Config Aggregator and Conformance Packs for continuous compliance monitoring across your organization.&lt;/li&gt; 
   &lt;li&gt;IAM Access Analyzer for automated reasoning-based analysis of external access, internal access, and unused permissions.&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/solutions/implementations/account-assessment-for-aws-organizations/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Account Assessment for AWS Organizations&lt;/a&gt;&lt;/span&gt; for bulk scanning of identity-based, resource-based, and service control policies across all accounts.&lt;/li&gt; 
   &lt;li&gt;Security Hub for centralized aggregation of compliance findings and security scores across your entire organization.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;&lt;b&gt;Step 4: Security architect review:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Engage your security architects to identify potential risks and verify the policy aligns with your security framework. Check for conflicts with existing SCPs by reviewing all SCPs attached to parent OUs and the root in the AWS Organizations console. Use the IAM Policy Simulator to test interactions between policies and verify that emergency access procedures ( &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_emergency_process.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;SEC03-BP03 Establish emergency access process – Security Pillar&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_incident_response_pre_provision_access.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;SEC10-BP05 Pre-provision access – Security Pillar&lt;/a&gt;&lt;/span&gt;) remain functional before any production rollout.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Step 5: Staged rollout:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Deploy to development accounts first and monitor for policy violations and operational issues. Gradually expand to additional environments and maintain documented rollback procedures throughout the process.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Important&lt;/b&gt;: It’s strongly recommended not to deploy AI-generated SCPs directly to production without thorough expert review and staged testing. A misconfigured SCP can cause organization-wide service disruptions affecting every account in your organization.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Real-world impact:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;SCP drafting that previously required security architects to write and iterate on complex JSON policy documents manually, often spanning multiple review cycles over several days, can be condensed when AI handles the initial drafting and linting. Your architects can then focus their time on policy design, edge case analysis, and organizational impact assessment rather than JSON syntax and structure.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Responsible implementation framework&lt;/b&gt;&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Adopting AI-assisted security workflows is most effective when introduced gradually, with clear validation gates at each stage. The following two-phase approach gives your team time to build confidence, measure results, and establish the internal practices needed before expanding to production environments.&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-35db53f0-3f3c-11f1-b3fb-cf84ba4be400"&gt; 
   &lt;li&gt;&lt;b&gt;Phase 1: Development and testing (weeks 1–4): &lt;/b&gt;Start by testing AI-generated security controls in isolated development accounts. Validate functionality, identify edge cases, and deploy to a dedicated testing environment with thorough security validation. Use IAM Access Analyzer, AWS Config, and Security Hub to verify that generated controls behave as expected. This phase is also the right time to build internal expertise across both your security team and your development teams, so that knowledge of what works and what requires human review is shared broadly from the start.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Phase 2: Staging and production (week 5 and later): &lt;/b&gt;Apply the validated controls to a staging environment that mirrors production. Conduct penetration testing where appropriate and validate that monitoring and alerting function correctly before expanding further. Gradually roll out to production accounts with continuous monitoring in place. Maintain rollback procedures throughout and establish feedback loops so that lessons learned in production flow back into your steering files, rules documents, and validation processes over time.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Key takeaways&lt;/b&gt;&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;What distinguishes the approach in this post from general guidance on AI coding assistants is the specificity of the security integration. There’s no shortage of content about how AI assistants accelerate development. What this post focuses on is how to configure both Kiro and Amazon Q Developer to perform security-specific tasks: triaging findings from Security Hub, remediating infrastructure code vulnerabilities against your organization’s defined standards, conducting Well-Architected security reviews, drafting and validating SCPs, and generating secure-by-default infrastructure through persistent context that reflects your environment rather than generic defaults.&lt;/p&gt; 
  &lt;p&gt;Kiro is an agentic IDE that helps you go from prototype to production with spec-driven development, and its steering files give the agent persistent awareness of your security standards across every session. Amazon Q Developer complements this by providing deep integration into your existing AWS environment and IDE workflows. Together, these tools extend your security team’s reach into every stage of the development lifecycle, scale security expertise into development teams, and reduce the gap between when vulnerabilities are introduced and when they are caught. As the AWS Well-Architected Framework Security Pillar establishes, embedding security early and consistently across the development process is foundational to a strong security posture.&lt;/p&gt; 
  &lt;p&gt;These five techniques aren’t about replacing your security controls. They’re about making security a natural part of how your teams build on AWS, regardless of whether they’re security specialists or application developers. In addition to the five techniques covered in this post, the following AWS capabilities complement this approach and are worth exploring for a more complete picture:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-f7778371-3a9c-11f1-af79-a1ca739faefb"&gt; 
   &lt;li&gt;&lt;b&gt;Amazon Inspector&lt;/b&gt; is a vulnerability management service that continually scans AWS workloads for software vulnerabilities, code vulnerabilities, and unintended network exposure. It automatically discovers and scans Amazon EC2 instances, container images in Amazon ECR, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/lambda/latest/dg/welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Lambda&lt;/a&gt;&lt;/span&gt; functions, and first-party code repositories. Amazon Inspector integrates directly into CI/CD pipelines through plugins for Jenkins, TeamCity, GitHub Actions, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/codecatalyst" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CodeCatalyst&lt;/a&gt;&lt;/span&gt;, which teams can use to catch vulnerabilities before deployment. Its code security capabilities include Static Application Security Testing (SAST), Software Composition Analysis (SCA), and infrastructure as code (IaC) scanning, with native integration to GitHub and GitLab. All findings are surfaced directly in Security Hub for centralized visibility and response across your organization.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Amazon Q Developer security scanning&lt;/b&gt; provides real-time security issue detection in the IDE, including SAST scanning for security vulnerabilities, secrets detection, IaC security evaluation, and software composition analysis for third-party dependencies. These capabilities are available across JetBrains, Visual Studio Code, and Visual Studio.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Kiro Powers&lt;/b&gt; are curated and pre-packaged MCP servers, steering files, and hooks validated by Kiro partners to accelerate specialized development and deployment use cases. Security-relevant Kiro Powers include the IAM Policy Autopilot Kiro Power for baseline IAM policy generation and the real-time coding security validation MCP server pattern for Kiro.&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-agent" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Agent&lt;/a&gt;&lt;/span&gt; is a frontier AI agent that proactively secures your applications throughout the development lifecycle. Security teams define organizational security requirements once in the AWS Security Agent console, such as approved encryption libraries, authentication frameworks, and logging standards, and AWS Security Agent then automatically validates these requirements throughout development by evaluating architectural documents and code against your defined standards. It provides three core capabilities: design security review for architecture documents, code security review that automatically analyzes pull requests against your defined standards across connected repositories, and on-demand penetration testing that discovers, validates, and reports vulnerabilities through sophisticated multi-step attack scenarios customized for each application. When vulnerabilities are found, AWS Security Agent creates pull requests with ready-to-implement fixes directly in your code repository. Customers report that AWS Security Agent compresses penetration testing timelines from weeks to hours, transforming penetration testing from a periodic bottleneck into an on-demand capability that reduces risk exposure and scales security reviews to match development velocity.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;AWS Security Hub automated response and remediation&lt;/b&gt; provides pre-built playbooks for common findings using AWS Systems Manager Automation, enabling your team to act on findings faster and more consistently.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Getting started&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;If you’re new to AI-assisted security workflows, the following week-by-week approach gives your team a practical path forward without overextending before the foundation is in place.&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-ae27f6e2-3f34-11f1-b0f7-a35d8556057d"&gt; 
   &lt;li&gt;&lt;b&gt;Weeks 1 and 2: &lt;/b&gt;Set up your persistent context files with your top 10 security policies as described in the foundational setup section above. Configure MCP servers in Kiro for Security Hub and CloudTrail access and verify that credentials are correctly configured for your target accounts.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Weeks 3 and 4:&lt;/b&gt; Run your first AI-assisted security review on a non-production infrastructure template. Compare the findings against your last manual review to establish a baseline for measuring impact over time.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Weeks 5 and 6:&lt;/b&gt; pilot AI-assisted SCP drafting for one new preventive control. Run the full validation workflow including AI-assisted linting, IAM Policy Autopilot, and the IAM Policy Simulator before any production application.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;From that point forward:&lt;/b&gt; Measure the metrics outlined in the foundational setup section, update your steering files and rules documents as your standards evolve, and share findings across your security team, development teams, and platform engineering teams. The knowledge of what works and what requires human judgment is valuable to everyone who touches infrastructure in your organization.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Kiro and Amazon Q Developer give security teams practical tools to accelerate threat response and maintain consistent security coverage by handling the tasks that consume the most time with the least strategic value: scanning for known misconfigurations, drafting policy JSON, researching CVEs, and generating secure infrastructure. These AI assistants are most effective when paired with security engineers, as they accelerate assessments and code generation while human review, policy design, and risk judgment remain essential throughout.&lt;/p&gt; 
  &lt;p&gt;By implementing the five techniques outlined in this post, starting with embedding security best practices through persistent context and then applying that foundation to Security Hub finding triage, infrastructure code remediation, in-depth Well-Architected security reviews, and SCP development, your team can strengthen your AWS security posture while maintaining the standards your organization requires.&lt;/p&gt; 
  &lt;p&gt;AWS services such as Security Hub, IAM Access Analyzer, AWS Config, and CloudTrail provide the foundation for these AI-assisted workflows, enabling centralized visibility and automated validation of security controls across your environment. Emergency access procedures should be established and validated before deploying any preventive controls such as SCPs, following the break-glass guidance in the AWS Well-Architected Security Pillar and the AWS Prescriptive Guidance for break-glass access.&lt;/p&gt; 
  &lt;p&gt;Start small with non-production environments, establish clear validation processes, measure results, and gradually expand your use of AI assistants as your team builds expertise and confidence. The result is faster threat response, more consistent security coverage, and security engineers focused on complex decisions rather than repetitive tasks.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Additional resources&lt;/b&gt;&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;ul class="rte2-style-ul" id="rte-acc8fe74-1e4b-11f1-9ce6-2d3e52020e59"&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Well-Architected Framework Security Pillar&lt;/a&gt;&lt;/span&gt; – Foundational security best practices across the five pillars of the Well-Architected Framework&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/prescriptive-guidance/latest/vulnerability-management/aws-security-hub.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub Best Practices&lt;/a&gt;&lt;/span&gt; – Vulnerability management guidance&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/about-aws/whats-new/2025/08/aws-security-incident-response-itsm-integrations/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Incident Response ITSM Integrations&lt;/a&gt;&lt;/span&gt; – Open source integrations for Jira and ServiceNow with AWS Security Incident Response, with guidance on using Kiro and Amazon Q Developer for rapid customization&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Blog&lt;/a&gt;&lt;/span&gt; – Latest security guidance, customer stories, and announcements from the AWS security team&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the &lt;strong&gt;Comments&lt;/strong&gt; section below&lt;br&gt; &lt;/p&gt; 
  &lt;hr&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/28/Roger-Nem-Author2.png" alt="Roger Nem" width="120" height="160" class="aligncenter size-full wp-image-41965"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Roger Nem&lt;/h3&gt; 
  &lt;p&gt;Roger is an Enterprise Technical Account Manager (TAM) supporting Healthcare &amp;amp; Life Science customers at Amazon Web Services (AWS). As a Security Technical Field community specialist, he helps enterprise customers design secure cloud architectures aligned with industry best practices. Beyond his professional pursuits, Roger finds joy in quality time with family and friends, nurturing his passion for music, and exploring new destinations through travel.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Securing open proxies in your AWS environment</title>
		<link>https://aws.amazon.com/blogs/security/securing-open-proxies-in-your-aws-environment/</link>
					
		
		<dc:creator><![CDATA[Dodd Mitchell]]></dc:creator>
		<pubDate>Mon, 04 May 2026 18:16:39 +0000</pubDate>
				<category><![CDATA[Amazon EC2]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">d056d0de525b45bc9d406bd2a602fce0c1ab5ce9</guid>

					<description>This article shows you how to identify and secure open proxies in your AWS environment to prevent abuse, protect your IP address reputation, and control costs. An open proxy is a server that forwards traffic on behalf of internet users without requiring authentication. While proxies can support legitimate use cases such as load balancing or […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;&lt;i&gt;This article shows you how to identify and secure open proxies in your AWS environment to prevent abuse, protect your IP address reputation, and control costs.&lt;/i&gt;&lt;/p&gt; 
  &lt;p&gt;An open proxy is a server that forwards traffic on behalf of internet users without requiring authentication. While proxies can support legitimate use cases such as load balancing or caching, open proxies allow unrestricted access that threat actors can use to hide harmful activity. In &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Web Services (AWS)&lt;/a&gt;&lt;/span&gt; environments, open proxies often result from misconfigured &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ec2/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Compute Cloud (Amazon EC2)&lt;/a&gt;&lt;/span&gt; instances, containers, or compute resources such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/lambda/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Lambda&lt;/a&gt;&lt;/span&gt; functions. These resources expose proxy functionality without access controls.&lt;/p&gt; 
  &lt;p&gt;Open proxies come in several forms. Common open proxies can include:&lt;/p&gt; 
  &lt;ul id="rte-b76bed22-2d3b-11f1-9438-b13cac1053aa" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;b&gt;HTTP proxies&lt;/b&gt;: HTTP proxies forward HTTP requests to web servers, making them useful for web traffic management. These proxies can create potential issues when they’re unsecured.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;SOCKS proxies&lt;/b&gt;: SOCKS proxies support a wider range of traffic types and provide more flexibility. These proxies create a broader potential for misuse.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Transparent proxies&lt;/b&gt;: Transparent proxies intercept traffic without the client’s knowledge and are often used to filter content. These proxies can become security liabilities when misconfigured.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Reverse proxies&lt;/b&gt;: Reverse proxies help with internal routing. Unauthorized users can misuse these proxies if they’re exposed.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Knowing these risks can help you better protect your AWS environment.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Security risks&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Because of the unrestricted configuration of open proxy servers, threat actors target them to conduct denial of service (DoS) events, intrusion attempts, distribute spam, and other forms of unauthorized activity. These open proxy servers allow threat actors to hide their actual IP address and other forms of identification from the intended targets.&lt;/p&gt; 
  &lt;p&gt;When your AWS infrastructure hosts an open proxy, several risks emerge that can affect both your operations and customers:&lt;/p&gt; 
  &lt;ul id="rte-b76bed23-2d3b-11f1-9438-b13cac1053aa" class="rte2-style-ul"&gt; 
   &lt;li&gt;Threat actors can misuse your resources, which can result in your IP address being added to security service and reputation system block lists. This can affect your legitimate business operations and customer access. When external parties use your infrastructure for harmful activities, the reputation damage extends beyond immediate technical concerns to affect your ability to reach customers and partners.&lt;/li&gt; 
   &lt;li&gt;Unexpected costs from resource consumption occur when threat actors use your bandwidth and compute capacity. The traffic patterns that proxy abuse generate can also alert AWS security monitoring systems and create additional operational overhead as you investigate and respond to these alerts.&lt;/li&gt; 
   &lt;li&gt;Service disruptions might affect your legitimate workloads because unauthorized traffic competes for resources with your business-critical applications. This competition for resources can potentially degrade performance or cause availability issues for your customers.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Implementing security measures&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To prevent the risks associated with open proxies, it’s essential to implement proper security controls for proxy services in AWS environments. The following guidance is a comprehensive approach that you can follow to secure your proxy infrastructure.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Access control implementation&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;An important security step is to use passwords and authentication mechanisms to restrict access to proxy services. Configure your proxies to accept connections only from known, trusted IP address ranges. For &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/elasticloadbalancing/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Elastic Load Balancing (ELB)&lt;/a&gt;&lt;/span&gt;, limit access based on source IP addresses and add authentication to proxies behind the load balancers. When you create new instances in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/eks/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Kubernetes Service (Amazon EKS)&lt;/a&gt;&lt;/span&gt;, limit access to your balancer in each instance. If instances don’t have public IP addresses, then you can limit access to the balancer instead. If instances have public IP addresses, then you must limit access to those IP addresses.&lt;/p&gt; 
  &lt;p&gt;When possible, use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/privatelink/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS PrivateLink virtual private cloud (VPC) endpoints&lt;/a&gt;&lt;/span&gt; to provide private connectivity to AWS services without exposing them to the internet. Deploy proxy services in private subnets with controlled outbound access through NAT gateways or other controlled channels. For Amazon EC2 and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/lightsail/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Lightsail&lt;/a&gt;&lt;/span&gt; resources, update the attached security group to prevent public internet access. To secure the proxy, you must either limit access to specific IP addresses or implement authentication on the endpoint.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Authentication and authorization&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Turn on authentication for the proxy software and use strong credentials, certificates, or integration with &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Identity and Access Management (IAM)&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/directoryservice/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Directory Service&lt;/a&gt;&lt;/span&gt;. Apply IAM policies with the principle of least privilege to limit access to only what users need to perform their tasks. This approach reduces the potential effects of credential compromise and helps maintain clear accountability for resource access.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Monitoring and detection&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To detect unusual proxy activity, configure &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Virtual Private Cloud (Amazon VPC) Flow Logs&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudtrail/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail&lt;/a&gt;&lt;/span&gt;, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/guardduty/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon GuardDuty&lt;/a&gt;&lt;/span&gt;. Use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudwatch/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CloudWatch&lt;/a&gt;&lt;/span&gt; alarms to notify you of abnormal traffic patterns that might indicate unauthorized use of your proxy services. These monitoring capabilities provide visibility into your network traffic patterns and help you identify both legitimate usage and potential security concerns.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Deployment best practices&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Use HTTPS for ELB traffic to protect data in transit, and restrict security groups to necessary ports to minimize the surface area for potential misuse. Integrate &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/waf/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS WAF&lt;/a&gt;&lt;/span&gt; with balancers to filter web traffic based on rules that you define. You can also use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/network-firewall/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Network Firewall&lt;/a&gt;&lt;/span&gt; for advanced traffic filtering capabilities. For APIs, deploy &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/api-gateway/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon API Gateway&lt;/a&gt;&lt;/span&gt; with authentication and authorization controls to manage access to your backend services. This layered approach to security helps protect your infrastructure at multiple points in the traffic flow.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Regular security assessments&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Run &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/inspector/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Inspector&lt;/a&gt;&lt;/span&gt; to scan for misconfigurations in your infrastructure, and use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-hub/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub&lt;/a&gt;&lt;/span&gt; to centralize security findings across your AWS environment. Conduct penetration tests in accordance with AWS policy to identify potential security issues before they can result in unintended access.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Incident response planning&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Automate remediation with &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/config/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Config&lt;/a&gt;&lt;/span&gt; rules and Automation, a capability of &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/systems-manager/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Systems Manager&lt;/a&gt;&lt;/span&gt;, to respond rapidly to security events. Maintain incident response runbooks that outline clear steps for addressing proxy-related security incidents, and decommission unused resources that could become security liabilities.&lt;/p&gt; 
  &lt;p&gt;Documented procedures and automated responses reduce the time between detection and remediation and minimizes the potential effects of security incidents on your operations.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Benefits of proper proxy security&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;When you implement these security measures, you gain the following advantages for your AWS environment:&lt;/p&gt; 
  &lt;ul id="rte-b76c143b-2d3b-11f1-9438-b13cac1053aa" class="rte2-style-ul"&gt; 
   &lt;li&gt;Protection of your IP address reputation helps maintain customer trust and prevents security services from blocking your legitimate traffic. When your infrastructure maintains a positive reputation, your business communications reach their intended recipients without interference.&lt;/li&gt; 
   &lt;li&gt;Cost control prevents unauthorized users from consuming your AWS resources and generating unexpected charges on your account. When you restrict access to legitimate users and use cases, you maintain predictable costs that align with your business needs.&lt;/li&gt; 
   &lt;li&gt;Operational stability reduces the risk of service disruptions that abuse of your proxy infrastructure can cause. When you dedicate your resources to serving your customers rather than supporting unauthorized activity, you can deliver consistent performance and availability.&lt;/li&gt; 
   &lt;li&gt;Enhanced visibility into your network traffic patterns helps you identify both legitimate usage and potential security concerns. This awareness allows you to make informed decisions about capacity planning, security improvements, and operational optimizations.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Open proxies present a serious risk in AWS environments, but you can effectively secure proxies with the right measures. By implementing strict access controls and additional security practices such as authentication, monitoring, and regular assessments, you can prevent misuse, protect your infrastructure, and maintain your IP address reputation.&lt;/p&gt; 
  &lt;p&gt;Taking proactive steps strengthens your own environment and supports the broader security of the internet ecosystem. Under the AWS shared responsibility model, you’re responsible for the configuration and maintenance of these security controls, while AWS provides the underlying secure infrastructure. By following the guidance in this article, you can build a robust security posture that protects your proxy infrastructure while supporting your legitimate business needs.&lt;/p&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the &lt;strong&gt;Comments&lt;/strong&gt; section below. &lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/30/Dodd-Mitchell.jpg" alt="Dodd Mitchell" width="120" height="160" class="aligncenter size-full wp-image-41992"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Dodd Mitchell&lt;/h3&gt; 
  &lt;p&gt;Dodd is a member of the AWS Trust and Safety team in Virginia, supporting customers in navigating abuse, phishing, and content-related risks. He works closely with partners to strengthen response processes and build more resilient, trustworthy platforms.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Security posture improvement in the AI era</title>
		<link>https://aws.amazon.com/blogs/security/security-posture-improvement-in-the-ai-era/</link>
					
		
		<dc:creator><![CDATA[Celeste Bishop]]></dc:creator>
		<pubDate>Fri, 01 May 2026 20:58:39 +0000</pubDate>
				<category><![CDATA[Amazon Bedrock]]></category>
		<category><![CDATA[Amazon Bedrock AgentCore]]></category>
		<category><![CDATA[Amazon GuardDuty]]></category>
		<category><![CDATA[Amazon Inspector]]></category>
		<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[AWS Config]]></category>
		<category><![CDATA[AWS IAM Access Analyzer]]></category>
		<category><![CDATA[AWS Key Management Service]]></category>
		<category><![CDATA[AWS Network Firewall]]></category>
		<category><![CDATA[AWS Secrets Manager]]></category>
		<category><![CDATA[AWS Security Hub]]></category>
		<category><![CDATA[AWS WAF]]></category>
		<category><![CDATA[Generative AI]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Security & Governance]]></category>
		<category><![CDATA[artificial intelligence]]></category>
		<category><![CDATA[AWS Key Management Service (KMS)]]></category>
		<guid isPermaLink="false">d9c6834a8c5d0c2a87f4e1c5c839c18e4b4c40ff</guid>

					<description>It’s only been a few weeks since Anthropic announced the Claude Mythos Preview model and launched Project Glasswing with AWS and other leading organizations. This has generated a lot of discussion about the future of cybersecurity and what the ever-increasing capabilities of foundation models mean to organizations. As AWS CISO Amy Herzog pointed out in […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;It’s only been a few weeks since Anthropic announced the Claude Mythos Preview model and launched Project Glasswing with AWS and other leading organizations. This has generated a lot of discussion about the future of cybersecurity and what the ever-increasing capabilities of foundation models mean to organizations.&lt;/p&gt; 
  &lt;p&gt;As AWS CISO Amy Herzog pointed out in the Project Glasswing &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.anthropic.com/glasswing" target="_blank" rel="noopener" data-cms-ai="0"&gt;announcement&lt;/a&gt;&lt;/span&gt;, “At AWS, we build defenses before threats emerge, from our custom silicon up through the technology stack. Security isn’t a phase for us; it’s continuous and embedded in everything we do.”&lt;/p&gt; 
  &lt;p&gt;Read more from Amy about this in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/building-ai-defenses-at-scale-before-the-threats-emerge/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Building AI defenses at scale: Before the threats emerge&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;While the discussion around the future of cybersecurity is important, the only thing we know for certain is that organizations need to be able to react quickly to the rapid changes AI is bringing to technology and business in general. And you can’t react quickly if your security fundamentals aren’t dialed in.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;The security hygiene gap&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;It’s easy to assume you have the foundational security elements covered, or to overlook some completely. Basic security use cases like identity management, threat detection, vulnerability management, data protection, and network security can be inconsistently implemented across cloud environments. While AI is reshaping the security landscape, strong security fundamentals continue to be essential for every organization, regardless of size or industry.&lt;/p&gt; 
  &lt;p&gt;These are the security basics that matter whether or not you’re adopting AI: patching consistently, enforcing least-privilege access, enabling logging and monitoring, encrypting data at rest and in transit, and reviewing security configurations regularly. When these fundamentals are in place, you’re better positioned to take advantage of AI-driven tools and respond to newly discovered vulnerabilities, wherever they come from.&lt;/p&gt; 
  &lt;p&gt;While the concepts that drive security fundamentals are universal, implementing them in your environment is best done with an understanding of the context unique to your organization. That’s why we have a multitude of freely available materials—like the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/architecture/well-architected/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Well-Architected Framework&lt;/a&gt;&lt;/span&gt;—that you can use to help ask the right questions and implement changes in your environment. We also offer programs like the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security_start_right_run_well/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Security Health Improvement Program (SHIP)&lt;/a&gt;&lt;/span&gt; to help you improve your security posture through prescriptive guidance and continuous improvement.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;What is the Security Health Improvement Program (SHIP)?&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;SHIP is a no-cost program available to every AWS customer, regardless of support tier. SHIP provides a proven, data-driven methodology to:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-9d847070-43da-11f1-803c-1d3d12936c2a"&gt; 
   &lt;li&gt;Assess your current security posture using data from your AWS environment&lt;/li&gt; 
   &lt;li&gt;Identify specific opportunities to improve across 10 core security use cases&lt;/li&gt; 
   &lt;li&gt;Build a prioritized action plan tailored to your environment&lt;/li&gt; 
   &lt;li&gt;Establish a mechanism for continuous security improvement&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;The program is led by AWS Solutions Architects and Technical Account Managers who take you through a personalized report, contextualize findings for your environment, and help you build a prioritized action plan.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Why SHIP matters in the AI era&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Project Glasswing highlights an important shift: AI-powered tools are accelerating the pace of vulnerability discovery, which means organizations need to be prepared to assess and respond to findings and changing situations faster than before. In addition to external factors, as organizations adopt AI—whether deploying foundation models, building agentic workflows, or using AI-powered services—how they implement their security controls must change as well. A strong security foundation is what makes confident AI adoption possible.&lt;/p&gt; 
  &lt;p&gt;Here’s how SHIP helps:&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Address foundational security gaps proactively&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;SHIP uses a data-driven methodology to identify opportunities to improve and optimize across 10 core security use cases: threat detection, cloud security posture management, application security testing, configuration management, access governance, vulnerability management, application protection, network security, encryption, and secrets management. The program includes a SHIP assessment to identify critical security findings related to your current security posture, so your team can build a prioritized roadmap for improvement tailored to your environment.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Establish the security baseline AI workloads require&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Before you deploy your first model on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/bedrock/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock&lt;/a&gt;&lt;/span&gt; or build agentic workflows with &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/bedrock/agentcore/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock AgentCore&lt;/a&gt;&lt;/span&gt;, you need confidence that your underlying infrastructure follows security best practices. SHIP uses actual data from your environment to provide prescriptive, specific guidance rather than generic security recommendations. This is especially relevant as AI-driven vulnerability discovery tools become more widely available: organizations with strong baselines will be able to act on new findings quickly and effectively.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Build a mechanism for continuous security improvement&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;As AI capabilities evolve, organizations benefit from having a repeatable process to assess and strengthen their security posture over time. SHIP establishes the methodology and mechanisms for your team to continuously assess, prioritize, and improve. By building this operational capability, you’re strengthening your organization’s ability to adapt and contributing to broader industry resilience. As the cybersecurity community integrates AI into defense strategies, SHIP helps you maintain foundational best practices so you can adopt these innovations effectively and with confidence.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Getting started is straightforward&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;SHIP is available today, at no cost, to every AWS customer. Here’s how to get started:&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-c70410e0-43da-11f1-803c-1d3d12936c2a" start="1"&gt; 
   &lt;li&gt;&lt;b&gt;Talk to your AWS account team. &lt;/b&gt;Ask about scheduling a SHIP engagement, or request one directly on the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security_start_right_run_well/" target="_blank" rel="noopener" data-cms-ai="0"&gt;SHIP page&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Attend a SHIP&lt;/b&gt; &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-experience.com/amer/smb/events/series/activation-days" target="_blank" rel="noopener" data-cms-ai="0"&gt;Activation Day&lt;/a&gt;&lt;/span&gt;&lt;b&gt;. &lt;/b&gt;AWS regularly hosts hands-on workshops where you can run the SHIP assessment with AWS Solutions Architects and start building your improvement plan.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Explore the prescriptive guidance.&lt;/b&gt; Consult the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Well-Architected Framework – Security Lens&lt;/a&gt;&lt;/span&gt; for documentation, reference architectures, and implementation guides you can start using today.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Take the next step together&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;AWS is committed to being the most secure cloud, from our participation in Project Glasswing to the security embedded in every layer of our infrastructure. Security is a shared responsibility, and programs like SHIP give customers the tools, guidance, and support to strengthen their security foundations so they can build confidently, no matter what comes next.&lt;/p&gt; 
  &lt;p&gt;Ready to improve your security posture? Contact your AWS account team to schedule a SHIP engagement, or visit the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/security_start_right_run_well/" target="_blank" rel="noopener" data-cms-ai="0"&gt;SHIP resources page&lt;/a&gt;&lt;/span&gt; to learn more.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/01/Celeste-bishop-author.jpg" alt="Celeste Bishop" width="1365" height="1365" class="aligncenter size-full wp-image-26335"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Celeste Bishop&lt;/h3&gt; 
  &lt;p&gt;Celeste is a Senior Security Specialist at AWS, based in Austin, Texas. Over the past five years, she has held a range of security-focused roles spanning field and product marketing, developer relations, and executive engagement. She partners closely with customers, security leaders, and field teams to help organizations operate securely in the cloud. Celeste holds a Bachelor’s in Economics from the University of Texas at Austin.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Announcing the ISO 31000:2018 Risk Management on AWS Compliance Guide</title>
		<link>https://aws.amazon.com/blogs/security/announcing-the-iso-310002018-risk-management-on-aws-compliance-guide/</link>
					
		
		<dc:creator><![CDATA[Jesse McMahan]]></dc:creator>
		<pubDate>Fri, 01 May 2026 20:01:40 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[AWS Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<category><![CDATA[Whitepaper]]></category>
		<guid isPermaLink="false">a2813645997e48bcd38d65a8dca0c87805e8f77b</guid>

					<description>AWS Security Assurance Services is announcing the release of our latest compliance guide, ISO 31000:2018 Risk Management on AWS, which provides practical guidance for organizations establishing and operating a risk management program in AWS environments using ISO 31000:2018 principles. The guide explains how organizations can integrate AWS services into their risk management processes to support […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-assurance-services/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Assurance Services&lt;/a&gt;&lt;/span&gt; is announcing the release of our latest compliance guide, ISO 31000:2018 Risk Management on AWS, which provides practical guidance for organizations establishing and operating a risk management program in AWS environments using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.iso.org/standard/65694.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;ISO 31000:2018&lt;/a&gt;&lt;/span&gt; principles.&lt;/p&gt; 
  &lt;p&gt;The guide explains how organizations can integrate AWS services into their risk management processes to support the core components of ISO 31000:2018, including establishing context and criteria, conducting risk assessments, implementing risk treatments, and enabling continuous monitoring and review. It also highlights how AWS security, automation, and monitoring capabilities can help customers identify areas for improvement and help enforce controls at large. The guide includes: &lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-26e179a2-4294-11f1-8dd4-376ab5d4b3f1"&gt; 
   &lt;li&gt;An overview of the ISO 31000:2018 risk management framework, including context and criteria, risk assessment, risk treatment, and monitoring and review. You will learn how to apply ISO 31000’s core principles within AWS environments and use AWS services for risk identification, detection, treatment, and monitoring.&lt;/li&gt; 
   &lt;li&gt;Governance and risk treatment considerations aligned with the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/compliance/shared-responsibility-model/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Shared Responsibility Model&lt;/a&gt;&lt;/span&gt;. This includes strategies for risk avoidance, mitigation, transfer, and acceptance.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;By combining ISO 31000 risk management principles with AWS security services, organizations can build scalable, automated environments that help support continuous risk identification, proactive treatment, operational visibility, and ongoing compliance readiness.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Download Available&lt;/b&gt;: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://d1.awsstatic.com/onedam/marketing-channels/website/aws/en_US/whitepapers/compliance/iso31000-on-aws-compliance-guide.pdf" target="_blank" rel="noopener" data-cms-ai="0"&gt;ISO 31000:2018 Risk Management on AWS Compliance Guide&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt; For further assistance, contact &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://pages.awscloud.com/GLOBAL-aware-LN-AWS-Security-Assurance-Services-2020-reg" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Assurance Services&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;If you have feedback about this post, submit comments in the&lt;strong&gt; Comments&lt;/strong&gt; section below.&lt;/p&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/01/Jesse-McMahan-author-1.jpg" alt="Jesse McMahan" width="120" height="160" class="aligncenter size-full wp-image-31628"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Jesse McMahan&lt;/h3&gt; 
  &lt;p&gt;Jesse is a Sr. Security Assurance Consultant at AWS with over a decade of experience in information security, risk management, and compliance. He holds multiple industry and AWS certifications and leads security assessment and advisory engagements covering standards such as PCI DSS, NIST, SOC 2, HIPAA, and ISO 27001. A United States Marine Corps veteran, Jesse brings a disciplined, mission-focused approach to helping organizations align their security posture with regulatory and business objectives.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/01/juan-rodriguez-author.jpg" alt="Juan Rodriguez" width="120" height="160" class="aligncenter size-full wp-image-39290"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Juan Rodriguez&lt;/h3&gt; 
  &lt;p&gt;Juan is a Security Assurance Consultant at AWS, where he works with Strategic Services and customers to assess and secure cloud environments against frameworks including CMMC, FedRAMP, GovRAMP, and NIST based practices. He holds his CMMC Certified Professional and AWS Certified Security – Specialty certifications. Juan pairs technical expertise with a research-driven mindset to help organizations strengthen and architect their security posture and align with federal and industry standards.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/01/akanksha-chaturvedi-author.png" alt="Akanksha Chaturvedi" width="120" height="160" class="aligncenter size-full wp-image-39291"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Akanksha Chaturvedi&lt;/h3&gt; 
  &lt;p&gt;Akanksha is a Senior Security Assurance Consultant with over 10 years of specialized experience in risk-based security assessments and regulatory compliance across highly regulated industries. Expert practitioner in HIPAA, PCI-DSS, GDPR, FedRAMP, and IRAP frameworks, with demonstrated success in architecting and deploying enterprise security programs from conception through full implementation. Known for delivering innovative, scalable solutions that strengthen security posture while streamlining operational processes aimed at reducing compliance overhead.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/01/Sana-Rahman-author.jpg" alt="Sana Rahman" width="120" height="160" class="aligncenter size-full wp-image-39291"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Sana Rahman&lt;/h3&gt; 
  &lt;p&gt;Sana is a Senior Assurance Consultant with AWS Security Assurance Services, and has been a PCI DSS Qualified Security Assessor (QSA) for over a decade. She has extensive knowledge and experience in information security and governance, and deep compliance knowledge in both cloud and hybrid environments. She uses all of this to remove compliance roadblocks for AWS customers and provide guidance in their cloud journey.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/05/01/Mayur-Jadhav-author.jpg" alt="Mayur Jadhav" width="120" height="160" class="aligncenter size-full wp-image-39291"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Mayur Jadhav&lt;/h3&gt; 
  &lt;p&gt;Mayur is a Senior Assurance Consultant at AWS with over a decade of experience in cloud security, governance, risk management, and compliance. He holds AWS Certified Solutions Architect and Zero Trust Certified Architect (ZTCA) certifications. His career spans leadership roles across organizations including Amazon, AWS, EY-Parthenon, and PwC, where he has advised senior executives on cybersecurity and compliance initiatives across healthcare, financial services, and technology sectors.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Designing trust and safety into Amazon Bedrock powered applications</title>
		<link>https://aws.amazon.com/blogs/security/designing-trust-and-safety-into-amazon-bedrock-powered-applications/</link>
					
		
		<dc:creator><![CDATA[Victor Lungu]]></dc:creator>
		<pubDate>Wed, 29 Apr 2026 19:27:33 +0000</pubDate>
				<category><![CDATA[Amazon Bedrock]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Foundational (100)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">9f445aea9d0f2ba888a3b91a6ea6cf7608051cb3</guid>

					<description>Generative AI brings promising innovation, transforming how individuals and organizations approach everything from customer service to content creation and more. As AI continues to expand its capabilities, organizations are increasingly focused on how they can integrate the responsible AI concepts into the development lifecycle of their AI applications. Research from Accenture and Amazon Web Services […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;Generative AI brings promising innovation, transforming how individuals and organizations approach everything from customer service to content creation and more. As AI continues to expand its capabilities, organizations are increasingly focused on how they can integrate the responsible AI concepts into the development lifecycle of their AI applications.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://d1.awsstatic.com/products/ai/responsible-ai/Accenture-Responsible-AI-From-Risk-Mitigation-to-Value-Creation.pdf" target="_blank" rel="noopener" data-cms-ai="0"&gt;Research from Accenture and Amazon Web Services (AWS)&lt;/a&gt;&lt;/span&gt; reveals compelling evidence for the business value of responsible AI practices, both internally within their organizations and externally to their users. Organizations that communicate a mature approach to responsible AI see an 82% improvement in employee trust in AI adoption, which directly leads to increased innovation. Additionally, companies that offer responsible AI-enabled products and services experience a 25% increase in customer loyalty and satisfaction.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Understanding the core dimensions of responsible AI&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;AWS identifies these key dimensions that form the backbone of responsible AI implementation:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;&lt;b&gt;Safety&lt;/b&gt; focuses on preventing harmful system output and misuse. This dimension focuses on steering AI systems to prioritize user and system safety.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Controllability&lt;/b&gt; focuses on mechanisms that monitor and steer AI system behavior. This dimension refers to the ability to manage, guide, and constrain AI systems to operate within specific parameters.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Fairness&lt;/b&gt; considers the impacts of AI on different groups of users.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Explainability&lt;/b&gt; focuses on understanding and evaluating system outputs.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Security and privacy&lt;/b&gt; focuses on making sure that data and models are appropriately obtained, used, and protected.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Veracity and robustness&lt;/b&gt; focuses on achieving correct system outputs, even with unexpected or adversarial inputs.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Governance&lt;/b&gt; makes sure that development, deployment, and management of AI systems align with ethical standards, legal requirements, and societal values.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Transparency&lt;/b&gt; focuses on understanding how AI systems make decisions, why the systems produce specific results, and what data the systems use.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;It’s a best practice to review and apply all these dimensions to your AI implementation. For more information, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/machine-learning/considerations-for-addressing-the-core-dimensions-of-responsible-ai-for-amazon-bedrock-applications/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Considerations for addressing the core dimensions of responsible AI for Amazon Bedrock applications&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;The responsible AI lifecycle&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;When you implement AI systems, you should build safety into every phase of the AWS responsible AI lifecycle. The responsible AI lifecycle consists of the following three phases, each with distinct responsibility considerations for the safety dimension:&lt;/p&gt; 
  &lt;ol&gt; 
   &lt;li&gt;&lt;b&gt;In the design and development phases&lt;/b&gt;, thoroughly evaluate potential safety risks. Understand what you want your AI application to do, what you don’t want it to do, and what you want to prevent it from doing. You should build safety guardrails into your systems from the beginning and make sure that your development teams understand the capabilities and limits of your AI application.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;In the deployment phase&lt;/b&gt;, theory meets reality. During this phase, you should implement robust safety measures through multiple layers, from comprehensive user training to proactive monitoring and review processes. Every application, product, and feature must include clear safety protocols and user guidelines. You must think beyond the launch of an application and consider how to launch a holistic safety framework. This framework—which can contain steps such as red team testing—must protect your brand, users, and stakeholders.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;In&lt;/b&gt; &lt;b&gt;the operations phase&lt;/b&gt;, it’s important to maintain vigilance. Safety, like security, isn’t something you set up once and then ignore. Safety requires continuous monitoring and adaptation. To catch potential safety issues early, you can implement real-time feedback mechanisms to conduct regular performance evaluations. You can also continuously monitor for shifts in how your application is used, or functions that could compromise safety. Because safety considerations and risks evolve as technology evolves, it’s crucial to understand that adjustments are necessary over time.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;For more information, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://d1.awsstatic.com/products/generative-ai/responsbile-ai/AWS-Responsible-Use-of-AI-Guide-Final.pdf" target="_blank" rel="noopener" data-cms-ai="0"&gt;Responsible use of AI guide&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Abuse detection&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Foundation models in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/bedrock" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock&lt;/a&gt;&lt;/span&gt; are inherently designed with safety mechanisms to prevent harmful outputs. However, you can implement additional input safety systems in production environments to provide critical early detection capabilities to identify problematic content, users, or patterns.&lt;/p&gt; 
  &lt;blockquote&gt;
   &lt;p&gt; &lt;b&gt;Note&lt;/b&gt;: Amazon Bedrock might implement automated abuse detection mechanisms to identify potential violations of the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/aup/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Acceptable Use Policy&lt;/a&gt;&lt;/span&gt; (AUP) and Service Terms, including the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/machine-learning/responsible-ai/policy/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Responsible AI Policy&lt;/a&gt;&lt;/span&gt; or a third-party model provider’s AUP.&lt;/p&gt;
  &lt;/blockquote&gt; 
  &lt;p&gt;See the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/bedrock/latest/userguide/abuse-detection.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock abuse detection document&lt;/a&gt;&lt;/span&gt; for more information.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;AI abuse prevention tools and techniques&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;To maintain trust in your AI services, preventative action is key, while also efficiently planning and managing development resources. Introduce observability and safety guardrails early in development to support long-term scalability and help identify potential issues before they affect your users. To begin this process, thoroughly scope your AI use case with the following actions:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Understand your users&lt;/li&gt; 
   &lt;li&gt;Anticipate potential misuse scenarios&lt;/li&gt; 
   &lt;li&gt;Define your risk tolerance&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;This scope guides your development of a precise safety framework that addresses the specific risks of your AI implementation while you maintain expected performance. For this scope, you can use AWS specialized tools designed specifically to monitor and protect Amazon Bedrock applications.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Using CloudWatch to monitor Amazon Bedrock&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CloudWatch&lt;/a&gt;&lt;/span&gt; provides essential visibility into AI system behavior and performance. When you configure comprehensive logging, you can capture important information across user segments and interaction types, such as the following:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Request volumes&lt;/li&gt; 
   &lt;li&gt;Response latencies&lt;/li&gt; 
   &lt;li&gt;Rejection rates&lt;/li&gt; 
   &lt;li&gt;Content filtering triggers&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;You can use this information to identify potential abuse patterns or unexpected behaviors before they affect operations. CloudWatch dashboards visualize metrics according to monitoring priorities, and automated alerts provide prompt notification when you exceed thresholds. This infrastructure transforms interaction data into actionable insights and supports continuous safety improvement.&lt;/p&gt; 
  &lt;blockquote&gt;
   &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: By default, Amazon Bedrock logging is turned off. You must turn on logging for your application. To configure this, contact your account manager.&lt;/p&gt;
  &lt;/blockquote&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Using Amazon Bedrock Guardrails to customize safeguards&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/bedrock/guardrails/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock Guardrails&lt;/a&gt;&lt;/span&gt; offers configurable protection mechanisms tailored to specific risk profiles and content policies. You can customize Bedrock Guardrails to match your application requirements, such as:&lt;/p&gt; 
  &lt;ul&gt; 
   &lt;li&gt;Define domain-relevant undesirable topics&lt;/li&gt; 
   &lt;li&gt;Configure appropriate content filtering thresholds&lt;/li&gt; 
   &lt;li&gt;Configure sensitive information detection and redaction parameters aligned with data policies&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Additionally, you can configure controls that prioritize accuracy and prevent hallucinations while maintaining creative flexibility based on your application needs. When you thoughtfully configure Guardrails, you can balance performance and safety according to your specific use case requirements and risk factors.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;The abuse response process&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;As AI safety evolves and new risks emerge, abuse might still occur even if you implement safety mechanisms. If you &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://repost.aws/knowledge-center/aws-abuse-report" target="_blank" rel="noopener" data-cms-ai="0"&gt;receive an abuse report &lt;/a&gt;&lt;/span&gt;from the AWS Trust &amp;amp; Safety team, then complete the following steps to help effectively address the issue:&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-2b8eb841-1806-11f1-ac0b-2f0e041973c6" start="1"&gt; 
   &lt;li&gt;&lt;b&gt;Acknowledge receipt&lt;/b&gt;: Acknowledge the receipt of the abuse report within 24 hours. If your team is still conducting their investigation, then inform AWS that the investigation is ongoing. Provide the number of days expected to complete the investigation.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Investigate the issue&lt;/b&gt;: Thoroughly investigate the issue, including examining the logs (if enabled), reviewing Amazon Bedrock inputs, and checking for unauthorized access. While AWS abuse reports include a small sample of prompt IDs for you to investigate, investigate usage of your Amazon Bedrock application. Check for patterns to see if there’s a systemic issue that’s leading to abuse.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Take appropriate action&lt;/b&gt;: If appropriate, take action to implement fixes, update safeguards, address violating users, or redesign features. Consider if you need systemic or root-cause fixes, rather than addressing one abusive end user. An abuse incident by one user could indicate vulnerabilities in your safety mechanisms that can lead to continuous abuse.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Report back to AWS Trust &amp;amp; Safety&lt;/b&gt;: Following your investigation and implementation of fixes, provide an update to AWS Trust &amp;amp; Safety on your findings and remediation steps. Be transparent about what happened and how you addressed the issue. If you think that no violation occurred, then provide context on how you came to this conclusion. Include examples of the prompts and your business use case where possible.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;To learn more about safety and responsible AI development, explore AWS resources, including the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ai/responsible-ai/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Responsible AI portal&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/machine-learning/category/post-types/best-practices/" target="_blank" rel="noopener" data-cms-ai="0"&gt;machine learning best practices documentation&lt;/a&gt;&lt;/span&gt;. These resources provide additional tools and frameworks to build safe, effective AI systems that drive innovation and maintain safety standards.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt;
  &lt;img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/16/Victor-Lungu-Author.jpg" alt="Victor Lungu" style="margin-left: 12px;margin-right:18px;margin-top: 12px;margin-bottom: 6px;width:93.750px;height: 125px"&gt;
  &lt;span class="lb-h4" style="line-height: 2.1em;padding-top: 12px;margin-top: 24px"&gt;Victor Lungu&lt;/span&gt;
  &lt;br&gt;Victor is a Trust &amp;amp; Safety AI Abuse Specialist at AWS, based in Dublin. Victor works across a broad range of AI safety domains including content safety and emerging AI risks
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>What the March 2026 Threat Technique Catalog update means for your AWS environment</title>
		<link>https://aws.amazon.com/blogs/security/what-the-march-2026-threat-technique-catalog-update-means-for-your-aws-environment/</link>
					
		
		<dc:creator><![CDATA[Shannon Brazil]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 19:01:37 +0000</pubDate>
				<category><![CDATA[Amazon Cognito]]></category>
		<category><![CDATA[AWS Identity and Access Management (IAM)]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">eaba2b68ef1e29a70069321114df7ff7d10de1ef</guid>

					<description>The AWS Customer Incident Response Team (AWS CIRT) regularly encounters patterns that repeat across their engagements when helping customers respond to security incidents. We’re passionate about making sure that information is widely accessible so that everyone can improve their security posture and their organization’s resilience to disruption. The primary method we use to share this […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;The AWS Customer Incident Response Team (AWS CIRT) regularly encounters patterns that repeat across their engagements when helping customers respond to security incidents. We’re passionate about making sure that information is widely accessible so that everyone can improve their security posture and their organization’s resilience to disruption. The primary method we use to share this information is the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-samples.github.io/threat-technique-catalog-for-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Threat Technique Catalog for AWS (TTC)&lt;/a&gt;&lt;/span&gt;. The latest update to the catalog for March 2026 addresses identity, persistence, infrastructure destruction, and privilege escalation. Each new entry reflects something we’ve encountered in practice, and each provides straightforward mitigations. This post breaks down what changed, why it matters, and what you can do about it today.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;What we’re seeing&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Based on recent observations, we’ve added three new entries to the TTC.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Cognito refresh token abuse: The quiet persistence mechanism&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cognito" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Cognito&lt;/a&gt;&lt;/span&gt; refresh tokens are designed for convenience. They let applications obtain new access and ID tokens without requiring users to re-authenticate. The default lifetime is 30 days and is configurable up to 10 years. Cognito provides the flexibility to address a wide range of use cases, however the AWS CIRT has seen this lifetime window used by threat actors in an unauthorized way to maintain persistence by refreshing credentials.&lt;/p&gt; 
  &lt;p&gt;When a threat actor obtains a valid refresh token—through credential theft, compromised client-side storage, or elevated permissions—they can call &lt;code class="CodeInline" style="color: #000"&gt;cognito-idp:GetTokensFromRefreshToken&lt;/code&gt; to silently generate fresh tokens. The legitimate user’s session continues normally because their application independently refreshes tokens as needed—the threat actor’s refresh calls don’t invalidate the user’s token. This creates a parallel, persistent foothold that’s invisible to the user. In environments where refresh token rotation isn’t enabled, the same token can be reused indefinitely within its validity window.&lt;/p&gt; 
  &lt;p&gt;This method of gaining persistent access is often overlooked by response teams who were confident that the initial compromise was contained, only to discover ongoing unauthorized access weeks later through a refresh token they didn’t know existed.&lt;/p&gt; 
  &lt;p&gt;Enabling refresh token rotation and reducing the lifetime of tokens can help mitigate this risk. Dive deeper in the TTC (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-samples.github.io/threat-technique-catalog-for-aws/Techniques/T1098.A006.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;T1098.A006&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;AMI image deletion: Targeting recovery capabilities&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Amazon Machine Images (AMI) are a core part of many solutions and foundational to disaster recovery. They often contain the operating system, application configurations, and everything needed to rebuild your infrastructure. Threat actors know this, and we’re seeing &lt;code class="CodeInline" style="color: #000"&gt;ec2:DeregisterImage&lt;/code&gt; used to make it more difficult to recover from an incident.&lt;/p&gt; 
  &lt;p&gt;By default, when an AMI is deregistered, it’s gone. Recycle Bin retention rules can allow the recovery of the AMI, but if you haven’t explicitly enabled that functionality, there’s no way to undo the deregister action. Working with customers, we’ve seen cases where the impact of this action goes beyond the immediate loss because the threat actors have also removed the &lt;i&gt;golden images&lt;/i&gt; the teams planned to restore from.&lt;/p&gt; 
  &lt;p&gt;The TTC has more information about how to detect and mitigate this technique, including how to enable Recycle Bin retention rules for key AMIs (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-samples.github.io/threat-technique-catalog-for-aws/Techniques/T1098.A006.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;T1485.A002&lt;/a&gt;&lt;/span&gt;).&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Additional cloud roles: The trust policy blind spot&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;We’ve updated &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-samples.github.io/threat-technique-catalog-for-aws/Techniques/T1098.003.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;T1098.003: Additional Cloud Roles&lt;/a&gt;&lt;/span&gt; to now include &lt;code class="CodeInline" style="color: #000"&gt;UpdateAssumeRolePolicy&lt;/code&gt; as a tracked API call. We’ve seen an increase in the use of this call to avoid detections set to flag new role creation (&lt;code class="CodeInline" style="color: #000"&gt;iam:CreateRole&lt;/code&gt;). By modifying the trust policy of an existing role, a threat actor with sufficient permissions can use &lt;code class="CodeInline" style="color: #000"&gt;UpdateAssumeRolePolicy&lt;/code&gt; to subtly add an external account or an identity they control. No new roles appear. No new policies are created. The existing role simply trusts a new principal which the threat actor can assume.&lt;/p&gt; 
  &lt;p&gt;This persistence and privilege escalation technique blends into the volume of normal &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Identity and Access Management (IAM)&lt;/a&gt;&lt;/span&gt; operations. It’s especially effective in environments with a large number of roles where trust policy changes aren’t actively monitored.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;The current trend&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;A common thread runs through all three of these updates: threat actors are using subtle, default, or unexpected behaviors to sidestep detection. Refresh tokens working as designed. AMI deregistration completing without guardrails. Trust policies being modified through legitimate API calls. These actions might not trigger alarms in most environments because they look like normal operations.&lt;/p&gt; 
  &lt;p&gt;This is a shift worth paying attention to. Rather than relying on novel exploits or zero-days, the techniques we’re cataloging reflect threat actors who understand how cloud services work and use that knowledge to hide in plain sight. The implication for security teams is clear: prevention and detection strategies need to mature beyond monitoring for obviously malicious actions. Customers need to be watching for legitimate actions happening in illegitimate context—such as the right API call, made by the wrong principal, at the wrong time.&lt;/p&gt; 
  &lt;p&gt;The Threat Technique Catalogue for AWS is designed to help with exactly this. Each technique entry includes detection guidance and mitigations specific to AWS environments. We encourage teams to review the relevant entries and assess whether their current monitoring would catch these patterns:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-6c78ee52-2852-11f1-8d6b-970aa9e86c96"&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-samples.github.io/threat-technique-catalog-for-aws/Techniques/T1098.A006.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;T1098.A006: Cognito Refresh Token Abuse&lt;/a&gt;&lt;/span&gt;: Are you monitoring for &lt;code class="CodeInline" style="color: #000"&gt;cognito-idp:GetTokensFromRefreshToken&lt;/code&gt; from unexpected sources? Is refresh token rotation enabled?&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-samples.github.io/threat-technique-catalog-for-aws/Techniques/T1485.A002.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;T1485.A002: AMI Image Deletion&lt;/a&gt;&lt;/span&gt;: Do you have Recycle Bin retention rules protecting your critical AMIs? Would you know if a production AMI was deregistered outside a maintenance window?&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-samples.github.io/threat-technique-catalog-for-aws/Techniques/T1098.003.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;T1098.003: Additional Cloud Roles&lt;/a&gt;&lt;/span&gt;: Are trust policy modifications tracked and alerted on? Could an external account be added to an existing role without anyone noticing?&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Each of these techniques leaves traces in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudtrail" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail&lt;/a&gt;&lt;/span&gt;, and the TTC provides specific guidance on what to watch for and how to respond.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Looking ahead&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The Threat Technique Catalog for AWS exists because we believe the patterns we observe during security engagements shouldn’t stay behind closed doors. When we see techniques repeating across customers, the most effective thing we can do is document them and make that knowledge available so you can act on it before you’re in the middle of an incident.&lt;/p&gt; 
  &lt;p&gt;This March update adds three new entries, and the catalog will continue to evolve. Our team regularly updates it based on what we’re seeing in the real world when helping customers respond to security events. We encourage security teams to review the catalog regularly, incorporate its techniques into threat modeling exercises, and use it as a shared vocabulary for discussing cloud-specific threats.&lt;/p&gt; 
  &lt;p&gt;Explore the full catalog:&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws-samples.github.io/threat-technique-catalog-for-aws/matrix.html" target="_blank" rel="noopener" data-cms-ai="0"&gt; Threat Technique Catalog for AWS&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Additional resources&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;ul class="rte2-style-ul" id="rte-bf7a0e80-2853-11f1-8d6b-970aa9e86c96"&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/storage/reduce-costs-with-customized-delete-protection-for-amazon-ebs-snapshots-and-ebs-backed-amis/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;u&gt;Reduce costs with customized delete protection for Amazon EBS Snapshots and EBS-backed AMIs&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/storage/protect-your-resources-from-deletions-through-rule-lock-for-recycle-bin/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;u&gt;Protect your resources from deletions through Rule Lock for Recycle Bin&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-to-monitor-optimize-and-secure-amazon-cognito-machine-to-machine-authorization/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;u&gt;How to monitor, optimize, and secure Amazon Cognito machine-to-machine authorization&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/aws-cirt-announces-the-launch-of-the-threat-technique-catalog-for-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;u&gt;AWS CIRT announces the launch of the Threat Technique Catalog for AWS&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-refresh-token.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;u&gt;Amazon Cognito refresh tokens documentation&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/guardduty/" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;u&gt;Amazon GuardDuty&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the &lt;strong&gt;Comments&lt;/strong&gt; section below. &lt;/p&gt; 
  &lt;hr&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/21/Shannon-brazil-author.jpg" alt="Shannon Brazil" width="120" height="160" class="aligncenter size-full wp-image-22385"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Shannon Brazil&lt;/h3&gt; 
  &lt;p&gt;Shannon is a security engineer on the AWS Customer Incident Response Team (CIRT), specializing in digital forensics and cloud security investigations. Known in the community as 4n6lady, she is passionate about security education and mentoring the next generation of defenders. &lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/28/study-cydney-stude-headshot.png" alt="Cydney Stude" width="120" height="160" class="aligncenter size-full wp-image-41972"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Cydney Stude&lt;/h3&gt; 
  &lt;p&gt;Cydney is a security engineer specializing in threat intelligence and incident response at AWS. Cydney works on the ground in incident response and is passionate about turning observables into security outcomes. Cydney is an author and maintainer of the Threat Technique Catalog for AWS.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Access control with IAM Identity Center session tags</title>
		<link>https://aws.amazon.com/blogs/security/access-control-with-iam-identity-center-session-tags/</link>
					
		
		<dc:creator><![CDATA[Rashmi Iyer]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 16:33:06 +0000</pubDate>
				<category><![CDATA[Advanced (300)]]></category>
		<category><![CDATA[AWS Glue]]></category>
		<category><![CDATA[AWS IAM Identity Center]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">c9d40998e193e81326a195bdc106f977177b93c7</guid>

					<description>As organizations expand their Amazon Web Services (AWS) footprint, managing secure, scalable, and cost-efficient access across multiple accounts becomes increasingly important. AWS IAM Identity Center offers a centralized, unified solution for managing workforce access to AWS accounts. It simplifies authentication, enhances security, and provides a seamless user sign-in experience to AWS services across diverse environments. […]</description>
										<content:encoded>&lt;p&gt;As organizations expand their &lt;a href="https://aws.amazon.com" target="_blank" rel="noopener noreferrer"&gt;Amazon Web Services (AWS)&lt;/a&gt; footprint, managing secure, scalable, and cost-efficient access across multiple accounts becomes increasingly important. &lt;a href="https://aws.amazon.com/iam/identity-center/" target="_blank" rel="noopener noreferrer"&gt;AWS IAM Identity Center&lt;/a&gt; offers a centralized, unified solution for managing workforce access to AWS accounts. It simplifies authentication, enhances security, and provides a seamless user sign-in experience to AWS services across diverse environments.&lt;/p&gt; 
&lt;p&gt;By combining IAM Identity Center &lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html" target="_blank" rel="noopener noreferrer"&gt;permission sets&lt;/a&gt; with &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html" target="_blank" rel="noopener noreferrer"&gt;session tags&lt;/a&gt;, organizations can unlock powerful capabilities for fine-grained access control and resource optimization. You can use session tags to pass dynamic attributes from your external identity provider into AWS, enabling more context-aware permissions and better cost visibility. This integration makes it possible to use advanced AWS features such as &lt;a href="https://aws.amazon.com/blogs/big-data/introducing-aws-glue-usage-profiles-for-flexible-cost-control/" target="_blank" rel="noopener noreferrer"&gt;AWS Glue usage profiles&lt;/a&gt; and &lt;a href="https://aws.amazon.com/blogs/mt/configuring-aws-systems-manager-session-manager-support-federated-users-using-session-tags/" target="_blank" rel="noopener noreferrer"&gt;AWS Systems Manager Session Manager run as&lt;/a&gt; to enforce fine-grained access control, so that administrators can dynamically map permissions and runtime configurations based on user attributes passed during federated access.&lt;/p&gt; 
&lt;p&gt;In this post, I demonstrate how session tags derived from directory group attributes in Microsoft Entra ID can deliver functionality equivalent to &lt;a href="https://aws.amazon.com/iam" target="_blank" rel="noopener noreferrer"&gt;AWS Identity and Access Management (IAM)&lt;/a&gt; role tags. Using role tags, you can implement &lt;a href="https://aws.amazon.com/identity/attribute-based-access-control/" target="_blank" rel="noopener noreferrer"&gt;attribute-based access control (ABAC)&lt;/a&gt; using IAM Identity Center, while maintaining centralized and efficient access management. To demonstrate this, you can configure an AWS Glue usage profile, as described in &lt;a href="https://aws.amazon.com/blogs/big-data/introducing-aws-glue-usage-profiles-for-flexible-cost-control/" target="_blank" rel="noopener noreferrer"&gt;Introducing AWS Glue usage profiles for flexible cost control&lt;/a&gt;, where session tags can be passed through Identity Center and an external identity provider like Microsoft Entra ID. This approach is extensible to other AWS services such as AWS Systems Manager Session Manager (run as) and can also be used with other identity providers.&lt;/p&gt; 
&lt;h2&gt;User authentication and IAM Identity Center Federation flow&lt;/h2&gt; 
&lt;p&gt;The following figure shows the architecture and workflow of the solution. &lt;/p&gt; 
&lt;div id="attachment_41901" style="width: 1437px" class="wp-caption aligncenter"&gt;
 &lt;img aria-describedby="caption-attachment-41901" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Access-control-1.png" alt="Figure 1 – User authentication and federation flow between Microsoft Entra and AWS" width="1427" height="666" class="size-full wp-image-41901"&gt;
 &lt;p id="caption-attachment-41901" class="wp-caption-text"&gt;Figure 1 – User authentication and federation flow between Microsoft Entra and AWS&lt;/p&gt;
&lt;/div&gt; 
&lt;p&gt;The user authentication and federation flow includes the following steps:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;User accesses application using a browser.&lt;/li&gt; 
 &lt;li&gt;The enterprise application (configured in Azure) initiates authentication.&lt;/li&gt; 
 &lt;li&gt;Microsoft Entra ID handles sign-in.&lt;/li&gt; 
 &lt;li&gt;Users and groups are managed in Entra ID.&lt;/li&gt; 
 &lt;li&gt;A SAML trust is established between Entra ID and IAM Identity Center.&lt;/li&gt; 
 &lt;li&gt;SCIM provisioning syncs users and groups from Entra ID to AWS.&lt;/li&gt; 
 &lt;li&gt;Synced users and groups appear in Identity Center.&lt;/li&gt; 
 &lt;li&gt;Session tags are passed during SAML authentication. 
  &lt;ul&gt; 
   &lt;li&gt;Entra ID can send user attributes (department, role, cost center, project ID, and so on) as SAML attributes.&lt;/li&gt; 
   &lt;li&gt;Identity Center consumes these as session tags, which are used for fine-grained access control and attribute-based access control inside AWS.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;Admins define permission sets for users and groups in Identity Center.&lt;/li&gt; 
 &lt;li&gt;Users get federated access to AWS using their Entra ID credentials.&lt;/li&gt; 
 &lt;li&gt;Users sign in through AWS Management Console or &lt;a href="https://aws.amazon.com/cli/" target="_blank" rel="noopener noreferrer"&gt;AWS Command Line Interface (AWS CLI)&lt;/a&gt; using those permissions.&lt;/li&gt; 
 &lt;li&gt;Access is granted to specific AWS accounts under &lt;a href="https://aws.amazon.com/organizations" target="_blank" rel="noopener noreferrer"&gt;AWS Organizations&lt;/a&gt;.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Prerequisites&lt;/h2&gt; 
&lt;p&gt;To follow the steps in this post, you need the following prerequisites:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;An &lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html" target="_blank" rel="noopener noreferrer"&gt;organization instance&lt;/a&gt; of IAM Identity Center enabled.&lt;/li&gt; 
 &lt;li&gt;A Microsoft Entra ID tenant. For more information, see &lt;a href="https://learn.microsoft.com/en-us/entra/fundamentals/create-new-tenant" target="_blank" rel="noopener noreferrer"&gt;Quickstart: Create a new tenant in Microsoft Entra ID&lt;/a&gt;.&lt;/li&gt; 
 &lt;li&gt;Access to an external identity provider such as &lt;a href="https://www.microsoft.com/en-ca/security/business/identity-access/microsoft-entra-id" target="_blank" rel="noopener noreferrer"&gt;Microsoft Entra ID&lt;/a&gt; to federate users into AWS. You can enable federated access between Microsoft Entra ID and IAM Identity Center by completing the steps in &lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/idp-microsoft-entra.html" target="_blank" rel="noopener noreferrer"&gt;Configure SAML and SCIM with Microsoft Entra ID and IAM Identity Center&lt;/a&gt;. They include configuring SAML and SCIM integration between the two systems, testing the SAML connection to help ensure authentication is functioning correctly, and enabling SCIM synchronization to automate user and group provisioning.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Solution implementation&lt;/h2&gt; 
&lt;p&gt;With the prerequisites in place, you’re ready to configure access control through IAM Identity center tags by using the following steps.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Create an AWS Glue usage profile as described in &lt;a href="https://aws.amazon.com/blogs/big-data/introducing-aws-glue-usage-profiles-for-flexible-cost-control/" target="_blank" rel="noopener noreferrer"&gt;Introducing AWS Glue usage profiles for flexible cost control&lt;/a&gt; in &lt;strong&gt;Create an AWS Glue usage profile&lt;/strong&gt;. For the purposes of this post, create a profile named &lt;em&gt;developer&lt;/em&gt;. 
  &lt;ol type="a"&gt; 
   &lt;li&gt;On the AWS Management Console for AWS Glue, choose&amp;nbsp;&lt;strong&gt;Cost management&lt;/strong&gt;&amp;nbsp;in the navigation pane.&lt;/li&gt; 
   &lt;li&gt;Choose&amp;nbsp;&lt;strong&gt;Create usage profile&lt;/strong&gt;.&lt;/li&gt; 
   &lt;li&gt;For&amp;nbsp;&lt;strong&gt;Usage profile name&lt;/strong&gt;, enter&amp;nbsp;&lt;code style="color: #000000"&gt;developer&lt;/code&gt;.&lt;/li&gt; 
   &lt;li&gt;Under&amp;nbsp;&lt;strong&gt;Customize configurations for jobs&lt;/strong&gt;, for&amp;nbsp;&lt;strong&gt;Number of workers&lt;/strong&gt;, for&amp;nbsp;&lt;strong&gt;Default&lt;/strong&gt;, enter&amp;nbsp;&lt;code style="color: #000000"&gt;20&lt;/code&gt;.&lt;/li&gt; 
   &lt;li&gt;For&amp;nbsp;&lt;strong&gt;Default worker type&lt;/strong&gt;, select&amp;nbsp;&lt;strong&gt;G.1X&lt;/strong&gt;.&lt;/li&gt; 
   &lt;li&gt;For&amp;nbsp;&lt;strong&gt;Allowed worker types&lt;/strong&gt;, select&amp;nbsp;&lt;strong&gt;G.1X&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;G.2X&lt;/strong&gt;,&amp;nbsp;&lt;strong&gt;G.4X&lt;/strong&gt;, and&amp;nbsp;&lt;strong&gt;G.8X&lt;/strong&gt;.&lt;/li&gt; 
   &lt;li&gt;For&amp;nbsp;&lt;strong&gt;Customize configurations for sessions&lt;/strong&gt;, configure the same values.&lt;/li&gt; 
   &lt;li&gt;Choose&amp;nbsp;&lt;strong&gt;Create usage profile&lt;/strong&gt;.&lt;/li&gt; 
  &lt;/ol&gt; &lt;p&gt; &lt;/p&gt;
  &lt;div id="attachment_41902" style="width: 742px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41902" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Access-control-2.png" alt="Figure 2 – Glue usage profile creation on the console" width="732" height="650" class="size-full wp-image-41902"&gt;
   &lt;p id="caption-attachment-41902" class="wp-caption-text"&gt;Figure 2 – Glue usage profile creation on the console&lt;/p&gt;
  &lt;/div&gt; &lt;/li&gt; 
 &lt;li&gt;Create a &lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetcustom.html#permissionsetscmpconcept" target="_blank" rel="noopener noreferrer"&gt;custom permission set&lt;/a&gt; instead of using predefined ones. Attach the following &lt;a href="https://docs.aws.amazon.com/aws-managed-policy/latest/reference/about-managed-policy-reference.html" target="_blank" rel="noopener noreferrer"&gt;AWS Managed Policies&lt;/a&gt; to the custom permission set: 
  &lt;ul&gt; 
   &lt;li&gt;&lt;code style="color: #000000"&gt;AWSGlueConsoleFullAccess&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code style="color: #000000"&gt;IAMReadOnlyAccess&lt;/code&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;blockquote&gt;
   &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; For fine-grained access control, you can create custom permission sets by combining AWS managed, customer managed, and inline policies in IAM. In this post, you use AWS managed policies with intentionally broad permissions for simplicity. In production, always follow the principles of least privilege and scope permissions appropriately.&lt;/p&gt;
  &lt;/blockquote&gt; &lt;p&gt; By default, when you create a permission set, the permission set isn’t provisioned (used in any AWS accounts). To provision a permission set in an AWS account, you must assign IAM Identity Center access to users or groups in the account and then apply the permission set to those users and groups. For more information, see &lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/assignusers.html" target="_blank" rel="noopener noreferrer"&gt;Assign user or group access to AWS accounts&lt;/a&gt;. &lt;/p&gt;&lt;/li&gt; 
 &lt;li&gt;Configure user attributes in Microsoft Entra ID for access control in IAM Identity Center as described in &lt;strong&gt;Step 5&lt;/strong&gt; of &lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/idp-microsoft-entra.html" target="_blank" rel="noopener noreferrer"&gt;Configure SAML and SCIM with Microsoft Entra ID and IAM Identity Center&lt;/a&gt; to set up ABAC. Add claim conditions for attribute mapping based on Entra ID group membership. Assign the &lt;code style="color: #000000"&gt;developer&lt;/code&gt; value for users in a corresponding group. This enables logic such as &lt;em&gt;Users in this group receive this profile&lt;/em&gt; or &lt;em&gt;All users receive this profile&lt;/em&gt;. When using an AWS Glue profile and when making API calls to create AWS Glue resources, admins need to tag the user or role with&amp;nbsp;&lt;code style="color: #000000"&gt;glue:UsageProfile&lt;/code&gt;&amp;nbsp;as the key and the profile name as the value.&lt;/li&gt; 
 &lt;li&gt;Next, sign in to the enterprise application that you created in the previous step, which has SCIM and SAML connections set up to IAM Identity Center: 
  &lt;ol type="a"&gt; 
   &lt;li&gt;Sign in to &lt;a href="https://portal.azure.com/" target="_blank" rel="noopener noreferrer"&gt;Azure&lt;/a&gt;.&lt;/li&gt; 
   &lt;li&gt;Choose &lt;strong&gt;Enterprise applications&lt;/strong&gt;.&lt;/li&gt; 
   &lt;li&gt;Select the application that you created&lt;br&gt; 
    &lt;div id="attachment_41903" style="width: 1339px" class="wp-caption aligncenter"&gt;
     &lt;img aria-describedby="caption-attachment-41903" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Access-control-3.png" alt="Figure 3 – An enterprise application created in Microsoft Entra ID" width="1329" height="602" class="size-full wp-image-41903"&gt;
     &lt;p id="caption-attachment-41903" class="wp-caption-text"&gt;Figure 3 – An enterprise application created in Microsoft Entra ID&lt;/p&gt;
    &lt;/div&gt; &lt;/li&gt; 
  &lt;/ol&gt; &lt;/li&gt; 
 &lt;li&gt;When you’re signed in to your application, select &lt;strong&gt;Manage &lt;/strong&gt;and then &lt;strong&gt;Single sign-on&lt;/strong&gt; in the navigation pane, then select &lt;strong&gt;Attributes &amp;amp; Claims&lt;/strong&gt;.&lt;br&gt; 
  &lt;div id="attachment_41904" style="width: 1348px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41904" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Access-control-4.png" alt="Figure 4 – Attributes &amp;amp; Claims section in Microsoft Entra ID" width="1338" height="568" class="size-full wp-image-41904"&gt;
   &lt;p id="caption-attachment-41904" class="wp-caption-text"&gt;Figure 4 – Attributes &amp;amp; Claims section in Microsoft Entra ID&lt;/p&gt;
  &lt;/div&gt; &lt;/li&gt; 
 &lt;li&gt;Configure the key value pair that will used as session tags by selecting &lt;strong&gt;Add new claim&lt;/strong&gt;.&lt;br&gt; 
  &lt;div id="attachment_41905" style="width: 881px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41905" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Access-control-5.png" alt="Figure 5 – Configuring attributes by adding a new claim" width="871" height="478" class="size-full wp-image-41905"&gt;
   &lt;p id="caption-attachment-41905" class="wp-caption-text"&gt;Figure 5 – Configuring attributes by adding a new claim&lt;/p&gt;
  &lt;/div&gt; &lt;/li&gt; 
 &lt;li&gt;For&amp;nbsp;&lt;strong&gt;Name&lt;/strong&gt;, enter &lt;code style="color: #000000"&gt;AccessControl:&lt;span style="color: #ff0000"&gt;&lt;em&gt;&amp;lt;AttributeName&amp;gt;&lt;/em&gt;&lt;/span&gt;&lt;/code&gt;. Replace &lt;code&gt;&lt;span style="color: #ff0000"&gt;&lt;em&gt;&amp;lt;AttributeName&amp;gt;&lt;/em&gt;&lt;/span&gt;&lt;/code&gt; with the name of the attribute you are expecting in IAM Identity Center. For this example, use &lt;code style="color: #000000"&gt;AccessControl:glue:UsageProfile&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;In &lt;strong&gt;Claim conditions&lt;/strong&gt; set the following: 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;User type&lt;/strong&gt;, select &lt;strong&gt;Members&lt;/strong&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Source&lt;/strong&gt;, select &lt;strong&gt;Attribute&lt;/strong&gt;.&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Value&lt;/strong&gt;, enter &lt;code style="color: #000000"&gt;developer&lt;/code&gt; (without quotation marks). &lt;/li&gt; 
  &lt;/ul&gt; &lt;p&gt; &lt;/p&gt;
  &lt;div id="attachment_41906" style="width: 936px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41906" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Access-control-6.png" alt="Figure 6 – Attribute claim addition in Microsoft Entra using group membership" width="926" height="436" class="size-full wp-image-41906"&gt;
   &lt;p id="caption-attachment-41906" class="wp-caption-text"&gt;Figure 6 – Attribute claim addition in Microsoft Entra using group membership&lt;/p&gt;
  &lt;/div&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;It’s important to note that the tags are being assigned based on group membership in Microsoft Entra ID. This approach lets you manage access and configuration dynamically without needing to set tags individually for each user. By assigning the tag to a Microsoft Entra ID group, anyone signing in to IAM Identity Center and who is in that group will automatically have the tag value applied to their session.&lt;/p&gt; 
&lt;h2&gt;Test the solution&lt;/h2&gt; 
&lt;p&gt;Now that the required configuration is complete, test the setup using the developer usage profile created as part of the &lt;strong&gt;Solution implementation&lt;/strong&gt; section. Sign in as your user through Microsoft Entra ID using &lt;a href="https://myapps.microsoft.com/" target="_blank" rel="noopener noreferrer"&gt;https://myapps.microsoft.com/&lt;/a&gt; and verify the job creation using the following steps mentioned.&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;To verify successful job creation:&lt;/strong&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Open the AWS Glue console using the developer usage profile.&lt;/li&gt; 
 &lt;li&gt;In the navigation pane, choose &lt;strong&gt;ETL jobs&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Select &lt;strong&gt;Script editor&lt;/strong&gt;, then choose &lt;strong&gt;Create script&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Create a new job using the values you want to validate.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;The green banner at the top of the screen should say &lt;strong&gt;Successfully updated job&lt;/strong&gt;.&lt;/p&gt; 
&lt;div id="attachment_41907" style="width: 688px" class="wp-caption aligncenter"&gt;
 &lt;img aria-describedby="caption-attachment-41907" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Access-control-7.png" alt="Figure 7 – Successful AWS Glue job creation with configured parameters for the &lt;em&gt;developer&lt;/em&gt; usage profile" width="678" height="864" class="size-full wp-image-41907"&gt;
 &lt;p id="caption-attachment-41907" class="wp-caption-text"&gt;Figure 7 – Successful AWS Glue job creation with configured parameters for the &lt;em&gt;developer&lt;/em&gt; usage profile&lt;/p&gt;
&lt;/div&gt; 
&lt;h3&gt;Validation using AWS CloudTrail&lt;/h3&gt; 
&lt;p&gt;Examine the &lt;code style="color: #000000"&gt;AssumeRoleWithSAML&lt;/code&gt; event using &lt;a href="https://aws.amazon.com/cloudtrail/" rel="noopener" target="_blank"&gt;AWS Cloudtrail&lt;/a&gt;. Use the following steps to verify the sequence of events.&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Navigate to the CloudTrail console.&lt;/li&gt; 
 &lt;li&gt;Select &lt;strong&gt;Event history&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;In the &lt;strong&gt;Lookup attributes&lt;/strong&gt; dropdown, select &lt;strong&gt;Event name&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Set the event name to &lt;code style="color: #000000"&gt;AssumeRoleWithSAML&lt;/code&gt;.&lt;/li&gt; 
 &lt;li&gt;Open a relevant event and inspect the &lt;code style="color: #000000"&gt;requestParameters&lt;/code&gt; section.&lt;/li&gt; 
 &lt;li&gt;Confirm that the expected session tags appear under &lt;code style="color: #000000"&gt;PrincipalTags&lt;/code&gt;.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;div id="attachment_41960" style="width: 1332px" class="wp-caption aligncenter"&gt;
 &lt;img aria-describedby="caption-attachment-41960" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/28/Access-control-8b.png" alt="Figure 8 – ABAC tags passed during the role assumption" width="1322" height="583" class="size-full wp-image-41960"&gt;
 &lt;p id="caption-attachment-41960" class="wp-caption-text"&gt;Figure 8 – ABAC tags passed during the role assumption&lt;/p&gt;
&lt;/div&gt; 
&lt;h2&gt;Using session tags for other use cases&lt;/h2&gt; 
&lt;p&gt;The concepts discussed in this post can be extended to configure &lt;a href="https://aws.amazon.com/systems-manager/" target="_blank" rel="noopener noreferrer"&gt;AWS Systems Manager&lt;/a&gt; &lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html" target="_blank" rel="noopener noreferrer"&gt;Session Manager&lt;/a&gt; &lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html" target="_blank" rel="noopener noreferrer"&gt;Run As&lt;/a&gt; support for federated users using session tags. By default, Session Manager launches sessions using a system-generated &lt;code style="color: #000000"&gt;ssm-user&lt;/code&gt; account. For Linux instances, you can optionally configure sessions to run as a specific OS-level user through Session Manager preferences. You can configure your identity provider to pass the user attribute (&lt;code style="color: #000000"&gt;AccessControl: SSMSessionRunAs&lt;/code&gt;&amp;nbsp;and name of an OS user account for the key value during federation and the session will be tagged using the attribute value.&lt;/p&gt; 
&lt;h2&gt;Clean up&lt;/h2&gt; 
&lt;p&gt;To avoid incurring future charges, delete any resources created during this walkthrough if they’re no longer needed:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;Remove the IAM Identity Center instance and clean up the associated enterprise application in Microsoft Entra.&lt;/li&gt; 
 &lt;li&gt;Delete the AWS Glue usage profile.&lt;/li&gt; 
 &lt;li&gt;Remove any other AWS resources you provisioned for testing the solution.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;h2&gt;Conclusion&lt;/h2&gt; 
&lt;p&gt;In this post, you learned how to federate access to AWS using AWS IAM Identity Center and SAML 2.0 identity providers like Microsoft Entra ID, enabling a secure, scalable, and centralized approach to managing user access across multiple AWS accounts. By using permission sets, reserved IAM roles, and session tags, organizations can implement fine-grained ABAC without the complexity of managing individual IAM users or static roles.&lt;/p&gt; 
&lt;p&gt;As cloud environments become more complex, adopting modern identity federation and ABAC through IAM Identity Center helps security teams maintain control while providing users with seamless, context-aware access to the resources they need.&lt;/p&gt; 
&lt;h2&gt;Resources&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href="https://aws.amazon.com/blogs/security/how-to-use-the-passrole-permission-with-iam-roles/" target="_blank" rel="noopener noreferrer"&gt;How to use the PassRole permission with IAM roles&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetcustom.html#permissionsetscmpconcept" target="_blank" rel="noopener noreferrer"&gt;Customer managed policies&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="https://aws.amazon.com/blogs/mt/configuring-aws-systems-manager-session-manager-support-federated-users-using-session-tags/" target="_blank" rel="noopener noreferrer"&gt;Configuring AWS Systems Manager Session Manager run as support for federated users using session tags&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/entra/identity-platform/saml-claims-customization#claims-transformation" target="_blank" rel="noopener noreferrer"&gt;Customize SAML token claims&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;If you have feedback about this post, submit comments in the &lt;strong&gt;Comments&lt;/strong&gt; section below.&lt;/p&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2023/12/21/iyerrash.png" alt="Rashmi Iyer" width="120" height="160" class="aligncenter size-full wp-image-32817"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Rashmi Iyer&lt;/h3&gt; 
  &lt;p&gt;Rashmi&amp;nbsp;is a Senior Solutions Architect at AWS, supporting financial services enterprises in building secure, resilient, and scalable cloud architectures while ensuring compliance with industry best practices. With over 15 years of experience in the private telco cloud, she has designed and architected complex telecom solutions, specializing in the packet core domain,&amp;nbsp;the backbone of mobile data networks.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Optimize security operations through an AWS Security Hub POC</title>
		<link>https://aws.amazon.com/blogs/security/how-to-develop-an-aws-security-hub-poc/</link>
					
		
		<dc:creator><![CDATA[Kyle Shields]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 18:55:44 +0000</pubDate>
				<category><![CDATA[AWS Security Hub]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">5c2619861879b55076ff285c5513d62c463b902a</guid>

					<description>April 27, 2026: This post was first published in September 2025 when the enhanced AWS Security Hub was in public preview. It has since been updated to reflect the general availability of Security Hub. This revision also provides a more detailed, step-by-step framework for planning your POC. AWS Security Hub prioritizes your critical security issues […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;blockquote&gt;
   &lt;p&gt;&lt;strong&gt;April 27, 2026&lt;/strong&gt;: This post was first published in September 2025 when the enhanced AWS Security Hub was in public preview. It has since been updated to reflect the general availability of Security Hub. This revision also provides a more detailed, step-by-step framework for planning your POC.&lt;/p&gt;
  &lt;/blockquote&gt; 
  &lt;hr&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-hub/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub&lt;/a&gt;&lt;/span&gt; prioritizes your critical security issues and helps you respond at scale to protect your environment. The service sharpens findings through aggregation, correlation, and enrichment of AWS native security signals into actionable insights, enabling faster and more efficient response times. You can use these capabilities to gain visibility across your cloud environment through centralized management in a unified cloud security solution. Security Hub creates a cloud-native application protection platform (CNAPP) and through the AWS free trial, you can create a comprehensive proof of concept (POC) evaluation without significant upfront investment in time or resources.&lt;/p&gt; 
  &lt;p&gt;In this blog post, we guide you through planning and implementation POC for Security Hub to assess the implementation, functionality, cost estimate, and value of Security Hub in your environment. We walk you through the following steps:&lt;/p&gt; 
  &lt;ol id="rte-28cd00b5-9a45-11f0-b749-d986507364f3" class="rte2-style-ol" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none" start="1" type="1"&gt; 
   &lt;li&gt;Understand the value of Security Hub&lt;/li&gt; 
   &lt;li&gt;Determine success criteria for the POC&lt;/li&gt; 
   &lt;li&gt;Define Security Hub configuration&lt;/li&gt; 
   &lt;li&gt;Prepare for deployment&lt;/li&gt; 
   &lt;li&gt;Enable Security Hub&lt;/li&gt; 
   &lt;li&gt;Validate deployment&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Understand the value of Security Hub&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;div id="attachment_39957" style="width: 1440px" class="wp-caption alignnone"&gt;
   &lt;img aria-describedby="caption-attachment-39957" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2025/09/26/Image-1-POC.png" alt="Figure1: AWS Security Hub overview" width="1430" height="775" class="size-full wp-image-39957"&gt;
   &lt;p id="caption-attachment-39957" class="wp-caption-text"&gt;Figure 1: AWS Security Hub overview&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Figure 1 provides a visualization of how Security Hub unifies signals from multiple AWS security services, partner solutions capabilities. The signals, which are ingested by Security Hub from multiple AWS security services and curated partner solutions include:&lt;/p&gt; 
  &lt;ul id="rte-4da7b4b0-9a46-11f0-b749-d986507364f3" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none"&gt; 
   &lt;li&gt;&lt;b&gt;Threats&lt;/b&gt;: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon GuardDuty&lt;/a&gt;&lt;/span&gt; findings&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Vulnerabilities&lt;/b&gt;: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/inspector/latest/user/findings-types.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Inspector&lt;/a&gt;&lt;/span&gt; vulnerability findings&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Controls&lt;/b&gt;: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub CSPM&lt;/a&gt;&lt;/span&gt; findings&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Configurations&lt;/b&gt;: Resource inventory&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Network exposures&lt;/b&gt;: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/inspector/latest/user/findings-types.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Inspector&lt;/a&gt;&lt;/span&gt; network reachability findings&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Sensitive data&lt;/b&gt;: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/macie/latest/user/findings-types.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Macie&lt;/a&gt;&lt;/span&gt; findings&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Extended Plan: &lt;/b&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/aws/aws-security-hub-extended-o%EF%AC%80ers-full-stack-enterprise-security-with-curated-partner-solutions/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Curated partner solutions&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;At its core, Security Hub provides four key capabilities in one unified solution:&lt;/p&gt; 
  &lt;ol id="rte-f46097b1-9a44-11f0-b749-d986507364f3" class="rte2-style-ol" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none" start="1"&gt; 
   &lt;li&gt;&lt;b&gt;Unified security operations&lt;/b&gt;: Security Hub delivers a unified security operations experience, bringing your security signals into a single consolidated view and avoiding the need to switch between multiple security tools. This provides comprehensive visibility across your entire estate, including AWS, multi-cloud, and on-premises, so your security teams can efficiently detect, prioritize, and respond to potential security risks.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Intelligent prioritization helps focus on what matters most&lt;/b&gt;: Security Hub helps you identify and prioritize critical security risks that might be missed when viewing findings in isolation. Security findings are correlated by analyzing resource relationships and signals from AWS security services and capabilities.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Actionable insights guide security teams on next steps&lt;/b&gt;:&lt;b&gt; &lt;/b&gt;Gain actionable insights through advanced analytics to transform correlated findings into clear, prioritized insights that highlight the most critical security risks in your environment. You can quickly understand potential impacts, visualize relationships, and identify which security issues pose the greatest risk to critical resources.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Streamlined security response and automation capabilities&lt;/b&gt;: Security Hub enhances your security operations by enabling streamlined response capabilities. It seamlessly integrates with your existing ticketing systems to help facilitate efficient incident management.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;With this integrated approach your security team can:&lt;/p&gt; 
  &lt;ul id="rte-4da7b4b1-9a46-11f0-b749-d986507364f3" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none"&gt; 
   &lt;li&gt;Investigate critical risks that need immediate attention from a single pane of glass&lt;/li&gt; 
   &lt;li&gt;Monitor security trends and attack surface across your environments&lt;/li&gt; 
   &lt;li&gt;Fix what really matters across the entire attack chain and path&lt;/li&gt; 
   &lt;li&gt;Automate responses to streamline remediation&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;&lt;b&gt;Understand the Open Cybersecurity Schema Framework&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;Security Hub uses the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://schema.ocsf.io/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Open Cybersecurity Schema Framework (OCSF)&lt;/a&gt;&lt;/span&gt; to help standardize security data and analysis and enable better integration between security tools. This standardization helps simplify how security findings are structured and analyzed across your environment. This standardized data model enables seamless integration and data exchange across your security tooling, providing normalized and consistent data formats. When implementing your Security Hub POC, make sure that you’re familiar with the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/ocsf-aws-extension.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;OCSF specifications Security Hub uses&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;Additionally, confirm that any analytics or security information and event management (SIEM) tools you plan to integrate with support the OCSF data format to maximize the value of the consolidated security insights provided by Security Hub.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Determine success criteria&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Establishing success criteria helps benchmark the outcomes of the POC with the goals of the business. Some example criteria and key performance indicators (KPI) include:&lt;/p&gt; 
  &lt;ul id="rte-4da7b4b3-9a46-11f0-b749-d986507364f3" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none"&gt; 
   &lt;li&gt;&lt;b&gt;Alert consolidation metrics&lt;/b&gt;: Determine what resources you’re currently using to correlate security events and signals to understand their relationship. Review the process and note if it’s completed outside of AWS or through a SIEM. By setting a benchmark to reduce correlation overhead you can significantly improve efficiency and accelerate security investigations and posture improvement.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Response time improvements&lt;/b&gt;: Reducing your time to detect, investigate, and resolve security events and improve security posture is essential to streamlined security operations. Security Hub provides visualizations for potential attack paths that adversaries could use to exploit resources and helps assess the potential blast radius. 
    &lt;ul id="rte-4da7b4b5-9a46-11f0-b749-d986507364f3" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px"&gt; 
     &lt;li&gt;Reduced mean time to detect (MTTD) security incidents.&lt;/li&gt; 
     &lt;li&gt;Reduced mean time to response (MTTR) for critical findings.&lt;/li&gt; 
     &lt;li&gt;Reduced time to identify potentially affected resources in blast radius.&lt;/li&gt; 
     &lt;li&gt;Increased accuracy of attack path analysis.&lt;/li&gt; 
     &lt;li&gt;Number of controls implemented based on attack path insights (post investigation).&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Automation capabilities&lt;/b&gt;: Having response playbooks as part of your incident management and response plan helps ensure comprehensive investigations lead to improved security posture. Review your automation capabilities to see if portions of or entire playbooks can be automated. 
    &lt;ul id="rte-4da7b4b6-9a46-11f0-b749-d986507364f3" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px"&gt; 
     &lt;li&gt;Potentially increased percentage of security findings automatically routed to the correct teams by using Jira Cloud, ServiceNow, or a third-party tool.&lt;/li&gt; 
     &lt;li&gt;Reduced average time from detection to ticket creation.&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Severity and risk classification: &lt;/b&gt;Review your organization’s inventory of assets to determine if it’s complete and if you can use telemetry to determine the severity level and associated risks. 
    &lt;ul id="rte-4da7b4b7-9a46-11f0-b749-d986507364f3" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px"&gt; 
     &lt;li&gt;Reduced time to identify critical resources and service coverage gaps affected by new vulnerabilities, threats, and misconfigurations.&lt;/li&gt; 
     &lt;li&gt;Faster and more accurate severity label and risk calculation of findings.&lt;/li&gt; 
     &lt;li&gt;Reduced time to identify service gap coverage.&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;After establishing your success criteria, it’s essential to evaluate organizational readiness and potential constraints that might impact your POC implementation. Begin by conducting a comprehensive assessment of your current environment: Determine if the foundational security services (GuardDuty, Amazon Inspector, Security Hub CSPM, and Macie) are enabled across your accounts, and identify your critical workloads and if there are any excessive attack surfaces.&lt;/p&gt; 
  &lt;p&gt;Review your success criteria to make sure that your goals are realistic given your timeframe and potential constraints that are specific to your organization. For example:&lt;/p&gt; 
  &lt;ul id="rte-40794e12-2c55-11f1-b334-efd1f6896f7c" class="rte2-style-ul"&gt; 
   &lt;li&gt;Do you have full control over the configuration of AWS services that are deployed in an organization?&lt;/li&gt; 
   &lt;li&gt;Do you have resources that can dedicate time to implement and test?&lt;/li&gt; 
   &lt;li&gt;Is this time convenient for relevant stakeholders to evaluate the service?&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Maximize your POC value through service activation&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To get the most comprehensive evaluation of the capabilities of Security Hub, coordinate the activation of underlying security services to optimize the overlapping trial periods available at no additional cost. The following is a list of the underlying security services, and their free trial length:&lt;/p&gt; 
  &lt;ul id="rte-4da7b4b8-9a46-11f0-b749-d986507364f3" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none"&gt; 
   &lt;li&gt;&lt;b&gt;Security Hub&lt;/b&gt;: 30-day trial (essential plan capabilities)&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;GuardDuty&lt;/b&gt;: 30-day trial (covers most protection plans except GuardDuty Malware Protection)&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Security Hub CSPM&lt;/b&gt;: 30-day trial&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Macie&lt;/b&gt;: 30-day trial&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Amazon Inspector&lt;/b&gt;: 15-day trial&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Consider enabling these services simultaneously so that you have at least two weeks of overlapping coverage to evaluate the full correlation and risk prioritization capabilities of Security Hub across each service. Optionally, if you want to conduct a POC with minimal configuration because of limitations, you can enable only Security Hub CSPM and Amazon Inspector during the initial POC phase to properly assess the results and data.&lt;/p&gt; 
  &lt;blockquote&gt;
   &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: Document your activation dates and trial expiration dates carefully. Create calendar reminders for trial end dates and schedule your key POC evaluation milestones to occur while services are active. This will help make sure that you can thoroughly assess the unified security operations capabilities of Security Hub when services are running at full capacity.&lt;/p&gt;
  &lt;/blockquote&gt; 
  &lt;p&gt;If you already have one or more of these underlying services enabled, you can proceed to enable the new Security Hub. To fully use the new Security Hub capabilities, particularly the exposure findings feature, specific service dependencies must be met, both Security Hub CSPM and Amazon Inspector are essential because they provide the telemetry needed for the Security Hub correlation engine and exposure findings. The combination enables Security Hub to deliver comprehensive risk analysis and prioritization by correlating configuration risks with runtime vulnerabilities. If you have other security services already enabled (such as GuardDuty or Macie), you can maintain these existing services while enabling Security Hub, and it will automatically begin incorporating their findings into its consolidated view, enhancing your overall security posture visualization.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Define your Security Hub configuration&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;After your success criteria have been established, you’re ready to plan your configuration. Some important decisions include:&lt;/p&gt; 
  &lt;ul id="rte-e26ac910-9a47-11f0-aa3d-fbe48dae450c" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none"&gt; 
   &lt;li&gt;&lt;b&gt;Select a delegated administrator&lt;/b&gt;: From the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/organizations" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Organizations&lt;/a&gt;&lt;/span&gt; management account, you can set a delegated administrator for your organization. As a best practice, we recommend using the same delegated administrator across security services for consistent governance and according to our &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/introduction.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Reference Architecture (AWS SRA)&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Select accounts in scope&lt;/b&gt;: Define accounts you want to have Security Hub enabled for.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Define AWS Regions&lt;/b&gt;: Determine Regional restrictions or considerations.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Determine AWS service integrations&lt;/b&gt;: In addition to the core security capabilities of posture management and vulnerability management, Security Hub integrates signals from other AWS security services such as GuardDuty and Macie.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Define third-party integrations&lt;/b&gt;: 
    &lt;ul id="rte-e26ac911-9a47-11f0-aa3d-fbe48dae450c" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px"&gt; 
     &lt;li&gt;For ticketing, Security Hub integrates with popular service management systems such as Atlassian’s Jira Service Management Cloud and ServiceNow.&lt;/li&gt; 
     &lt;li&gt;Partners who already support or intend to support the OCSF schema to receive findings from Security Hub include companies such as Arctic Wolf, CrowdStrike, DataBee, Datadog, DTEX Systems, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-to-prioritize-security-risks-using-aws-security-hub-exposure-findings/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Dynatrace&lt;/a&gt;&lt;/span&gt;, Fortinet, IBM, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://community.netskope.com/discussions-37/level-up-your-cloud-security-integrating-netskope-and-aws-security-hub-2-0-7806" target="_blank" rel="noopener" data-cms-ai="0"&gt;Netskope&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://orca.security/resources/blog/enhanced-cspm-cdr-aws-security-hub/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Orca Security&lt;/a&gt;&lt;/span&gt;, Palo Alto Neworks, Rapid7, Securonix, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.sentinelone.com/blog/aws-reinforce-announcements/" target="_blank" rel="noopener" data-cms-ai="0"&gt;SentinelOne&lt;/a&gt;&lt;/span&gt;, Sophos, Splunk, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://help.sumologic.com/docs/integrations/amazon-aws/security-hub/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Sumo Logic&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.tines.com/blog/tines-aws-security-hub/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Tines&lt;/a&gt;&lt;/span&gt;, Trellix, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.wiz.io/blog/wiz-and-aws-security-hub-enhance-cloud-risk-prioritization" target="_blank" rel="noopener" data-cms-ai="0"&gt;Wiz&lt;/a&gt;&lt;/span&gt;, and Zscaler.&lt;/li&gt; 
     &lt;li&gt;Service partners such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/apn/how-accenture-accelerates-building-a-secure-cloud-foundation-natively-on-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Accenture,&lt;/a&gt;&lt;/span&gt; Caylent, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.deloitte.com/us/en/services/consulting/services/ConvergeSECURITY-cloud-security.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Deloitte&lt;/a&gt;&lt;/span&gt;, IBM, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.optiv.com/partners/amazon-web-services-aws" target="_blank" rel="noopener" data-cms-ai="0"&gt;Optiv&lt;/a&gt;&lt;/span&gt; can help you adopt Security Hub and the OCSF schema.&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Use the Security Hub cost estimator&lt;/b&gt;: Use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-AWS-Security-Hub-Cost-Estimation-Tool" target="_blank" rel="noopener" data-cms-ai="0"&gt;Security Hub Cost Estimation Tool&lt;/a&gt;&lt;/span&gt; for a pre-enablement cost estimate based on your current spend on Amazon Inspector, Security Hub CSPM, and GuardDuty.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Prepare for deployment&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;After determining your success criteria and Security Hub configuration, identify stakeholders, desired state, and timeframe. Prepare for deployment by completing:&lt;/p&gt; 
  &lt;ul id="rte-f0df70c0-1686-11f1-b2e6-3f4f75780a41" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none"&gt; 
   &lt;li&gt;&lt;b&gt;Project plan and timeline:&lt;/b&gt; Develop a project plan with defined success criteria, scope boundaries, key milestones, and realistic implementation timelines. Suggested timeline of events: 
    &lt;ul id="rte-f0df97d0-1686-11f1-b2e6-3f4f75780a41" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px"&gt; 
     &lt;li&gt;Before enablement: 
      &lt;ul id="rte-f0df97d1-1686-11f1-b2e6-3f4f75780a41" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px"&gt; 
       &lt;li&gt;Validate core security service configuration for GuardDuty, Amazon Inspector, Security Hub CSPM, and Macie&lt;/li&gt; 
       &lt;li&gt;Request approvals for free trial from appropriate stakeholders&lt;/li&gt; 
      &lt;/ul&gt; &lt;/li&gt; 
     &lt;li&gt;Day 0 – Enable the service, become comfortable with the Security Hub layout and begin training security personnel&lt;/li&gt; 
     &lt;li&gt;Week 1 – Validate desired coverage of threat detection, vulnerability management, and posture management across accounts and Regions&lt;/li&gt; 
     &lt;li&gt;Week 2 – Connect to IT service management (ITSM) tools and begin creating automations for critical workloads and resources&lt;/li&gt; 
     &lt;li&gt;Week 3 – Execute a tabletop exercise in response to a selected exposure finding&lt;/li&gt; 
     &lt;li&gt;Week 4 – Analyze trends of threats and exposures from day 1 through week 4&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Identify stakeholders:&lt;/b&gt; Identify CISO, information security teams, SOC personnel, incident response teams, security engineers, finance, legal, compliance, external MSSPs, and business unit representatives.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Develop a RACI matric:&lt;/b&gt; Create a detailed RACI chart defining roles and responsibilities across the incident response lifecycle, facilitating accountability and proper communication channels.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Configure management account access:&lt;/b&gt; Secure authorization to delegate administrative access. For more information, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-v2-set-da.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Permissions required to designate a delegated Security Hub administrator account&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Set up IAM roles and permissions:&lt;/b&gt; Use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Identity and Access Management (IAM)&lt;/a&gt;&lt;/span&gt; roles to implement role-based access controls aligned with the RACI chart, including case management, escalation, and read-only roles using AWS managed policies. For more information, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/security-ir/latest/userguide/aws-managed-policies.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Managed Policies&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Enable Security Hub&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;AWS security services integrate with AWS Organizations to help you centrally manage Security Hub.&lt;/p&gt; 
  &lt;ol id="rte-66a84f61-9a46-11f0-aa3d-fbe48dae450c" class="rte2-style-ol" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none" start="1"&gt; 
   &lt;li&gt;If you haven’t already done so, enable Security Hub CSPM and Amazon Inspector at a minimum. Also enable any other AWS security services that you want to integrate with Security Hub.&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-v2-enable.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Enable Security Hub for your organization&lt;/a&gt;&lt;/span&gt; from the organization management account.&lt;/li&gt; 
   &lt;li&gt;If setting a delegated administrator for Security Hub, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-v2-set-da.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Setting a delegated administrator account in Security Hub&lt;/a&gt;&lt;/span&gt; from the management account.&lt;br&gt; 
    &lt;blockquote&gt;
     &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: As a best practice, we recommend using the same delegated administrator across security services for consistent governance.&lt;/p&gt;
    &lt;/blockquote&gt; &lt;/li&gt; 
   &lt;li&gt;Sign in to the delegated administrator with an IAM &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-v2-da-policy.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;policy&lt;/a&gt;&lt;/span&gt; that gives you permission to enable and disable member accounts. With this policy, you will have granular control to decide what Regions you want enabled.&lt;/li&gt; 
   &lt;li&gt;Configure Security Hub plans for deployment. &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-hub/pricing/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Security Hub comes with the Essentials, Threat Analytics, and Extended plans&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;Configure &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-partner-providers.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;third-party integrations&lt;/a&gt;&lt;/span&gt; to create incidents or issues for Security Hub findings.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;blockquote&gt;
   &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: After you enable Security Hub, exposure findings in your environment are created and analyzed immediately. However, it can take up to 6 hours to receive an exposure finding for a resource.&lt;/p&gt;
  &lt;/blockquote&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Validate deployment&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The final step is to confirm that Security Hub is configured correctly and to evaluate the solution against your success criteria.&lt;/p&gt; 
  &lt;ul id="rte-e26ac912-9a47-11f0-aa3d-fbe48dae450c" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none"&gt; 
   &lt;li&gt;&lt;b&gt;Validate policy&lt;/b&gt;: Verify that you have the correct permissions to manage member accounts and Regional restrictions are configured correctly.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Validate integrations&lt;/b&gt;: Verify that tickets with &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/security-hub-adv-servicenow-view-ticket.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;ServiceNow&lt;/a&gt;&lt;/span&gt; or &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/security-hub-adv-jiracloud-view-ticket.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Jira Cloud&lt;/a&gt;&lt;/span&gt; are working correctly by signing in to the AWS Management Console for Security hub and choosing &lt;b&gt;Inventory&lt;/b&gt; in the navigation pane. Select &lt;b&gt;Findings&lt;/b&gt; and verify there is a ticket ID in your finding.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Assess success criteria&lt;/b&gt;: Determine if you achieved the success criteria that you defined at the beginning of the project.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;In this post, we showed you how to plan and implement an effective Security Hub POC. You learned how to do so through phases, including defining success criteria, configuring Security Hub, and validating that Security Hub meets your business needs. Take advantage of the trial periods to maximize your testing window without incurring significant costs. Throughout the POC, maintain focus on your predefined success criteria while remaining open to unexpected benefits or challenges that might arise. Maintain open communication with your AWS account team to address any questions or concerns to help you get the most out of your Security Hub POC experience.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Additional resources&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;ul id="rte-e26ac915-9a47-11f0-aa3d-fbe48dae450c" class="rte2-style-ul" style="padding: 0px 0px 0px 20px;margin: 0px 0px 0px 2px;color: #333333;font-family: AmazonEmber, 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 14px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none"&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-security-hub-adv.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub User Guide&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;rct=j&amp;amp;opi=89978449&amp;amp;url=https://aws.amazon.com/blogs/security/how-to-prioritize-security-risks-using-aws-security-hub-exposure-findings/&amp;amp;ved=2ahUKEwjn5oa45JWOAxWbMUQIHXqzHH0QFnoECCAQAQ&amp;amp;usg=AOvVaw1n4PSwJlJw1VurCMWdfVOz" target="_blank" rel="noopener" data-cms-ai="0"&gt;How to prioritize security risks using AWS Security Hub&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.youtube.com/watch?v=prtnhCfjUpM" target="_blank" rel="noopener" data-cms-ai="0"&gt;How to onboard to AWS Security Hub&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/streamline-security-response-at-scale-with-aws-security-hub-automation/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Streamline security response at scale with AWS Security Hub automation&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the Comments section below. If you have questions about this post, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://console.aws.amazon.com/support/home" target="_blank" rel="noopener" data-cms-ai="0"&gt;contact AWS Support&lt;/a&gt;&lt;/span&gt;. &lt;/p&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2025/09/19/shieldky.jpg" alt="Kyle Shields" width="120" height="160" class="aligncenter size-full wp-image-39920"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Kyle Shields&lt;/h3&gt; 
  &lt;p&gt;Kyle is a Security Specialist Solutions Architect focused on threat detection and incident response at AWS. Today, he’s focused on helping enterprise AWS customers adopt and operationalize AWS Security Incident Response and improve their security posture.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/24/ahmed-adekunle-author.jpg" alt="" width="120" height="160" class="aligncenter size-full wp-image-40948"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Ahmed Adekunle&lt;/h3&gt; 
  &lt;p&gt;Ahmed is a Security Specialist Solutions Architect focused on detection and response services at AWS. Before AWS, his background was in business process management and AWS technology consulting, helping customers use cloud technology to transform their business. Outside of work, Ahmed enjoys playing soccer, supporting less privileged activities, traveling, and eating spicy food, specifically African cuisine.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2021/10/20/Marshall-Jones-Author.jpg" alt="Author" width="120" height="160" class="aligncenter size-full wp-image-22626"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Marshall Jones&lt;/h3&gt; 
  &lt;p&gt;Marshall is a Worldwide Security Specialist Solutions Architect at AWS. His background is in AWS consulting and security architecture and focused on a variety of security domains including edge, threat detection, and compliance. Today, he’s focused on helping enterprise AWS customers adopt and operationalize AWS security services to increase security effectiveness and reduce risk.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Can I do that with policy? Understanding the AWS Service Authorization Reference</title>
		<link>https://aws.amazon.com/blogs/security/can-i-do-that-with-policy-understanding-the-aws-service-authorization-reference/</link>
					
		
		<dc:creator><![CDATA[Anshu Bathla]]></dc:creator>
		<pubDate>Mon, 27 Apr 2026 16:01:46 +0000</pubDate>
				<category><![CDATA[AWS Identity and Access Management (IAM)]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[AWS IAM]]></category>
		<category><![CDATA[AWS IAM policies]]></category>
		<category><![CDATA[fine-grained authorization]]></category>
		<category><![CDATA[IAM]]></category>
		<category><![CDATA[IAM policies]]></category>
		<category><![CDATA[least privilege]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">f0264084d1c8b559d6ce640d431baf84b63fa4f5</guid>

					<description>Understanding what AWS Identity and Access Management (IAM) policies can control helps you build better security controls and avoid spending time on approaches that won’t work. You’ve likely encountered questions like: Can I use AWS Organizations service control policies (SCPs) to prevent the creation of security groups that allow traffic from 0.0.0.0/0? Can I block […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;Understanding what &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Identity and Access Management (IAM)&lt;/a&gt;&lt;/span&gt; policies can control helps you build better security controls and avoid spending time on approaches that won’t work. You’ve likely encountered questions like:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cbfb80-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;Can I use AWS Organizations service control policies (SCPs) to prevent the creation of security groups that allow traffic from &lt;code class="CodeInline" style="color: #000"&gt;0.0.0.0/0&lt;/code&gt;?&lt;/li&gt; 
   &lt;li&gt;Can I block uploads unless objects are encrypted?&lt;/li&gt; 
   &lt;li&gt;Can I prevent functions with more than 512 MB of memory allocated?&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Some of these are possible with IAM policies. Others are not. The difference is determined by a fundamental principle of AWS authorization: &lt;i&gt;Policies make decisions based on information available in the authorization context at the time of the API call.&lt;/i&gt;&lt;/p&gt; 
  &lt;p&gt;In this blog post, you learn how to use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Service Authorization Reference&lt;/a&gt;&lt;/span&gt; to determine what’s achievable with IAM policies, recognize scenarios that need alternative solutions, and build more effective security controls in your AWS environment.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Understanding AWS authorization context&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;When you make an AWS API request through the AWS Management Console, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cli" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Command Line Interface (AWS CLI)&lt;/a&gt;&lt;/span&gt;, or AWS SDK, the specific AWS service (such as Amazon S3 or Amazon EC2) receiving the request assembles a &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic_policy-eval-reqcontext.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;request context&lt;/a&gt;&lt;/span&gt; containing information about that request. This context is used for policy evaluation decisions. Request context is structured using the Principal, Action, Resource, Condition (PARC) model, which has four key components.&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cbfb81-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;&lt;b&gt;Principal&lt;/b&gt;: Identifies the requester and their attributes (tags, session context)&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Action&lt;/b&gt;: Specifies the AWS API operation being requested (for example, &lt;code class="CodeInline" style="color: #000"&gt;s3:PutObject, ec2:RunInstances&lt;/code&gt;)&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Resource:&lt;/b&gt; Defines the target AWS resource using Amazon Resource Names (ARNs)&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Condition:&lt;/b&gt; Provides additional context available at request time, such as IP address, time, encryption parameters, MFA status, and service-specific attributes&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;The following example shows the typical request context for an Amazon S3 object upload:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cbfb82-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;&lt;b&gt;Principal&lt;/b&gt;: &lt;code class="CodeInline" style="color: #000"&gt;AIDA123456789EXAMPLE&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Action&lt;/b&gt;: &lt;code class="CodeInline" style="color: #000"&gt;s3:PutObject&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Resource&lt;/b&gt;: &lt;code class="CodeInline" style="color: #000"&gt;arn:aws:s3:::my-bucket/documents/samplereport.pdf&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Condition&lt;/b&gt;: 
    &lt;ul class="rte2-style-ul" id="rte-31cbfb83-3cf2-11f1-a752-e7f762a62896"&gt; 
     &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws:PrincipalTag/Department=Finance&lt;/code&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws:RequestedRegion=us-east-1&lt;/code&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws:SourceIp=x.x.x.x&lt;/code&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws:MultiFactorAuthPresent=true&lt;/code&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;s3:x-amz-server-side-encryption=AES256&lt;/code&gt;&lt;/li&gt; 
     &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;s3:x-amz-storage-class=STANDARD_IA&lt;/code&gt;&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;IAM policies can evaluate request metadata like encryption method and storage class being specified. However, it cannot evaluate the actual file contents, object size, or specific data patterns. Policy evaluation occurs at the time of the request, using the information present in the authorization context.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;An essential resource: The Service Authorization Reference&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Service Authorization Reference&lt;/a&gt;&lt;/span&gt; is the authoritative documentation for understanding what policies can control. For every AWS service, it documents:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cbfb84-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;&lt;b&gt;Actions&lt;/b&gt;: Every controllable operation&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Resources&lt;/b&gt;: Resource types that can be targeted&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Condition keys&lt;/b&gt;: The exact context information available for policy decisions&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Condition keys are broadly divided into two categories. &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Global condition keys&lt;/a&gt;&lt;/span&gt;, which can be used across AWS services, and service-specific condition keys, which are defined for use with an individual AWS service. Use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Service Authorization Reference&lt;/a&gt;&lt;/span&gt; to find the global-condition keys or service-specific condition keys for each AWS service.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;How to use the Service Authorization Reference&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Follow these steps to determine if your requirement can be controlled with IAM policies:&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-31cc2290-3cf2-11f1-a752-e7f762a62896" start="1"&gt; 
   &lt;li&gt;&lt;b&gt;Navigate to your service&lt;/b&gt;: Go to the page for the specific AWS service you’re working with, such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Actions, resources, and condition keys for Amazon S3&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Find the action you want&lt;/b&gt;: Find the API operation you want to control. Be precise, different actions have different available condition keys.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Examine available condition keys&lt;/b&gt;: The &lt;b&gt;Condition keys&lt;/b&gt; column shows what context information AWS makes available for that action.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Make your feasibility determination&lt;/b&gt;: If the information you need isn’t listed as a condition key, you will not be able to control it with IAM policies alone.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;Let’s take an example from the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ec2" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Compute Cloud (Amazon EC2)&lt;/a&gt;&lt;/span&gt; &lt;code class="CodeInline" style="color: #000"&gt;ec2:RunInstances&lt;/code&gt; action to see what you can and can’t control. In the Service Authorization Reference &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;under the Amazon EC2 section&lt;/a&gt;&lt;/span&gt;, examine the &lt;code class="CodeInline" style="color: #000"&gt;RunInstances&lt;/code&gt; action and check the &lt;b&gt;Resource types&lt;/b&gt; column. The &lt;code class="CodeInline" style="color: #000"&gt;RunInstances&lt;/code&gt; action affects multiple resource types, each with its own set of condition keys.&lt;/p&gt; 
  &lt;p&gt;For the &lt;code class="CodeInline" style="color: #000"&gt;instance*&lt;/code&gt; resource type:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cc2291-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;ec2:InstanceType&lt;/code&gt;: Can restrict instance types&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;ec2:EbsOptimized&lt;/code&gt;: Can require EBS optimization&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws:RequestTag/&lt;/code&gt;: Can enforce tagging requirements&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;For the &lt;code class="CodeInline" style="color: #000"&gt;network-interface*&lt;/code&gt; resource type:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cc2292-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;ec2:Subnet&lt;/code&gt;: Can control subnet placement&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;ec2:Vpc&lt;/code&gt;: Can limit to specific virtual private clouds (VPCs)&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;ec2:AssociatePublicIpAddress&lt;/code&gt;: Can control public IP assignment&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;blockquote&gt;
   &lt;p&gt; &lt;b&gt;Note:&lt;/b&gt; These are a few examples from the many condition keys available for each resource type under the &lt;code class="CodeInline" style="color: #000"&gt;RunInstances&lt;/code&gt; action. The Service Authorization Reference lists dozens of condition keys across resource types (instance, network interface, security group, subnet, volume, and so on) that &lt;code class="CodeInline" style="color: #000"&gt;RunInstances&lt;/code&gt; affects. Consult the complete reference to see the available options for your specific use case.&lt;/p&gt;
  &lt;/blockquote&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Access the Service Authorization Reference programmatically&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Beyond the human-readable documentation, AWS provides the Service Authorization Reference in machine-readable JSON format to streamline automation of policy management workflows. Use this programmatic access to incorporate authorization metadata into your development and security workflows.&lt;br&gt; For detailed information about the JSON structure and field definitions, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/service-reference.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Simplified AWS service information for programmatic access&lt;/a&gt;&lt;/span&gt;.&lt;br&gt; Developers can use tools like the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://awslabs.github.io/mcp/servers/iam-mcp-server" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM MCP Server&lt;/a&gt;&lt;/span&gt; for AWS IAM operations. This server provides AI assistants with the ability to manage IAM users, roles, policies, and permissions while following security best practices.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Using IAM policies to control specific scenarios&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The following examples show how you can use IAM policies to control specific scenarios.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Example 1: Enforce AES256 server-side encryption on S3 objects&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;In the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon S3 Service Authorization Reference&lt;/a&gt;&lt;/span&gt;, under &lt;code class="CodeInline" style="color: #000"&gt;s3:PutObject&lt;/code&gt; action, the &lt;code class="CodeInline" style="color: #000"&gt;s3:x-amz-server-side-encryption&lt;/code&gt; condition key is available in the authorization context, which can be used to control the server-side encryption of S3 objects with AES-256. Here is the required policy.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Policy 1&lt;/b&gt;: Deny Amazon S3 object upload if the encryption doesn’t use AES-256&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "DenyUnencryptedObjectUploads",
			"Effect": "Deny",
			"Action": "s3:PutObject",
			"Resource": "arn:aws:s3:::my-bucket/*",
			"Condition": {
				"StringNotEquals": {
					"s3:x-amz-server-side-encryption": "AES256"
				}
			}
		}
	]
}&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Policy 1 is a resource-based policy that can be applied on an S3 bucket to restrict object uploads. It denies a &lt;code class="CodeInline" style="color: #000"&gt;PutObject&lt;/code&gt; request when the server-side encryption isn’t using the AES-256 encryption algorithm.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Example 2: Allow different instance types based on the user’s cost center tag.&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;When checking the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EC2 Service Authorization Reference&lt;/a&gt;&lt;/span&gt; for &lt;code class="CodeInline" style="color: #000"&gt;ec2:RunInstances&lt;/code&gt;, the &lt;code class="CodeInline" style="color: #000"&gt;ec2:InstanceType&lt;/code&gt; condition key, which is resource specific, is available. To restrict instance types based on who is launching them (rather than just what is being launched), you can either combine this with a global condition key or attach different policies to different principals. By using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag" target="_blank" rel="noopener" data-cms-ai="0"&gt;aws:PrincipalTag/tag-key&lt;/a&gt;&lt;/span&gt; alongside &lt;code class="CodeInline" style="color: #000"&gt;ec2:InstanceType&lt;/code&gt;, you can identify the user’s cost center from their IAM identity tags and then apply different instance type restrictions accordingly. This allows a single policy to dynamically enforce different permissions based on the requester’s identity.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Policy 2&lt;/b&gt;: Restricting EC2 instance types by cost center&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "AllowDevInstanceTypes",
			"Effect": "Allow",
			"Action": "ec2:RunInstances",
			"Resource": "arn:aws:ec2:*:*:instance/*",
			"Condition": {
				"StringEquals": {
					"aws:PrincipalTag/CostCenter": "Development"
				},
				"StringLike": {
					"ec2:InstanceType": "t3.*"
				}
			}
		},
		{
			"Sid": "AllowProdInstanceTypes",
			"Effect": "Allow",
			"Action": "ec2:RunInstances",
			"Resource": "arn:aws:ec2:*:*:instance/*",
			"Condition": {
				"StringEquals": {
					"aws:PrincipalTag/CostCenter": "Production"
				},
				"StringLike": {
					"ec2:InstanceType": [
						"m5.*",
						"c5.*",
						"r5.*"
					]
				}
			}
		}
	]
}&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;This is an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;identity-based policy&lt;/a&gt;&lt;/span&gt; that you can attach to IAM users, groups, or roles to control EC2 instance launches based on cost allocation. In the first statement, &lt;code class="CodeInline" style="color: #000"&gt;aws:PrincipalTag&lt;/code&gt;, which is a global condition key (tags attached to the IAM user or role), is used to determine which instance types are allowed. Users tagged with &lt;code class="CodeInline" style="color: #000"&gt;CostCenter=Development&lt;/code&gt; can only launch cost-effective T3 instance types (t3.micro, t3.small, t3.medium, and so on)with the service specific key &lt;code class="CodeInline" style="color: #000"&gt;ec2:InstanceType&lt;/code&gt;.&lt;/p&gt; 
  &lt;p&gt; In the second statement, users tagged with &lt;code class="CodeInline" style="color: #000"&gt;CostCenter=Production&lt;/code&gt; can launch more powerful instance types from the M5 (general purpose), C5 (compute optimized), and R5 (memory optimized) families. This approach lets organizations enforce cost controls and allocate resources based on workload requirements. Each cost center maintains flexibility for its specific needs.&lt;/p&gt; 
  &lt;blockquote&gt;
   &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Additional resources are required in the IAM policy to successfully launch EC2 instances. For the complete list, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-runinstances" target="_blank" rel="noopener" data-cms-ai="0"&gt;Launch Instances&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;
  &lt;/blockquote&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Example 3: Users can only access and update DynamoDB items where the partition key matches their username.&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;You have identified that &lt;code class="CodeInline" style="color: #000"&gt;GetItem&lt;/code&gt;, &lt;code class="CodeInline" style="color: #000"&gt;PutItem&lt;/code&gt;,and &lt;code class="CodeInline" style="color: #000"&gt;UpdateItem&lt;/code&gt; actions are required. Corresponding to these actions, you can use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html#FGAC_DDB.ConditionKeys" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;/a&gt;&lt;/span&gt; condition key to expose partition key values in the authorization context as described in the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon DynamoDB Service Authorization Reference&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Policy 3&lt;/b&gt;: DynamoDB fine-grained access control&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"dynamodb:GetItem",
				"dynamodb:PutItem",
				"dynamodb:UpdateItem"
			],
			"Resource": "arn:aws:dynamodb:us-east-1:111122223333:table/UserProfiles",
			"Condition": {
				"ForAllValues:StringEquals": {
					"dynamodb:LeadingKeys": ["${aws:username}"]
				}
			}
		}
	]
}&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;/p&gt; 
  &lt;p&gt;The policy allows users to perform read and write actions (&lt;code class="CodeInline" style="color: #000"&gt;GetItem&lt;/code&gt;, &lt;code class="CodeInline" style="color: #000"&gt;PutItem&lt;/code&gt;, and &lt;code class="CodeInline" style="color: #000"&gt;UpdateItem&lt;/code&gt;) on the &lt;code class="CodeInline" style="color: #000"&gt;UserProfiles&lt;/code&gt; table, but only for items where the partition key value equals their own username (using the &lt;code class="CodeInline" style="color: #000"&gt;${aws:username}&lt;/code&gt; policy variable). For example, if user &lt;code class="CodeInline" style="color: #000"&gt;alice&lt;/code&gt; attempts to access an item with partition key &lt;code class="CodeInline" style="color: #000"&gt;bob&lt;/code&gt;, the request will be denied.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Scenarios that need more than policies alone&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Some requirements can’t be met using IAM policies. Here are three common scenarios that aren’t achievable with IAM policies alone.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Scenario 1: Block users from creating security group rules that allow traffic from 0.0.0.0/0 on TCP port 22&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Upon checking the Amazon EC2 Service Authorization Reference, you will find that the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions" target="_blank" rel="noopener" data-cms-ai="0"&gt;ec2:AuthorizeSecurityGroupIngress&lt;/a&gt;&lt;/span&gt; action is required in an IAM policy to add an inbound access rules to a security group.&lt;/p&gt; 
  &lt;p&gt;To verify this in the Service Authorization Reference, navigate to the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EC2 Service Authorization Reference&lt;/a&gt;&lt;/span&gt; and search for the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AuthorizeSecurityGroupIngress.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AuthorizeSecurityGroupIngress&lt;/a&gt;&lt;/span&gt; action, which is the action that creates security group rules. After you locate this action, review the &lt;b&gt;Condition keys&lt;/b&gt; column and look for condition keys related to CIDR blocks, IP ranges, ports, or protocols. Available condition keys for &lt;code class="CodeInline" style="color: #000"&gt;ec2:AuthorizeSecurityGroupIngress&lt;/code&gt; include:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cc2293-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;&lt;code&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-aws_ResourceTag___TagKey_" target="_blank" rel="noopener" data-cms-ai="0"&gt;aws:ResourceTag/${TagKey}&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;: Filters access by a tag key and value pair of a resource&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-ec2_ResourceTag___TagKey_" target="_blank" rel="noopener" data-cms-ai="0"&gt;ec2:ResourceTag/${TagKey}&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;: Filters access by a tag key and value pair of a resource&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-ec2_SecurityGroupID" target="_blank" rel="noopener" data-cms-ai="0"&gt;ec2:SecurityGroupID&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;: Filters access by the ID of a security group&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-ec2_Vpc" target="_blank" rel="noopener" data-cms-ai="0"&gt;ec2:Vpc&lt;/a&gt;&lt;/span&gt;&lt;/code&gt;: Filters access by the ARN of the VPC&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Notice there are no condition keys for CIDR blocks (such as &lt;code class="CodeInline" style="color: #000"&gt;0.0.0.0/0&lt;/code&gt;), port numbers (such as &lt;code class="CodeInline" style="color: #000"&gt;22&lt;/code&gt;), or protocols (such as TCP). The authorization context doesn’t include information about the specific CIDR blocks, ports, or protocols being added to the security group rule, so IAM policies can’t control these attributes.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;br&gt; Take a reactive approach using the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/config/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Config&lt;/a&gt;&lt;/span&gt; managed rule &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/config/latest/developerguide/restricted-ssh.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;INCOMING_SSH_DISABLED&lt;/a&gt;&lt;/span&gt; to detect overly permissive rules. You can also use a combination of &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/eventbridge/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EventBridge&lt;/a&gt;&lt;/span&gt; and Lambda to either send a notification to your security team for the non-compliant configuration or to restrict the security group through an automation. For more information, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-to-automatically-revert-and-receive-notifications-about-changes-to-your-amazon-vpc-security-groups/" target="_blank" rel="noopener" data-cms-ai="0"&gt;How to Automatically Revert and Receive Notifications About Changes to Your Amazon VPC Security Groups&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Scenario 2: Prevent creation of Lambda functions with more than 512 MB of memory allocated&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Following the same verification methodology described in Scenario 1, navigate to the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslambda.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Lambda Service Authorization Reference&lt;/a&gt;&lt;/span&gt; and examine the &lt;code class="CodeInline" style="color: #000"&gt;CreateFunction&lt;/code&gt; action’s condition keys for the &lt;code class="CodeInline" style="color: #000"&gt;function*&lt;/code&gt; resource type.&lt;/p&gt; 
  &lt;p&gt;Available condition keys for lambda:&lt;code class="CodeInline" style="color: #000"&gt;CreateFunction&lt;/code&gt; with the &lt;code class="CodeInline" style="color: #000"&gt;function*&lt;/code&gt; resource type include:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cc2294-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;lambda:CodeSigningConfigArn&lt;/code&gt;: Filters access by the ARN of the code signing&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;configuration-lambda:Layer&lt;/code&gt;: Filters access by the ARN of a version of an AWS Lambda layer&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;lambda:VpcIds&lt;/code&gt;: Filters access by the ID of the VPC configured for the Lambda function&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;There is no condition key for memory allocation (&lt;code class="CodeInline" style="color: #000"&gt;MemorySize&lt;/code&gt; parameter), timeout settings, storage configuration (&lt;code class="CodeInline" style="color: #000"&gt;EphemeralStorage&lt;/code&gt;), or runtime selection. Because memory allocation isn’t exposed in the authorization context, IAM policies can’t restrict this parameter.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cc2295-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;Use a policy-as-code (PaC) approach with &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudFormation Hooks&lt;/a&gt;&lt;/span&gt;. For more information, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/infrastructure-and-automation/a-practical-guide-to-getting-started-with-policy-as-code/" target="_blank" rel="noopener" data-cms-ai="0"&gt;A practical guide to getting started with policy as code&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;Use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Service Catalog&lt;/a&gt;&lt;/span&gt; to provide pre-approved Lambda configurations.&lt;/li&gt; 
   &lt;li&gt;Use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/config/latest/developerguide/lambda-function-settings-check.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;LAMBDA_FUNCTION_SETTINGS_CHECK&lt;/a&gt;&lt;/span&gt; to apply an AWS Config rule to detect non-compliant functions.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Key takeaways&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Keep these principles in mind when working with IAM policies:&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cc49a0-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;Policies control what’s in the authorization context, not all elements you see in API documentation&lt;/li&gt; 
   &lt;li&gt;The Service Authorization Reference is authoritative; if something isn’t listed as a condition key, you can’t control it with policies&lt;/li&gt; 
   &lt;li&gt;Different actions have different available contexts even within the same service&lt;/li&gt; 
   &lt;li&gt;Alternative approaches exist. AWS Config, EventBridge, and service-specific controls can be used to achieve your goals when policies alone can’t&lt;/li&gt; 
   &lt;li&gt;Layered security is essential; combine preventive, detective, and responsive controls to help ensure that your data is secure&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;In this post, you learned how to use the AWS Service Authorization Reference to determine what’s achievable with IAM policies and recognize scenarios that require alternative solutions. By understanding that policies can only make decisions based on information available in the authorization context, you can build more effective security controls and avoid spending time on approaches that won’t work. &lt;/p&gt; 
  &lt;p&gt;The Service Authorization Reference is your authoritative source for understanding policy capabilities. When you need to implement a control, start there to see if the required condition keys exist. If they don’t, you will need to layer in detective or responsive controls using services like AWS Config, Amazon EventBridge, or AWS Lambda. &lt;/p&gt; 
  &lt;p&gt;Remember that effective AWS security isn’t about finding one perfect control, it’s about combining preventive, detective, and responsive measures to create defense in depth. IAM policies are powerful tools for prevention and work as part of a comprehensive security strategy.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Next steps:&lt;/b&gt;&lt;/p&gt; 
  &lt;ul class="rte2-style-ul" id="rte-31cc49a1-3cf2-11f1-a752-e7f762a62896"&gt; 
   &lt;li&gt;Explore &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html" rel="noopener" target="_blank"&gt;IAM policy simulator&lt;/a&gt; to test and troubleshoot your policies&lt;/li&gt; 
   &lt;li&gt;Read &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/iam-policy-types-how-and-when-to-use-them" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM policy types: How and when to use them&lt;/a&gt;&lt;/span&gt; to understand when to use different policy types&lt;/li&gt; 
   &lt;li&gt;Watch the video on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/video/watch/625f28e7a2e/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Understanding AWS IAM Policy Language: Elements, Evaluation, and Best Practices&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the Comments section below.&lt;/p&gt; 
  &lt;hr&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2025/01/09/Anshu-Bathla.jpg" alt="Author" width="120" height="160" class="aligncenter size-full wp-image-22385"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Anshu Bathla&lt;/h3&gt; 
  &lt;p&gt;Anshu is a Senior Lead Consultant – SRC at AWS, based in Gurugram, India. He works with customers across diverse verticals to help strengthen their security infrastructure and achieve their security goals. Outside of work, Anshu enjoys reading books and gardening at his home garden.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/20/Prafful-Gupta-author.jpg" alt="Author" width="120" height="160" class="aligncenter size-full wp-image-22385"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Prafful Gupta&lt;/h3&gt; 
  &lt;p&gt;Prafful is an Associate Delivery Consultant at AWS, based in Gurugram, India. Having started his professional journey with Amazon, he specializes in DevOps and Generative AI solutions, helping customers navigate their cloud transformation journeys. Beyond work, he enjoys networking with fellow professionals and spending quality time with family.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Protecting your secrets from tomorrow’s quantum risks</title>
		<link>https://aws.amazon.com/blogs/security/protecting-your-secrets-from-tomorrows-quantum-risks/</link>
					
		
		<dc:creator><![CDATA[Stéphanie Mbappe]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 18:53:29 +0000</pubDate>
				<category><![CDATA[AWS Secrets Manager]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[post-quantum cryptography]]></category>
		<category><![CDATA[security best practices]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">015fed358a32234368971ba158ba415ac243d3fb</guid>

					<description>As outlined in the AWS post-quantum cryptography (PQC) migration plan, addressing the risk of harvest now, decrypt later (HNDL) attack is an important part of your post-quantum plan. Upgrading the client-side of your workloads to support quantum-resistant confidentiality is an important aspect of your side of the PQC shared responsibility model. Timelines to plan and […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;As outlined in the AWS post-quantum cryptography (PQC) &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/aws-post-quantum-cryptography-migration-plan/" target="_blank" rel="noopener" data-cms-ai="0"&gt;migration plan&lt;/a&gt;&lt;/span&gt;, addressing the risk of &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/post-quantum-cryptography/migrating-to-post-quantum-cryptography/" target="_blank" rel="noopener" data-cms-ai="0"&gt;harvest now, decrypt later&lt;/a&gt;&lt;/span&gt; (HNDL) attack is an important part of your post-quantum plan. Upgrading the client-side of your workloads to support quantum-resistant confidentiality is an important aspect of your side of the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/post-quantum-cryptography/migrating-to-post-quantum-cryptography/" target="_blank" rel="noopener" data-cms-ai="0"&gt;PQC shared responsibility model&lt;/a&gt;&lt;/span&gt;. Timelines to plan and execute your PQC upgrades vary by region and by industry and will depend on your own business risk profile. To learn more, see the AWS &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/post-quantum-cryptography/migrating-to-post-quantum-cryptography/#general--tf3apt" target="_blank" rel="noopener" data-cms-ai="0"&gt;PQC frequently asked questions&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/secrets-manager/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Secrets Manager&lt;/a&gt;&lt;/span&gt; uses SSL/TLS to communicate with AWS resources, currently supporting TLS 1.2 and 1.3 in all AWS Regions. The service supports using TLS 1.3 with hybrid post-quantum key exchange for clients that support this capability. The &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;hybrid post-quantum&lt;/a&gt;&lt;/span&gt; approach establishes TLS connections by combining traditional cryptography (such as X25519) with post-quantum algorithms (ML-KEM), and helps to protect your secrets against both current classical attacks and future quantum computer threats. Regardless of how your workload accesses Secrets Manager, this client-side software upgrade is the only action you need to take to address risk to secrets from HNDL. Your secrets at rest are already encrypted using keys managed by &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/kms" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Key Management Service (AWS KMS)&lt;/a&gt;&lt;/span&gt;. Properly implemented symmetric encryption is considered quantum-resistant; asymmetric cryptography faces quantum threats. To learn more, watch &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.youtube.com/watch?v=SG9ndQWH8S4" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS re:Inforce 2025 – Post-Quantum Cryptography Demystified&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;To reduce builder effort for client-side upgrades, we’re pleased to announce the following &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/secrets-manager/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Secrets Manager&lt;/a&gt;&lt;/span&gt; clients now enable and prefer post-quantum TLS when initiating connections to Secrets Manager: &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/secrets-manager-agent.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Secrets Manager Agent&lt;/a&gt;&lt;/span&gt; (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/aws-secretsmanager-agent/releases/tag/v2.0.0" target="_blank" rel="noopener" data-cms-ai="0"&gt;v2.0.0&lt;/a&gt;&lt;/span&gt; or later), the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/lambda/latest/dg/with-secrets-manager.html#lambda-secrets-manager-extension-approach" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Lambda extension&lt;/a&gt;&lt;/span&gt; (v19 or later) and the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/secrets-store-csi-driver-provider-aws" target="_blank" rel="noopener" data-cms-ai="0"&gt;Secrets Manager CSI Driver&lt;/a&gt;&lt;/span&gt; (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/secrets-store-csi-driver-provider-aws/releases/tag/secrets-store-csi-driver-provider-aws-2.0.0" target="_blank" rel="noopener" data-cms-ai="0"&gt;v2.0.0&lt;/a&gt;&lt;/span&gt; or later). For SDK-based clients, hybrid post-quantum key exchange is available in supported AWS SDKs. Enablement requirements vary by language, version, and operating system. See the following table for your SDK client.&lt;/p&gt; 
  &lt;p&gt;This launch is part of the ongoing commitment AWS has made to migrate systems to post-quantum cryptography and making it straightforward for our customers to do the same. See &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/post-quantum-cryptography/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Post-Quantum Cryptography&lt;/a&gt;&lt;/span&gt; to learn more.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Client hybrid post-quantum key exchange requirements&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The following table summarizes the behavior for each client. When the client is upgraded to support hybrid post-quantum key exchange, the Secrets Manager service endpoint automatically selects it during the TLS handshake. Upgrading to the versions listed in the table is the only action you need to take for your workload to begin using hybrid post-quantum key exchange when calling Secrets Manager APIs.&lt;/p&gt; 
  &lt;table style="border-collapse: separate;text-indent: initial;border-spacing: 2px;border-color: gray;width: 100%" border="1px" cellpadding="10px"&gt; 
   &lt;tbody&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;Client&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;Requirements&lt;/b&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/secrets-manager-agent.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Secrets Manager Agent&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Hybrid PQ key exchange in TLS preferred by default (&lt;a href="https://github.com/aws/aws-secretsmanager-agent/releases/tag/v2.0.0" rel="noopener" target="_blank"&gt;v2.0.0 and later&lt;/a&gt;)&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/lambda/latest/dg/with-secrets-manager.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Lambda extension&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Hybrid PQ key exchange in TLS preferred by default (Version 19 and later)&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/secrets-store-csi-driver-provider-aws" target="_blank" rel="noopener" data-cms-ai="0"&gt;Secrets Manager CSI Driver&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Hybrid PQ key exchange in TLS preferred by default (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/secrets-store-csi-driver-provider-aws/releases/tag/secrets-store-csi-driver-provider-aws-2.0.0" target="_blank" rel="noopener" data-cms-ai="0"&gt;v2.0.0&lt;/a&gt;&lt;/span&gt; and later)&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sdk-for-rust/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS SDK for Rust&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Hybrid PQ key exchange in TLS preferred by default (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html#pq-tls-open-ssl:~:text=underlying%20system%20libraries.-,AWS%20SDK%20for%20Rust,-The%20AWS%20SDK" target="_blank" rel="noopener" data-cms-ai="0"&gt;releases after August 29, 2025&lt;/a&gt;&lt;/span&gt;)&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sdk-for-go/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS SDK for Go&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Hybrid PQ key exchange in TLS preferred by default (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html#pq-tls-open-ssl:~:text=system%2Dlevel%20support.-,AWS%20SDK%20for%20Go,-The%20AWS%20SDK" target="_blank" rel="noopener" data-cms-ai="0"&gt;Go v1.24 and later&lt;/a&gt;&lt;/span&gt;)&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sdk-for-javascript/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS SDK for Node.js&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Hybrid PQ key exchange in TLS preferred by default (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html#pq-tls-open-ssl:~:text=140%20for%20Android.-,AWS%20SDK%20for%20Node.js,-As%20of%20Node" target="_blank" rel="noopener" data-cms-ai="0"&gt;Node.js v22.20 and v24.9.0 and later&lt;/a&gt;&lt;/span&gt;)&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sdk-for-kotlin/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS SDK for Kotlin&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Hybrid PQ key exchange in TLS preferred by default on Linux &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html#pq-tls-open-ssl:~:text=and%20subsequent%20versions.-,AWS%20SDK%20for%20Kotlin,-The%20Kotlin%20SDK" target="_blank" rel="noopener" data-cms-ai="0"&gt;(v1.5.78 and later)&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sdk-for-python/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS SDK for Python&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;The AWS SDK for Python (boto3) uses the OS-provided OpenSSL for TLS.&lt;br&gt; Hybrid PQ key exchange in TLS requires running on a system with &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html#pq-tls-open-ssl:~:text=OpenSSL%203.5%20installed.-,AWS%20SDK%20for%20Python%20(Boto3),-The%20AWS%20SDK" target="_blank" rel="noopener" data-cms-ai="0"&gt;OpenSSL 3.5 or later installed&lt;/a&gt;&lt;/span&gt;.&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS SDK for Java v2&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/payment-cryptography/latest/userguide/pqtls-details.html#pq-tls-open-ssl:~:text=ON%20%5C%0A%20%20%20%20%2DDUSE_OPENSSL%3DOFF%20%5C-,AWS%20SDK%20for%20Java,-As%20of%20v2" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS SDK for Java&lt;/a&gt;&lt;/span&gt; v2 requires an AWS CRT HTTP client that supports PQ TLS when configured using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtHttpClient.Builder.html#postQuantumTlsEnabled(java.lang.Boolean)" target="_blank" rel="noopener" data-cms-ai="0"&gt;postQuantumTlsEnabled&lt;/a&gt;&lt;/span&gt;.&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Secrets Manager caching clients&lt;/a&gt;&lt;/span&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;The Secrets Manager caching libraries are built on the AWS SDKs and inherit their TLS behavior. Note for Java: The &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/aws-secretsmanager-jdbc#:~:text=Enable%20Post%2DQuantum%20TLS%20(PQTLS)%20by%20setting%20the%20following%20in%20the%20secretsmanager.properties%20file%3A" target="_blank" rel="noopener" data-cms-ai="0"&gt;JDBC driver flag&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/aws-secretsmanager-caching-java?tab=readme-ov-file#enabling-post-quantum-tls" target="_blank" rel="noopener" data-cms-ai="0"&gt;Java Caching flag&lt;/a&gt;&lt;/span&gt; must be set to enable Hybrid PQ key exchange in TLS.&lt;/td&gt; 
    &lt;/tr&gt; 
   &lt;/tbody&gt; 
  &lt;/table&gt; 
  &lt;p&gt;If you’re using the Secrets Manager Agent, the Lambda extension, or the CSI Driver, upgrade to the listed version to use hybrid post-quantum key exchange in TLS as the default. Customers using the AWS SDK for Rust, Go, or Node.js at the versions listed in the table are already upgraded and no additional action is required. The SDK will select the hybrid post-quantum key exchange for API calls. For customers using the AWS SDK for Python, hybrid post-quantum key exchange in TLS requires OpenSSL 3.5 or later to be present on the host system. Guidance on verifying and enabling this is available in the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/de_de/secretsmanager/latest/userguide/intro.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Secrets Manager documentation&lt;/a&gt;&lt;/span&gt;. For customers using the AWS SDK for Java v2, hybrid post-quantum key exchange in TLS requires using the AWS CRT HTTP client. The &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/crt/AwsCrtHttpClient.Builder.html#postQuantumTlsEnabled(java.lang.Boolean)" target="_blank" rel="noopener" data-cms-ai="0"&gt;postQuantumTlsEnabled(true)&lt;/a&gt;&lt;/span&gt; must be set on the CRT client to enable hybrid post-quantum key exchange in TLS.&lt;/p&gt; 
  &lt;p&gt;After your client versions meet the requirements listed in the table, you can verify that your connections are actively using hybrid post-quantum key exchange.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;How to verify your connection uses hybrid post-quantum key exchange&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;With hybrid post-quantum key exchange using ML-KEM now enabled by default for Secrets Manager clients (see the preceding table), most customers will not need ongoing monitoring to verify correct behavior or detect regressions. However, security teams and compliance officers might want to confirm that their Secrets Manager API calls are negotiating the hybrid key exchange. On the server side, you can confirm hybrid post-quantum key exchange in TLS by using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail&lt;/a&gt;&lt;/span&gt;. On the client side, you can inspect TLS handshake details using a utility like Wireshark or by using developer tools built into major web browsers.&lt;/p&gt; 
  &lt;p&gt;Verification is a two-step process: first, fetch a secret using your Secrets Manager client to generate a &lt;code class="CodeInline" style="color: #000"&gt;GetSecretValue&lt;/code&gt; API call, then confirm in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudtrail" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail&lt;/a&gt;&lt;/span&gt; that the call negotiated hybrid post-quantum key exchange.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Fetch your secret using your Secrets Manager client&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The following examples show how to retrieve your secret using the Secrets Manager Agent, Lambda extension, and CSI Driver—each of which will automatically negotiate hybrid post-quantum key exchange when calling the &lt;code class="CodeInline" style="color: #000"&gt;GetSecretValue&lt;/code&gt; API.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;To verify hybrid post-quantum TLS with Secrets Manager Agent on EC2 instance:&lt;/b&gt;&lt;br&gt; Install the agent on your &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ec2" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Compute Cloud (Amazon EC2)&lt;/a&gt;&lt;/span&gt; instance and use it as a client to fetch your secret.&lt;/p&gt; 
  &lt;ol id="rte-1d7ba2b1-3835-11f1-bc8a-c599d2e4deff" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Follow the instructions for &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/aws-secretsmanager-agent?tab=readme-ov-file#aws-secrets-manager-agent" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Secrets Manager Agent&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;Ensure that your EC2 instance profile has the permission for &lt;code class="CodeInline" style="color: #000"&gt;secretsmanager:GetSecretValue&lt;/code&gt; to fetch the secret.&lt;/li&gt; 
   &lt;li&gt;Connect to your &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;private EC2 instance&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;Install the agent on your EC2 instance.&lt;/li&gt; 
   &lt;li&gt;Use the agent to &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-to-use-the-aws-secrets-manager-agent/#:~:text=user%20/tmp/awssmatoken-,Retrieve%20the%20secret,-Now%20you%20can" target="_blank" rel="noopener" data-cms-ai="0"&gt;fetch your secret&lt;/a&gt;&lt;/span&gt;.&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;curl -H “X-Aws-Parameters-Secrets-Token: $(&amp;lt;/tmp/awssmatoken)” localhost:2773/secretsmanager/get?secretId=&amp;lt;YOUR-SECRET-ARN&amp;gt;&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;Wait for about 5 minutes for CloudTrail to deliver the logs.&lt;/li&gt; 
   &lt;li&gt;Go to the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudTrail event history&lt;/a&gt;&lt;/span&gt; and search for the event &lt;code class="CodeInline" style="color: #000"&gt;GetSecretValue&lt;/code&gt;.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;&lt;b&gt;To verify hybrid post-quantum TLS with Lambda extension:&lt;/b&gt;&lt;br&gt; Use the AWS parameters and Secrets Manager Lambda extension to create a Lambda function that will consume your secrets from Secrets Manager using direct API calls.&lt;/p&gt; 
  &lt;ol id="rte-eb502f31-39c4-11f1-a717-1b983d02678f" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Follow &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/lambda/latest/dg/with-secrets-manager.html#lambda-secrets-manager-extension-approach" target="_blank" rel="noopener" data-cms-ai="0"&gt;Using the AWS parameters and secrets Lambda extension&lt;/a&gt;&lt;/span&gt; to create the Lambda layer and the Lambda function.&lt;/li&gt; 
   &lt;li&gt;Select the latest extension version.&lt;/li&gt; 
   &lt;li&gt;Wait for about 5 minutes for CloudTrail to deliver the logs.&lt;/li&gt; 
   &lt;li&gt;Go to the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudTrail event history&lt;/a&gt;&lt;/span&gt; and search for the event &lt;code class="CodeInline" style="color: #000"&gt;GetSecretValue&lt;/code&gt;.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;&lt;b&gt;To verify hybrid post-quantum TLS with CSI driver on Amazon EKS:&lt;/b&gt;&lt;br&gt; On your &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/eks" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Kubernetes Service (Amazon EKS)&lt;/a&gt;&lt;/span&gt; cluster, use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-to-use-the-secrets-store-csi-driver-provider-amazon-eks-add-on-with-secrets-manager/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Secrets Store CSI Driver provider to fetch secrets from Secrets Manager&lt;/a&gt;&lt;/span&gt; in Kubernetes pods:&lt;/p&gt; 
  &lt;ol id="rte-41b42991-383e-11f1-b7d0-73ebda3131ce" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Confirm the installed add-on version is 2.0.0 or later.&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;eksctl get addon --cluster &amp;lt;CLUSTER-NAME&amp;gt; --name aws-secrets-store-csi-driver-provider&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;Trigger a secret retrieval by restarting a pod that mounts a secret, or deploying a new one.&lt;/li&gt; 
   &lt;li&gt;Wait for about 5 minutes for CloudTrail to deliver the logs.&lt;/li&gt; 
   &lt;li&gt;Go to the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudTrail event history&lt;/a&gt;&lt;/span&gt; and search for the event &lt;code class="CodeInline" style="color: #000"&gt;GetSecretValue&lt;/code&gt;.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Confirm hybrid post-quantum key exchange using CloudTrail&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudTrail logs&lt;/a&gt;&lt;/span&gt; include a &lt;code class="CodeInline" style="color: #000"&gt;tlsDetails&lt;/code&gt; field for Secrets Manager API calls. When hybrid post-quantum key exchange in TLS is active, the &lt;code class="CodeInline" style="color: #000"&gt;keyExchange&lt;/code&gt; field in &lt;code class="CodeInline" style="color: #000"&gt;tlsDetails&lt;/code&gt; will show &lt;code class="CodeInline" style="color: #000"&gt;X25519MLKEM768&lt;/code&gt;. Each CloudTrail record includes a &lt;code class="CodeInline" style="color: #000"&gt;tlsDetails&lt;/code&gt; field that contains the cipher suite and, where available, the key exchange group negotiated during the TLS handshake.&lt;/p&gt; 
  &lt;p&gt;You can work with &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudTrail event history&lt;/a&gt;&lt;/span&gt; using the AWS Management Console for CloudTrail or the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cli" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Command Line Interface (AWS CLI)&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;To look up CloudTrail events using the console:&lt;/b&gt;&lt;/p&gt; 
  &lt;ol id="rte-1d7bc9b8-3835-11f1-bc8a-c599d2e4deff" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Verify you are in the correct AWS Region.&lt;/li&gt; 
   &lt;li&gt;Open the CloudTrail console and select &lt;b&gt;Event History&lt;/b&gt;.&lt;/li&gt; 
   &lt;li&gt;Under &lt;b&gt;Lookup attributes&lt;/b&gt; filter, select &lt;b&gt;Event name&lt;/b&gt; and &lt;b&gt;GetSecretValue&lt;/b&gt;.&lt;br&gt; 
    &lt;div id="attachment_41893" style="width: 946px" class="wp-caption aligncenter"&gt;
     &lt;img aria-describedby="caption-attachment-41893" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Figure1-5.png" alt="Figure 1: Search CloudTrail event history by event name" width="936" height="294" class="size-full wp-image-41893"&gt;
     &lt;p id="caption-attachment-41893" class="wp-caption-text"&gt;Figure 1: Search CloudTrail event history by event name&lt;/p&gt;
    &lt;/div&gt; &lt;/li&gt; 
   &lt;li&gt;Select your event.&lt;br&gt; 
    &lt;div id="attachment_41889" style="width: 946px" class="wp-caption aligncenter"&gt;
     &lt;img aria-describedby="caption-attachment-41889" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Figure2-2.png" alt="Figure 2: Select the event" width="936" height="242" class="size-full wp-image-41889"&gt;
     &lt;p id="caption-attachment-41889" class="wp-caption-text"&gt;Figure 2: Select the event&lt;/p&gt;
    &lt;/div&gt; &lt;/li&gt; 
   &lt;li&gt;View the output in the &lt;b&gt;Event Record&lt;/b&gt; section of the page.&lt;br&gt; 
    &lt;div id="attachment_41890" style="width: 883px" class="wp-caption aligncenter"&gt;
     &lt;img aria-describedby="caption-attachment-41890" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/Figure3-3.png" alt="Figure 3: CloudTrail - GetSecretValue event" width="873" height="500" class="size-full wp-image-41890"&gt;
     &lt;p id="caption-attachment-41890" class="wp-caption-text"&gt;Figure 3: CloudTrail – GetSecretValue event&lt;/p&gt;
    &lt;/div&gt; &lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;&lt;b&gt;To look up CloudTrail events using AWS CLI :&lt;/b&gt;&lt;br&gt; Using AWS CLI, select the last events and look at the output.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=GetSecretValue \
--max-results 5 \
--region &amp;lt;YOUR-REGION&amp;gt; \
--query 'Events[0].CloudTrailEvent' \
--output text&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;&lt;b&gt;Example of CloudTrail Event for GetSecretValue API call:&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;In the following example, the &lt;code class="CodeInline" style="color: #000"&gt;userAgent&lt;/code&gt; field reflects what it used as a client to connect to Secrets Manager.&lt;/p&gt; 
  &lt;blockquote&gt;
   &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: The &lt;code class="CodeInline" style="color: #000"&gt;userAgent&lt;/code&gt; value depends on the client you use.&lt;/p&gt;
  &lt;/blockquote&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROA123456789EXAMPLE:i-0c1a23fc456b7ab89",
        "arn": "arn:aws:sts::111122223333:assumed-role/YOUR-EC2-INSTANCE-PROFILE/i-0c1a23fc456b7ab89",
        "accountId": "111122223333",
        "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROA123456789EXAMPLE",
                "arn": "arn:aws:iam::111122223333:role/YOUR-EC2-INSTANCE-PROFILE",
                "accountId": "111122223333",
                "userName": "YOUR-EC2-INSTANCE-PROFILE"
            },
            "attributes": {
                "creationDate": "2026-03-27T17:08:37Z",
                "mfaAuthenticated": "false"
            },
            "ec2RoleDelivery": "2.0"
        },
        "inScopeOf": {
            "issuerType": "AWS::EC2::Instance",
            "credentialsIssuedTo": "arn:aws:ec2:eu-west-2:111122223333:instance/i-0c1a23fc456b7ab89"
        }
    },
    "eventTime": "2026-03-27T17:12:54Z",
    "eventSource": "secretsmanager.amazonaws.com",
    "eventName": "GetSecretValue",
    "awsRegion": "eu-west-2",
    "sourceIPAddress": "1.2.3.4",
    "userAgent": "aws-sdk-rust/1.3.14 os/linux lang/rust/1.94.1 aws-secrets-manager-agent/2.0.0",
    "requestParameters": {
        "secretId": "arn:aws:secretsmanager:eu-west-2:111122223333:secret:your-secret"
    },
    "responseElements": null,
    "requestID": "027507ea-f377-43d9-bf2f-646d4dc19223",
    "eventID": "f9c3ed0f-81f5-450b-a561-2b9e54fa9e73",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::SecretsManager::Secret",
            "ARN": "arn:aws:secretsmanager:eu-west-2:111122223333:secret:your-secret"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management",
    "tlsDetails": {
        "tlsVersion": "TLSv1.3",
        "cipherSuite": "TLS_AES_128_GCM_SHA256",
        "clientProvidedHostHeader": "secretsmanager.eu-west-2.amazonaws.com",
        "keyExchange": "X25519MLKEM768"
    }
}

&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;If the &lt;code class="CodeInline" style="color: #000"&gt;keyExchange&lt;/code&gt; field shows &lt;code class="CodeInline" style="color: #000"&gt;X25519MLKEM768&lt;/code&gt;, then hybrid post-quantum key exchange in TLS is active. If it shows a traditional algorithm such as &lt;code class="CodeInline" style="color: #000"&gt;X25519&lt;/code&gt;, the client is not advertising ML-KEM support, and you should check the client version and configuration.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Troubleshooting&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;If your Secrets Manager API calls aren’t negotiating &lt;code class="CodeInline" style="color: #000"&gt;X25519MLKEM768&lt;/code&gt; after updating your clients, check your SDK version, OpenSSL version (Python), and firewall or proxy configuration as shown in the &lt;b&gt;Client Hybrid Post-Quantum Key Exchange Requirements&lt;/b&gt; section near the beginning of this post.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;What’s next&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;This launch is one step in a broader migration. AWS is continuing to roll out ML-KEM support across AWS service HTTPS endpoints as part of Workstream 2 of the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/aws-post-quantum-cryptography-migration-plan/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS PQC Migration Plan&lt;/a&gt;&lt;/span&gt;, with a target of full coverage across public AWS endpoints.&lt;/p&gt; 
  &lt;p&gt;Support for CRYSTALS-Kyber, the pre-standardization predecessor to ML-KEM, is phasing out across AWS endpoints in 2026. Customers on older SDK versions that advertise only CRYSTALS-Kyber support will fall back gracefully to traditional TLS rather than negotiate the deprecated algorithm. To avoid this fallback, upgrade to the SDK versions listed in this post.&lt;/p&gt; 
  &lt;p&gt;The journey of PQC migration extends beyond confidentiality of data in transit. To stay informed about the latest developments in the AWS PQC journey and your side of shared responsibility, follow the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security/post-quantum-cryptography/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Post-Quantum Cryptography&lt;/a&gt;&lt;/span&gt; page.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;AWS Secrets Manager now enables hybrid post-quantum key exchange using ML-KEM by default to help protect your secrets and support your compliance efforts. This update requires no code changes or configuration updates for customers using the latest client versions.&lt;/p&gt; 
  &lt;p&gt;This post covered how AWS Secrets Manager uses hybrid post-quantum cryptography to secure TLS connections, which clients support this capability, and how to verify that your connections are protected against harvest now, decrypt later attacks.&lt;/p&gt; 
  &lt;p&gt;To benefit from this announcement today:&lt;/p&gt; 
  &lt;ul id="rte-1d7bf0c3-3835-11f1-bc8a-c599d2e4deff" class="rte2-style-ul"&gt; 
   &lt;li&gt;Upgrade your Secrets Manager client (Agent, Lambda extension, or CSI Driver) to the latest available versions to enable hybrid post-quantum key exchange using ML-KEM&lt;/li&gt; 
   &lt;li&gt;If your workload uses the AWS SDK instead of a caching client, upgrade your AWS SDK and underlying dependencies to the minimum versions listed in this post&lt;/li&gt; 
   &lt;li&gt;Verify hybrid post-quantum key exchange in TLS is active by checking the &lt;code class="CodeInline" style="color: #000"&gt;keyExchange&lt;/code&gt; field in CloudTrail &lt;code class="CodeInline" style="color: #000"&gt;tlsDetails&lt;/code&gt; for your Secrets Manager API calls&lt;/li&gt; 
   &lt;li&gt;Test end-to-end hybrid post-quantum key exchange TLS connectivity in your environment, including network paths that traverse corporate firewalls or proxies&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;AWS will continue rolling out post-quantum cryptography support. For information about the broader migration effort, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/aws-post-quantum-cryptography-migration-plan/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS PQC Migration Plan&lt;/a&gt;&lt;/span&gt;. Keep an updated cryptographic inventory of your broader environment to identify other uses of traditional public-key cryptography that will require migration. The &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.cisa.gov/quantum" target="_blank" rel="noopener" data-cms-ai="0"&gt;CISA Quantum-Readiness guidance&lt;/a&gt;&lt;/span&gt; and the AWS PQC Migration Plan are good starting points.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Additional resources&lt;/b&gt;&lt;/p&gt; 
  &lt;ul id="rte-1d7bf0c5-3835-11f1-bc8a-c599d2e4deff" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/ml-kem-post-quantum-tls-now-supported-in-aws-kms-acm-and-secrets-manager/" target="_blank" rel="noopener" data-cms-ai="0"&gt;ML-KEM post-quantum TLS now supported in AWS KMS, ACM, and Secrets Manager&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/post-quantum-tls-in-python/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Post-quantum TLS in Python&lt;/a&gt;&lt;/span&gt;&lt;/li&gt; 
  &lt;/ul&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;If you have feedback about this post, submit comments in the &lt;strong&gt;Comments&lt;/strong&gt; section below. &lt;/p&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/22/StephMbappe_288x384.png" alt="P. Stéphanie Mbappe" width="288" height="385" class="aligncenter size-full wp-image-41878"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;P. Stéphanie Mbappe&lt;/h3&gt; 
  &lt;p&gt;Stéphanie is a Security Consultant with Amazon Web Services. She delights in assisting her customers at any step of their security journey. Stéphanie enjoys learning, designing new solutions, and sharing her knowledge with others.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt; 
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/23/TobiasNickl.jpg" alt="Tobias Nickl" width="548" height="538" class="aligncenter size-full wp-image-41877"&gt; 
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Tobias Nickl&lt;/h3&gt; 
  &lt;p&gt;Tobias is a Security Consultant at Amazon Web Services, specializing in security architecture and cloud transformation. He partners with AWS customers to design and implement security architectures that address both current and emerging threats. Through his work, he helps organizations build security strategies that evolve with their cloud maturity.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>A technical walkthrough of multicloud full-stack security using AWS Security Hub Extended</title>
		<link>https://aws.amazon.com/blogs/security/a-technical-walkthrough-of-multicloud-full-stack-security-using-aws-security-hub-extended/</link>
					
		
		<dc:creator><![CDATA[Matt Meck]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 16:31:11 +0000</pubDate>
				<category><![CDATA[AWS Security Hub]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<category><![CDATA[Partner solutions]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[Security Blog]]></category>
		<guid isPermaLink="false">7f7b92f8f251267c29761c707ce6a126feebb6b0</guid>

					<description>Building on our recent announcement of AWS Security Hub Extended —our full-stack enterprise security offering — we want to show you how we’re simplifying security procurement and operations for your multicloud environments. Whether you’re a security architect evaluating solutions or a CISO looking to streamline vendor management, this post walks through the streamlined experience that […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;Building on our recent announcement of &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/aws/aws-security-hub-extended-o%EF%AC%80ers-full-stack-enterprise-security-with-curated-partner-solutions/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub Extended&lt;/a&gt;&lt;/span&gt; —our full-stack enterprise security offering — we want to show you how we’re simplifying security procurement and operations for your multicloud environments. Whether you’re a security architect evaluating solutions or a CISO looking to streamline vendor management, this post walks through the streamlined experience that transforms how you acquire, deploy, and manage end-to-end enterprise security solutions across endpoint, identity, email, network, data, browser, cloud, AI, and security operations. Security Hub Extended brings together AWS security services with carefully curated security partners. Delivering better outcomes together through unified procurement, billing, and operations that significantly reduce vendor management overhead so you can focus on what matters most: protecting your organization.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;The challenge we’re addressing&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Security teams today spend too much time on vendor management, evaluating services, negotiating contracts, and managing multiple billing cycles instead of focusing on what matters most: managing risk. But the procurement challenge runs even deeper. Until now, customers really only had one option: sign multi-year agreements based solely on proof-of-concept testing and estimated annual usage. This forces organizations to commit budget before they can validate whether a solution will work for them at scale.&lt;/p&gt; 
  &lt;p&gt;AWS Security Hub Extended transforms this procurement model. Security Hub Extended offers customers the option to get started with pay-as-you-go pricing and no commitments, so they can move fast and validate solutions in their actual environment. After they’ve confirmed a solution works at scale, they can then align their vendor strategy and sign longer-term commitments for even more favorable pricing.&lt;/p&gt; 
  &lt;p&gt;Security Hub Extended provides a curated set of carefully chosen partner solutions with competitive pricing, unified billing through your AWS account, and seamless integration. Our initial launch partners, selected by customers for their proven value, include &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://7ai.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;7AI&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.britive.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Britive&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.crowdstrike.com/en-us/" target="_blank" rel="noopener" data-cms-ai="0"&gt;CrowdStrike&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.cyera.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Cyera&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.island.io/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Island&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://noma.security/?utm_source=google&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=brand&amp;amp;utm_content=177923075690&amp;amp;utm_term=noma%20security&amp;amp;gad_source=1&amp;amp;gad_campaignid=22804178544&amp;amp;gbraid=0AAAABAbL-6OFVMrIaMUodX8OsdkQvFwoS&amp;amp;gclid=CjwKCAjw-dfOBhAjEiwAq0RwI-POH2mDpOnmvP0sTOkAqukVj_NN44WGBndRlWeeMAgsidrorMz9MxoCevsQAvD_BwE" target="_blank" rel="noopener" data-cms-ai="0"&gt;Noma&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.okta.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Okta&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.oligo.security/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Oligo&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.opti.ai/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Opti&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.proofpoint.com/us" target="_blank" rel="noopener" data-cms-ai="0"&gt;Proofpoint&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.sailpoint.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;SailPoint&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.splunk.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Splunk&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.upwind.io/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Upwind&lt;/a&gt;&lt;/span&gt;, and&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.zscaler.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt; Zscaler.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Getting started with Security Hub Extended&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-hub/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub&lt;/a&gt;&lt;/span&gt; consolidates threat analytics from &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/guardduty/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon GuardDuty&lt;/a&gt;&lt;/span&gt;, vulnerability management from &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/inspector/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Inspector&lt;/a&gt;&lt;/span&gt;, and sensitive data discovery from &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/macie/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Macie&lt;/a&gt;&lt;/span&gt;, correlating these signals with Security Hub Exposure findings to determine overall risk, reachability, and assumability. Security Hub Extended builds on this foundation by adding curated partner solutions, extending these unified security operations across your entire organization including multicloud, on-premises, and endpoint environments. If you’re already using Security Hub, you can navigate directly to the Extended plan section.&lt;/p&gt; 
  &lt;p&gt;Getting started with Security Hub is straightforward. From the AWS Management Console, search for &lt;code class="CodeInline" style="color: #000"&gt;Security Hub&lt;/code&gt; to start the onboarding walkthrough. If you’re not already a Security Hub customer, you can quickly complete onboarding by designating an AWS organization &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-v2-set-da.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;delegated administrator (DA)&lt;/a&gt;&lt;/span&gt; account. You can then centrally enable and manage Security Hub across your entire organization’s accounts and AWS Regions from a single location (see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub-v2.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Introduction to AWS Security Hub&lt;/a&gt;&lt;/span&gt;). After you’ve onboarded, navigate to the &lt;b&gt;Extended plan&lt;/b&gt; section to add curated partner solutions.&lt;/p&gt; 
  &lt;div id="attachment_41871" style="width: 595px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41871" loading="lazy" class="size-full wp-image-41871" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/22/Figure-1-Security-Hub-centralized-configuration.png" alt="Figure 1- Security Hub centralized configuration" width="585" height="500"&gt;
   &lt;p id="caption-attachment-41871" class="wp-caption-text"&gt;Figure 1: Security Hub centralized configuration&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;From this single interface, you can enable detection and response capabilities across your entire organization, provide granular configurations at the organizational unit or member account level, select specific Regions, and turn individual features on or off as needed.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Understanding risk through attack paths&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The Security Hub risk correlation engine identifies potential exposures by correlating threats, vulnerabilities, and misconfigurations to reveal how they connect and could lead to compromise of critical resources.&lt;/p&gt; 
  &lt;div id="attachment_41870" style="width: 1613px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41870" loading="lazy" class="size-full wp-image-41870" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/22/Figure-2-Security-Hub-exposure-attack-path-visualization.png" alt="Figure 2 - Security Hub exposure attack path visualization" width="1603" height="500"&gt;
   &lt;p id="caption-attachment-41870" class="wp-caption-text"&gt;Figure 2: Security Hub exposure attack path visualization&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The attack path visualization in the preceding figure reveals critical insights including upstream root causes and blast radius, showing the potential impact if a threat actor exploits a vulnerability. You can use this visualization to focus on fixing the root cause rather than addressing symptoms. For example, updating one security group configuration can eliminate the entire attack path, cutting off all downstream exposure.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Accessing Security Hub Extended&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;You can find Security Hub Extended, shown in the following figure, in the left navigation pane under &lt;b&gt;Management&lt;/b&gt; in your Security Hub delegated administrator (DA) account; Security Hub Extended will only be visible from the delegated administrator account. The Extended plan brings curated third-party security solutions directly into the Security Hub experience. Because Extended is built into Security Hub, there’s no separate console to manage. You discover, subscribe to, and operate curated partner solutions from the same place you manage enterprise security, delivering unified operations across your entire security estate.&lt;/p&gt; 
  &lt;div id="attachment_41869" style="width: 487px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41869" loading="lazy" class="size-full wp-image-41869" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/22/Figure-3-Security-Hub-Extended-partners.png" alt="Figure 3- Security Hub Extended partners" width="477" height="500"&gt;
   &lt;p id="caption-attachment-41869" class="wp-caption-text"&gt;Figure 3: Security Hub Extended partners&lt;/p&gt;
  &lt;/div&gt; 
  &lt;hr&gt; 
  &lt;p&gt; &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.youtube.com/embed/ysrsXdi9cDY?si=EEq0X9CsUxgrIBOB" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;div id="attachment_41879" style="width: 310px" class="wp-caption aligncenter"&gt;
   &lt;a class="Link" href="https://www.youtube.com/embed/ysrsXdi9cDY?si=EEq0X9CsUxgrIBOB" target="_blank" rel="noopener" data-cms-ai="0"&gt;&lt;img aria-describedby="caption-attachment-41879" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/22/YouTube-video-embed-300x179.png" alt="AWS Security Hub Extended - Overview and Demo | Amazon Web Services" width="300" height="179" class="size-medium wp-image-41879"&gt;&lt;p id="caption-attachment-41879" class="wp-caption-text"&gt;AWS Security Hub Extended – Overview and Demo | Amazon Web Services&lt;/p&gt;&lt;/a&gt;
  &lt;/div&gt;
  &lt;p&gt;&lt;/p&gt; 
  &lt;hr&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Transparent, competitive pricing consolidated with Security Hub&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Unlike traditional third-party engagements that require lengthy negotiations, private pricing deals, and multi-year commitments, Security Hub Extended offers complete pricing transparency. Every partner solution displays clear, competitive&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-hub/pricing/" target="_blank" rel="noopener" data-cms-ai="0"&gt; monthly pay-as-you-go rates&lt;/a&gt;&lt;/span&gt; billed directly with Security Hub requiring no commitments. For example, Cloud Security from Upwind costs $3.75 per resource per month, and Identity Security from Okta costs $20 per user per month.&lt;/p&gt; 
  &lt;p&gt;All Security Hub Extended offerings are also eligible for AWS Enterprise Discount Program (EDP) discounts that will be applied automatically. If you have an existing AWS enterprise discount agreement, those discounts automatically apply to Security Hub Extended offerings, further reducing your effective costs. All partner solutions you deploy through Security Hub Extended appear on your consolidated AWS bill, no separate invoices or payment processes.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Streamlined onboarding&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Adopting curated partner solutions through Security Hub Extended is straightforward. Choose &lt;b&gt;View Product&lt;/b&gt; to initiate an automated workflow. Depending on the solution, you’ll either be directed to the partner onboarding console or provide information for the partner to guide you through their onboarding process tailored to your environment.&lt;/p&gt; 
  &lt;p&gt;Billing begins only after you’re fully activated on the partner solution and starts automatically, no additional action is required to benefit from the unified billing. If you’re already using one of the curated partner solutions, transitioning to Security Hub Extended for consolidated billing and flexible pricing won’t disrupt your current services. Now, instead of receiving separate invoices for each partner in addition to Amazon Inspector, GuardDuty, and Security Hub CSPM you get one unified bill through Security Hub. This consolidates visibility to support better understanding of spend and to manage cost.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Unified operations&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Security Hub Extended unifies security operations by consolidating findings from AWS and curated partner solutions. All findings use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://ocsf.io/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Open Cybersecurity Schema Framework&lt;/a&gt;&lt;/span&gt; (OCSF) for consistency, without the need for complex data normalization, transformation, and extract, transform, and load (ETL) processes.&lt;/p&gt; 
  &lt;p&gt;When you deploy solutions such as CrowdStrike, Noma, and Upwind alongside Splunk and 7AI through Security Hub Extended, security findings automatically flow into Security Hub and then seamlessly route to Splunk and 7AI. All in OCSF format so your security team can focus on responding to threats, not managing pipelines, so you can quickly identify and respond to security risks that span boundaries—from endpoint compromises to cloud infrastructure—without spending valuable time on manual integration work.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;The full-stack security vision&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Security Hub Extended represents a shift in how you discover, procure, and build comprehensive security programs. Instead of managing dozens of vendor relationships, negotiating separate contracts, agreeing to multi-year annual commitments, and integrating disparate tools, you now have one procurement process through AWS, one bill with transparent competitive pay-as-you-go pricing, one console for unified security operations, one support channel for AWS Enterprise Support customers, and one schema (OCSF) for all security findings. The result: reduced security risk, improved team productivity, and a more unified approach to security operations across your enterprise.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Get started&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Try &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-hub/?trk=d8ec3b19-0f37-4f8c-8c12-189f913e205c&amp;amp;sc_channel=el" target="_blank" rel="noopener" data-cms-ai="0"&gt;Security Hub Extended&lt;/a&gt;&lt;/span&gt; today and experience how simplified procurement and unified operations can transform your security program. Security Hub Extended is generally available globally in all AWS commercial Regions where Security Hub is available. We’ve also published a &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://www.youtube.com/watch?v=ysrsXdi9cDY" target="_blank" rel="noopener" data-cms-ai="0"&gt;walk through video&lt;/a&gt;&lt;/span&gt; to further explain how Security Hub Extended works.&lt;/p&gt; 
  &lt;p&gt;It’s still Day 1, but we’re iterating fast, so share your feedback with us on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://repost.aws/topics/TAEEfW2o7QS4SOLeZqACq9jA/security-identity-compliance" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS re:Post&lt;/a&gt;&lt;/span&gt; for Security Hub or through your AWS Support contacts and watch for future blog posts on our progress.&lt;/p&gt; 
  &lt;hr&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt;
   &lt;img loading="lazy" class="aligncenter size-full wp-image-22385" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/22/Matt-meck-author-2026.jpg" alt="Matt Meck" width="120" height="160"&gt;
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Matt Meck&lt;/h3&gt; 
  &lt;p&gt;Matt is a Worldwide Security Specialist at Amazon Web Services, based in New York, with 10 years of experience in the tech industry. For the past 4 years at AWS, he’s focused on Detection and Response, helping solve complex security challenges in the rapidly evolving security space. He works closely with product teams, customers, partners, and field teams to deliver effective security solutions.&lt;/p&gt; 
  &lt;p&gt;&amp;nbsp;&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt;
   &lt;img loading="lazy" class="aligncenter size-full wp-image-22385" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/22/michael-fuller-author.jpg" alt="Michael Fuller" width="120" height="160"&gt;
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Michael Fuller&lt;/h3&gt; 
  &lt;p&gt;Michael has been with AWS for 16 years and led product for AWS Security Services for 11 years. Michael has 29 years in the industry and held several roles in product management, business development, and software development for IBM, Cisco, and Amazon. Michael has a Bachelor’s of Science in Computer Engineering from the University of Arizona and an MBA from the University of Washington.&lt;/p&gt; 
  &lt;p&gt;&amp;nbsp;&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Winter 2025 SOC 1 report is now available with 184 services in scope</title>
		<link>https://aws.amazon.com/blogs/security/winter-2025-soc-1-report-is-now-available-with-184-services-in-scope/</link>
					
		
		<dc:creator><![CDATA[Tushar Jain]]></dc:creator>
		<pubDate>Wed, 22 Apr 2026 00:12:21 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Foundational (100)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[AWS SOC Reports]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[Security Blog]]></category>
		<category><![CDATA[SOC]]></category>
		<guid isPermaLink="false">d3f76bf75ced147370f792723f36ce544e85f77d</guid>

					<description>Amazon Web Services (AWS) is pleased to announce that the Winter 2025 System and Organization Controls (SOC) 1 report is now available. The report covers 184 services over the 12-month period from January 1, 2025 – December 31, 2025, giving customers a full year of assurance. This report demonstrates our continuous commitment to adhering to […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Web Services (AWS)&lt;/a&gt;&lt;/span&gt; is pleased to announce that the Winter 2025 System and Organization Controls (SOC) 1 report is now available. The report covers 184 services over the 12-month period from January 1, 2025 – December 31, 2025, giving customers a full year of assurance. This report demonstrates our continuous commitment to adhering to the heightened expectations of cloud service providers.&lt;/p&gt; 
  &lt;p&gt;Customers can download the Winter 2025 SOC 1 report through AWS Artifact, a self-service portal for on-demand access to AWS compliance reports. Sign in to &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://console.aws.amazon.com/artifact" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Artifact in the AWS Management Console&lt;/a&gt;&lt;/span&gt;, or learn more at &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/artifact/getting-started/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Getting Started with AWS Artifact&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;AWS strives to continuously bring services into the scope of its compliance programs to help customers meet their architectural and regulatory needs. You can view the current list of services in scope on our &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/compliance/services-in-scope/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Services in Scope page&lt;/a&gt;&lt;/span&gt;. As an AWS customer, you can reach out to your AWS account team if you have any questions or feedback about SOC compliance.&lt;/p&gt; 
  &lt;p&gt;To learn more about AWS compliance and security programs, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/compliance/programs/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Compliance Programs&lt;/a&gt;&lt;/span&gt;. As always, we value feedback and questions; reach out to the AWS Compliance team through the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://pages.awscloud.com/compliance-contact-us.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Contact Us page&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the &lt;b&gt;Comments &lt;/b&gt;section below.&lt;/p&gt; 
  &lt;p&gt;&lt;/p&gt;
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full wp-image-33350" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2025/03/21/tusajain.jpg" alt="Tushar Jain" style="margin-left: 15.625px;margin-right:30.625px;margin-top: 24px;margin-bottom: 10px;width:93.750px;height: 125px"&gt;
  &lt;p&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;span class="lb-h4"&gt;Tushar Jain&lt;/span&gt;&lt;br&gt;Tushar is a Compliance Program Manager at AWS where he leads multiple security and privacy initiatives Tushar holds a Master of Business Administration from Indian Institute of Management Shillong, India and a Bachelor of Technology in electronics and telecommunication engineering from Marathwada University, India. He has over 14 years of experience in information security and holds CISM, CCSK and CSXF certifications.&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full wp-image-33350" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2024/02/20/murphman.jpg" alt="Michael Murphy" style="margin-left: 15.625px;margin-right:30.625px;margin-top: 24px;margin-bottom: 10px;width:93.750px;height: 125px"&gt;
  &lt;p&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;span class="lb-h4"&gt;Michael Murphy&lt;/span&gt;&lt;br&gt;Michael is a Compliance Program Manager at AWS where he leads multiple security and privacy initiatives. Michael has over 14 years of experience in information security and holds a master’s degree and a bachelor’s degree in computer engineering from Stevens Institute of Technology. He also holds CISSP, CRISC, CISA, and CISM certifications.&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full wp-image-33350" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2025/09/12/atulsingpatil.atulspat.jpg" alt="Atulsing Patil" style="margin-left: 15.625px;margin-right:30.625px;margin-top: 24px;margin-bottom: 10px;width:93.750px;height: 125px"&gt;
  &lt;p&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;span class="lb-h4"&gt;Atulsing Patil&lt;/span&gt;&lt;br&gt;Atulsing is a Compliance Program Manager at AWS and has over 28 years of consulting experience in information technology and information security management. Atulsing holds a Master of Science in Electronics degree and professional certifications such as CCSP, CISSP, CISM, CDPSE, ISO 42001 Lead Auditor, ISO 27001 Lead Auditor, HITRUST CSF, Archer Certified Consultant, and AWS CCP.&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full wp-image-33350" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2022/11/16/Nathan-Samuel.jpg" alt="Nathan Samuel" style="margin-left: 15.625px;margin-right:30.625px;margin-top: 24px;margin-bottom: 10px;width:93.750px;height: 125px"&gt;
  &lt;p&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;span class="lb-h4"&gt;Nathan Samuel&lt;/span&gt;&lt;br&gt;Nathan is a Compliance Program Manager at AWS where he leads multiple security and privacy initiatives. Nathan has a Bachelor of Commerce degree from the University of the Witwatersrand, South Africa, and has over 21 years of experience in security assurance. He holds the CISA, CRISC, CGEIT, CISM, CDPSE, and Certified Internal Auditor certifications.&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full wp-image-33350" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/20/jeff-cheung-author.jpg" alt="Jeff Cheung" style="margin-left: 15.625px;margin-right:30.625px;margin-top: 24px;margin-bottom: 10px;width:93.750px;height: 125px"&gt;
  &lt;p&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;span class="lb-h4"&gt;Jeff Cheung&lt;/span&gt;&lt;br&gt;Jeff is a Compliance Program Manager at AWS where he leads multiple security and privacy initiatives across business lines. Jeff has Bachelors degrees in Information Systems, and Economics from SUNY Stony Brook, and has over 20 years of experience in information security and assurance. Jeff has held professional certifications such as CISA, CISM, and PCI-QSA.&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full wp-image-33350" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/01/23/noah-miller-author.jpg" alt="Noah Miller" style="margin-left: 15.625px;margin-right:30.625px;margin-top: 24px;margin-bottom: 10px;width:93.750px;height: 125px"&gt;
  &lt;p&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;span class="lb-h4"&gt;Noah Miller&lt;/span&gt;&lt;br&gt;Noah is a Compliance Program Manager at AWS and leads multiple security and privacy initiatives. Noah has 7 years of experience in information security. He has a master’s degree in Cybersecurity Risk Management and a bachelor’s degree in Informatics from Indiana University.&lt;/p&gt; 
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/01/12/willblack.wblackjr.jpg" alt="Will Black" style="margin-left: 12px;margin-right:18px;margin-top: 12px;margin-bottom: 6px;width:93.750px;height: 125px"&gt;
  &lt;span class="lb-h4" style="line-height: 2.1em;padding-top: 12px;margin-top: 24px"&gt;Will Black&lt;/span&gt;
  &lt;br&gt;Will is a Compliance Program Manager at Amazon Web Services where he leads multiple security and compliance initiatives. Will has 10 years of experience in compliance and security assurance and holds a degree in Management Information Systems from Temple University. Additionally, he is a PCI Internal Security Assessor (ISA) for AWS and holds the CCSK and ISO 27001 Lead Implementer certifications.
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/20/allen-beam-author.jpg" alt="Allen Beam" style="margin-left: 12px;margin-right:18px;margin-top: 12px;margin-bottom: 6px;width:93.750px;height: 125px"&gt;
  &lt;span class="lb-h4" style="line-height: 2.1em;padding-top: 12px;margin-top: 24px"&gt;Allen Beam&lt;/span&gt;
  &lt;br&gt;Allen is a Compliance Program Manager at Amazon Web Services supporting third-party security and privacy compliance initiatives. He has over 10 years of experience in external IT security audits, security control design and implementation, and audit readiness and control deficiency remediation. He has a Bachelor’s Degree in Economics and Finance from James Madison University.
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/20/ziv-wand-author.jpg" alt="Ziv Wand" style="margin-left: 12px;margin-right:18px;margin-top: 12px;margin-bottom: 6px;width:93.750px;height: 125px"&gt;
  &lt;span class="lb-h4" style="line-height: 2.1em;padding-top: 12px;margin-top: 24px"&gt;Ziv Wand&lt;/span&gt;
  &lt;br&gt;Ziv is a Compliance Program Manager at AWS and leads multiple security and privacy initiatives. Ziv has over 6 years of experience in information security assurance, external IT security audits, security control design and implementation, and audit readiness. He holds a Bachelor of Science in Management Information Systems from Binghamton University.
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;img loading="lazy" class="alignleft size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/20/shalini-mishra-author.jpg" alt="Shalini Mishra" style="margin-left: 12px;margin-right:18px;margin-top: 12px;margin-bottom: 6px;width:93.750px;height: 125px"&gt;
  &lt;span class="lb-h4" style="line-height: 2.1em;padding-top: 12px;margin-top: 24px"&gt;Shalini Mishra&lt;/span&gt;
  &lt;br&gt;Shalini is a Compliance Program Manager at AWS. She has over 5 years of experience leading end-to-end compliance programs across ISO, SOC, and cloud security frameworks, with deep expertise in third-party risk management and enterprise governance. Shalini holds a Master of Science degree in Information Systems and a CRISC certification.
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>How to clone an AWS CloudHSM cluster across Regions</title>
		<link>https://aws.amazon.com/blogs/security/how-to-clone-an-aws-cloudhsm-cluster-across-regions-2/</link>
					
		
		<dc:creator><![CDATA[Desiree Brunner]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 15:15:47 +0000</pubDate>
				<category><![CDATA[Advanced (300)]]></category>
		<category><![CDATA[AWS CloudHSM]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Identity & Compliance]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">69180a532c3fa6441268a3177a1e1cb5eb8ccd38</guid>

					<description>Important: As of January 1, 2025, Client SDK 3 tools (CMU and KMU) are no longer supported. This guide has been updated to use Client SDK 5 commands exclusively. Ensure you’re using the latest Client SDK 5 version (5.17 or later) for the most recent features and security improvements. You can use AWS CloudHSM to […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;div class="BlockQuote"&gt;
   &lt;b class="rte2-style-bold"&gt;Important:&lt;/b&gt; As of January 1, 2025, Client SDK 3 tools (CMU and KMU) are no longer supported. This guide has been updated to use Client SDK 5 commands exclusively. Ensure you’re using the latest Client SDK 5 version (5.17 or later) for the most recent features and security improvements.
  &lt;/div&gt; 
  &lt;p&gt;You can use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="http://aws.amazon.com/cloudhsm" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudHSM&lt;/a&gt;&lt;/span&gt; to generate, store, import, export, and manage your cryptographic keys. It also permits hash functions to compute message digests and hash-based message authentication codes (HMACs) and supports cryptographically signing data and verifying signatures. To help ensure redundancy of data and simplification of the disaster recovery process, AWS recommends you to clone your CloudHSM cluster into a different AWS Region. By doing this, you can synchronize keys, including non-exportable keys, across Regions. Non-exportable keys can only be synchronized to cloned clusters. Non-exportable keys are keys that can never leave the CloudHSM device in plaintext. They reside on the CloudHSM device and are encrypted for security purposes.&lt;/p&gt; 
  &lt;p&gt;In this post, I show you how to set up one cluster in Region 1 and how to use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/copy-backup-to-region.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CopyBackupToRegion&lt;/a&gt;&lt;/span&gt; feature to clone the cluster and hardware security modules (HSMs) to a virtual private cloud (VPC) in Region 2.&lt;/p&gt; 
  &lt;div class="BlockQuote"&gt;
   &lt;b class="rte2-style-bold"&gt;Note:&lt;/b&gt; This post doesn’t include instructions on how to set up a cross-Region VPC to synchronize HSMs across the two cloned clusters. If you need to set up a cross-Region VPC, see Building a Scalable and Secure Multi-VPC AWS Network Infrastructure.
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Solution overview&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;You clone a cluster to another Region in a two-step process:&lt;/p&gt; 
  &lt;ol id="rte-32692a50-376a-11f1-9aa8-1f374cecb8e0" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Copy a backup to the destination Region&lt;/li&gt; 
   &lt;li&gt;Create a new cluster from this backup&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;To complete this solution, you can use either the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cli/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Command Line Interface (AWS CLI)&lt;/a&gt;&lt;/span&gt; or the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/APIReference/Welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudHSM API&lt;/a&gt;&lt;/span&gt;. For this post, I show you how to use the AWS CLI to copy the cluster backup from Region 1 to Region 2 and then launch a new cluster from that copied backup.&lt;br&gt; Figure 1 illustrates the process described in this post.&lt;/p&gt; 
  &lt;div id="attachment_41780" style="width: 612px" class="wp-caption alignnone"&gt;
   &lt;img aria-describedby="caption-attachment-41780" loading="lazy" class="wp-image-41780 size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/13/3196.1.png" alt="Figure 1: Architecture diagram" width="602" height="259"&gt;
   &lt;p id="caption-attachment-41780" class="wp-caption-text"&gt;Figure 1: Architecture diagram&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Here’s how the process works:&lt;/p&gt; 
  &lt;ol id="rte-79a27620-3769-11f1-9aa8-1f374cecb8e0" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;CloudHSM creates a backup of the cluster and stores it in an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/s3/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Storage Service (Amazon S3)&lt;/a&gt;&lt;/span&gt; bucket owned by the CloudHSM service.&lt;/li&gt; 
   &lt;li&gt;You use the AWS CLI API command to copy the backup to another Region.&lt;/li&gt; 
   &lt;li&gt;When the backup is completed, you use that backup to then create a new cluster and HSMs.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="BlockQuote"&gt;
   &lt;b class="rte2-style-bold"&gt;Note&lt;/b&gt;: Backups can’t be copied across partitions like the AWS GovCloud Regions, China Region and AWS European Sovereign Cloud.
  &lt;/div&gt; 
  &lt;p&gt;As with all &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/backups.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;cluster backups&lt;/a&gt;&lt;/span&gt;, when you copy the backup to a new Region, it’s stored in an S3 bucket owned by a CloudHSM account. CloudHSM manages the security and storage of cluster backups for you. This means the backup in both Regions will also have the durability of Amazon S3, which has 99.999999999% durability. The backup in Region 2 will be encrypted and secured in the same way as your backup in Region 1. You can read more about the encryption process of your CloudHSM backups in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/backups.html#backup-security" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudHSM cluster backups&lt;/a&gt;&lt;/span&gt;.&lt;br&gt; Any HSMs created in this cloned cluster will have the same users and keys as the original cluster at the time the backup was taken. From this point on, you must manually keep the cloned clusters in sync. Specifically:&lt;/p&gt; 
  &lt;ul id="rte-79a29d32-3769-11f1-9aa8-1f374cecb8e0" class="rte2-style-ul"&gt; 
   &lt;li&gt;If you create users after creating your new cluster from the backup, you must create them on both clusters manually.&lt;/li&gt; 
   &lt;li&gt;If you change the password for a user in one cluster, you must change the password on the cloned clusters to match.&lt;/li&gt; 
   &lt;li&gt;If you create more keys in one cluster, you must sync them to at least one HSM in the cloned cluster. After you sync the key from cluster 1 to cluster 2, the CloudHSM automated cluster synchronization will take care of syncing the keys in the second cluster.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Prerequisites&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Before starting, ensure you have the following in place:&lt;/p&gt; 
  &lt;ul id="rte-79a29d33-3769-11f1-9aa8-1f374cecb8e0" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;VPC in Region 1&lt;/a&gt;&lt;/span&gt; with at least 1 public subnet and 1 private subnet&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;VPC in Region 2&lt;/a&gt;&lt;/span&gt; with at least 1 public subnet and 1 private subnet&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Cross-Region VPC&lt;/a&gt;&lt;/span&gt; enabled between Region 1 and Region 2&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cli/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CLI&lt;/a&gt;&lt;/span&gt; installed&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/troubleshooting-create-cluster.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Identity and Access Management (IAM) permissions for AWS CloudHSM APIs&lt;/a&gt;&lt;/span&gt; in both Regions&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/gs_cloudhsm_cli-install.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Client SDK 5&lt;/a&gt;&lt;/span&gt; installed on your management instance (version 5.17 or later recommended)&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: Syncing keys across clusters in more than one Region will only work if all clusters are created from the same backup. This is because synchronization requires the same secret key—called a masking key—to be present on the source and destination HSM. The masking key is specific to each cluster. It can’t be exported, and can’t be used for any purpose other than synchronizing keys across HSMs in a cluster.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Step 1: Create your first cluster in Region 1&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The first step in cloning your CloudHSM cluster is to create the initial cluster—which will serve as the foundation for your cross-Region deployment—in your source Region.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Create the cluster&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Replace &lt;code class="CodeInline" style="color: #000"&gt;&amp;lt;SUBNET_ID_1&amp;gt;&lt;/code&gt; with one of your private subnets. Make a note of the cluster ID to use later:&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;aws cloudhsmv2 create-cluster --hsm-type hsm2m.medium --subnet-ids &amp;lt;SUBNET_ID_1&amp;gt;&lt;/code&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Launch the EC2 client&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Launch an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ec2" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Compute Cloud (Amazon EC2)&lt;/a&gt;&lt;/span&gt; instance in your public subnet. See &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance" target="_blank" rel="noopener" data-cms-ai="0"&gt;Step 1 of Get started with Amazon EC2&lt;/a&gt;&lt;/span&gt; for detailed steps.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Create the first HSM&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Replace &lt;code class="CodeInline" style="color: #000"&gt;&amp;lt;CLUSTER_ID&amp;gt;&lt;/code&gt; with the ID you recorded earlier and &lt;code class="CodeInline" style="color: #000"&gt;&amp;lt;AVAILABILITY_ZONE&amp;gt;&lt;/code&gt; with the Availability Zone matching your private subnet (for example, us-east-1a):&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;aws cloudhsmv2 create-hsm --cluster-id &amp;lt;CLUSTER_ID&amp;gt; --availability-zone &amp;lt;AVAILABILITY_ZONE&amp;gt;&lt;/code&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Initialize the cluster&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Before you initialize the cluster, create a &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;self-signed certificate&lt;/a&gt;&lt;/span&gt; and use it to sign the cluster’s certificate signing request (CSR). Once you have the signed certificate, initialize the cluster:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws cloudhsmv2 initialize-cluster \
    --cluster-id &amp;lt;CLUSTER_ID&amp;gt; \
    --signed-cert file://&amp;lt;CLUSTER_ID&amp;gt;_CustomerHsmCertificate.crt \
    --trust-anchor file://customerCA.crt
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class="BlockQuote"&gt; 
   &lt;p&gt;&lt;b class="rte2-style-bold"&gt;Important:&lt;/b&gt; Copy the certificate used to sign your cluster’s CSR to to maintain a secure connection.&lt;/p&gt; 
  &lt;/div&gt; 
  &lt;p&gt;After the command completes, the cluster transitions to the &lt;i&gt;Initialized&lt;/i&gt; state. Copy the certificate used to sign your cluster’s CSR to /opt/cloudhsm/etc so that the CloudHSM client can verify the cluster’s identity when you configure it in the next step:&lt;/p&gt; 
  &lt;p&gt;&lt;code class="CodeInline" style="color: #000"&gt;sudo cp _CustomerHsmCertificate.crt /opt/cloudhsm/etc/&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;sudo cp customerCA.crt /opt/cloudhsm/etc/&lt;/code&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Install the CloudHSM Client SDK 5&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Download and install the latest &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/gs_cloudhsm_cli-install.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudHSM Client SDK 5&lt;/a&gt;&lt;/span&gt; (version 5.17 or later):&lt;br&gt; For example, for &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Linux 2023&lt;/a&gt;&lt;/span&gt;:&lt;/p&gt; 
  &lt;p&gt;&lt;code class="CodeInline" style="color: #000"&gt;wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-cli-latest.amzn2023.x86_64.rpm&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;sudo yum install -y ./cloudhsm-cli-latest.amzn2023.x86_64.rpm&lt;/code&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Configure the client&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Configure the CloudHSM client with your HSM’s elastic network interface (ENI IP) address:&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;configure-cli -a &amp;lt;HSM_IP&amp;gt;&lt;/code&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Activate the cluster&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/activate-cluster.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;activate the cluster&lt;/a&gt;&lt;/span&gt;, run the CloudHSM CLI in interactive mode.&lt;/p&gt; 
  &lt;p&gt;&lt;code class="CodeInline" style="color: #000"&gt;cloudhsm-cli interactive&lt;/code&gt;&lt;/p&gt; 
  &lt;p&gt;You can run &lt;code class="CodeInline" style="color: #000"&gt;user list&lt;/code&gt; to see the admin user, which is not yet activated.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws-cloudhsm &amp;gt; user list
{
  "error_code": 0,
  "data": {
    "users": [
      {
        "username": "admin",
        "role": "unactivated-admin",
        "locked": "false",
        "mfa": [],
        "cluster-coverage": "full"
      },
      {
        "username": "app_user",
        "role": "internal(APPLIANCE_USER)",
        "locked": "false",
        "mfa": [],
        "cluster-coverage": "full"
      }
    ]
  }
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Use the cluster activate command to set the initial admin password.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws-cloudhsm &amp;gt; cluster activate
Enter password:&amp;lt;NewPassword&amp;gt;
Confirm password:&amp;lt;NewPassword&amp;gt;
{
  "error_code": 0,
  "data": "Cluster activation successful"
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;When completed, sign out using the command &lt;code class="CodeInline" style="color: #000"&gt;quit&lt;/code&gt;, then sign back in with the new password, using the command login &lt;code class="CodeInline" style="color: #000"&gt;--username admin --role admin&lt;/code&gt;.&lt;/p&gt; 
  &lt;p&gt;After doing this, you can create the first crypto user (CU). You create the user by running the command: user create &lt;code class="CodeInline" style="color: #000"&gt;--username &amp;lt;USERNAME&amp;gt; --role crypto-user&lt;/code&gt;. For more information, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/understanding-users.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;HSM user types for CloudHSM CLI&lt;/a&gt;&lt;/span&gt;. Crypto users are permitted to create and share keys on the CloudHSM.&lt;/p&gt; 
  &lt;p&gt;When completed, sign out using the command &lt;code class="CodeInline" style="color: #000"&gt;quit&lt;/code&gt;.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Step 2: Create keys in Region 1&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Create a non-exportable AES-256 key:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws-cloudhsm &amp;gt; key generate-symmetric aes \
    --label aes-example \
    --key-length-bytes 32 \
    --attributes extractable=false
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Make note of the key reference returned in the output, because you’ll need it for synchronization later.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Step 3: Trigger a backup of your cluster&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To trigger a backup for Region 2:&lt;/p&gt; 
  &lt;ol id="rte-32695160-376a-11f1-9aa8-1f374cecb8e0" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Add another HSM to your cluster in Region 1 (can be done using the AWS Management Console or AWS CLI)&lt;/li&gt; 
   &lt;li&gt;The backup will contain: 
    &lt;ul id="rte-442f99a2-3769-11f1-9aa8-1f374cecb8e0" class="rte2-style-ul"&gt; 
     &lt;li&gt;All users (crypto officers (COs), crypto users (CUs), and appliance users)&lt;/li&gt; 
     &lt;li&gt;All key material on the HSMs&lt;/li&gt; 
     &lt;li&gt;All configurations and policies&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="BlockQuote"&gt;
   &lt;b class="rte2-style-bold"&gt;Note:&lt;/b&gt; The user portion is critical because keys can only be synced across clusters to the same user.
  &lt;/div&gt; 
  &lt;p&gt;Record the backup ID to use later. You can find this in the CloudHSM console under &lt;b&gt;Backups&lt;/b&gt;, or using the following command:&lt;/p&gt; 
  &lt;p&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws cloudhsmv2 describe-backups --cluster-id&lt;/code&gt;&lt;/p&gt; 
  &lt;p&gt;To avoid unnecessary charges, you can delete the additional HSM after the backup is created.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Step 4: Copy your backup Between Regions&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Before you can transfer the backup to your destination Region, you need to configure the appropriate IAM permissions to allow the copy operation.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;IAM permissions&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Ensure proper permissions are configured for your IAM role or user. You need &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-iam-user.html#create-iam-admin" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudHSM administrator privileges&lt;/a&gt;&lt;/span&gt;. Here’s an example permissions policy:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
   "Version": "2012-10-17",
   "Statement": {
      "Effect": "Allow",
      "Action": [
         "cloudhsm:*",
         "ec2:CreateNetworkInterface",
         "ec2:DescribeNetworkInterfaces",
         "ec2:DescribeNetworkInterfaceAttribute",
         "ec2:DetachNetworkInterface",
         "ec2:DeleteNetworkInterface",
         "ec2:CreateSecurityGroup",
         "ec2:AuthorizeSecurityGroupIngress",
         "ec2:AuthorizeSecurityGroupEgress",
         "ec2:RevokeSecurityGroupEgress",
         "ec2:DescribeSecurityGroups",
         "ec2:DeleteSecurityGroup",
         "ec2:CreateTags",
         "ec2:DescribeVpcs",
         "ec2:DescribeSubnets",
         "iam:CreateServiceLinkedRole"
      ],
      "Resource": "*"
   }
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Copy the backup&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To copy your backup from Region 1 to Region 2, you need:&lt;/p&gt; 
  &lt;ul id="rte-0b175470-376c-11f1-b3f9-2bf2870be893" class="rte2-style-ul"&gt; 
   &lt;li&gt;The destination Region&lt;/li&gt; 
   &lt;li&gt;The source cluster ID and backup ID (you can use either or both) found in the CloudHSM console&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;If you specify only the cluster ID, the most recent backup will be chosen. For a specific backup, use the backup ID.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws cloudhsmv2 copy-backup-to-region \
    --destination-region &amp;lt;DESTINATION_REGION&amp;gt; \
    --backup-id &amp;lt;BACKUP_ID&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Example response:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
    "DestinationBackup": {
        "SourceBackup": "backup-4kuraxsqetz",
        "SourceCluster": "cluster-kzlczlspnho",
        "CreateTimestamp": 1531742400,
        "SourceRegion": "us-east-1"
    }
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;After copying, you will see a new backup ID in your console. Use this to create your new cluster in Region 2:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws cloudhsmv2 create-cluster \
    --hsm-type hsm2m.medium \
    --subnet-ids &amp;lt;SUBNET_ID_REGION_2&amp;gt; \
    --source-backup-id &amp;lt;BACKUP_ID_REGION_2&amp;gt; \
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Certificate transfer&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Copy the cluster certificate from the original cluster to the new Region:&lt;/p&gt; 
  &lt;ol id="rte-0b175471-376c-11f1-b3f9-2bf2870be893" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Open two terminal sessions (one for each HSM)&lt;/li&gt; 
   &lt;li&gt;Copy the certificate content from cluster 1&lt;/li&gt; 
   &lt;li&gt;Create and paste into a new file in cluster 2&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;The certificate is required for encrypted connections between your client and HSM instances.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Security group configuration&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Add the cloned cluster’s Security Group to your EC2 client instance:&lt;/p&gt; 
  &lt;ol id="rte-0b175472-376c-11f1-b3f9-2bf2870be893" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;Select the Security Group for your EC2 client in the EC2 console&lt;/li&gt; 
   &lt;li&gt;Choose “Add rules”&lt;/li&gt; 
   &lt;li&gt;Add a rule allowing traffic from the cluster’s Security Group ID on port 2225&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;Then retrieve the ENI IP address of the HSM in Region 2 using the following command, and make a note of the output—you will use it in the next step to configure cross-Region connectivity:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;aws cloudhsmv2 describe-clusters \
    --filters clusterIds=&amp;lt;cluster_ID_region_2&amp;gt; \
    --region &amp;lt;region_2&amp;gt; \
    --query 'Clusters.Hsms.EniIp' \
    --output text
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Step 5: Configure cross-Region connectivity&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To enable the CloudHSM CLI to communicate with both clusters simultaneously, add the Region 2 cluster to your existing client configuration using the ENI IP address you retrieved in the previous step:&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Step 6: Synchronize keys between clusters&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To synchronize keys between your source and destination clusters, you first need to verify which users and keys exist before replicating them.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;configure-cli add-cluster \
    --cluster-id &amp;lt;cluster_ID_region_2&amp;gt; \
    --endpoint &amp;lt;hsm_eni_ip_region_2&amp;gt; \
    --region &amp;lt;region_2&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The CloudHSM CLI will now communicate with both clusters simultaneously using the certificates already configured during the initial setup, enabling key synchronization using the masking key shared between cloned clusters.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;List users and keys&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;First, verify users and list available keys:&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;# List all users&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;cloudhsm-cli user list&lt;/code&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;code class="CodeInline" style="color: #000"&gt;# List keys for specific user&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;cloudhsm-cli key list --username&lt;/code&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Replicate keys&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To replicate a key from Region 1 to Region 2:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;cloudhsm-cli key replicate \
    --filter key-reference=&amp;lt;key_ref&amp;gt; \
    --source-cluster-id &amp;lt;source_cluster_ID&amp;gt; \
    --destination-cluster-id &amp;lt;destination_cluster_ID&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Verify the key replication by listing keys again:&lt;/p&gt; 
  &lt;p&gt;&lt;code class="CodeInline" style="color: #000"&gt;cloudhsm-cli key list --username &amp;lt;username&amp;gt;&lt;/code&gt;&lt;/p&gt; 
  &lt;p&gt;The output should show identical key references on both clusters. Repeat this process for any additional keys that you want to synchronize.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Points to remember&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;After cloning a cluster to a backup cluster, remember these important points:&lt;/p&gt; 
  &lt;ul id="rte-0b17a290-376c-11f1-b3f9-2bf2870be893" class="rte2-style-ul"&gt; 
   &lt;li&gt;Always manually update users across clusters after the initial backup&lt;/li&gt; 
   &lt;li&gt;Use key replication for any keys created after the initial backup&lt;/li&gt; 
   &lt;li&gt;Keep your Client SDK 5 tools updated for the latest features and security improvements&lt;/li&gt; 
   &lt;li&gt;The January 1, 2025, end-of-support date for Client SDK 3 tools (CMU and KMU) means you should migrate to Client SDK 5 as soon as possible&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Client SDK 5 supports ARM64 architecture on the following Linux distributions:&lt;/p&gt; 
  &lt;ul id="rte-0b17a291-376c-11f1-b3f9-2bf2870be893" class="rte2-style-ul"&gt; 
   &lt;li&gt;Amazon Linux 2023&lt;/li&gt; 
   &lt;li&gt;Amazon Linux 2&lt;/li&gt; 
   &lt;li&gt;Red Hat Enterprise Linux (RHEL) 8 (8.3+)&lt;/li&gt; 
   &lt;li&gt;Red Hat Enterprise Linux (RHEL) 9 (9.2+)&lt;/li&gt; 
   &lt;li&gt;Red Hat Enterprise Linux (RHEL) 10 (10.0+)&lt;/li&gt; 
   &lt;li&gt;Ubuntu 22.04 LTS&lt;/li&gt; 
   &lt;li&gt;Ubuntu 24.04 LTS&lt;/li&gt; 
   &lt;li&gt;Debian 12&lt;/li&gt; 
   &lt;li&gt;USE Linux Enterprise Server 15&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;You now have a fault-tolerant AWS CloudHSM environment with synchronized keys across Regions using the latest tools and best practices. By implementing this cross-Region cluster configuration, you gain improved disaster recovery capabilities, reduced risk of data loss, and enhanced business continuity for your cryptographic operations. This approach helps ensure that your critical cryptographic keys remain available even in the event of a Regional outage, providing the resilience that enterprise workloads demand.&lt;/p&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the Comments section below. For questions about this post, start a new thread on the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://repost.aws/tags/TAgNN6vsXzT9ax2S8f3PXVQg" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS re:Post&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt;
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/13/desibru.jpg" alt="Desiree Brunner" width="120" height="160" class="alignnone size-full wp-image-41793"&gt;
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Desiree Brunner&lt;/h3&gt; 
  &lt;p&gt;Desiree is a Security Specialist Solutions Architect working with regulated customers as part of the AWS EMEA Security &amp;amp; Compliance team. She builds on her background in DevOps and platform engineering to support her customers in designing secure, compliant cloud environments. Passionate about mental health and knowledge sharing, she regularly speaks at AWS events and supports teams on their cloud security journey. &lt;/p&gt;
 &lt;/div&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt;
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/13/rickard.jpg" alt="Rickard Löfström" width="120" height="160" class="alignnone size-full wp-image-41792"&gt;
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Rickard Löfström&lt;/h3&gt; 
  &lt;p&gt;Rickard guides enterprises in building secure cloud environments as a Specialist Solutions Architect in the AWS EMEA Security &amp;amp; Compliance team. He advises customers on implementing AWS security services, focusing on identity management, data protection, and infrastructure security controls. He enjoys translating complex security requirements into technical solutions that enable organizations to meet their security objectives while maintaining operational efficiency. &lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Transform security logs into OCSF format using a configuration-driven ETL solution</title>
		<link>https://aws.amazon.com/blogs/security/transform-security-logs-into-ocsf-format-using-a-configuration-driven-etl-solution/</link>
					
		
		<dc:creator><![CDATA[Vivek Gautam]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 16:30:57 +0000</pubDate>
				<category><![CDATA[Amazon Security Lake]]></category>
		<category><![CDATA[Intermediate (200)]]></category>
		<guid isPermaLink="false">c1e36b5dc202ce9c028965272e31499510708972</guid>

					<description>Security logs capture essential security-related activities, such as user sign-ins, file access, network traffic, and application usage. These logs are important for monitoring, detecting, and responding to potential security events. The Open Cybersecurity Schema Framework (OCSF) addresses this challenge by providing a standardized format to represent security events, ensuring consistent and efficient data handling across […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;Security logs capture essential security-related activities, such as user sign-ins, file access, network traffic, and application usage. These logs are important for monitoring, detecting, and responding to potential security events. The &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/ocsf" target="_blank" rel="noopener" data-cms-ai="0"&gt;Open Cybersecurity Schema Framework (OCSF)&lt;/a&gt;&lt;/span&gt; addresses this challenge by providing a standardized format to represent security events, ensuring consistent and efficient data handling across various systems. OCSF enhances interoperability, streamlines analysis, simplifies compliance reporting, and reduces vendor lock-in, fostering greater flexibility and efficiency in security operations.&lt;/p&gt; 
  &lt;p&gt;However, manually transforming diverse security logs into OCSF format at scale can be complex and time-consuming. &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-lake/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Security Lake&lt;/a&gt;&lt;/span&gt; simplifies this process by automatically centralizing security data from AWS services such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudtrail" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail&lt;/a&gt;&lt;/span&gt; management and data events (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/s3/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Storage Service (Amazon S3)&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/lambda/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Lambda&lt;/a&gt;&lt;/span&gt;), &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/eks" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Kubernetes Service (Amazon EKS)&lt;/a&gt;&lt;/span&gt; audit logs, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/route53" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Route 53&lt;/a&gt;&lt;/span&gt; resolver query logs, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/security-hub" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Hub&lt;/a&gt;&lt;/span&gt; findings, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/vpc" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Virtual Private Cloud (Amazon VPC)&lt;/a&gt;&lt;/span&gt; Flow Logs, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/waf" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS WAF&lt;/a&gt;&lt;/span&gt; logs. It also centralizes security logs from software as a service (SaaS) providers, on-premises, and cloud sources into a purpose-built data lake stored in your account. It uses the OCSF format to standardize and normalize this data, ensuring consistency and simplifying analysis. By integrating with analytics tools such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/athena" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Athena&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/quicksight" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Quick Sight&lt;/a&gt;&lt;/span&gt;, Security Lake simplifies threat detection, improves security posture monitoring, and streamlines compliance reporting, making it an essential tool for modern security operations.&lt;/p&gt; 
  &lt;p&gt;In this post, we show you how to transform custom security logs into OCSF format after you have the OCSF mappings ready, using a configuration-driven extract, transform, load (ETL) solution.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Accelerating OCSF adoption with AWS ProServe ETL solution&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Amazon Security Lake stores security data in OCSF format and so customers looking to use custom log sources in Security Lake must transform their logs into OCSF format. To facilitate this process, the AWS Professional Services (ProServe) team built an ETL solution accelerator that converts custom security logs into OCSF format. This solution bridges existing log formats with the OCSF version 1.1 standard, streamlining data onboarding into Security Lake or other &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/what-is/data-lake/" target="_blank" rel="noopener" data-cms-ai="0"&gt;data lakes&lt;/a&gt;&lt;/span&gt; of security logs coming from multiple security tools.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Prerequisites&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To implement this solution, you must have the following resources:&lt;/p&gt; 
  &lt;ul id="rte-c9a25ef6-11f4-11f1-a2e1-bd03372bf4a0" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cli/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Command Line Interface (AWS CLI)&lt;/a&gt;&lt;/span&gt; installed.&lt;/li&gt; 
   &lt;li&gt;&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/cdk/v2/guide/cli.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CDK CLI&lt;/a&gt;&lt;/span&gt; installed.&lt;/li&gt; 
   &lt;li&gt;Python installed. This solution has been tested to deploy with Python 3.9.6 or later.&lt;/li&gt; 
   &lt;li&gt;Source security logs in their native format should be delivered to an S3 bucket using an external process.&lt;/li&gt; 
   &lt;li&gt;Access to the AWS CLI through a user who can launch &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="http://aws.amazon.com/cloudformation" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudFormation stacks&lt;/a&gt;&lt;/span&gt; and the services mentioned in this post, including Lambda, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/emr" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EMR&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/glue" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Glue&lt;/a&gt;&lt;/span&gt; jobs, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/secrets-manager" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Secrets Manager&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/rds" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Relational Database Service (Amazon RDS)&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/dynamodb" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon DynamoDB&lt;/a&gt;&lt;/span&gt;, Amazon S3, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudwatch" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CloudWatch&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sns" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Notification Service (Amazon SNS)&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/eventbridge" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EventBridge&lt;/a&gt;&lt;/span&gt;, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/step-functions" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Step Functions&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
   &lt;li&gt;This solution uses serverless AWS services including Amazon S3, Lambda, DynamoDB, Step Functions, and either AWS Glue or Amazon EMR Serverless for ETL. Costs depend on data volume and processing frequency. Key expenses are storage (Amazon S3 and DynamoDB), compute (Lambda, AWS Glue, and Amazon EMR), and orchestration services. The architecture is cost-optimized through serverless components and pay-per-use pricing. Use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://calculator.aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Pricing Calculator&lt;/a&gt;&lt;/span&gt; to estimate costs for your specific log volume and retention needs.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Solution overview&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The solution uses two input files: a mapping file and a configuration file. These files guide the transformation of source logs into OCSF-compliant Parquet format, which is then partitioned by &lt;code class="CodeInline" style="color: #000"&gt;location/region=region/accountId=accountID/eventDay=yyyyMMdd/&lt;/code&gt; and stored in an Amazon S3 location provided by Security Lake.&lt;/p&gt; 
  &lt;p&gt;The following diagram shows the key architecture components of this solution and data flow between them.&lt;/p&gt; 
  &lt;div id="attachment_41808" style="width: 1552px" class="wp-caption alignnone"&gt;
   &lt;img aria-describedby="caption-attachment-41808" loading="lazy" class="wp-image-41808 size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/15/3485.1.png" alt="" width="1542" height="1121"&gt;
   &lt;p id="caption-attachment-41808" class="wp-caption-text"&gt;Figure 1: Architecture diagram of ETL solution to transform security logs into OCSF format&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The steps mentioned below walks you through the architecture diagram:&lt;/p&gt; 
  &lt;ol id="rte-e18569c0-11f6-11f1-a2e1-bd03372bf4a0" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;&lt;b&gt;Preprocessing steps:&lt;/b&gt; 
    &lt;ol id="rte-e18569c1-11f6-11f1-a2e1-bd03372bf4a0" class="rte2-style-ol" start="1"&gt; 
     &lt;li&gt;User uploads a mapping file in CSV format that maps custom security logs into OCSF class.&lt;/li&gt; 
     &lt;li&gt;User uploads a metadata file in CSV format that is passed to the solution to transform custom security logs into OCSF format.&lt;/li&gt; 
     &lt;li&gt;An &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/s3/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon S3&lt;/a&gt;&lt;/span&gt; &lt;i&gt;artifact&lt;/i&gt; bucket stores the metadata, source-to-target mapping, and Python libraries required for OCSF conversion.&lt;/li&gt; 
     &lt;li&gt;An &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventNotifications.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon S3 event notification&lt;/a&gt;&lt;/span&gt; invokes the Lambda function that writes the metadata to the &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework-ocsf-attribute-metadata&lt;/code&gt; DynamoDB table when the metadata files are created or updated.&lt;/li&gt; 
     &lt;li&gt;Metadata and mapping Lambda functions process the respective configuration files and store the required information in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/dynamodb/" target="_blank" rel="noopener" data-cms-ai="0"&gt;DynamoDB&lt;/a&gt;&lt;/span&gt; tables.&lt;/li&gt; 
     &lt;li&gt;The &lt;code class="CodeInline" style="color: #000"&gt;Reference&lt;/code&gt; Lambda function extracts the required OCSF attributes using an API call and stores the results in a DynamoDB table.&lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Optional enrichment process&lt;/b&gt;: The solution reads data from an enrichment database stored on Amazon RDS or an external on-premises database that’s accessible through a JDBC connection from either Amazon EMR or AWS Glue. The credentials of this enrichment database are stored in Secrets Manager.&lt;/li&gt; 
   &lt;li&gt;Source log files are delivered to an S3 bucket by an external process.&lt;/li&gt; 
   &lt;li&gt;An EventBridge schedule or manual invoke initiates the Step Functions workflow, responsible for log conversion.&lt;/li&gt; 
   &lt;li&gt;A Step Functions workflow performs the following tasks: 
    &lt;ol id="rte-e18590d0-11f6-11f1-a2e1-bd03372bf4a0" class="rte2-style-ol" start="1"&gt; 
     &lt;li&gt;The preprocessor Lambda function performs checkpointing and invokes the required number of ETL jobs in parallel.&lt;/li&gt; 
     &lt;li&gt;The ETL job converts the source log files to the OCSF-Parquet format using the custom Python libraries stored in the artifact bucket and the mapping information defined in the DynamoDB table.&lt;/li&gt; 
     &lt;li&gt;A separate target S3 bucket stores the converted log data.&lt;/li&gt; 
     &lt;li&gt;An Amazon SNS topic is used to notify users if the Step Functions workflow fails during checkpointing or the ETL process.&lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
   &lt;li&gt;Analytics are performed on the converted data.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Deployment&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;You can find the required resources to deploy this solution in this &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl" target="_blank" rel="noopener" data-cms-ai="0"&gt;GitHub repository&lt;/a&gt;&lt;/span&gt;. It provides detailed instructions in the README on how to deploy the solution. After you have the prerequisites mentioned earlier, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl?tab=readme-ov-file#environment-setup" target="_blank" rel="noopener" data-cms-ai="0"&gt;Environment Setup&lt;/a&gt;&lt;/span&gt; portion of the repository.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Solution walkthrough&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;In this section, we walk you through steps to deploy this solution.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Map source log files into OCSF format&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Before you start mapping the security logs into OCSF format, check if there are existing mappings available on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/ocsf/examples/tree/main/mappings" target="_blank" rel="noopener" data-cms-ai="0"&gt;OCSF mappings Github&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;Mapping security logs into the OCSF format typically involves several steps. Here are the high-level steps:&lt;/p&gt; 
  &lt;ol id="rte-e18590d1-11f6-11f1-a2e1-bd03372bf4a0" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;&lt;b&gt;Understand OCSF schema:&lt;/b&gt; Familiarize yourself with the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://schema.ocsf.io/" target="_blank" rel="noopener" data-cms-ai="0"&gt;OCSF schema&lt;/a&gt;&lt;/span&gt;, which defines the structure and format for organizing security log data into event classes and attributes. In OCSF, events are organized into &lt;i&gt;event classes&lt;/i&gt;, each of which comprises a set of attributes designed to offer comprehensive semantics for the event.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Identify log sources:&lt;/b&gt; Determine your security log sources, such as firewalls, intrusion detection systems, or antivirus software. Each log source might have its own format (CSV, JSON, and so on) and structure.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Identify OCSF categories and classes:&lt;/b&gt; Analyze the log content and match security events to the appropriate OCSF categories and classes for standardized data organization.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Map fields to OCSF schema:&lt;/b&gt; Map the source log data fields in the OCSF schema. Ensure that each field from your logs is mapped to the appropriate field in the OCSF format. If a field in the source log schema isn’t mapped to any OCSF field, you might need to consider mapping it to unmapped object.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Enrichment:&lt;/b&gt; Enrich data with additional contextual information, such as standardizing timestamps, converting IP addresses to a common format, or adding supplementary data for better analysis. The enrichment column is added to the final dataset. Each category in OCSF has an optional &lt;i&gt;enrichment&lt;/i&gt; column that provides more information about a column. For example, the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://schema.ocsf.io/1.2.0/classes/authentication?extensions=" target="_blank" rel="noopener" data-cms-ai="0"&gt;Authentication OCSF category&lt;/a&gt;&lt;/span&gt; contains an optional enrichment column that provides more details about the IP addresses. .&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Test and validate:&lt;/b&gt; Validate mapped log data against the OCSF schema to ensure compliance and accuracy. Test the mapping process with sample log data from different sources to identify any inconsistencies or errors. You can use this &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/ocsf/ocsf-validator" target="_blank" rel="noopener" data-cms-ai="0"&gt;open source utility&lt;/a&gt;&lt;/span&gt; to validate your generated OCSF version 1.1 output file based on mapping.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Contribute OCSF Mapping to the OCSF community:&lt;/b&gt; Submit the OCSF mapping to the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/ocsf/examples/tree/main/mappings" target="_blank" rel="noopener" data-cms-ai="0"&gt;Github repository&lt;/a&gt;&lt;/span&gt; and raise a pull request to contribute it to the OCSF community. Iterate on the mapping procedure to improve accuracy, efficiency, and compatibility with the OCSF schema based on the pull request feedback.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;By following these steps, you can effectively map security logs into the OCSF format, enabling better interoperability, analysis, and collaboration across security tools and platforms. AWS ProServe has helped many customers map their security logs to OCSF format. If you need guidance to map and transform security logs into OCSF format and want to use AWS ProServe, reach out to your account executive.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Create and transform mapping files&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The ETL solution requires a CSV mapping file that maps the custom security log attributes into standardized OCSF attributes based on the specified OCSF class. For detailed instructions on generating this mapping file, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl?tab=readme-ov-file#solution-usage" target="_blank" rel="noopener" data-cms-ai="0"&gt;Solution Usage section, bullet 2, in the README&lt;/a&gt;&lt;/span&gt; of the code repository. To follow the instructions in this post, you can enable &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon S3 server access logging&lt;/a&gt;&lt;/span&gt; to publish source logs to Amazon S3. The following is a sample S3 server access log record:&lt;/p&gt; 
  &lt;p&gt;&lt;code class="CodeInline" style="color: #000"&gt;90de84bb542adb54766fec66ee554475b7e1a56a9d8b30e3598230f9ef6d6ac7 azv-asl-src-logs [29/May/2025:04:35:45 +0000] - arn:aws:sts::768196192565:assumed-role/AwsSecurityAudit/Palisade QS8DSY4SGF8M8SD7 REST.GET.BUCKETPOLICY - “GET /?policy HTTP/1.1" 200 - 255 - 39 - "-" "-" - N9XclJkv6hw/y4yApPyDII2sRoMNbqJqBEXdnmzFndcvhQOpdcc3PNQNQX7NhQaPJ5FKSVPh6hLB0GqsSN4apcbBUHi3rNcPRqa6rFLAYU4= SigV4 TLS_AES_128_GCM_SHA256 AuthHeader azv-asl-src-logs.s3.amazonaws.com TLSv1.3 - -&lt;/code&gt;&lt;/p&gt; 
  &lt;p&gt;Because the sample record uses spaces as delimiters and contains an extra space before &lt;code class="CodeInline" style="color: #000"&gt;+0000&lt;/code&gt;, you need to wrap each attribute in quotes. Here’s a sample Python code implementation that handles this requirement:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;import re
def format_s3_access_log(log_line):
    def quote_field(field):
        """Add quotes around a field and handle special cases"""
        if field is None or field.strip() == '':
            return '"-"'
        # If field is already quoted, return as is
        if field.startswith('"') and field.endswith('"'):
            return field
        return f'"{field}"'
    try:
        # First, protect quoted strings and bracketed content by temporarily replacing them
        protected_line = log_line
        protected_parts = re.findall(r'(\[.*?\]|".*?")', log_line)
        for i, part in enumerate(protected_parts):
            protected_line = protected_line.replace(part, f"PROTECTED_{i}_PART")
        # Split the protected line
        parts = protected_line.split()
        # Restore protected parts
        restored_parts = []
        for part in parts:
            if part.startswith('PROTECTED_') and part.endswith('_PART'):
                index = int(part.split('_')[1])
                restored_parts.append(protected_parts[index])
            else:
                restored_parts.append(part)
        # Quote each field
        quoted_fields = [quote_field(field) for field in restored_parts]    
        # Join with spaces
        return ' '.join(quoted_fields)
    except Exception as e:
        print(f"Error processing line: {e}")
        return None

# Example usage
if __name__ == "__main__":
    # Example input log line
    log_line = '''90de84bb542adb54766fec66ee554475b7e1a56a9d8b30e3598230f9ef6d6ac7 azv-asl-src-logs [29/May/2025:04:35:45 +0000] - arn:aws:sts::768196192565:assumed-role/AwsSecurityAudit/Palisade QS8DSY4SGF8M8SD7 REST.GET.BUCKETPOLICY - "GET /?policy HTTP/1.1" 200 - 255 - 39 - "-" "-" - N9XclJkv6hw/y4yApPyDII2sRoMNbqJqBEXdnmzFndcvhQOpdcc3PNQNQX7NhQaPJ5FKSVPh6hLB0GqsSN4apcbBUHi3rNcPRqa6rFLAYU4= SigV4 TLS_AES_128_GCM_SHA256 AuthHeader azv-asl-src-logs.s3.amazonaws.com TLSv1.3 - -'''
    # Process the log line
    formatted_output = format_s3_access_log(log_line)
    print(formatted_output)

&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;This sample code demonstrates how to wrap quotes around each attribute. You can extend this code to read source Amazon S3 server access log files from an S3 location and write the modified logs to another location. After these logs are available in an S3 bucket in your AWS account, you need to map the S3 server access logs to OCSF format. The following is an example of an S3 server access log &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl/blob/main/src/sample_config_files/config/mapping/s3-server-log-to-ocsf-mapping.csv" target="_blank" rel="noopener" data-cms-ai="0"&gt;CSV mapping file&lt;/a&gt;&lt;/span&gt;:&lt;/p&gt; 
  &lt;table style="border-collapse: separate;text-indent: initial;border-spacing: 2px;border-color: gray;width: 100%" border="1px" cellpadding="10px"&gt; 
   &lt;tbody&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;src_log_type&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;src_column_name&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;tgt_column&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;default_values&lt;/b&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;bucket_owner&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;resources:Object.owner:Object.uid:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;bucket&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;resources:array.value:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;time&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;time:timestamp&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;remote_ip&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;src_endpoint:object.ip:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;requester&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;actor:Object.user:object.uid:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;request_id&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_request:object.uid:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;operation&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;api:Object.operation:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;key&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.key:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;request_uri&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_request:object.url:object.url_string:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_status&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_response:object.code:integer&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;error_code&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_response:object.message:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;bytes_sent&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_response:object.length:integer&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;object_size&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.object_size:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;total_time&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;duration:integer&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;turn_around_time&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_response:object.Latency:integer&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;referer&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_request:object.referrer:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;user_agent&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_request:object.user_agent:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;version_id&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.version_id:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;host_id&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.host_id:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;signature_version&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.signature_version:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;cipher_suite&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.cipher_suite:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;authentication_type&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:object.authentication_type:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;host_header&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_request:object.http_headers:array.value:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;tls_version&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.tls_version:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;access_point_arn&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.access_point_arn:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;s3-access-log&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;acl_required&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;unmapped:Object.acl_required:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;metadata:object.version:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;1.1.0&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;cloud:object.provider:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;AWS&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;metadata:object.product:string.name:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;S3&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;metadata:object.product:string.vendor_name:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;AWS&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_request:object.http_headers:array.name:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;http_header&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;resources:array.name:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;bucket&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;activity_id:integer&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;99&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;severity_id:integer&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;99&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;type_uid:integer&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;600399&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;category_name:string&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Application Activity&lt;/td&gt; 
    &lt;/tr&gt; 
   &lt;/tbody&gt; 
  &lt;/table&gt; 
  &lt;p&gt;Upload the mapping CSV file to the S3 artifact location &lt;code class="CodeInline" style="color: #000"&gt;s3://secure-datalake-artifacts-&amp;lt;account_number&amp;gt;-&amp;lt;aws_region&amp;gt;/config/mapping/&lt;/code&gt;. The Lambda function &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework_update-mapping-ddb&lt;/code&gt; ingests this mapping CSV file, processes its entries, and converts them into the required DynamoDB format. This Lambda function writes the results to the &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework-ocsf-attribute-mapping&lt;/code&gt; DynamoDB table, which stores the schema and mapping information for all source log files processed by this solution. You can find an example of an S3 server access log &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl/blob/main/src/sample_config_files/config/metadata/TEMPLATE-s3_access_log_metadata.csv" target="_blank" rel="noopener" data-cms-ai="0"&gt;CSV metadata file&lt;/a&gt;&lt;/span&gt; in the GitHub repository.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Create and transform configuration files&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;To create a configuration metadata file, create a CSV file following the guidelines in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl/tree/main?tab=readme-ov-file#solution-usage" target="_blank" rel="noopener" data-cms-ai="0"&gt;Solution Usage, bullet 4, in the README&lt;/a&gt;&lt;/span&gt; of the code repository.&lt;/p&gt; 
  &lt;p&gt;Upload the completed mapping CSV file into an S3 artifact location s&lt;code class="CodeInline" style="color: #000"&gt;3://secure-datalake-artifacts-&amp;lt;account_number&amp;gt;-&amp;lt;aws_region&amp;gt;/config/metadata/&lt;/code&gt;. An upload of a metadata CSV file to S3 invokes a Lambda function &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework_insert_metadata_ddb&lt;/code&gt;, which stores the configuration in the &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework-source-ocsf-metadata&lt;/code&gt; DynamoDB table. The following image shows the configuration in DynamoDB table.&lt;/p&gt; 
  &lt;div id="attachment_41809" style="width: 2456px" class="wp-caption alignnone"&gt;
   &lt;img aria-describedby="caption-attachment-41809" loading="lazy" class="wp-image-41809 size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/15/3485.2.png" alt="" width="2446" height="1774"&gt;
   &lt;p id="caption-attachment-41809" class="wp-caption-text"&gt;Figure 2: Screenshot of metadata configuration in the asl-etl-framework-source-ocsf-metadata DynamoDB table for S3 Access Logs&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;After inserting the metadata into the &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework-source-ocsf-metadata&lt;/code&gt; DynamoDB table, the Lambda function &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework_update-mapping-ddb&lt;/code&gt; is invoked to read the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl/blob/main/src/sample_config_files/config/mapping/s3-server-log-to-ocsf-mapping.csv" target="_blank" rel="noopener" data-cms-ai="0"&gt;mapping CSV file&lt;/a&gt;&lt;/span&gt; and inserts mappings into the &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework-ocsf-attribute-mapping&lt;/code&gt; DynamoDB table. The following image shows the mapping in DynamoDB table.&lt;/p&gt; 
  &lt;div id="attachment_41810" style="width: 2272px" class="wp-caption alignnone"&gt;
   &lt;img aria-describedby="caption-attachment-41810" loading="lazy" class="wp-image-41810 size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/15/3485.3.png" alt="" width="2262" height="1782"&gt;
   &lt;p id="caption-attachment-41810" class="wp-caption-text"&gt;Figure 3: Screenshot of transformed mapping in the asl-etl-framework-ocsf-attribute-mapping DynamoDB table for S3 Access Logs&lt;/p&gt;
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Historical load&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The ETL solution offers a historical load capability that processes logs from specified date or year ranges based on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl/blob/main/src/sample_config_files/config/metadata/TEMPLATE-vpc-flow-log-metadata.csv" target="_blank" rel="noopener" data-cms-ai="0"&gt;metadata file&lt;/a&gt;&lt;/span&gt; inputs. After being converted to OCSF format in Parquet file format, these logs can be integrated into Amazon Security Lake or be used to create a custom data lake. The solution includes checkpointing functionality to handle potential failures during historical data processing.&lt;/p&gt; 
  &lt;p&gt;The checkpointing feature provides process resilience by tracking conversion progress in the &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework-ocsf-run-status&lt;/code&gt; DynamoDB table. If a conversion process fails during multi-year historical processing, the solution resumes from the point of failure rather than reprocessing previously converted data. For example, if conversion fails while processing the second year’s data, the solution will resume from that point, preserving the first year’s successful conversion. While this feature is enabled by default, you can disable it, in which case any process restart will begin from the initial specified date. The following image shows the &lt;code class="CodeInline" style="color: #000"&gt;load_type&lt;/code&gt; as historical along with &lt;code class="CodeInline" style="color: #000"&gt;start_time&lt;/code&gt; and &lt;code class="CodeInline" style="color: #000"&gt;end_time&lt;/code&gt; for the period you want to transform the logs.&lt;/p&gt; 
  &lt;div id="attachment_41800" style="width: 1440px" class="wp-caption alignnone"&gt;
   &lt;img aria-describedby="caption-attachment-41800" loading="lazy" class="wp-image-41800 size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/14/3582.5.png" alt="" width="1430" height="537"&gt;
   &lt;p id="caption-attachment-41800" class="wp-caption-text"&gt;Figure 4: Screenshot of configuration for historical load attributes in the asl-etl-framework-source-ocsf-metadata DynamoDB table&lt;/p&gt;
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Enrichment&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Enterprises often possess valuable contextual data that can enhance their security logs through enrichment. By correlating existing data with security logs and appending relevant information, you can create more comprehensive datasets for advanced analytics and deeper security insights. After the logs are converted to OCSF, you might want to know more about specific columns or attributes so that you can extract meaningful information. To support this, the solution has an option for enrichment. For example, if you want to get additional information, such as the geolocation of each IP address in the logs, you can provide the source database information in the metadata CSV file of the solution. It connects to the source database through a JDBC connection, extracts the requested information associated with the IP address to enrich the dataset, and adds the extracted information as new columns to the converted OCSF log output. In this way, you can have detailed information about each IP address in the converted OCSF log. The following screenshot shows parameters for enabling enrichment by setting the &lt;code class="CodeInline" style="color: #000"&gt;is_enrichment_required&lt;/code&gt; flag as true and adding necessary &lt;code class="CodeInline" style="color: #000"&gt;enrichment_attributes&lt;/code&gt; to the metadata table.&lt;/p&gt; 
  &lt;div id="attachment_41801" style="width: 1400px" class="wp-caption alignnone"&gt;
   &lt;img aria-describedby="caption-attachment-41801" loading="lazy" class="wp-image-41801 size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/14/3582.6.png" alt="" width="1390" height="759"&gt;
   &lt;p id="caption-attachment-41801" class="wp-caption-text"&gt;Figure 5: Screenshot of configuration for enrichment attributes in the asl-etl-framework-source-ocsf-metadata DynamoDB table&lt;/p&gt;
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;ETL transformation using AWS Glue or EMR Serverless&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;You can use the engine of your choice for the transformation by providing the engine name during the deployment steps as mentioned in the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl/tree/main?tab=readme-ov-file#pre-deployment-configuration" target="_blank" rel="noopener" data-cms-ai="0"&gt;Pre-Deployment Configuration section of the ReadMe&lt;/a&gt;&lt;/span&gt;. Based on this, the solution uses either AWS Glue or EMR Serverless as mentioned in the &lt;b&gt;Orchestration using Step Functions&lt;/b&gt; section.&lt;/p&gt; 
  &lt;p&gt;The process includes the following steps:&lt;/p&gt; 
  &lt;ol id="rte-6bcbee71-11f6-11f1-a2e1-bd03372bf4a0" class="rte2-style-ol" start="1"&gt; 
   &lt;li&gt;The user enters the metadata and mapping information in the respective CSV files and uploads the files to Amazon S3.&lt;/li&gt; 
   &lt;li&gt;A process (Lambda job) converts the metadata and mapping files to a DynamoDB schema and stores them in corresponding DynamoDB tables (metadata and mapping tables).&lt;/li&gt; 
   &lt;li&gt;A preprocessor job is invoked that takes the metadata from the DynamoDB table &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework-source-ocsf-metadata&lt;/code&gt; and, based on the input parameters passed for the Step Functions workflow shown in the &lt;b&gt;Orchestration using Step Functions&lt;/b&gt; section, the Step Functions workflow generates the input arguments for the transformation job (AWS Glue or EMR Serverless based on the user’s choice).&lt;/li&gt; 
   &lt;li&gt;The transformation job (AWS Glue or Amazon EMR based on the user’s choice) is invoked and reads the metadata and mapping tables and converts the data into OCSF format.&lt;/li&gt; 
   &lt;li&gt;The converted OCSF log files are stored to an Amazon S3 location in Parquet format, which is defined in the DynamoDB table &lt;code class="CodeInline" style="color: #000"&gt;asl-etl-framework-source-ocsf-metadata&lt;/code&gt;. These custom OCSF logs on S3 can be &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/security-lake/latest/userguide/custom-sources.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;integrated with Security Lake&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Orchestration using Step Functions&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;This solution is orchestrated using Step Functions and offers two execution engine options: AWS Glue or EMR Serverless, depending on the services allow-listed in your enterprise. For processing historical loads, we recommend using EMR Serverless; however, AWS Glue is suitable for historical loads less than 100 GB. When invoking the Step Functions workflow, specify the execution engine as either &lt;code class="CodeInline" style="color: #000"&gt;emr-serverless&lt;/code&gt; or &lt;code class="CodeInline" style="color: #000"&gt;glue&lt;/code&gt; in the input parameters passed using EventBridge.&lt;/p&gt; 
  &lt;div id="attachment_41811" style="width: 2220px" class="wp-caption alignnone"&gt;
   &lt;img aria-describedby="caption-attachment-41811" loading="lazy" class="wp-image-41811 size-full" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/15/3485.6.png" alt="" width="2210" height="1952"&gt;
   &lt;p id="caption-attachment-41811" class="wp-caption-text"&gt;Figure 6: Screenshot of Step Functions workflow orchestration&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;To run the workflow, an input must be passed through an EventBridge schedule. The input parameters are as follows:&lt;/p&gt; 
  &lt;p&gt;&lt;code class="CodeInline" style="color: #000"&gt;{&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“source_log_type": “s3-access-log”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“load_type": “historical”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“full_load": “false”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“ddb_lookup_table": “asl-etl-framework-ddb-table-details”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“ddb_mapping_table": “asl-etl-framework-ocsf-attribute-mapping”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“ddb_metadata_table": “asl-etl-framework-source-ocsf-metadata”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“ddb_reference_table": “asl-etl-framework-ocsf-reference”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“asl_status_table": “asl-etl-framework-run-status”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“execution_engine": “glue”,&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;“asl_job_name": “asl-etl-framework-init-ocsf-conversion”&lt;/code&gt;&lt;br&gt; &lt;code class="CodeInline" style="color: #000"&gt;}&lt;/code&gt;&lt;/p&gt; 
  &lt;p&gt;A description of the steps is also available in the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl/tree/main?tab=readme-ov-file#step-function" target="_blank" rel="noopener" data-cms-ai="0"&gt;ReadMe section of the code repository&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Verify the final output in OCSF format&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;It’s a best practice to ensure that the generated Parquet files properly map to the various schema definitions specified within the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://schema.ocsf.io/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Open Cybersecurity Schema Framework (OCSF)&lt;/a&gt;&lt;/span&gt;. Validating the mapping helps to maintain data integrity and allows the security data to be effectively analyzed and processed by downstream applications and tools, such as Security Lake. You can use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/ocsf/ocsf-validator" target="_blank" rel="noopener" data-cms-ai="0"&gt;OCSF Schema Validator&lt;/a&gt;&lt;/span&gt;, which was built to provide supplementary validation for Security Lake. Performing this validation step helps detect any schema misalignments or data quality issues early in the process, leading to more reliable and trustworthy security analytics.&lt;/p&gt; 
  &lt;p&gt;If validation of the transformed OCSF Schema fails using the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/ocsf/ocsf-validator" target="_blank" rel="noopener" data-cms-ai="0"&gt;OCSF Schema Validator&lt;/a&gt;&lt;/span&gt;, you need to validate if your mappings are aligned with the respective &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://schema.ocsf.io/1.1.0/" target="_blank" rel="noopener" data-cms-ai="0"&gt;OCSF category&lt;/a&gt;&lt;/span&gt;. Adjust your mappings, rerun the solution, and validate the transformed OCSF logs using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/ocsf/ocsf-validator" target="_blank" rel="noopener" data-cms-ai="0"&gt;OCSF Schema Validator&lt;/a&gt;&lt;/span&gt; until you get a valid OCSF schema.&lt;/p&gt; 
  &lt;p&gt;When discovering incorrect OCSF mappings or format inconsistencies in converted logs, begin by conducting a thorough validation against OCSF schema specifications to identify specific discrepancies. Update the mappings with correct field mappings, ensuring proper data type conversions and mandatory field requirements are met. Test these corrections using sample data to verify OCSF compliance using the above mentioned &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/ocsf/ocsf-validator" target="_blank" rel="noopener" data-cms-ai="0"&gt;tool&lt;/a&gt;&lt;/span&gt; and data integrity before implementing in production.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;In this post, we showed you how the ETL solution accelerator transforms custom security logs into the standardized OCSF format, enabling enhanced security analytics capabilities. This solution, developed by AWS Professional Services (AWS ProServe), addresses common challenges in security log standardization and streamlines the adoption of Amazon Security Lake. While the solution is available as an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-security-log-transfrom-with-config-driven-etl" target="_blank" rel="noopener" data-cms-ai="0"&gt;open source project&lt;/a&gt;&lt;/span&gt;, engaging with AWS ProServe provides significant advantages, including proven implementation expertise, best practices guidance, and accelerated deployment timelines. Our ProServe team brings extensive experience in security log standardization and can help customize the solution to your specific requirements while ensuring optimal integration with Security Lake. To begin your journey toward standardized security analytics using OCSF, contact your AWS account team to discuss how AWS ProServe can help implement this solution in your environment.&lt;/p&gt; 
  &lt;footer&gt; 
   &lt;div class="blog-author-box"&gt; 
    &lt;div class="blog-author-image"&gt;
     &lt;img loading="lazy" class="alignnone size-full wp-image-41771" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/10/vivekgautam-e1775858742253.png" alt="Vivek Gautam" width="120" height="160"&gt;
    &lt;/div&gt; 
    &lt;h3 class="lb-h4"&gt;Vivek Gautam&lt;/h3&gt; 
    &lt;p&gt;Vivek is a Senior Data Architect with specialization in data analytics at AWS Professional Services. He works with enterprise customers building data products, analytics platforms, streaming, and search solutions on AWS. When not building and designing data products, Vivek is a food enthusiast who also likes to explore new travel destinations and go on hikes.&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class="blog-author-box"&gt; 
    &lt;div class="blog-author-image"&gt;
     &lt;img loading="lazy" class="alignnone size-full wp-image-41769" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/10/arpitgupta-e1775858939951.png" alt="Arpit Gupta" width="116" height="152"&gt;
    &lt;/div&gt; 
    &lt;h3 class="lb-h4"&gt;Arpit Gupta&lt;/h3&gt; 
    &lt;p&gt;Arpit is a Data Architect at AWS Professional Services with a focus on data analytics. He specializes in developing data lakes, analytics solutions, and Generative AI applications in the cloud, helping organizations transform their data into actionable business insights. His passions extend from the digital to the physical realm—from tennis courts to the kitchen, and exploring new destinations with family.&lt;/p&gt; 
   &lt;/div&gt; 
   &lt;div class="blog-author-box"&gt; 
    &lt;div class="blog-author-image"&gt;
     &lt;img loading="lazy" class="alignnone size-full wp-image-41770" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/10/ryangomes-e1775858846999.png" alt="Ryan Gomes" width="120" height="160"&gt;
    &lt;/div&gt; 
    &lt;h3 class="lb-h4"&gt;Ryan Gomes&lt;/h3&gt; 
    &lt;p&gt;Ryan was a Senior Data and ML Engineer with AWS Professional Services at the time of writing. He is passionate about helping customers achieve better outcomes through analytics, machine learning, and generative AI solutions in the cloud. Outside of work, he enjoys fitness, cooking, and spending quality time with friends and family.&lt;/p&gt; 
   &lt;/div&gt; 
  &lt;/footer&gt; 
 &lt;/div&gt; 
&lt;/div&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>Secure AI agent access patterns to AWS resources using Model Context Protocol</title>
		<link>https://aws.amazon.com/blogs/security/secure-ai-agent-access-patterns-to-aws-resources-using-model-context-protocol/</link>
					
		
		<dc:creator><![CDATA[Riggs Goodman III]]></dc:creator>
		<pubDate>Tue, 14 Apr 2026 22:52:51 +0000</pubDate>
				<category><![CDATA[AWS Identity and Access Management (IAM)]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[IAM]]></category>
		<category><![CDATA[Identity & Compliance]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">dc678ea0a34271860e12757b3cd6a9b2545ab889</guid>

					<description>AI agents and coding assistants interact with AWS resources through the Model Context Protocol (MCP). Unlike traditional applications with deterministic code paths, agents reason dynamically, choosing different tools or accessing different data depending on context. You must assume an agent can do anything within its granted entitlements, whether OAuth scopes, API keys, or AWS Identity […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;AI agents and coding assistants interact with AWS resources through the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://modelcontextprotocol.io/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Model Context Protocol (MCP)&lt;/a&gt;&lt;/span&gt;. Unlike traditional applications with deterministic code paths, agents reason dynamically, choosing different tools or accessing different data depending on context. You must assume an agent can do anything within its &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ai/security/agentic-ai-scoping-matrix/" target="_blank" rel="noopener" data-cms-ai="0"&gt;granted entitlements&lt;/a&gt;&lt;/span&gt;, whether OAuth scopes, API keys, or &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Identity and Access Management (IAM)&lt;/a&gt;&lt;/span&gt; permissions, and design your controls accordingly. Agents operate at machine speed, so the impact of misconfigured permissions scales quickly.&lt;/p&gt; 
  &lt;p&gt;This blog post focuses on IAM as the authorization layer for AWS resource access and presents three security principles for building deterministic IAM controls for these non-deterministic AI systems. The principles apply whether you’re using AI coding assistants like &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://kiro.dev/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Kiro&lt;/a&gt;&lt;/span&gt; and Claude Code, or deploying agents on hosting environments like &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock AgentCore&lt;/a&gt;&lt;/span&gt;. We cover deployment patterns, then explore each principle with concrete IAM policy examples and implementation guidance.&lt;/p&gt; 
  &lt;p&gt;This post specifically addresses securing the MCP access path, where agents interact with AWS resources through MCP servers. AI coding assistants and agents can also access AWS service APIs directly through general-purpose tools like bash or shell execution, bypassing MCP servers entirely. For this reason, we recommend architecting agents to use MCP servers rather than direct service access where possible. MCP servers provide a layer of abstraction that enables the differentiation controls in principle 3 and creates additional monitoring capabilities through &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudtrail" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail&lt;/a&gt;&lt;/span&gt;. When agents bypass MCP, the differentiation mechanisms in principle 3 don’t apply, and principles 1 and 2 become your primary controls. We discuss this scope boundary in principle 3.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;MCP deployment patterns&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Your deployment pattern determines which security principles and implementation approaches apply. Three dimensions define this pattern, including where the agent runs, what type of MCP server offers the tools, and your level of control over the agent code. No matter how you connect to it, the MCP server needs AWS credentials to interact with AWS resources.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Where agents run&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Agents access AWS resources from three locations: developer machines (where you control the infrastructure), hosting environments (where you control the infrastructure or significant aspects of it), and third-party agent platforms (where you do not control the infrastructure). This post focuses on the first two patterns. Each has a different credential model and different organizational control options.&lt;/p&gt; 
  &lt;h4&gt;AI coding assistants and local agents&lt;/h4&gt; 
  &lt;p&gt;AI coding assistants (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://kiro.dev/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Kiro&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.anthropic.com/en/docs/claude-code/overview" target="_blank" rel="noopener" data-cms-ai="0"&gt;Claude Code&lt;/a&gt;&lt;/span&gt;) or local agent applications represent the first deployment pattern. These assistants run locally on developer machines and connect to MCP servers or use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cli" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Command Line Interface (AWS CLI)&lt;/a&gt;&lt;/span&gt; commands to access AWS resources. In this pattern, credentials come from the developer’s local environment. When a developer configures an MCP server in their &lt;code class="CodeInline" style="color: #000"&gt;mcp.json&lt;/code&gt; file, they specify which AWS credentials to use. Options include a &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;named profile&lt;/a&gt;&lt;/span&gt;, which can use credential helpers and the credential provider chain for short-lived credentials, environment variables, or explicit credential configuration. This means the developer controls which IAM principal the agent uses to access AWS. This creates a governance challenge. Without additional controls, developers often use their developer admin credentials, shared development roles, or even production roles for agent access. Developer credentials often carry broad permissions designed for interactive use, where human judgment serves as a safeguard. When an agent inherits these permissions, it operates without that judgment at machine speed. Principle 1 explores this risk in detail.&lt;/p&gt; 
  &lt;h4&gt;Agents on hosting environments&lt;/h4&gt; 
  &lt;p&gt;Agents deployed on hosting environments represent the second deployment pattern. These agents run on infrastructure you manage, not on developer machines. This changes the credential management model. Using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Bedrock AgentCore&lt;/a&gt;&lt;/span&gt; as an example, when an agent runs on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/agents-tools-runtime.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AgentCore Runtime&lt;/a&gt;&lt;/span&gt;, it uses an execution IAM role that you configure when creating the runtime. The execution role’s permissions apply to all operations the agent performs and cannot be scoped down per-invocation at the runtime configuration level. For more granular control, agents can call &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Token Service (AWS STS)&lt;/a&gt;&lt;/span&gt; &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; or &lt;code class="CodeInline" style="color: #000"&gt;AssumeRoleWithWebIdentity&lt;/code&gt; (collectively referred to as &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; in this post). This obtains temporary credentials with session policies that further restrict permissions beyond the role’s base permissions. Agents built with frameworks like Strands can also initialize individual MCP clients with different credential sets by calling &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; and passing the resulting credentials to each client connection. This enables per-tool credential isolation within a single agent process. The same pattern applies to agents deployed on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/ec2/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Compute Cloud (Amazon EC2&lt;/a&gt;&lt;/span&gt;) or &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Kubernetes Service (Amazon EKS)&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;With this centralized execution model, you can implement organizational controls. You define the available IAM roles through infrastructure configuration instead of relying on developer choice. However, you must design these roles carefully to prevent overly permissive access and implement session policies for tool-specific restrictions.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;What type of MCP server&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;MCP servers come in two types, provider-managed and self-managed. AWS-managed servers are operated by AWS on your behalf. Self-managed servers are servers that you install and run yourself. The server type affects your operational overhead, available features, and how you implement security controls.&lt;/p&gt; 
  &lt;p&gt;AWS offers fully managed MCP servers, including the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/aws-mcp/latest/userguide/what-is-mcp-server.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS MCP Server&lt;/a&gt;&lt;/span&gt;, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/eks/latest/userguide/eks-mcp-introduction.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EKS MCP Server&lt;/a&gt;&lt;/span&gt;, and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-mcp-introduction.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon ECS MCP Server&lt;/a&gt;&lt;/span&gt;. These AWS-managed servers run on AWS infrastructure and require no installation or maintenance on your part. AWS-managed MCP servers automatically add IAM context keys (&lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsmcpservice" target="_blank" rel="noopener" data-cms-ai="0"&gt;aws:ViaAWSMCPService&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-calledviaawsmcp" target="_blank" rel="noopener" data-cms-ai="0"&gt;aws:CalledViaAWSMCP&lt;/a&gt;&lt;/span&gt;) to every downstream AWS service call. You can write IAM policies that check these keys to distinguish between AI-driven actions and human-initiated actions without any additional configuration.&lt;/p&gt; 
  &lt;p&gt;Self-managed MCP servers include AWS-provided servers from the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/awslabs/mcp" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS MCP GitHub repository&lt;/a&gt;&lt;/span&gt; that you install and run yourself. They also include custom MCP servers that you build from scratch. With self-managed servers, you control the deployment location (local machine, Amazon EC2, Amazon EKS), the configuration, and the maintenance. These servers can be used with either AI coding assistants running locally or agents deployed on hosting environments. The key difference for security controls is that self-managed servers don’t automatically add IAM context keys for differentiation. You must configure the MCP server to add &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="http://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;session tags&lt;/a&gt;&lt;/span&gt; when assuming IAM roles if you require differentiation between AI-driven and human-initiated actions. This requires modifying your MCP server code to call AWS STS &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; with tags attached. You then write IAM policies that check for these tags using the &lt;code class="CodeInline" style="color: #000"&gt;aws:PrincipalTag&lt;/code&gt; condition key. Self-managed servers can also be extended to implement dynamic authorization flows, such as mapping inbound OAuth tokens to outbound IAM role assumptions, giving you control over the full authorization chain. Additionally, with AWS-managed MCP servers, AWS injects context keys at the service layer, so callers cannot spoof them. With self-managed servers, the entity calling &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; sets the session tags, so you must trust that your MCP server code hasn’t been modified.&lt;/p&gt; 
  &lt;p&gt;The responsibility model differs between server types. With AWS-managed MCP servers, AWS is responsible for server infrastructure, patching, and context key injection. You’re responsible for IAM policy design and credential configuration. With self-managed MCP servers, you’re additionally responsible for server patching, dependency and library supply chain security, session tag implementation, and verifying server integrity. This connects to the supply chain risk described in principle 1. While self-managed servers require more operational overhead to implement and maintain, they give you flexibility and control.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Level of client control&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;A third dimension shapes your security implementation, whether you control the agent and MCP client code (code-controlled) or are limited to configuring pre-built tools without modifying their runtime behavior (configuration-bound). This determines which security mechanisms are available to you at runtime.&lt;/p&gt; 
  &lt;p&gt;In configuration-bound scenarios, you use an AI coding assistant such as Kiro or Claude Code and configure credentials in your &lt;code class="CodeInline" style="color: #000"&gt;mcp.json&lt;/code&gt; file. You select which IAM role or profile the agent uses, but you cannot modify the agent’s runtime behavior. The agent calls AWS APIs using whatever credentials you configured ahead of time, and you cannot inject session policies or tags into those calls programmatically. Your security controls must be in place before the agent runs. You select narrowly scoped roles at configuration time, and your organization enforces guardrails through permission boundaries and service control policies (SCPs). These mechanisms restrict what the agent can do regardless of which role the developer selects.&lt;/p&gt; 
  &lt;p&gt;In code-controlled scenarios, you build or deploy a custom agent on Amazon Bedrock AgentCore, Amazon EC2, Amazon EKS, or your local machine, or you build and run a custom MCP server. Because you control the runtime code, you can implement credential management programmatically. For custom agents, this means calling AssumeRole with session policies scoped to each tool invocation, attaching session tags for differentiation, and obtaining temporary credentials with the minimum permissions each operation requires. For custom MCP servers, you can inject session policies into every AWS API call the server makes, applying a consistent set of restrictions across all operations. Both approaches give you runtime IAM controls that are not available in config-bound scenarios.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Deployment pattern summary&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The following table summarizes how these dimensions combine.&lt;/p&gt; 
  &lt;table style="border-collapse: separate;text-indent: initial;border-spacing: 2px;border-color: gray;width: 100%" border="1px" cellpadding="10px"&gt; 
   &lt;tbody&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;Source type&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;MCP server type&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;Client control&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;Credential source&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;Differentiation mechanism&lt;/b&gt;&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;&lt;b&gt;Example use case&lt;/b&gt;&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;AI coding assistant&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;AWS-managed MCP&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Config-bound&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Local (AWS CLI, env vars, )&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Automatic context keys&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Kiro calling AWS-managed MCP server&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;AI coding assistant&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Self-managed MCP (local or remote)&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Config-bound&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Local (AWS CLI, env vars, )&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Manual session tags or session policies&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Kiro calling local AWS MCP server&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Agent on hosting environment&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;AWS-managed MCP&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Code-controlled&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Execution role or AssumeRole&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Automatic context keys&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Amazon Bedrock AgentCore agent calling AWS-managed MCP server&lt;/td&gt; 
    &lt;/tr&gt; 
    &lt;tr&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Agent on hosting environment&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Self-managed MCP (remote)&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Code-controlled&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Execution role or AssumeRole&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Manual session tags or session policies&lt;/td&gt; 
     &lt;td style="padding: 10px;border: 1px solid #dddddd"&gt;Agent calling AWS MCP server deployed on Amazon Bedrock AgentCore&lt;/td&gt; 
    &lt;/tr&gt; 
   &lt;/tbody&gt; 
  &lt;/table&gt; 
  &lt;p&gt;Your deployment pattern and level of client control determine which of the following security principles apply and how you implement them.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Three security principles for agent access&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;With this understanding of deployment patterns, let’s explore the three security principles that apply across all patterns.&lt;/p&gt; 
  &lt;ul id="rte-6b2a6aa0-29d9-11f1-bf43-9be671b54ca9" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;b&gt;Principle 1 – Assume all granted permissions could be used:&lt;/b&gt; Design permissions based on the acceptable scope of impact, not intended functionality alone.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Principle 2 – Provide organizational guidance on role usage:&lt;/b&gt; Enforce permission design through role governance, session policies, permission boundaries, and organizational policies.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Principle 3 – Differentiate AI-driven from human-initiated actions:&lt;/b&gt; Apply different IAM rules based on whether the action comes from an agent or a human.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Security principle 1: Assume all granted permissions could be used&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The first security principle is fundamental. Any permission you grant to an agent can be exercised, regardless of your intended use case. If you give an agent &lt;code class="CodeInline" style="color: #000"&gt;s3:DeleteObject&lt;/code&gt; permission with a tool that can call the API, you must assume it can delete any &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Storage Service (Amazon S3)&lt;/a&gt;&lt;/span&gt; object it has access to. This can happen in ways you cannot predict or fully prevent through code review alone. This non-deterministic behavior requires a shift in your approach to IAM permissions.&lt;/p&gt; 
  &lt;p&gt;Traditional applications follow deterministic code paths. You can review the source code, identify every API call, and grant the permissions needed. AI agents operate differently. They make decisions at runtime based on reasoning, context, and learned patterns. You cannot predict which AWS APIs or tools an agent will call or which resources it will access. Static analysis of agent code tells you what tools are available, but not which tools will be invoked or how they’ll be used.&lt;/p&gt; 
  &lt;p&gt;This creates a challenge when developers configure agents to use AWS credentials. Developers commonly use existing IAM roles, such as the role their traditional application uses or their local admin role for the AWS CLI. These roles were designed assuming predictable behavior and human judgment. Your local admin role has &lt;code class="CodeInline" style="color: #000"&gt;s3:*&lt;/code&gt; permissions because you exercise judgment on what to delete and when. You understand the context, recognize production resources, and can assess the impact of your actions.&lt;/p&gt; 
  &lt;p&gt;An agent with that same role operates at machine speed without human judgment. It can delete production data through hallucination or be directed through prompt injection to perform unintended actions. It can also make a logical error in its reasoning that leads to unintended operations. The speed and scale at which agents operate increases the potential scope of these issues. An agent can make thousands of API calls in seconds, so the impact of misconfigured permissions scales quickly.&lt;/p&gt; 
  &lt;p&gt;Consider the following scenarios with overly permissive access.&lt;/p&gt; 
  &lt;ul id="rte-6b2a6aa1-29d9-11f1-bf43-9be671b54ca9" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;b&gt;Hallucination:&lt;/b&gt; The agent misinterprets a user request and performs the wrong action. An agent designed to clean up temporary files might hallucinate that production data is temporary and delete it.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Prompt injection:&lt;/b&gt; An outside party crafts unexpected input that influences the agent’s reasoning. An agent designed to query &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon DynamoDB&lt;/a&gt;&lt;/span&gt; tables could be directed to call &lt;code class="CodeInline" style="color: #000"&gt;dynamodb:PutItem&lt;/code&gt; or &lt;code class="CodeInline" style="color: #000"&gt;dynamodb:DeleteItem&lt;/code&gt; on resources outside its intended scope.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Logic errors:&lt;/b&gt; The agent’s reasoning leads to an incorrect conclusion. An agent analyzing S3 storage costs might conclude that frequently accessed production data is unused and delete it to save costs.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Tool poisoning: &lt;/b&gt;A compromised MCP server or dependency performs unintended operations using the agent’s credentials. An agent with broad S3 and DynamoDB permissions connects to an MCP server whose dependency has been modified to exfiltrate data. The compromised tool reads sensitive objects and writes them to an attacker-controlled location, all within the agent’s granted permissions.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;This security principle reframes how you approach IAM permissions for agents. Instead of asking &lt;i&gt;what does the agent need to do?&lt;/i&gt;, ask &lt;i&gt;what is the scope of impact if the agent acts outside its intended use case?&lt;/i&gt; Design permissions based on the acceptable scope of access, not only on intended functionality. If an agent needs to read S3 objects, grant &lt;code class="CodeInline" style="color: #000"&gt;s3:GetObject&lt;/code&gt;, not &lt;code class="CodeInline" style="color: #000"&gt;s3:*&lt;/code&gt;. If it needs to write to specific paths, use resource-level conditions to restrict access to those paths. Consider what tools the agent has access to and what API calls those tools can make. Design permissions that limit what the agent is allowed to perform based on organizational policy. This doesn’t mean agents can’t have write or delete permissions. It means you and your organization must consider what resources those permissions apply to and what safeguards are in place.&lt;/p&gt; 
  &lt;p&gt;Beyond IAM policies, consider implementing data perimeters as an additional layer of defense. Data perimeters use VPC endpoint policies, resource control policies (RCPs), resource policies, and service control policies (SCPs) to restrict access based on identity, resource, and network boundaries. For agents, data perimeters help verify that even if IAM permissions are broader than intended, access is limited to trusted resources from expected networks. For more information, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/whitepapers/latest/building-a-data-perimeter-on-aws/building-a-data-perimeter-on-aws.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Building a data perimeter on AWS&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Practical implementation guidance:&lt;/b&gt;&lt;/p&gt; 
  &lt;ul id="rte-6b2a6aa2-29d9-11f1-bf43-9be671b54ca9" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;b&gt;Apply least privilege rigorously:&lt;/b&gt; If an agent needs read access, grant read permissions. If it needs write access, grant write to specific resources, not all resources of that type.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Use resource-level restrictions:&lt;/b&gt; Employ IAM policy conditions to limit permissions to specific buckets, paths, tables, or other resources. Don’t grant blanket permissions across all resources.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Consider read-only alternatives:&lt;/b&gt; Evaluate whether the agent’s task can be accomplished with read-only access. Many analysis and reporting tasks don’t require write or delete permissions.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Implement comprehensive monitoring:&lt;/b&gt; Set up &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Alarms.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CloudWatch alarms&lt;/a&gt;&lt;/span&gt; for unexpected agent actions, unusual access patterns, or operations on sensitive resources. Monitor for sensitive operations like deletions or modifications to production resources.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Conduct regular permission audits:&lt;/b&gt; As agents gain new tools and capabilities, developers often add permissions incrementally without removing unused ones. An agent that started with read-only access can gradually accumulate write and delete permissions across multiple services. Review agent IAM roles and policies regularly to identify and remove permissions that are no longer needed.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Verify MCP server integrity:&lt;/b&gt; Verify the provenance and integrity of MCP servers before granting them access to AWS credentials. Maintain an organizational registry of approved MCP servers and their expected behavior, and monitor for unauthorized server deployments that might have assumed execution roles. For more on agentic application risks, see the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/" target="_blank" rel="noopener" data-cms-ai="0"&gt;OWASP Top 10 for Agentic Applications&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Security principle 1 establishes the foundation. Understand the scope of every permission you grant. The next two security principles build on this foundation.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Security principle 2: Provide organizational guidance on role usage&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The second security principle addresses organizational governance. Principle 1 requires that you design permissions based on acceptable scope of impact. Principle 2 addresses how your organization enforces that design through role governance, session policies, permission boundaries, and organizational policies.&lt;/p&gt; 
  &lt;p&gt;When developers adopt AI coding assistants and configure MCP servers, they choose which credentials to use. Without organizational controls, developers often use existing roles (such as personal admin roles, shared development roles, or production roles) that were designed for human use with far more permissions than agents need. For agents deployed on hosting environments, you configure execution roles, but the same question applies. What permissions should those roles have, and how do you enforce consistency across deployments? The answer depends on your level of client control.&lt;/p&gt; 
  &lt;h4&gt;When you control the agent code&lt;/h4&gt; 
  &lt;p&gt;When you build or deploy custom agents on Amazon Bedrock AgentCore, Amazon EC2, Amazon EKS, or locally, you control the runtime code and can implement dynamic credential management. This is the strongest enforcement model because you can scope permissions per tool invocation at runtime. The same applies if you build or modify a custom MCP server. Because you control the server code, you can inject session policies into every AWS API call the server makes.&lt;/p&gt; 
  &lt;p&gt;The IAM role defines the permission ceiling for the agent across all its tools. Instead of creating a separate role for every tool or MCP server, you use session policies to scope down the role’s permissions per operation. When the agent invokes a specific tool, it calls &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; with a session policy that restricts permissions to just what that tool requires. The effective permissions are the intersection of the role’s policies and the session policy. Session policies restrict permissions but never expand them. If a role grants broad permissions but you attach the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ReadOnlyAccess.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;ReadOnlyAccess&lt;/a&gt;&lt;/span&gt; managed policy as a session policy, the agent can only perform read operations. You can also use inline session policies for resource-specific restrictions, such as limiting access to specific S3 buckets or DynamoDB tables.&lt;/p&gt; 
  &lt;p&gt;The following example shows how to implement session policies in agent code.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;import boto3

# Uses the execution IAM role as part of AgentCore Runtime
sts = boto3.client('sts')

# Assume role with ReadOnlyAccess managed policy as session policy
response = sts.assume_role(
    RoleArn='arn:aws:iam::111122223333:role/AgentDataRole',
    RoleSessionName='agent-data-reader',
    PolicyArns=[
        {'arn': 'arn:aws:iam::aws:policy/ReadOnlyAccess'}
    ],
    DurationSeconds=3600
)

# Use the temporary credentials
credentials = response['Credentials']
s3 = boto3.client(
    's3',
    aws_access_key_id=credentials['AccessKeyId'],
    aws_secret_access_key=credentials['SecretAccessKey'],
    aws_session_token=credentials['SessionToken']
)
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;For agents on hosting environments like Amazon Bedrock AgentCore, the execution role serves two purposes. It’s the trust anchor that lets the agent call &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; for tool-specific credentials, and it can supply baseline permissions that all operations need, such as writing logs to CloudWatch. For tool-specific operations that access customer resources, use &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; with session policies to obtain scoped temporary credentials rather than using the execution role’s permissions directly. This centralized execution model simplifies enforcing consistent session policies across all agent deployments. Agents can also attach tags when assuming roles for differentiation purposes (covered in Security principle 3).&lt;/p&gt; 
  &lt;h4&gt;When you’re configuration bound&lt;/h4&gt; 
  &lt;p&gt;When you use an AI coding assistant like Kiro or Claude Code with off-the-shelf MCP servers, you configure credentials in your &lt;code class="CodeInline" style="color: #000"&gt;mcp.json&lt;/code&gt; file but cannot modify the agent’s runtime behavior. Your security controls must be established before the agent runs.&lt;/p&gt; 
  &lt;p&gt;Your first control is role selection. As described in the preceding deployment patterns section, AI coding assistants use credentials from the developer’s local environment. Create agent-specific IAM roles with narrower permissions than equivalent human roles, and direct developers to use them. For self-managed MCP servers running locally, the developer specifies the role through environment variables in the &lt;code class="CodeInline" style="color: #000"&gt;mcp.json&lt;/code&gt; configuration.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
  "mcpServers": {
    "awslabs.aws-pricing-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.aws-pricing-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "agent-dev-role",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;For AWS-managed MCP servers, the developer connects through the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws/mcp-proxy-for-aws" target="_blank" rel="noopener" data-cms-ai="0"&gt;mcp-proxy-for-aws&lt;/a&gt;&lt;/span&gt; proxy and specifies the role through the profile parameter.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
  "mcpServers": {
    "aws-mcp": {
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://aws-mcp.us-east-1.api.aws/mcp",
        "--profile", "agent-dev-role",
        "--metadata", "AWS_REGION=us-east-1"
      ]
    }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Only role selection depends on developer compliance. &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM permission boundaries&lt;/a&gt;&lt;/span&gt; provide organizational enforcement without requiring code changes or developer cooperation. A permission boundary is a managed policy that your security team attaches to an IAM role to set the maximum permissions that role can grant. The effective permissions are the intersection of the role’s identity-based policies and the permission boundary. Permission boundaries are most effective on agent-specific roles that your organization creates for agent use. They ensure those roles cannot exceed their intended permissions even if misconfigured. If a developer configures their existing role in &lt;code class="CodeInline" style="color: #000"&gt;mcp.json&lt;/code&gt; instead, a permission boundary on that role restricts all use of the role, not just agent use. For AWS-managed MCP servers, principle 3’s context keys address this gap. They let you write IAM policies that restrict actions only when they come through an MCP server, leaving the developer’s direct use of the same role unaffected. For self-managed MCP servers, modifying the server code to &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; into an organization-defined role provides a similar override, and session tags can be attached during that &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; for differentiation (see principle 3). For multi-account environments, SCPs in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Organizations&lt;/a&gt;&lt;/span&gt; provide guardrails at the account or organizational unit level. SCPs set the maximum permissions for all principals in an account, giving your central governance team control over agent permissions across your organization.&lt;/p&gt; 
  &lt;h4&gt;Organizational governance at scale&lt;/h4&gt; 
  &lt;p&gt;Whether your agents are config-bound or code-controlled, you need organizational mechanisms to enforce consistent governance across teams and accounts.&lt;/p&gt; 
  &lt;p&gt;Tag IAM roles intended for agent use with a consistent identifier, such as a tag key of &lt;code class="CodeInline" style="color: #000"&gt;Usage&lt;/code&gt; with a value of &lt;code class="CodeInline" style="color: #000"&gt;Agent&lt;/code&gt;. This lets your governance team inventory all agent roles across accounts, identify roles that don’t have permission boundaries, and distinguish agent roles from human roles in audit reports. You can also use tag-based conditions in SCPs to enforce that only properly tagged roles are used for agent operations. For AWS-managed MCP servers, the automatic context keys (principle 3) provide this identification without requiring role tags, but tagging remains useful for role inventory and audit purposes.&lt;/p&gt; 
  &lt;p&gt;Use CloudTrail to monitor all API calls made by agent sessions and set up CloudWatch alarms for sensitive operations like resource deletion or permission changes. Principle 3 covers how to filter and analyze agent activity using context keys (AWS-managed MCP) and session tags (self-managed MCP).&lt;/p&gt; 
  &lt;p&gt;For multi-account environments, combine SCPs with permission boundaries and resource control policies (RCPs) for layered enforcement. SCPs set the maximum permissions for principals within your organization at the account or organizational unit level, while permission boundaries constrain individual roles. RCPs enforce controls at the resource level regardless of the caller’s organizational membership, protecting resources even from cross-account access. Verify that the AWS services you use support MCP context keys in RCP evaluation. This layered approach gives your central governance team control over agent permissions across your organization, even when individual teams manage their own accounts and roles. Conduct quarterly reviews of agent roles and session policies to identify permissions that are no longer needed as agent capabilities evolve.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Practical implementation guidance:&lt;/b&gt;&lt;/p&gt; 
  &lt;ul id="rte-6b2a6aa3-29d9-11f1-bf43-9be671b54ca9" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;b&gt;For code controlled agents:&lt;/b&gt; Implement session policies for every tool invocation. Use &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; with the minimum permissions each operation requires rather than relying on the execution role’s base permissions.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;For config-bound agents:&lt;/b&gt; Create agent-specific IAM roles with narrower permissions than human roles or configure self-managed MCP servers to &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; into an organization-defined role. Have your security team attach permission boundaries to agent-specific roles to enforce maximum permissions regardless of developer role selection.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;At the organization level:&lt;/b&gt; Tag agent roles consistently, enforce guardrails through SCPs, and monitor agent activity through CloudTrail. Conduct quarterly reviews to remove unused permissions.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;p&gt;Security principle 2 gives you organizational control over agent permissions through mechanisms matched to your level of client control. Session policies and dynamic credential scoping enforce permissions at runtime for code-controlled agents. Permission boundaries and SCPs enforce permissions at the organizational level for config-bound agents. The next principle adds a complementary layer of governance at the resource level based on whether a human or agent is performing the action.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;&lt;b&gt;Security principle 3: Differentiate AI-driven from human-initiated actions&lt;/b&gt;&lt;/h3&gt; 
  &lt;/div&gt; 
  &lt;p&gt;The third security principle adds an additional level of control on top of principle 2. Where principle 2 governs what permissions an agent has, this principle governs what the agent can do with those permissions based on whether the action is AI-driven or human-initiated.&lt;/p&gt; 
  &lt;p&gt;This principle is essential for two reasons. For AWS-managed MCP servers, you cannot modify the server code to inject session policies or call AssumeRole with scoped credentials. The developer’s credentials flow through as-is. Context keys are your primary mechanism to restrict agent actions differently from human-initiated actions on the same role. For self-managed MCP servers where principle 2’s session policies are already in place, differentiation adds a second layer of defense at the resource level. Even if the session policy is broader than intended, differentiation policies can deny specific dangerous operations when performed through an agent.&lt;/p&gt; 
  &lt;p&gt;For example, you can allow both humans and agents to read Amazon S3 objects, but deny delete operations when accessed through agents. Without a differentiation mechanism, IAM policies can’t distinguish between AI-driven actions and human-initiated actions. If a developer has &lt;code class="CodeInline" style="color: #000"&gt;s3:DeleteObject&lt;/code&gt; permission and uses an agent with their credentials, the agent also has &lt;code class="CodeInline" style="color: #000"&gt;s3:DeleteObject&lt;/code&gt; permission with no way to restrict it.&lt;/p&gt; 
  &lt;p&gt;Differentiation gives you granular governance. Allow human-initiated actions with broad permissions while restricting agent actions to narrower permissions. Apply different rules based on context and implement progressive restrictions. Allow read operations for everyone, require approval for AI-driven write operations, and deny delete operations for agent actions entirely. Maintain audit trails showing which actions were AI-driven versus human-initiated, essential for compliance and security investigations.&lt;/p&gt; 
  &lt;h4&gt;When agents bypass MCP servers&lt;/h4&gt; 
  &lt;p&gt;Differentiation through condition keys and session tags applies when the agent accesses AWS through an MCP server. AI coding assistants like Kiro and Claude Code have access to general-purpose tools, including bash, shell, and code execution. When an agent uses a bash tool to run an AWS CLI command like &lt;code class="CodeInline" style="color: #000"&gt;aws s3 rm s3://my-bucket/my-object&lt;/code&gt; or executes a Python script that calls boto3 directly, the request goes straight to AWS using the developer’s existing credentials. The request bypasses MCP servers entirely. The &lt;code class="CodeInline" style="color: #000"&gt;aws:ViaAWSMCPService&lt;/code&gt; condition key isn’t set, session tags from MCP server &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; calls aren’t applied, and IAM policies conditioned on these values don’t evaluate.&lt;/p&gt; 
  &lt;p&gt;This means a deny policy like &lt;code class="CodeInline" style="color: #000"&gt;“Condition": {"Bool": {"aws:ViaAWSMCPService": “true"}}&lt;/code&gt; blocks the agent when it calls Amazon S3 through a managed MCP server, but doesn’t block the same agent when it runs the equivalent AWS CLI command through a bash tool. The agent has two paths to the same AWS API, and differentiation controls govern one path.&lt;/p&gt; 
  &lt;p&gt;The condition keys work as designed, differentiating MCP-mediated access from direct access. This is a scope boundary. Differentiation controls secure the MCP access path. For the direct access path, principles 1 and 2 are your controls. Least privilege on the underlying IAM role (principle 1) and organizational guardrails like permission boundaries and SCPs (principle 2) apply regardless of how the agent reaches AWS. If the role doesn’t have &lt;code class="CodeInline" style="color: #000"&gt;s3:DeleteObject&lt;/code&gt; permission, the agent can’t delete objects through a bash tool or through an MCP server.&lt;/p&gt; 
  &lt;p&gt;Restricting which tools an agent can access is a complementary control outside the scope of IAM. You can use agent frameworks and hosting environments such as Amazon Bedrock AgentCore to limit the set of available tools, removing general-purpose execution capabilities for agents that interact with AWS exclusively through MCP servers. When you combine tool restriction with the IAM controls in this post, you close the gap between the MCP access path and the direct access path.&lt;/p&gt; 
  &lt;h4&gt;AWS-managed MCP servers: Automatic context keys&lt;/h4&gt; 
  &lt;p&gt;AWS-managed MCP servers, including the AWS MCP Server, Amazon EKS MCP Server, and Amazon ECS MCP Server, offer differentiation by default. They automatically add IAM context keys to every downstream AWS service call. These context keys are &lt;code class="CodeInline" style="color: #000"&gt;aws:ViaAWSMCPService&lt;/code&gt;, a boolean set to &lt;code class="CodeInline" style="color: #000"&gt;true&lt;/code&gt; when the request comes through any AWS-managed MCP server. The second key is &lt;code class="CodeInline" style="color: #000"&gt;aws:CalledViaAWSMCP&lt;/code&gt;, a string containing the MCP server name like &lt;code class="CodeInline" style="color: #000"&gt;aws-mcp.amazonaws.com&lt;/code&gt;, &lt;code class="CodeInline" style="color: #000"&gt;eks-mcp.amazonaws.com&lt;/code&gt;, or &lt;code class="CodeInline" style="color: #000"&gt;ecs-mcp.amazonaws.com&lt;/code&gt;. No configuration is required on your part. You only need to write IAM policies that check for these keys to apply different rules for agent actions.&lt;/p&gt; 
  &lt;p&gt;The following IAM policy denies delete operations when accessed through any AWS-managed MCP server.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AllowS3ReadOperations",
    "Effect": "Allow",
    "Action": [
      "s3:GetObject",
      "s3:ListBucket"
    ],
    "Resource": "*"
  }, {
    "Sid": "DenyDeleteWhenAccessedViaMCP",
    "Effect": "Deny",
    "Action": [
      "s3:DeleteObject",
      "s3:DeleteBucket"
    ],
    "Resource": "*",
    "Condition": {
      "Bool": {
        "aws:ViaAWSMCPService": "true"
      }
    }
  }]
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;When a request doesn’t come through an AWS-managed MCP server, the &lt;code class="CodeInline" style="color: #000"&gt;aws:ViaAWSMCPService&lt;/code&gt; condition key isn’t present in the request context. The &lt;code class="CodeInline" style="color: #000"&gt;Deny&lt;/code&gt; statement only applies when the key is explicitly set to &lt;code class="CodeInline" style="color: #000"&gt;true&lt;/code&gt;, so human-initiated actions are unaffected by this policy.&lt;/p&gt; 
  &lt;p&gt;You can also restrict operations to specific MCP servers. With this policy, you can run EKS operations only when accessed through the EKS MCP server, not through the AWS API MCP server.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AllowEKSOperationsViaEKSMCP",
    "Effect": "Allow",
    "Action": "eks:*",
    "Resource": "*",
    "Condition": {
      "StringEquals": {
        "aws:CalledViaAWSMCP": "eks-mcp.amazonaws.com"
      }
    }
  }, {
    "Sid": "DenyEKSOperationsViaOtherMCP",
    "Effect": "Deny",
    "Action": "eks:*",
    "Resource": "*",
    "Condition": {
      "Bool": {
        "aws:ViaAWSMCPService": "true"
      },
      "StringNotEquals": {
        "aws:CalledViaAWSMCP": "eks-mcp.amazonaws.com"
      }
    }
  }]
}&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;h4&gt;Self-managed MCP servers: Manual session tags&lt;/h4&gt; 
  &lt;p&gt;Self-managed MCP servers, whether AWS-provided servers from the AWS MCP GitHub repository or custom servers you build yourself, don’t automatically add IAM context keys. To implement differentiation with self-managed servers, you must configure the MCP server to add session tags when assuming IAM roles. This requires modifying your MCP server to call AWS STS &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; with tags attached. The tags remain active for the duration of the assumed role session and can be referenced in IAM policies using the &lt;code class="CodeInline" style="color: #000"&gt;aws:PrincipalTag&lt;/code&gt; condition key. This approach gives you flexibility and control over the session tag configuration. To maintain consistency, verify that all MCP server instances add the appropriate tags.&lt;/p&gt; 
  &lt;p&gt;The following example shows how to configure your MCP server to add session tags.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;import boto3

sts = boto3.client('sts')

response = sts.assume_role(
    RoleArn='arn:aws:iam::111122223333:role/MCPServerRole',
    RoleSessionName='mcp-server-session',
    Tags=[
        {'Key': 'AccessType', 'Value': 'AI'},
        {'Key': 'Source', 'Value': 'AgentRuntime'},
        {'Key': 'MCPServer', 'Value': 'org-data-server'}
    ]
)

# Use the temporary credentials from response['Credentials']
credentials = response['Credentials']
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;After your MCP server has added session tags, you can write IAM policies that check for these tags to differentiate agent actions.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AllowS3ReadOperations",
    "Effect": "Allow",
    "Action": [
      "s3:GetObject",
      "s3:ListBucket"
    ],
    "Resource": "*"
  }, {
    "Sid": "DenyDeleteWhenAccessedViaAI",
    "Effect": "Deny",
    "Action": [
      "s3:DeleteObject",
      "s3:DeleteBucket"
    ],
    "Resource": "*",
    "Condition": {
      "StringEquals": {
        "aws:PrincipalTag/AccessType": "AI"
      }
    }
  }]
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Session tags and session policies are both passed to &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt;, but serve different purposes. Session policies (covered in security principle 2) constrain what permissions the agent has. Session tags (covered here in security principle 3) mark the session as AI-driven, enabling IAM policies to differentiate between agent and human actions. You can use both in the same &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; call for defense-in-depth. The session policy constrains what the agent can do. The session tags let IAM policies apply different rules based on the actor type.&lt;/p&gt; 
  &lt;p&gt;The following example uses both session policies and session tags together.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;import boto3

sts = boto3.client('sts')

# Assume role with both managed session policy and tags
response = sts.assume_role(
    RoleArn='arn:aws:iam::111122223333:role/AgentDataRole',
    RoleSessionName='agent-data-reader',
    PolicyArns=[                              # Principle 2: Constrains permissions
        {'arn': 'arn:aws:iam::aws:policy/ReadOnlyAccess'}
    ],
    Tags=[                                    # Principle 3: Enables differentiation
        {'Key': 'AccessType', 'Value': 'AI'},
        {'Key': 'Source', 'Value': 'AgentRuntime'},
        {'Key': 'MCPServer', 'Value': 'org-data-server'}
    ],
    DurationSeconds=3600
)
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;h4&gt;CloudTrail logging and audit trails&lt;/h4&gt; 
  &lt;p&gt;Both differentiation mechanisms generate CloudTrail logs for audit trails. For AWS-managed MCP servers, downstream AWS API calls include the MCP service identifier in the &lt;code class="CodeInline" style="color: #000"&gt;invokedBy&lt;/code&gt;, &lt;code class="CodeInline" style="color: #000"&gt;sourceIPAddress&lt;/code&gt;, and &lt;code class="CodeInline" style="color: #000"&gt;userAgent&lt;/code&gt; fields. You can filter on these fields to isolate agent activity. MCP-originated downstream calls are classified as data events, so you must enable data event logging on your CloudTrail trail to capture them.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
  "eventVersion": "1.11",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAEXAMPLE:developer-session",
    "arn": "arn:aws:sts::111122223333:assumed-role/DeveloperRole/developer-session",
    "accountId": "111122223333",
    "sessionContext": {
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAEXAMPLE",
        "arn": "arn:aws:iam::111122223333:role/DeveloperRole",
        "accountId": "111122223333",
        "userName": "DeveloperRole"
      }
    },
    "invokedBy": "aws-mcp.amazonaws.com"
  },
  "eventSource": "s3.amazonaws.com",
  "eventName": "GetObject",
  "sourceIPAddress": "aws-mcp.amazonaws.com",
  "userAgent": "aws-mcp.amazonaws.com",
  "eventType": "AwsApiCall",
  "managementEvent": false,
  "eventCategory": "Data"
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;For self-managed MCP servers with session tags, the tags appear in the &lt;code class="CodeInline" style="color: #000"&gt;requestParameters.principalTags&lt;/code&gt; field of the &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; CloudTrail event. You can correlate the session name from the &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; event to downstream API calls to trace agent activity.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
  "eventSource": "sts.amazonaws.com",
  "eventName": "AssumeRole",
  "requestParameters": {
    "roleArn": "arn:aws:iam::111122223333:role/MCPServerRole",
    "roleSessionName": "mcp-server-session",
    "principalTags": {
      "AccessType": "AI",
      "Source": "AgentRuntime",
      "MCPServer": "org-data-server"
    }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;p&gt;With these logs, you can query CloudTrail to find all AI-driven actions and analyze patterns of agent behavior. You can also identify unexpected or unauthorized operations and maintain compliance audit trails. Set up CloudWatch alarms to detect agent actions on sensitive resources or unusual patterns that indicate unintended access or misconfiguration.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Things to consider&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;When deciding between AWS-managed and self-managed MCP servers, consider the trade-offs. AWS-managed MCP servers offer the most straightforward path. Context keys are added automatically with no configuration on your part. Self-managed MCP servers require modifying code to add session tags. However, they give you complete control over the tags and let you implement custom functionality not available in AWS-managed servers. Organizations can use both approaches, AWS-managed servers for standard AWS operations and self-managed servers for specialized use cases.&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Practical implementation guidance:&lt;/b&gt;&lt;/p&gt; 
  &lt;ul id="rte-6b2a6aa4-29d9-11f1-bf43-9be671b54ca9" class="rte2-style-ul"&gt; 
   &lt;li&gt;&lt;b&gt;Assess direct access paths:&lt;/b&gt; Evaluate whether your agents have access to general-purpose tools (bash, shell, code execution) that can bypass MCP servers. If they do, rely on principles 1 and 2 for those paths and consider restricting tool availability where possible.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Choose a differentiation mechanism:&lt;/b&gt; Select based on your MCP server type (for managed, use context keys, for self-managed, use session tags).&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;For AWS-managed MCP:&lt;/b&gt; Write IAM policies that check &lt;code class="CodeInline" style="color: #000"&gt;aws:ViaAWSMCPService&lt;/code&gt; and &lt;code class="CodeInline" style="color: #000"&gt;aws:CalledViaAWSMCP&lt;/code&gt; condition keys. No MCP server configuration needed.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;For self managed MCP:&lt;/b&gt; Modify MCP server code to add session tags when assuming roles. Verify consistent tag application across all instances.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Update IAM policies:&lt;/b&gt; Add differentiation conditions to existing policies. Test in non-production first to verify behavior.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Monitor CloudTrail logs:&lt;/b&gt; Verify differentiation is working by checking for context keys or session tags in CloudTrail events.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Set up alerts:&lt;/b&gt; Configure CloudWatch alarms for AI-driven sensitive operations or policy violations.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Perform regular audits:&lt;/b&gt; Review IAM policies quarterly to verify differentiation conditions remain correct as agent capabilities evolve.&lt;/li&gt; 
  &lt;/ul&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
  &lt;/div&gt; 
  &lt;p&gt;Securing AI agent access to AWS resources requires building deterministic IAM controls for non-deterministic AI systems. The three security principles give you a defense-in-depth framework that adapts to your deployment pattern and level of client control.&lt;/p&gt; 
  &lt;p&gt;Your implementation path depends on your situation. Start with principle 1. Audit current agent permissions and default to read-only access where possible. Next, implement principle 2. For config-bound scenarios, establish permission boundaries and select agent-specific roles. For code-controlled scenarios, implement dynamic session policies scoped to each tool invocation. Finally, add principle 3 differentiation based on your MCP server type. Use automatic context keys with AWS-managed MCP servers, or configure session tags with self-managed servers.&lt;/p&gt; 
  &lt;p&gt;By applying these three security principles, you can use AI agents while maintaining the governance and compliance controls your organization requires.&lt;/p&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;footer&gt; 
 &lt;div class="blog-author-box"&gt; 
  &lt;div class="blog-author-image"&gt;
   &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/04/13/riggsgoodman.goriggs-225x300.png" alt="Riggs Goodman III" width="225" height="300" class="alignnone size-medium wp-image-41790"&gt;
  &lt;/div&gt; 
  &lt;h3 class="lb-h4"&gt;Riggs Goodman III&lt;/h3&gt; 
  &lt;p&gt;Riggs is a Principal Solution Architect at AWS. His current focus is on AI security, providing technical guidance, architecture patterns, and leadership for customers and partners to build AI workloads on AWS. Internally, Riggs focuses on driving overall technical strategy and innovation across AWS service teams to address customer and partner challenges. &lt;/p&gt;
 &lt;/div&gt; 
&lt;/footer&gt;</content:encoded>
					
					
			
		
		
			</item>
		<item>
		<title>A framework for securely collecting forensic artifacts into S3 buckets</title>
		<link>https://aws.amazon.com/blogs/security/a-framework-for-securely-collecting-forensic-artifacts-into-s3-buckets/</link>
					
		
		<dc:creator><![CDATA[Jason Garman]]></dc:creator>
		<pubDate>Wed, 08 Apr 2026 18:19:00 +0000</pubDate>
				<category><![CDATA[Advanced (300)]]></category>
		<category><![CDATA[Amazon Simple Storage Service (S3)]]></category>
		<category><![CDATA[Security, Identity, & Compliance]]></category>
		<category><![CDATA[Technical How-to]]></category>
		<category><![CDATA[Digital forensics]]></category>
		<category><![CDATA[Incident response]]></category>
		<guid isPermaLink="false">eeafc9578dac0d81053e915ef2e3c03ff794d480</guid>

					<description>When customers experience a security incident, they need to acquire forensic artifacts to identify root cause, extract indicators of compromise (IoCs), and validate remediation efforts. NIST 800-86, Guide to Integrating Forensic Techniques into Incident Response, defines digital forensics as a process comprised of four basic phases: collection, examination, analysis, and reporting. This blog post focuses […]</description>
										<content:encoded>&lt;div class="Page-articleBody"&gt; 
 &lt;div class="RichTextArticleBody RichTextBody"&gt; 
  &lt;p&gt;When customers experience a security incident, they need to acquire forensic artifacts to identify root cause, extract indicators of compromise (IoCs), and validate remediation efforts. &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-86.pdf" target="_blank" rel="noopener" data-cms-ai="0"&gt;NIST 800-86&lt;/a&gt;&lt;/span&gt;, Guide to Integrating Forensic Techniques into Incident Response, defines digital forensics as a process comprised of four basic phases: collection, examination, analysis, and reporting. This blog post focuses on the first phase—collection—and provides best practices for implementing least privilege during the forensic evidence collection processes that collect evidence and store the artifacts in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/s3" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Storage Service (Amazon S3)&lt;/a&gt;&lt;/span&gt; buckets. The architecture presented in this post can be used to collect forensic evidence from both &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Web Services (AWS)&lt;/a&gt;&lt;/span&gt; and non-AWS compute resources.&lt;/p&gt; 
  &lt;p&gt;It’s important to consider the security of the forensic artifact collection process because it involves communicating with potentially compromised resources. The collection methodology itself should be designed to avoid adding additional risks to infrastructure or other forensic investigation processes. At the same time, the collection of forensic artifacts requires the use of specialized tools that are difficult to change or adapt to new security requirements.&lt;/p&gt; 
  &lt;p&gt;This post outlines factors that you should consider when creating an evidence collection capability and introduces an architecture that implements the best practices for least privilege and integrating with (instead of changing or adapting) existing forensic tools that support uploading artifacts to S3 buckets by using AWS security credentials.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Solution architecture&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The architecture presented in this post demonstrates the following AWS best practices:&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-23cb98a3-1da9-11f1-b916-37589b0936a3" start="1"&gt; 
   &lt;li&gt;&lt;b&gt;Least privilege&lt;/b&gt; – Use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/iam" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Identity and Access Management (IAM)&lt;/a&gt;&lt;/span&gt; policies to provide least privilege access to upload forensic artifacts to an S3 location dedicated to a specific forensic collection task. The locked down credentials cannot be used to view or modify any other forensic collections.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Time-limited credentials&lt;/b&gt; – Use &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/iam/#sts" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Security Token Service (AWS STS)&lt;/a&gt;&lt;/span&gt; to provide time limited credentials, reducing the potential for an unauthorized user to abuse credentials while they’re visible on the target machine during the artifact collection process.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Compatibility with third-party tools&lt;/b&gt; – Forensic tools are specialized and changing a forensic collection process to adapt to different collection methods might not be possible. To avoid the risk of needing to change tools, maximize compatibility with any third-party tools that support uploading to S3 buckets. The method introduced in this post to generate time-limited, scoped down credentials can be used with most third-party forensic tools that support uploading to S3 buckets.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Credential vending&lt;/b&gt; – Use time-limited tokens, which can be vended on demand through an automated process, eliminating the need for forensic investigators to use the AWS Management Console, understand least privilege, or have any access to the AWS control plane. Forensic investigators can focus on the process of collecting and analyzing evidence.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Process automation&lt;/b&gt; – Deploy the process as infrastructure as code (IaC) and automate it through AWS services, reducing the burden on security teams to manually perform runbook steps during an active security incident.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;This post starts with an overview of the digital forensic process, provides best practices for using Amazon S3 to store forensic artifacts, details how you can create time-limited, least privilege tokens to provide secure access to upload forensic artifacts to S3 buckets, and introduces a sample architecture that automates the end-to-end process.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;The digital forensic process&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Organizations need to have practices and resources in place to support a digital forensic investigation environment before an incident occurs. AWS has published several resources, including &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/forensic-investigation-environment-strategies-in-the-aws-cloud/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Forensic investigation environment strategies in the AWS Cloud&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/cyber-forensics.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS prescriptive guidance: Security Reference Architecture, Cyber forensics&lt;/a&gt;&lt;/span&gt;, to provide best practices for organizing your AWS accounts using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/organizations" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Organizations&lt;/a&gt;&lt;/span&gt; to support forensic clean-room environments. Creating segregated AWS accounts and resources for your security teams is critical to provide your incident responders a location to store and analyze any digital forensic evidence collected during an investigation.&lt;/p&gt; 
  &lt;p&gt;After you’ve established a landing zone for performing digital forensics, you’re ready to collect and process digital forensic evidence. AWS supports the collection of digital forensics through extensive logging of control plane events in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudtrail" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS CloudTrail&lt;/a&gt;&lt;/span&gt;, and metrics and application logs that can be stored in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cloudwatch" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon CloudWatch&lt;/a&gt;&lt;/span&gt;. In addition, AWS core compute services, such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ec2" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Compute Cloud (Amazon EC2)&lt;/a&gt;&lt;/span&gt;, support forensics operations through snapshots of the underlying &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/ebs" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Elastic Block Storage (Amazon EBS)&lt;/a&gt;&lt;/span&gt; volume. An example architecture to demonstrate how to automate the collection of EBS volume snapshots for forensic investigations can be found in &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-to-automate-forensic-disk-collection-in-aws/" target="_blank" rel="noopener" data-cms-ai="0"&gt;How to automate forensic disk collection in AWS&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;p&gt;You might want to use the same AWS infrastructure to collect, examine, analyze, and report on forensic incidents that occur on other resources, such as corporate laptops. You can use existing forensic tooling to perform &lt;i&gt;live response&lt;/i&gt;, collecting specific artifacts such as Windows NT File System (NTFS) Master File Table (MFT), logs from Linux machines, volatile memory images, or other artifacts that are specified as part of your organization’s incident response plan. These tools can be provided by third parties or built in-house, and many support uploading to S3 buckets using AWS security credentials.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Using Amazon S3 for forensic artifact collection&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Amazon S3 provides the foundational requirements for collecting and storing forensic artifacts. Digital forensics requires highly available, durable, and secure storage of artifacts collected from potentially compromised systems. Amazon S3 is designed for 11 nines of durability and can be configured to provide protection against modification, deletion, and unauthorized access to sensitive forensic artifacts. You can also use S3 to store forensic artifacts of almost any size—from one byte to 5 TB—in an S3 object.&lt;/p&gt; 
  &lt;p&gt;S3 buckets used to store forensic artifacts require custom configuration to provide additional security. You should configure the S3 bucket that you use to store forensic artifacts to enable the following security and governance features:&lt;/p&gt; 
  &lt;ol class="rte2-style-ul" id="rte-0c0b3102-1da7-11f1-b916-37589b0936a3"&gt; 
   &lt;li&gt;&lt;b&gt;Encryption in transit&lt;/b&gt;. You can &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/storage/enforcing-encryption-in-transit-with-tls1-2-or-higher-with-amazon-s3/" target="_blank" rel="noopener" data-cms-ai="0"&gt;require the use of encryption in transit&lt;/a&gt;&lt;/span&gt; and specify acceptable TLS versions using the &lt;code class="CodeInline" style="color: #000"&gt;aws:SecureTransport&lt;/code&gt; and &lt;code class="CodeInline" style="color: #000"&gt;s3:TlsVersion&lt;/code&gt; condition keys on the S3 bucket policy.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Encryption at rest using a customer managed key&lt;/b&gt;. You can automatically encrypt all objects uploaded to the bucket using a specified &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys" target="_blank" rel="noopener" data-cms-ai="0"&gt;customer managed key&lt;/a&gt;&lt;/span&gt; by specifying a &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;default server-side encryption key&lt;/a&gt;&lt;/span&gt; in the bucket’s configuration. For this post, we encourage you to use a customer managed key rather than relying upon an AWS managed key, so you can control the associated key policy. 
    &lt;ol class="rte2-style-ul" id="rte-23cbbfbc-1da9-11f1-b916-37589b0936a3"&gt; 
     &lt;li&gt;Encryption at rest provides an additional layer of protection, because only entities that have both the permission to read from the bucket and permission to use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/kms" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Key Management Service (AWS KMS)&lt;/a&gt;&lt;/span&gt; key for decryption can download the forensic artifact from the S3 bucket.&lt;/li&gt; 
     &lt;li&gt;You &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html#bucket-key-changes" target="_blank" rel="noopener" data-cms-ai="0"&gt;need to adjust&lt;/a&gt;&lt;/span&gt; the example KMS policies in this post if the evidence collection S3 bucket uses the &lt;i&gt;S3 Bucket Key&lt;/i&gt; feature.&lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Audit logs of all S3 data event activity&lt;/b&gt;. You can turn on &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-cloudtrail-logging-for-s3.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;CloudTrail data events&lt;/a&gt;&lt;/span&gt; for any S3 buckets that contain forensic artifacts to provide a comprehensive audit trail of S3 object-level API activity. This helps provide a chain of custody of any artifacts stored in your forensic buckets.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Fine-grained access control using IAM permissions&lt;/b&gt;. You can define the set of entities (both human and machine) that have access to the artifacts in the S3 bucket. This post includes how to create time-limited, least privilege access using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;IAM permissions&lt;/a&gt;&lt;/span&gt; for uploading files into an S3 bucket. The permissions are fine-grained enough to scope down access to specific object names or object prefixes in an S3 bucket. Additionally, access to read the artifacts can be controlled through IAM permissions and access to the encryption-at-rest KMS key.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;Protections against data modification and deletion&lt;/b&gt;. S3 provides features, such as &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;S3 object versioning&lt;/a&gt;&lt;/span&gt;, to provide assurances that data hasn’t been modified or removed after it’s been collected. This is an additional layer of protection beyond the fine-grained access permissions, so even if an authorized entity attempts to overwrite or delete an object in the S3 bucket, the previous version of the object is still available.&lt;/li&gt; 
   &lt;li&gt;There are &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/data-protection.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;additional options&lt;/a&gt;&lt;/span&gt; that you can configure on the S3 bucket to protect your data against modification and deletion, including &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;S3 Object Lock&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;multi-factor authentication (MFA) delete&lt;/a&gt;&lt;/span&gt;.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;In addition to the preceding configuration, consider how to organize forensic artifacts in the S3 bucket. This post introduces a folder structure using &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;S3 object prefixes&lt;/a&gt;&lt;/span&gt; to segregate each forensic artifact collection task into its own S3 object namespace. An example S3 namespace structure for an S3 bucket is shown in Figure 1.&lt;/p&gt; 
  &lt;div id="attachment_41561" style="width: 522px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41561" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/12/Figure-1-S3-namespace.png" alt="Figure 1 – S3 namespace structure for an S3 forensics artifact bucket using object prefixes" width="512" height="259" class="size-full wp-image-41561"&gt;
   &lt;p id="caption-attachment-41561" class="wp-caption-text"&gt;Figure 1: S3 namespace structure for an S3 forensics artifact bucket using object prefixes&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;By separating each forensic collection task by its own prefix, you can use fine-grained IAM permissions to permit object uploads only into the active collection task. For example, scoped down credentials can be generated to only allow uploads into buckets with the CASE-0001 prefix using an IAM permission as shown in the following code example. Temporary security credentials can be generated using these limited permissions and the key is then used by the forensic acquisition tool to upload the artifacts into the S3 bucket.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
	"Sid": "UploadToCase0001",
	"Effect": "Allow",
	"Action": [
		"s3:PutObject",
		"s3:AbortMultipartUpload"
	],
"	Resource": "arn:aws:s3:::mycompany-forensics-collection/CASE-0001/*"
}&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Manually creating temporary IAM credentials for each forensic collection activity can be error-prone and time-consuming. Therefore, this post demonstrates how to use AWS tooling to automate the process of generating time-limited, scoped-down credentials.&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Adapt existing forensic tools for AWS best security practices&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Existing forensic tools typically use IAM access keys to perform S3 operations. Using a static IAM user secret access key isn’t a best practice. Even if the static key is associated with an IAM user that has been scoped down to only have access to the forensic collection S3 bucket as described previously, that means anyone with access to that key can potentially upload objects into that bucket. Therefore, the best practice is to create a time-limited temporary security credential unique to each collection activity, scoped down to only allow uploading files to a specific prefix in the target S3 bucket.&lt;/p&gt; 
  &lt;p&gt;The examples in this post use the following resource names. Because these names will change based on your deployment, substitute your resource names in place of the names in the example code.&lt;/p&gt; 
  &lt;ol class="rte2-style-ul" id="rte-23cbe6c8-1da9-11f1-b916-37589b0936a3"&gt; 
   &lt;li&gt;The evidence S3 bucket is named &lt;b&gt;mycompany-forensics-collection&lt;/b&gt;&lt;/li&gt; 
   &lt;li&gt;The forensics AWS account number is &lt;b&gt;112233445566&lt;/b&gt;. For the purposes of this example, all resources will live within this account.&lt;/li&gt; 
   &lt;li&gt;The customer managed key used to encrypt the forensic artifacts at rest is &lt;b&gt;ForensicsEvidenceKey&lt;/b&gt;&lt;/li&gt; 
   &lt;li&gt;The IAM role that incident responders will assume when signing in to their AWS account is &lt;b&gt;ForensicsUserRole&lt;/b&gt;&lt;/li&gt; 
   &lt;li&gt;The IAM role that incident responders will use for generating S3 file upload temporary credentials is &lt;b&gt;ForensicsUploadRole&lt;/b&gt;&lt;/li&gt; 
   &lt;li&gt;The example uses the &lt;b&gt;us-east-1&lt;/b&gt; AWS Region&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;p&gt;The following steps show you how to configure the IAM policies associated with the customer managed key &lt;b&gt;ForensicsEvidenceKey&lt;/b&gt; and the IAM role &lt;b&gt;ForensicsUploadRole&lt;/b&gt;.&lt;br&gt; Before you begin, create the evidence S3 bucket configured as described in &lt;b&gt;Using S3 for artifact collection&lt;/b&gt; and a customer managed key to encrypt the forensic artifacts at rest. Configure the evidence S3 bucket to use the KMS key by opening the S3 bucket’s properties tab in the Amazon S3 console and setting the new KMS key as the default encryption key for the bucket.&lt;/p&gt; 
  &lt;p&gt;Next, create an IAM role that incident responders will assume through the AWS STS &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; API to generate the temporary credentials. This role will define the maximum set of permissions allowed to upload artifacts to your evidence S3 bucket. This role, &lt;b&gt;ForensicsUploadRole&lt;/b&gt;, created using the following example code, defines the maximum allowable permissions: the ability to upload objects into the evidence S3 bucket and to use the KMS key to encrypt those uploads. The effective permissions available to the forensic tool will be scoped down even further to the specific object prefix when the AWS STS temporary security credential is generated.&lt;/p&gt; 
  &lt;p&gt;Note that the policy allows the forensics upload role &lt;code class="CodeInline" style="color: #000"&gt;Decrypt&lt;/code&gt; permission in addition to &lt;code class="CodeInline" style="color: #000"&gt;Encrypt&lt;/code&gt;; this is required when &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;uploading files larger than 5 GB using the multi-part S3 file upload feature&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
	"Version": "2012-10-17",
	"Statement": [
			{
				"Sid": "BasePermissionsForS3Upload",
				"Effect": "Allow",
				"Action": [
					"s3:PutObject",
					"s3:AbortMultipartUpload"
				],
				"Resource": "arn:aws:s3:::mycompany-forensics-collection/*"
		},
		{
			"Sid": "KeyAccessToS3Upload",
			"Effect": "Allow",
			"Action": [
				"kms:GenerateDataKey",
				"kms:Encrypt",
				"kms:Decrypt"
			],
			"Resource": "arn:aws:kms:us-east-1:112233445566:alias/ForensicsEvidenceKey",
			"Condition": {
				"StringLike": {
					"kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::mycompany-forensics-collection/*"
				}
			}
		}
	]
}&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Next, you need to provide an ability to assume this role and generate AWS STS tokens using the role’s permissions. This is accomplished by creating a trust relationship associated with the IAM role you just created. The trust relationship shown in the following code sample describes which AWS principals are allowed to assume the role—in this case, you will allow any user who has federated into the &lt;b&gt;ForensicsUserRole &lt;/b&gt;IAM role to be able to generate AWS STS tokens for forensic artifact collection.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "Statement1",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::112233445566:role/ForensicsUserRole"
			},
			"Action": "sts:AssumeRole"
		}
	]
}&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;After the role is established and access to the encryption key is granted, you can use the AWS STS &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; API to create temporary credentials using this role. You can call this API using the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cli" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Command Line Interface (AWS CLI)&lt;/a&gt;&lt;/span&gt; or programmatically from a script. To scope down the token’s access to only provide permission to upload to the specific evidence object prefix, you must include a &lt;i&gt;session policy&lt;/i&gt; as part of your &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; API request to AWS STS. The following is an example session policy to restrict access to only upload objects into the &lt;code class="CodeInline" style="color: #000"&gt;CASE-0001&lt;/code&gt; prefix.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;[
	{
		"Effect": "Allow",
		"Action": [
			"s3:PutObject", 
			"s3:AbortMultipartUpload"
		],
		"Resource": "arn:aws:s3:::mycompany-forensics-collection/CASE-0001/*"
	},
	{
		"Effect": "Allow",
		"Action": [
			"kms:GenerateDataKey", 
			"kms:Encrypt", 
			"kms:Decrypt"
		],
		"Resource": "*",
		"Condition": {
			"StringLike": {
				"kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::mycompany-forensics-collection/CASE-0001/*"
			}
		}
	}
]&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The effective permissions available to the session role will be the intersection of permissions available in the role policy (&lt;b&gt;ForensicsUploadRole&lt;/b&gt;), the resource policy (in this case, mandating TLS-encrypted connections to the bucket), and the session policy that’s created on demand for every forensic collection (only allowing access to upload objects into the CASE-0001 prefix, as shown in the preceding example). Pictorially, this looks like the Venn diagram shown in Figure 2.&lt;/p&gt; 
  &lt;div id="attachment_41560" style="width: 1550px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41560" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/12/Figure-2-Intersection-of-IAM-policies.png" alt="Figure 2 – Intersection of IAM policies determine the effective permissions for the restricted forensic session role." width="1540" height="904" class="size-full wp-image-41560"&gt;
   &lt;p id="caption-attachment-41560" class="wp-caption-text"&gt;Figure 2: Intersection of IAM policies determine the effective permissions for the restricted forensic session role.&lt;/p&gt;
  &lt;/div&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Test the temporary credentials&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Now that the bucket has been created and the AWS KMS key and roles configured, you can use AWS STS to create a temporary security credential for a collection on CASE-0001. You can use the AWS CLI to do this manually or you can write a script to automate this process using the AWS API. The IAM access key, secret access key, and session token returned by this call can then be used by any tool that can use AWS access keys to upload files into the specified S3 bucket.&lt;/p&gt; 
  &lt;p&gt;The following example shows an AWS CLI call to &lt;code class="CodeInline" style="color: #000"&gt;AssumeRole&lt;/code&gt; using the example &lt;code class="CodeInline" style="color: #000"&gt;ForensicsUploadRole&lt;/code&gt; and a case named &lt;code class="CodeInline" style="color: #000"&gt;CASE-0001&lt;/code&gt;. The &lt;code class="CodeInline" style="color: #000"&gt;--duration-seconds&lt;/code&gt; parameter defines the period, in seconds, that the temporary credentials are valid; the default of 3600 seconds will provide temporary credentials that are valid for one hour.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;$ aws sts assume-role \
	--role-arn arn:aws:iam::112233445566:role/ForensicsUploadRole \
	--role-session-name CASE-0001 \
	--duration-seconds 3600 \
	--policy '{"Version": "2012-10-17", "Statement": [{"Effect": "Allow", "Action": ["s3:PutObject", "s3:AbortMultipartUpload"], "Resource": "arn:aws:s3:::mycompany-forensics-collection/CASE-0001/*"}, {"Sid": "BasePermissionsForS3Upload", "Effect": "Allow", "Action": ["kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt"], "Resource": "*"}]}'

{
	"Credentials": {
		"AccessKeyId": "ASIAXXXX",
		"SecretAccessKey": "XXXX",
		"SessionToken": "XXXX",
		"Expiration": "2025-04-10T17:16:13+00:00"
	},
	"AssumedRoleUser": {
		"AssumedRoleId": "AROXXXX:CASE-0001",
		"Arn": "arn:aws:sts::112233445566:assumed-role/ForensicsUploadRole/CASE-0001"
	},
	"PackedPolicySize": 39
}&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Now that you have obtained temporary credentials from AWS STS, you can use those credentials to upload a file into Amazon S3:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;$ AWS_ACCESS_KEY_ID=ASIAXXXX \
	AWS_SECRET_ACCESS_KEY=XXXX \
	AWS_SESSION_TOKEN=XXXX \
	aws s3 cp evidence.zip s3://mycompany-forensics-collection/CASE-0001/evidence.zip

upload: evidence.zip to s3://mycompany-forensics-collection/CASE-0001/evidence.zip&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;You can also verify that you can’t use those credentials to upload a file into any other object prefixes or S3 buckets. For example, if you change &lt;code class="CodeInline" style="color: #000"&gt;CASE-0001&lt;/code&gt; to &lt;code class="CodeInline" style="color: #000"&gt;CASE-0004&lt;/code&gt; in the Amazon S3 upload command, you will receive an &lt;code class="CodeInline" style="color: #000"&gt;AccessDenied&lt;/code&gt; error because you’re trying to upload an object outside of the allowed key prefix.&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;$ AWS_ACCESS_KEY_ID=ASIAXXXX \
	AWS_SECRET_ACCESS_KEY=XXXX \
	AWS_SESSION_TOKEN=XXXX \
	aws s3 cp evidence.zip s3://mycompany-forensics-collection/CASE-0004/evidence.zip

upload failed: evidence.zip to s3://mycompany-forensics-collection/cases/CASE-0004/evidence.zip
An error occurred (AccessDenied) when calling the PutObject operation: User: arn:aws:sts::112233445566:assumed-role/ForensicsUploadRole/CASE-0001 is not authorized to perform: s3:PutObject on resource: "arn:aws:s3:::mycompany-forensics-collection/CASE-0004/evidence.zip" because no session policy allows the s3:PutObject action&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Additionally, if you wait more than the lifetime of the token (1 hour in this case), attempting to upload a file into the bucket will fail, because the token will no longer be valid:&lt;/p&gt; 
  &lt;div class="Enhancement" data-align-center=""&gt; 
   &lt;div class="Enhancement-item"&gt; 
    &lt;div class="CodeBlockWP hide-language"&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;$ AWS_ACCESS_KEY_ID=ASIAXXXX \
	AWS_SECRET_ACCESS_KEY=XXXX \
	AWS_SESSION_TOKEN=XXXX \
	aws s3 cp evidence.zip s3://mycompany-forensics-collection/CASE-0001/evidence.zip

upload failed: evidence.zip to s3://mycompany-forensics-collection/CASE-0001/evidence.zip

An error occurred (ExpiredToken) when calling the PutObject operation: The provided token has expired.&lt;/code&gt;&lt;/pre&gt; 
      &lt;p&gt;&lt;/p&gt;
     &lt;/div&gt; 
     &lt;p&gt;&lt;/p&gt;
    &lt;/div&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;&lt;/p&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Create an automated process to vend temporary credentials on demand&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;After you’ve verified the security benefits of creating temporary credentials for S3 uploads and validated that the credentials work with your forensic software of choice, you can now use them as part of an automated process.&lt;/p&gt; 
  &lt;p&gt;A sample automated architecture is shown in Figure 3.&lt;/p&gt; 
  &lt;div id="attachment_41718" style="width: 968px" class="wp-caption aligncenter"&gt;
   &lt;img aria-describedby="caption-attachment-41718" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/31/Figure_3.png" alt="Figure 3: Architecture to automate S3 credential vending and forensic artifact collection." width="958" height="620" class="size-full wp-image-41718"&gt;
   &lt;p id="caption-attachment-41718" class="wp-caption-text"&gt;Figure 3: Architecture to automate S3 credential vending and forensic artifact collection.&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;The workflow depicted in Figure 3 includes the following steps:&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-23cc8300-1da9-11f1-b916-37589b0936a3" start="1"&gt; 
   &lt;li&gt;The workflow is triggered by an alert from a detection source or a manual trigger from an incident responder.&lt;/li&gt; 
   &lt;li&gt;The workflow input is added to an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sqs" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Queue Service (Amazon SQS)&lt;/a&gt;&lt;/span&gt; queue.&lt;/li&gt; 
   &lt;li&gt;The Amazon SQS queue invokes an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/lambda" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Lambda&lt;/a&gt;&lt;/span&gt; function which in turn executes a Step Functions state machine to orchestrate the workflow.&lt;/li&gt; 
   &lt;li&gt;First, the Step Functions workflow determines whether the target system is managed by &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/systems-manager" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Systems Manager&lt;/a&gt;&lt;/span&gt;. 
    &lt;ol class="rte2-style-ul" id="rte-23cc8304-1da9-11f1-b916-37589b0936a3"&gt; 
     &lt;li&gt;If the target system isn’t managed by Systems Manager, an error is noted, and the execution is abandoned.&lt;/li&gt; 
     &lt;li&gt;If the target system is managed by Systems Manager, the Step Functions workflow determines the operating system (OS) of the target system and proceeds with the flow of execution.&lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
   &lt;li&gt;The workflow then continues by executing the Systems Manager documents that implement the forensic collection process:&lt;/li&gt; 
   &lt;ol class="rte2-style-ul" id="rte-23cc8304-1da9-11f1-b916-37589b0936a3"&gt; 
    &lt;li&gt;Downloads tooling: 
     &lt;ol class="rte2-style-ul" id="rte-23cc8305-1da9-11f1-b916-37589b0936a3"&gt; 
      &lt;li&gt;Generates dynamically scoped IAM temporary credentials that provide access to download the OS-specific tooling to be executed on the target system from the tooling S3 bucket. These credentials are tightly scoped to only allow downloads from the S3 prefix that corresponds to the tooling for the target system’s OS.&lt;/li&gt; 
      &lt;li&gt;Executes a Systems Manager command on the target system that uses the credentials generated from the previous step to download the OS tooling on the target system.&lt;/li&gt; 
     &lt;/ol&gt; &lt;/li&gt; 
    &lt;li&gt;Runs forensic tools:&lt;/li&gt; 
    &lt;ul class="rte2-style-ul" id="rte-23cc8305-1da9-11f1-b916-37589b0936a3"&gt; 
     &lt;li&gt;Executes a Systems Manager command on the target system to execute the OS tooling on the target system.&lt;/li&gt; 
    &lt;/ul&gt; 
   &lt;/ol&gt; 
   &lt;li&gt;The Systems Manager commands run on the target system, which in this case is an EC2 instance.&lt;/li&gt; 
   &lt;li&gt;Results are uploaded to the evidence S3 bucket:&lt;/li&gt; 
   &lt;ol class="rte2-style-ul" id="rte-23cc8304-1da9-11f1-b916-37589b0936a3"&gt; 
    &lt;li&gt;Generates dynamically scoped IAM temporary credentials (as described previously) that provide access to upload the output of the previously executed tooling to the evidence S3 bucket. These credentials are tightly scoped to only allow uploads to a particular S3 prefix corresponding to the alert prefix.&lt;/li&gt; 
    &lt;li&gt;Executes a Systems Manager command on the target system to upload the output of the previously executed tooling to the evidence S3 bucket. After the upload is complete, it cleans up both the output and the evidence tooling from the target system.&lt;/li&gt; 
    &lt;li&gt;The evidence S3 bucket is tightly locked down to a subset of identities within the AWS security account. Access attempts from identities that aren’t allow listed trigger an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/eventbridge" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon EventBridge&lt;/a&gt;&lt;/span&gt; rule to alert the security team through an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/sns" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon Simple Notification Service (Amazon SNS)&lt;/a&gt;&lt;/span&gt; topic.&lt;/li&gt; 
   &lt;/ol&gt; 
   &lt;li&gt;When the workflow is complete, related details and metrics are recorded in an &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/dynamodb" target="_blank" rel="noopener" data-cms-ai="0"&gt;Amazon DynamoDB&lt;/a&gt;&lt;/span&gt; table.&lt;/li&gt; 
   &lt;li&gt;The forensic analysis can be performed on a separate EC2 instance that has access to read from the evidence S3 bucket.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Deploying the example solution&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;You can use the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/cdk" target="_blank" rel="noopener" data-cms-ai="0"&gt;AWS Cloud Development Kit (AWS CDK)&lt;/a&gt;&lt;/span&gt; repository to &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-collect-forensic-artifacts-s3" target="_blank" rel="noopener" data-cms-ai="0"&gt;implement the architecture&lt;/a&gt;&lt;/span&gt; shown in Figure 3.&lt;/p&gt; 
  &lt;p&gt;The AWS CDK solution is split into three stacks:&lt;/p&gt; 
  &lt;ol class="rte2-style-ul" id="rte-23cc830b-1da9-11f1-b916-37589b0936a3"&gt; 
   &lt;li&gt;&lt;b&gt;SecurityStack&lt;/b&gt;: This stack contains the basic forensic artifact workflow orchestration infrastructure described in this post, including the Step Functions workflow, Lambda functions, AWS SQS queues, IAM roles, and S3 buckets.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;AlertStack&lt;/b&gt;: This stack contains the EventBridge workflow to notify administrators of anomalous activity in the evidence S3 bucket.&lt;/li&gt; 
   &lt;li&gt;&lt;b&gt;CustomerStack&lt;/b&gt;: This stack contains the SSM documents that are executed for the forensic artifact workflow and an IAM role assumed by the SecurityStack when the workflow is invoked. It’s deployed into each child AWS account containing EC2 instances from which the security account is authorized to collect forensic artifacts.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Configuration&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Before deploying the solution, there are several variables in the &lt;code class="CodeInline" style="color: #000"&gt;config.ts&lt;/code&gt; file that must be modified for the environment:&lt;/p&gt; 
  &lt;ol class="rte2-style-ul" id="rte-23ccaa10-1da9-11f1-b916-37589b0936a3"&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;SECURITY_ACCOUNT&lt;/code&gt;: Security Tooling AWS account ID.&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;CUSTOMER_ACCOUNTS&lt;/code&gt;: Target AWS account IDs (the &lt;i&gt;Child AWS account&lt;/i&gt; in the architecture diagram).&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;ALERT_EMAIL_RECIPIENTS&lt;/code&gt;: List of email addresses that receive alerts when there is unexpected access to the evidence S3 bucket.&lt;/li&gt; 
   &lt;li&gt;&lt;code class="CodeInline" style="color: #000"&gt;ALLOW_LISTED_ROLE_NAMES&lt;/code&gt;: Roles allowed to access the evidence S3 bucket. Any other identities accessing the evidence S3 bucket will result in an alarm.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Deployment&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;After you’ve updated the &lt;code class="CodeInline" style="color: #000"&gt;config.ts&lt;/code&gt; file to reflect the account numbers, email recipients, and role names, the stacks can be deployed into your AWS infrastructure.&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-23ccaa11-1da9-11f1-b916-37589b0936a3" start="1"&gt; 
   &lt;li&gt;Set Up AWS credentials using the AWS CLI:&lt;br&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws configure&lt;/code&gt;&lt;/li&gt; 
   &lt;li&gt;Install dependencies and configure constants: 
    &lt;ol class="rte2-style-ol" id="rte-cb4d3b20-1dad-11f1-8ec2-0bc59fb193c2" start="1"&gt; 
     &lt;li&gt;Clone the repository.&lt;/li&gt; 
     &lt;li&gt;Navigate to the project directory.&lt;/li&gt; 
     &lt;li&gt;Install project dependencies:&lt;br&gt;&lt;code class="CodeInline" style="color: #000"&gt;npm install&lt;/code&gt;&lt;/li&gt; 
     &lt;li&gt;Configure constants in &lt;code class="CodeInline" style="color: #000"&gt;constants/config.ts&lt;/code&gt; with the required information: 
      &lt;div class="Enhancement" data-align-center=""&gt; 
       &lt;div class="Enhancement-item"&gt; 
        &lt;div class="CodeBlockWP hide-language"&gt; 
         &lt;div class="code-toolbar"&gt; 
          &lt;pre class="unlimited-height-code language-text"&gt;&lt;code class="language-text"&gt;export const SECURITY_ACCOUNT = "123456789012"; // Your security tooling account ID 
export const CUSTOMER_ACCOUNTS = ["234567890123", "345678901234"]; // Target account IDs 
export const ALLOW_LISTED_ROLE_NAMES = ["SecurityAnalystRole"];// Roles allowed to access evidence S3 bucket 
export const ALERT_EMAIL_RECIPIENTS = ["soc_team@company.com"];// Email addresses for alerts&lt;/code&gt;&lt;/pre&gt; 
          &lt;p&gt;&lt;/p&gt;
         &lt;/div&gt; 
         &lt;p&gt;&lt;/p&gt;
        &lt;/div&gt; 
        &lt;p&gt;&lt;/p&gt;
       &lt;/div&gt; 
       &lt;p&gt;&lt;/p&gt;
      &lt;/div&gt; &lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
   &lt;li&gt;Bootstrap AWS CDK in your accounts (if it hasn’t been done already): 
    &lt;ol class="rte2-style-ol" id="rte-cb4d3b21-1dad-11f1-8ec2-0bc59fb193c2" start="1"&gt; 
     &lt;li&gt;Example: &lt;code class="CodeInline" style="color: #000"&gt;cdk bootstrap aws://456789012345/us-east-1&lt;/code&gt; (example security AWS account).&lt;/li&gt; 
     &lt;li&gt;Then bootstrap if necessary in any &lt;i&gt;target&lt;/i&gt; AWS accounts.&lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
   &lt;li&gt;Deploy the AWS CDK Stacks: 
    &lt;ol class="rte2-style-ol" id="rte-cb4d3b22-1dad-11f1-8ec2-0bc59fb193c2" start="1"&gt; 
     &lt;li&gt;Synthesize the CloudFormation template:&lt;br&gt;&lt;code class="CodeInline" style="color: #000"&gt;cdk synth&lt;/code&gt;&lt;/li&gt; 
     &lt;li&gt;Deploy the security and alert stacks in your security account:&lt;br&gt;&lt;code class="CodeInline" style="color: #000"&gt;cdk deploy SecurityStack AlertStack&lt;/code&gt;&lt;/li&gt; 
     &lt;li&gt;Deploy the customer stacks in your workload accounts:&lt;br&gt;&lt;code class="CodeInline" style="color: #000"&gt;cdk deploy CustomerStack-ACCOUNT_ID&lt;/code&gt;&lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
   &lt;li&gt;Set up your email alerts: 
    &lt;ol class="rte2-style-ol" id="rte-cb4d3b23-1dad-11f1-8ec2-0bc59fb193c2" start="1"&gt; 
     &lt;li&gt;After the &lt;code class="CodeInline" style="color: #000"&gt;AlertStack&lt;/code&gt; is deployed, it will email all addresses listed in &lt;code class="CodeInline" style="color: #000"&gt;ALERT_EMAIL_RECIPIENTS&lt;/code&gt;. Choose the embedded link to accept the AWS SNS topic in each of those accounts.&lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h3&gt;Testing&lt;/h3&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;With deployment complete, it’s time to test the solution.&lt;/p&gt; 
  &lt;ol class="rte2-style-ol" id="rte-23ccd126-1da9-11f1-b916-37589b0936a3" start="1"&gt; 
   &lt;li&gt;Trigger an analysis 
    &lt;ol class="rte2-style-ol" id="rte-cb4d3b24-1dad-11f1-8ec2-0bc59fb193c2" start="1"&gt; 
     &lt;li&gt;Make sure you have a Linux EC2 instance running in one of your customer accounts and in the AWS Region where you deployed the preceding customer stack.&lt;/li&gt; 
     &lt;li&gt;Because this example uses Systems Manager to orchestrate the collection script, make sure that the EC2 instance is visible in Systems Manager either by checking the Systems Manager console, or by using the AWS CLI: 
      &lt;ol class="rte2-style-ol" id="rte-cb4d3b25-1dad-11f1-8ec2-0bc59fb193c2" start="1"&gt; 
       &lt;li&gt;Console: In the AWS Systems Manager console, choose &lt;b&gt;Managed instances&lt;/b&gt; in the left navigation pane and verify your instance appears in the list. For more information, see &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://docs.aws.amazon.com/systems-manager/latest/userguide/managed_instances.html" target="_blank" rel="noopener" data-cms-ai="0"&gt;Managed Instances&lt;/a&gt;&lt;/span&gt; in the AWS Systems Manager User Guide.&lt;/li&gt; 
       &lt;li&gt;AWS CLI: Run the following command to verify the instance is managed:&lt;br&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws ssm describe-instance-information --filters “Key=InstanceIds,Values=&amp;lt;instance-id&amp;gt;&lt;/code&gt;&lt;br&gt; If the command returns instance information with &lt;code class="CodeInline" style="color: #000"&gt;PingStatus: Online&lt;/code&gt;, the instance is properly connected to Systems Manager.&lt;/li&gt; 
      &lt;/ol&gt; &lt;/li&gt; 
     &lt;li&gt;Post a message in your security account to the Amazon SQS queue to start the Step Functions workflow. Note that the values in angle brackets (for example &lt;code class="CodeInline" style="color: #000"&gt;&amp;lt;accountID&amp;gt;&lt;/code&gt;) are placeholders that you must update with relevant AWS account ID, tracking ticket ID, AWS Region, and EC2 instance ID values:&lt;br&gt;&lt;code class="CodeInline" style="color: #000"&gt;aws sqs send-message --queue-url --message-body ‘{ “account”: “”, “ticket_id”: “”, “region”: “&amp;gt;”, “instance_id”: “” }’&lt;/code&gt;&lt;/li&gt; 
    &lt;/ol&gt; &lt;/li&gt; 
   &lt;li&gt;Go to the Step Functions console to view the successful execution of the workflow:&lt;br&gt;
    &lt;div id="attachment_41558" style="width: 500px" class="wp-caption aligncenter"&gt;
     &lt;img aria-describedby="caption-attachment-41558" loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/12/Figure-4-Workflow-as-shown.png" alt="Figure 4 – Workflow as shown in the Step Functions console" width="490" height="630" class="size-full wp-image-41558"&gt;
     &lt;p id="caption-attachment-41558" class="wp-caption-text"&gt;Figure 4: Workflow as shown in the Step Functions console&lt;/p&gt;
    &lt;/div&gt;&lt;/li&gt; 
   &lt;li&gt;View the DynamoDB table to see the metadata for the results.&lt;/li&gt; 
   &lt;li&gt;Check the evidence S3 bucket to see the uploaded files from the forensic collection.&lt;/li&gt; 
  &lt;/ol&gt; 
  &lt;div class="RichTextHeading"&gt; 
   &lt;h2&gt;Conclusion&lt;/h2&gt; 
   &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt; 
  &lt;p&gt;Collecting forensic artifacts securely is a critical component of any digital forensics investigation. This post demonstrated how to implement least privilege access controls and time-limited credentials for forensic evidence collection workflows that use Amazon S3 for artifact storage. By combining IAM session policies with AWS STS temporary credentials, you can provide forensic tools with secure, scoped-down access to upload artifacts without exposing long-lived credentials or granting overly permissive access.&lt;/p&gt; 
  &lt;p&gt;The architecture presented in this post automates the process of generating temporary credentials, collecting forensic artifacts from both AWS and non-AWS resources, and securely storing them in S3 buckets with appropriate encryption, access controls, and audit logging. With this approach, your security teams can focus on analyzing evidence instead of managing credentials and permissions during active security incidents.To get started with this solution, deploy the example AWS CDK stacks provided in the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://github.com/aws-samples/sample-collect-forensic-artifacts-s3" target="_blank" rel="noopener" data-cms-ai="0"&gt;collect forensic artifacts repository&lt;/a&gt;&lt;/span&gt; and customize them for your organization’s forensic investigation requirements. For more information about related AWS forensic investigation architectures, review the &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/solutions/implementations/automated-forensics-orchestrator-for-amazon-ec2/" target="_blank" rel="noopener" data-cms-ai="0"&gt;Automated Forensics Orchestrator for EC2&lt;/a&gt;&lt;/span&gt; and &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://aws.amazon.com/blogs/security/how-to-automatically-build-forensic-kernel-modules-for-amazon-linux-ec2-instances/" target="_blank" rel="noopener" data-cms-ai="0"&gt;How to build forensic kernel modules for Linux EC2 instances&lt;/a&gt;&lt;/span&gt; resources.&lt;/p&gt; 
  &lt;p&gt;If you have feedback about this post, submit comments in the Comments section below. If you have questions about this post, &lt;span class="LinkEnhancement"&gt;&lt;a class="Link" href="https://console.aws.amazon.com/support/home" target="_blank" rel="noopener" data-cms-ai="0"&gt;contact AWS Support&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt; 
  &lt;footer&gt; 
   &lt;div class="blog-author-box"&gt; 
    &lt;div class="blog-author-image"&gt; 
     &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/12/Jason-Garman-author.jpg" alt="Jason Garman" width="120" height="160" class="aligncenter size-full wp-image-39143"&gt; 
    &lt;/div&gt; 
    &lt;h3 class="lb-h4"&gt;Jason Garman&lt;/h3&gt; 
    &lt;p&gt;Jason is a principal security specialist solutions architect at AWS. He has 30 years of cybersecurity experience including incident response, reverse engineering, identity, and data protection. At AWS, he helps large organizations adopt the latest cloud and AI technologies while maintaining a high bar for data governance, security, and safety.&lt;/p&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
  &lt;/footer&gt; 
  &lt;footer&gt; 
   &lt;div class="blog-author-box"&gt; 
    &lt;div class="blog-author-image"&gt; 
     &lt;img loading="lazy" src="https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3e253a90eee5098477c95c23d/2026/03/12/Vaishnav-Murthy-Author.jpg" alt="Vaishnav Murthy" width="120" height="160" class="aligncenter size-full wp-image-39142"&gt; 
    &lt;/div&gt; 
    &lt;h3 class="lb-h4"&gt;Vaishnav Murthy&lt;/h3&gt; 
    &lt;p&gt;Vaishnav is a Senior Security Engineer with AWS CloudResponse. He has an extensive background in incident response and security automation and enjoys building automated solutions that help AWS customers investigate and respond to security incidents at scale.&lt;/p&gt; 
    &lt;p&gt;&lt;/p&gt;
   &lt;/div&gt; 
  &lt;/footer&gt;
 &lt;/div&gt; 
&lt;/div&gt;</content:encoded>
					
					
			
		
		
			</item>
	</channel>
</rss>