<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: JASON WOOD</title>
    <description>The latest articles on DEV Community by JASON WOOD (@sheriff6410).</description>
    <link>https://dev.to/sheriff6410</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1053986%2F03ef5c42-32f2-4c89-af34-2285f5b78020.jpg</url>
      <title>DEV Community: JASON WOOD</title>
      <link>https://dev.to/sheriff6410</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sheriff6410"/>
    <language>en</language>
    <item>
      <title>AWS DevOps Agent: Worth It?</title>
      <dc:creator>JASON WOOD</dc:creator>
      <pubDate>Thu, 07 May 2026 09:00:42 +0000</pubDate>
      <link>https://dev.to/aws-builders/aws-devops-agent-worth-it-3gde</link>
      <guid>https://dev.to/aws-builders/aws-devops-agent-worth-it-3gde</guid>
      <description>&lt;h2&gt;
  
  
  AWS DevOps Agent: Worth It?
&lt;/h2&gt;

&lt;p&gt;AWS DevOps Agent is now GA — and it’s in Sydney!&lt;/p&gt;

&lt;p&gt;At AWS re:Invent 2025, AWS introduced DevOps Agent as a service designed to be “your always-available operations teammate that resolves and proactively prevents incidents, optimizes application reliability and performance, and handles on-demand SRE tasks.” With general availability, AWS has expanded beyond the initial preview, adding support for more real-world scenarios including hybrid, on-premises, and multi-cloud environments.&lt;/p&gt;

&lt;p&gt;Once enabled, DevOps Agent begins by learning your environment: your resources, configurations, and telemetry. From there, it can detect issues, investigate what’s happening, and suggest likely root causes. By the time a human operator steps in, a large portion of the initial triage may already be done.&lt;/p&gt;

&lt;p&gt;That sounds pretty awesome… but also a little bit scary.&lt;/p&gt;

&lt;p&gt;So, what’s it actually like to use in practice — and what does it cost?&lt;/p&gt;




&lt;h3&gt;
  
  
  What is AWS DevOps Agent?
&lt;/h3&gt;

&lt;p&gt;AWS DevOps Agent isn’t just a simple AI tool. It’s what AWS refers to as a frontier agent: an autonomous system designed to operate independently, scale as needed, and run with minimal human oversight.&lt;/p&gt;

&lt;p&gt;It is designed to help teams investigate incidents, identify root causes, and prevent recurrence by analysing signals across your environment. To do this, it pulls together data from services like Amazon CloudWatch, AWS Systems Manager, and resource APIs to build a picture of what’s happening when something goes wrong.&lt;/p&gt;

&lt;p&gt;According to AWS, DevOps Agent works by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learning your resources and their relationships
&lt;/li&gt;
&lt;li&gt;Integrating with your observability tools, code repositories, and CI/CD pipelines
&lt;/li&gt;
&lt;li&gt;Correlating telemetry, code, and deployment data to understand how your application behaves
&lt;/li&gt;
&lt;li&gt;Supporting applications across multi-cloud and hybrid environments
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Core capabilities
&lt;/h3&gt;

&lt;p&gt;There are three key areas that DevOps Agent focuses on:&lt;/p&gt;

&lt;h4&gt;
  
  
  Incident investigation
&lt;/h4&gt;

&lt;p&gt;DevOps Agent can take a natural language prompt and begin investigating issues immediately. Instead of manually jumping between metrics, logs, and dashboards, it gathers relevant data and presents a summary of what it believes is happening.&lt;/p&gt;

&lt;p&gt;In practice, this means pulling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Metrics from CloudWatch
&lt;/li&gt;
&lt;li&gt;Logs from CloudWatch Logs
&lt;/li&gt;
&lt;li&gt;Recent changes or events
&lt;/li&gt;
&lt;li&gt;Resource configuration details
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this gets stitched together into a single story.&lt;/p&gt;




&lt;h4&gt;
  
  
  Root cause analysis
&lt;/h4&gt;

&lt;p&gt;Once it has the data, the agent attempts to correlate signals and identify likely root causes. This is where things get interesting — it’s effectively doing the “join the dots” work that operators normally do manually.&lt;/p&gt;

&lt;p&gt;Rather than just showing symptoms, it aims to answer a much more useful question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What actually caused this?&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h4&gt;
  
  
  Recommendations and remediation guidance
&lt;/h4&gt;

&lt;p&gt;Finally, DevOps Agent suggests possible next steps. These might include configuration changes, scaling actions, or further investigation paths.&lt;/p&gt;

&lt;p&gt;It’s important to note that, at least in its current form, this is primarily &lt;strong&gt;advisory&lt;/strong&gt;. It helps you understand and decide. DevOps Agent isn’t making changes for you. A human still needs to do that side.&lt;/p&gt;




&lt;h3&gt;
  
  
  What’s it actually like?
&lt;/h3&gt;

&lt;p&gt;My colleague Tony and his customer both attended AWS re:Invent 2025 and drank the DevOps Agent cool-aid. While I’ve only played with it in my own environment, he was able to put the preview through its paces in a real-world setting.&lt;/p&gt;

&lt;p&gt;When you configure DevOps Agent, you start with an &lt;strong&gt;Agent Space&lt;/strong&gt;. This defines the boundary of what the agent can see and interact with, and it’s not restricted to a single account within your Organisation.&lt;/p&gt;

&lt;p&gt;Tony tested this in a development environment that spanned multiple accounts and included hundreds of services, Lambda functions, and supporting resources. Quite impressively, the agent was able to map out the services and their interconnectivity across the environment. With that many components, this process took some time, and the resulting view was understandably complex.&lt;/p&gt;

&lt;p&gt;AWS recommends using Agent Spaces to represent smaller, application-focused environments. In practice, that makes a lot of sense. Smaller, more targeted spaces provide clearer visibility and allow the agent to focus more effectively. Or more accurately, they make it easier for the human operator to interpret what’s going on.&lt;/p&gt;

&lt;p&gt;Tony has pointed out that having too many Agent Spaces isn't ideal, either. If you have similarly architected environments, grouping them into a single Agent Space may make management easier.&lt;/p&gt;

&lt;p&gt;One thing that stood out was the agent’s ability to infer workload structure based on naming conventions. Tony’s team follows consistent, well-structured naming practices for Lambda functions and other resources, which helped the agent quickly establish relationships and understand how components were expected to interact.&lt;/p&gt;

&lt;p&gt;It’s a good reminder of the old rule: &lt;strong&gt;garbage in, garbage out&lt;/strong&gt;. The better your environment is structured, the better the results you’ll get from tools like this.&lt;/p&gt;

&lt;p&gt;While DevOps Agent can integrate with tools like Slack and ServiceNow, it currently doesn’t make changes within your AWS environment. It operates in a read-only, advisory capacity.&lt;/p&gt;

&lt;p&gt;In a world where AI is still finding its place in production environments, that’s a reassuring design choice. The agent can investigate, analyse, and recommend — but the final decision, and the execution, still sits firmly with a human.&lt;/p&gt;




&lt;h3&gt;
  
  
  What does it cost?
&lt;/h3&gt;

&lt;p&gt;For you? I’ll give you a couple of months free! (Well, AWS will.)&lt;/p&gt;

&lt;p&gt;At the time of writing, AWS provides a free tier for the first two months:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Each trial month includes up to 10 agent spaces, 20 hours of investigations (incident response), 15 hours of evaluations (incident prevention), and 20 hours of on-demand SRE tasks (chat). Standard pay-as-you-go pricing applies for usage beyond these limits and after your trial ends.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The included amounts give you a great opportunity to try out AWS DevOps Agent. You can then review what your spend would have been and decide if it works for you.&lt;/p&gt;

&lt;p&gt;One of the more interesting aspects — and something I haven’t really seen before — is a discount for those on AWS Support contracts. The What’s New post states:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AWS Support customers receive monthly DevOps Agent credits based on the prior month's gross AWS Support spend: 100% for Unified Operations, 75% for Enterprise Support, or 30% for Business Support+.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Outside of the free tier or support discounts, the costs for DevOps Agent are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$0.0083 per agent-second for investigations (incident response)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$0.0083 per agent-second for evaluations (incident prevention)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;$0.0083 per agent-second for on-demand SRE tasks (chat)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This “agent-second” model reflects the time the agent spends analysing, correlating, and generating responses. It’s a slightly different way of thinking about cost compared to typical request-based pricing.&lt;/p&gt;

&lt;p&gt;You’ll also want to consider any underlying costs from services like Amazon CloudWatch, especially if large volumes of logs or metrics are queried as part of the investigation.&lt;/p&gt;




&lt;h3&gt;
  
  
  What’s next?
&lt;/h3&gt;

&lt;p&gt;What now? Well, you’ve got two free months, so give it a go!&lt;/p&gt;

&lt;p&gt;I’d recommend keeping your Agent Space targeted. Focus on a single application, ideally one that’s well structured. When you’re trialling the service, you want to see what it can do at its best.&lt;/p&gt;

&lt;p&gt;Then try a second Agent Space with something a bit messier. I don't want you to be discouraged by results that aren't great due to the environment. It's sort of like doing a Well Architected review of your entire environment rather than the workload it's designed for. You'll likely get something useful, but not optimal.&lt;/p&gt;

&lt;p&gt;This service doesn’t replace your ops team — it enhances them. It reduces the time spent gathering and correlating data, but the judgment, context, and decision-making still sit with your engineer.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>sysops</category>
      <category>aiops</category>
    </item>
    <item>
      <title>AWS EventBridge Transforms: Making Alerts Readable</title>
      <dc:creator>JASON WOOD</dc:creator>
      <pubDate>Mon, 10 Mar 2025 01:06:17 +0000</pubDate>
      <link>https://dev.to/aws-builders/aws-eventbridge-transforms-making-alerts-readable-1pb5</link>
      <guid>https://dev.to/aws-builders/aws-eventbridge-transforms-making-alerts-readable-1pb5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;AWS EventBridge is a powerful event bus that allows seamless integration between AWS services and external systems. However, one common challenge is that EventBridge events are typically JSON payloads that, while structured, can be difficult to read at a glance—especially when sent to destinations like Amazon SNS for alerting. This can be a pain point for teams, particularly in Managed Services, where help desk staff need to interpret alerts and take action quickly.&lt;/p&gt;

&lt;p&gt;Fortunately, EventBridge Transforms offers a solution by allowing us to modify event payloads into a more human-readable format before they reach their destination. In this post, I'll walk through how EventBridge transforms work, provide a hands-on guide to implementing them, and share best practices from real-world use cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding EventBridge Transforms
&lt;/h2&gt;

&lt;p&gt;EventBridge transforms allow you to modify event payloads before sending them to targets. Instead of passing raw JSON, you can extract and format key details, making the message easier to read.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example Problem: Raw JSON payload
&lt;/h3&gt;

&lt;p&gt;Consider an EventBridge event triggered by an AWS resource:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{"version":"0","id":"c8c4daa7-a20c-2f03-0070-b7393dd542ad","detail-type":"GuardDuty Finding","source":"aws.guardduty","account":"123456789012","time":"1970-01-01T00:00:00Z","region":"us-east-1","resources":[],"detail":{"schemaVersion":"2.0","accountId":"123456789012","region":"us-east-1","partition":"aws","id":"16afba5c5c43e07c9e3e5e2e544e95df","arn":"arn:aws:guardduty:us-east-1:123456789012:detector/123456789012/finding/16afba5c5c43e07c9e3e5e2e544e95df","type":"Canary:EC2/Stateless.IntegTest","resource":{"resourceType":"Instance","instanceDetails":{"instanceId":"i-05746eb48123455e0","instanceType":"t2.micro","launchTime":1492735675000,"productCodes":[],"networkInterfaces":[{"ipv6Addresses":[],"privateDnsName":"ip-0-0-0-0.us-east-1.compute.internal","privateIpAddress":"0.0.0.0","privateIpAddresses":[{"privateDnsName":"ip-0-0-0-0.us-east-1.compute.internal","privateIpAddress":"0.0.0.0"}],"subnetId":"subnet-d58b7123","vpcId":"vpc-34865123","securityGroups":[{"groupName":"launch-wizard-1","groupId":"sg-9918a123"}],"publicDnsName":"ec2-11-111-111-1.us-east-1.compute.amazonaws.com","publicIp":"11.111.111.1"}],"tags":[{"key":"Name","value":"ssh-22-open"}],"instanceState":"running","availabilityZone":"us-east-1b","imageId":"ami-4836a123","imageDescription":"Amazon Linux AMI 2017.03.0.20170417 x86_64 HVM GP2"}},"service":{"serviceName":"guardduty","detectorId":"3caf4e0aaa46ce4ccbcef949a8785353","action":{"actionType":"NETWORK_CONNECTION","networkConnectionAction":{"connectionDirection":"OUTBOUND","remoteIpDetails":{"ipAddressV4":"0.0.0.0","organization":{"asn":-1,"isp":"GeneratedFindingISP","org":"GeneratedFindingORG"},"country":{"countryName":"United States"},"city":{"cityName":"GeneratedFindingCityName"},"geoLocation":{"lat":0,"lon":0}},"remotePortDetails":{"port":22,"portName":"SSH"},"localPortDetails":{"port":2000,"portName":"Unknown"},"protocol":"TCP","blocked":false}},"resourceRole":"TARGET","additionalInfo":{"unusualProtocol":"UDP","threatListName":"GeneratedFindingCustomerListName","unusual":22},"eventFirstSeen":"2017-10-31T23:16:23Z","eventLastSeen":"2017-10-31T23:16:23Z","archived":false,"count":1},"severity":5,"createdAt":"2017-10-31T23:16:23.824Z","updatedAt":"2017-10-31T23:16:23.824Z","title":"Canary:EC2/Stateless.IntegTest","description":"Canary:EC2/Stateless.IntegTest"}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not very intuitive for a help desk operator. They may not be very familiar with AWS, and it isn't easy to work out what fields are meaningful, especially when the JSON is presented as a single line.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using a Transform to Improve Readability
&lt;/h3&gt;

&lt;p&gt;By applying an EventBridge transform, we can extract only the relevant details and format them into a readable message:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"A Guard Duty finding on severity 5 has been raised for source account 123456789012.”
"The finding was generated at 2025-01-25T06:07:04Z and is DefenseEvasion:EC2/UnusualDNSResolver."
"The affected resource type is Instance."
"Description: The EC2 instance i-045678abc09 is communicating with an unusual DNS resolver 172.123.45.6.”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes it immediately clear what the affected account is and what happened, reducing the time needed for triage and response.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementing an EventBridge Transform
&lt;/h2&gt;

&lt;p&gt;Let's walk through how to set up an EventBridge rule with a transform using AWS CloudFormation.&lt;/p&gt;

&lt;h3&gt;
  
  
  CloudFormation Example
&lt;/h3&gt;

&lt;p&gt;Below is an example CloudFormation snippet to create an EventBridge rule with a transform that simplifies GuardDuty finding notifications:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  GuardDutyEventRule:
    Type: "AWS::Events::Rule"
    Properties:
      Name: "detect-guardduty-finding"
      Description: "A CloudWatch Event Rule that triggers on Amazon GuardDuty findings."
      State: "ENABLED"
      Targets:
        - Arn: !Ref GuardDutySnsTopic
          Id: "target-id1"
          InputTransformer:
            InputPathsMap:
              "account": "$.account"
              "time": "$.time"
              "source-account": "$.detail.accountId"
              "finding-type": "$.detail.type"
              "resource-type": "$.detail.resource.resourceType"
              "severity": "$.detail.severity"
              "description": "$.detail.description"
            InputTemplate: |
              "A Guard Duty finding on severity &amp;lt;severity&amp;gt; has been raised for source account &amp;lt;source-account&amp;gt;."
              "The finding was generated at &amp;lt;time&amp;gt; and is &amp;lt;finding-type&amp;gt;."
              "The affected resource type is &amp;lt;resource-type&amp;gt;."
              "Description: &amp;lt;description&amp;gt;"
      EventPattern:
        detail-type:
          - "GuardDuty Finding"
        source:
          - "aws.guardduty"
        detail:
          severity:
            - 5
            - 6
            - 7
            - 8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This rule listens for GuardDuty finding notifications, extracts relevant details, and reformats the message into a simple, readable sentence before sending it to an SNS topic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing the Transform in the AWS Console
&lt;/h3&gt;

&lt;p&gt;Jumping straight into CloudFormation is fine if you're comfortable with JSON payload, but most of the time, you don't know exactly what you want to do. AWS provides a way to test and view event transforms directly in the EventBridge console. Here’s how you can do it:&lt;/p&gt;

&lt;h4&gt;
  
  
  Go to Rules
&lt;/h4&gt;

&lt;p&gt;Go to the EventBridge Console – Navigate to Amazon EventBridge &amp;gt; Rules.&lt;/p&gt;

&lt;h4&gt;
  
  
  Choose the Rule
&lt;/h4&gt;

&lt;p&gt;Select or Create a Rule – Choose an existing rule or create a new one.&lt;/p&gt;

&lt;h4&gt;
  
  
  Create the Transformer
&lt;/h4&gt;

&lt;p&gt;Either click on Edit for the rule, or go to the Targets tab and select Edit there.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvza63f61khv278d5w64.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvza63f61khv278d5w64.png" alt="Transform edit buttons" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Expand the &lt;strong&gt;Additional settings&lt;/strong&gt; section and click the dropdown.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71md53bvsswrsenf4y6i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71md53bvsswrsenf4y6i.png" alt="Settings select" width="800" height="592"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecting &lt;strong&gt;Input transformer&lt;/strong&gt; brings up a &lt;strong&gt;Configure input transformer button&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0e5rhaso0p0jb8zdwuuz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0e5rhaso0p0jb8zdwuuz.png" alt="Transformer button" width="800" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Create and test your transform
&lt;/h4&gt;

&lt;p&gt;Now we come to the fun part. Creating and testing the rules!&lt;br&gt;
You can either generate a sample event or paste in one of your own.&lt;br&gt;
This is an optional step, but seeing the JSON that you're dealing with is very helpful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2l07gfb3le1sb21pe539.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2l07gfb3le1sb21pe539.png" alt="Sample rule generation" width="800" height="754"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can expand the &lt;strong&gt;Example&lt;/strong&gt; section to get some ideas for your &lt;strong&gt;Input&lt;/strong&gt; and &lt;strong&gt;Template&lt;/strong&gt;. This is handy if you've not done this much, after a few times, you'll get the hang of it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwvl0a8cwl12rdjs1n3n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwvl0a8cwl12rdjs1n3n.png" alt="Example code" width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, fill in the &lt;strong&gt;Input path&lt;/strong&gt; and &lt;strong&gt;Input template&lt;/strong&gt;. The &lt;strong&gt;Input path&lt;/strong&gt; in a JSON construct with the variables you will use in the human-readable text. These variables are taken from the JSON payload. I don't know why you need this additional step, but you do.&lt;/p&gt;

&lt;p&gt;Finally, the &lt;strong&gt;Input template&lt;/strong&gt; section is where you enter the message you want to have sent using the variables from the &lt;strong&gt;Input path&lt;/strong&gt; section.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ahmcaesxe2nvx96qud3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ahmcaesxe2nvx96qud3.png" alt="Input and Template section" width="800" height="739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To see what all that will look like, there is an &lt;strong&gt;Output&lt;/strong&gt; section. For this to work, you need either the sample output or to have &lt;strong&gt;Entered your own&lt;/strong&gt; JSON. This is where having a sample of the non-transformed code can really help. You will see what the result will actually be.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzepx0uwiu6b1mmlfn7r7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzepx0uwiu6b1mmlfn7r7.png" alt="Output" width="800" height="591"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Save and Deploy
&lt;/h4&gt;

&lt;p&gt;Once you're satisfied with the output, save and deploy the rule.&lt;br&gt;
Alternatively, you can use it to update your CloudFormation template. I have included a sample above for you to use as a guide.&lt;br&gt;
There is a third option. Scrolling back to my first image, you'll see a button for &lt;strong&gt;CloudFormation Template&lt;/strong&gt;. Clicking that and selecting YAML (for the love of God, don't choose JSON) will generate a CloudFormation template for you. This is great if you are trying this in a dev account. You can use clickops to create your rule and transform, then have your IaC generated for you.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;In Managed Services, we often route AWS alerts to an SNS topic that integrates with our ticketing system. Initially, we sent raw JSON payloads, which made it difficult for help desk staff to understand incidents quickly.&lt;/p&gt;

&lt;p&gt;By implementing EventBridge transforms, we significantly improved the clarity of alerts, reducing response times and improving efficiency. For example, instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{"detail": {"instance-id": "i-12345", "state": "terminated"}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We now see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;EC2 Instance i-12345 has changed state to terminated.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This small change has a big impact on triaging and response.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for Using EventBridge Transforms
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Keep It Concise&lt;/strong&gt; – Extract only the necessary details to avoid clutter. The affected resource should be providing the detailed information, not the alert.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Human-Readable Formatting&lt;/strong&gt; – Avoid technical jargon where possible. This is especially important if the first destination is a help desk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Before Deploying&lt;/strong&gt; – Use the AWS console to verify transformations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Consider Multiple Destinations&lt;/strong&gt; – Tailor transformations based on where the alert goes (e.g., SNS, Lambda, or third-party tools like Slack or PagerDuty). Note: You can only have one transform per target. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitor and Iterate&lt;/strong&gt; – Regularly review and adjust transforms to ensure they remain effective. You use transforms to make it easy for people to read the notifications. What may be obvious to you may not be clear to the target audience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;EventBridge transforms are a simple yet powerful way to make AWS notifications more user-friendly. Whether sending events to a ticketing system or a chat app, formatting alerts into a clear and concise format can greatly enhance usability and response times.&lt;/p&gt;

&lt;p&gt;If you haven’t yet explored EventBridge transforms, I highly recommend giving them a try. Your help desk team (and your future self) will thank you!&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;Try setting up an EventBridge transform in your AWS account.&lt;br&gt;
Experiment with different input templates.&lt;br&gt;
Share your experiences and best practices in the comments!&lt;/p&gt;

&lt;p&gt;Do you have questions or feedback? Drop them below or connect with me on LinkedIn!&lt;/p&gt;

</description>
      <category>eventbridge</category>
      <category>aws</category>
      <category>cloudops</category>
      <category>observability</category>
    </item>
    <item>
      <title>SIMPLIFY ACCESS: A STEP-BY-STEP GUIDE TO USING MULTIPLE AWS ACCOUNTS</title>
      <dc:creator>JASON WOOD</dc:creator>
      <pubDate>Mon, 27 Jan 2025 04:03:12 +0000</pubDate>
      <link>https://dev.to/aws-builders/simplify-access-a-step-by-step-guide-to-using-multiple-aws-accounts-395p</link>
      <guid>https://dev.to/aws-builders/simplify-access-a-step-by-step-guide-to-using-multiple-aws-accounts-395p</guid>
      <description>&lt;p&gt;On January 16, AWS made a game-changing announcement: native support for signing into multiple AWS accounts simultaneously. Previously, trying to log in to another account in a new tab would log you out of the first.  This was a pain point for many of us juggling multiple AWS environments. Workarounds like Chrome profiles or the Firefox Multi-Account Containers plugin helped, but they had limitations.&lt;/p&gt;

&lt;p&gt;In this blog, I’ll guide you through AWS’ new multi-session support, explore how Firefox Containers work, and share my thoughts on which solution works best.&lt;/p&gt;

&lt;h2&gt;
  
  
  AWS MULTI-SESSION SUPPORT
&lt;/h2&gt;

&lt;p&gt;If you’re using a single AWS account for all your workloads, it’s time to rethink your approach! Managing multiple accounts is critical for security and organisation. Splitting environments (Dev, Test, Prod) into separate accounts reduces your blast radius—meaning if one account is compromised, the others remain safe. Now that you have a nice multi-account environment, how do you compare things between accounts or environments? Is something in Dev not talking to a bucket in Shared Services? How can you open the console in both accounts?&lt;/p&gt;

&lt;p&gt;AWS now offers a native option to open multiple accounts. This works with AWS Identity Centre-configured roles, IAM User access, and cross-account roles. It is both simple and initially confusing.&lt;/p&gt;

&lt;p&gt;When you log in to an account, you will be given an option to turn on multi-session support. This is something within your browser and doesn’t directly impact the AWS account you are connecting to. As such, it doesn’t matter what IAM permissions you have.&lt;/p&gt;

&lt;p&gt;To enable this feature, go to the account dropdown and click the button to “&lt;strong&gt;Turn on multi-session support&lt;/strong&gt;.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffmtcgdq0qfzyy6w1inus.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffmtcgdq0qfzyy6w1inus.png" alt="Turn on multi-session support button" width="345" height="607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ensure you have pop-ups enabled because after clicking the button, you’ll get a pop-up with more information on what AWS multi-session support does and a final confirmation button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wzdv6jnnqeqtf5umoug.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4wzdv6jnnqeqtf5umoug.png" alt="multi-session pop up window" width="623" height="401"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After this, you now see a button to “&lt;strong&gt;Add session&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fax36311cwlo3aarerj18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fax36311cwlo3aarerj18.png" alt="Add session screen" width="369" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s where it might get confusing: when you click “&lt;strong&gt;Add session&lt;/strong&gt;,” AWS directs you to the &lt;strong&gt;IAM user login screen&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb09aauy31bq728gg9y3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb09aauy31bq728gg9y3.png" alt="IAM sign in screen" width="305" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re using &lt;strong&gt;AWS Identity Center&lt;/strong&gt; (formerly AWS SSO), don’t worry—you don’t need to use the “&lt;strong&gt;Add session&lt;/strong&gt;” button. Connect to your next account as you usually would, and AWS will populate the session list automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0r8ujoppfytrmi6l4jh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi0r8ujoppfytrmi6l4jh.png" alt="Screenshot showing an active session" width="649" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You keep connecting to accounts, and the active session list will keep getting populated.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhez47iyd99l9jkoabr8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhez47iyd99l9jkoabr8x.png" alt="Screenshot showing multiple sessions" width="644" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, that is until you hit the five active session limit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8aujf6kdssb1amr0etd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8aujf6kdssb1amr0etd.png" alt="The session limit window" width="800" height="687"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similar to when you used to populate “&lt;strong&gt;Switch Role&lt;/strong&gt;”, there is a limit to the number of sessions you can have. You also can’t opt out of removing a session once you hit the limit. That is a bit of an annoyance, but this is the early days for the feature, so AWS may do something about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  HOW DO YOU SWAP SESSIONS?
&lt;/h3&gt;

&lt;p&gt;Swapping sessions is straightforward. You go to the Account dropdown in the top right and choose one of the active sessions listed. AWS will then open a new tab with you logged into the AWS console for that account with the specified role. Simple!&lt;/p&gt;

&lt;p&gt;There is no visual indicator for the different accounts, though. You need to look in the top right corner to see what account and role you are logged in to.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fll4orjyqye0ivmor8ore.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fll4orjyqye0ivmor8ore.png" alt="AWS user info" width="483" height="82"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  HOW DO YOU LOG IN TO A ROLE?
&lt;/h3&gt;

&lt;p&gt;Cross-account roles are also supported in the new session window. If you click the dropdown on the “&lt;strong&gt;Add session&lt;/strong&gt;” button, you can see any previously configured cross-account roles or add a new one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4s8awas3oe73iiofqbz3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4s8awas3oe73iiofqbz3.png" alt="Screenshot showing the switch role" width="659" height="718"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adding a new role is the same as always; you specify the account you want to connect to, the role to assume, and an optional name and colour. If you have an existing role, you can select it. Either option will open a new tab for you.  That role will now show in the active sessions window.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5nk52w2qfv79iun26m9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv5nk52w2qfv79iun26m9.png" alt="Screenshot showing a role in the account list" width="652" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FIREFOX MULT-ACCOUNT CONTAINERS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Firefox Multi-Account Containers&lt;/strong&gt; is an extension designed to isolate browser activity across tabs. Each container acts as its own environment, meaning you can log in to different AWS accounts without interference. A container can have multiple associated tabs.  Let me show you how to set it up and why it’s my go-to solution.&lt;/p&gt;

&lt;p&gt;Start by installing the extension. Click the extensions icon in your toolbar or search for “&lt;strong&gt;Firefox Multi-Account Containers&lt;/strong&gt;” in the Firefox Add-ons store. There are multiple container extensions, so make sure to choose the official version authored by Firefox.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0v2k9fxljbu65r90de4m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0v2k9fxljbu65r90de4m.png" alt="Screenshot showing how to access firefox extensions" width="800" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When enabled, it comes with some pre-configured containers. You can delete or rename them as you desire.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpb2nyhb3m25yhd1zir15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpb2nyhb3m25yhd1zir15.png" alt="Firefox containers screen1" width="800" height="1326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To edit, delete, or reorder, select the Manage Containers button. &lt;br&gt;
In the following window, the “&lt;em&gt;hamburgers&lt;/em&gt;” allow you to reorder the containers. You can also click on a container name to modify or delete a container (not shown).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faas4ly0frci5z6c24sgg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faas4ly0frci5z6c24sgg.png" alt="Containers manage screen" width="782" height="891"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creating a new container is as simple as giving it a name, choosing a colour, and selecting an icon. There aren’t a lot of options. This is a fairly simple extension, but it does what we need.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxpzb5453v5m38z610wt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxpzb5453v5m38z610wt.png" alt="New container screen" width="745" height="819"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The color-coded borders and icons make it easy to identify which account or environment each tab belongs to. For instance, you can set “Prod” to red and “Dev” to green for quick visual differentiation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7cchqg2uabv4jajb9kyi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7cchqg2uabv4jajb9kyi.png" alt="Color coded browser tabs" width="716" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  WHICH IS BEST?
&lt;/h2&gt;

&lt;p&gt;So, which option is right for you? It depends on your needs.&lt;br&gt;
• &lt;strong&gt;For occasional multi-session access&lt;/strong&gt;: AWS’ built-in support is simple to configure and works seamlessly within your preferred browser.&lt;br&gt;
• &lt;strong&gt;For heavy multi-account users&lt;/strong&gt;: Firefox Multi-Account Containers is a powerful tool, especially if you manage accounts for multiple customers.&lt;/p&gt;

&lt;p&gt;For me, working at a consultancy, I deal with multiple customers. Having the &lt;strong&gt;Firefox Mult-Account Containers&lt;/strong&gt; is a godsend. I often connect to multiple AWS accounts, and the coloured tabs help me track who I’m connected to. I will likely make use of the &lt;strong&gt;AWS multi-session&lt;/strong&gt; feature, though. Apart from containers for each customer, I also have a “Misc” container. I use that when I want multiple accounts open for one customer. Using a mix of Firefox Multi-Account Containers, and AWS multi-session support will give me the best of both worlds.&lt;/p&gt;

&lt;h2&gt;
  
  
  WRAP UP
&lt;/h2&gt;

&lt;p&gt;The new &lt;strong&gt;AWS multi-session feature&lt;/strong&gt; is a fantastic first step, and I’m sure it will improve over time. Meanwhile, &lt;strong&gt;Firefox Multi-Account Containers&lt;/strong&gt; continues to be my go-to for more complex workflows. Try them out and see what works best for your needs. Let me know in the comments how you manage multiple AWS accounts!&lt;/p&gt;

</description>
      <category>ops</category>
      <category>aws</category>
      <category>cloud</category>
      <category>howto</category>
    </item>
  </channel>
</rss>
