Overview
Connecting AWS gives Rootly AI read-only access to your AWS account. Once connected, Rootly AI can look up CloudWatch metrics, EC2 instance state, RDS database status, SQS queue depth, and other AWS services during investigations — grounding its reasoning in the actual state of your infrastructure rather than best-guess inference. Access is granted through an IAM Role you create in your AWS account. You control which AWS services the role can read and which regions it can operate in.Before You Start
You’ll need:- AWS Console access to the account you want to connect, with permission to create IAM Roles.
- The External ID shown on the AWS connection modal in Rootly — this is unique to your Rootly organization. Copy it when the modal opens; it goes into the trust policy on the AWS side.
- A decision on scope — which AWS services and regions should Rootly AI be able to read? You can start narrow and expand later.
Setup Provisioning Options
You have three ways to create the IAM Role in AWS. Pick whichever matches how your team manages AWS infrastructure.Option 1 — CloudFormation (Recommended)
The one-click path. Rootly generates a CloudFormation template with your External ID pre-filled — review it in the AWS Console and click Create stack.Copy Your External ID From Rootly
Launch The CloudFormation Stack
Create The Stack
CREATE_COMPLETE — usually 30–60 seconds. Once complete, open the stack’s Outputs tab and copy the RoleArn value.Paste The Role ARN Into Rootly
Option 2 — Terraform
If your team manages AWS through Terraform, Rootly provides a Terraform module in the connection modal that creates the same IAM Role. Apply the module in your Terraform workspace, copy the resulting Role ARN into the Rootly modal, and click Test Connection.Option 3 — Manual Console Setup
For teams that prefer clicking through the AWS Console step-by-step, or for accounts where CloudFormation isn’t an option.Open IAM > Roles In The AWS Console
Create The Role With A Custom Trust Policy
Attach Permissions
- If you selected specific services — add a custom inline policy with exactly the read access needed for those services. Rootly displays the exact policy JSON on the connection modal.
- If you selected all services — attach the AWS managed ReadOnlyAccess policy for account-wide read access.
Name The Role And Create It
RootlyAIReadOnly), and click Create role.Copy The Role ARN Into Rootly
Configuring Access Scope
Rootly AI’s AWS integration accepts two scoping dimensions. Both are configured on the Rootly connection modal before you generate the IAM policy — the policy Rootly creates matches your selections exactly.ReadOnlyAccess policy.Narrow is safer than broad. Start with the services your team actually operates; the connection can be updated later to add more services.Condition on aws:RequestedRegion to the role’s attached permission policy (the trust policy alone cannot bound the resulting session’s regional reach).Optional: EKS Support
If Rootly AI needs to query Kubernetes clusters managed by EKS (nodes, workloads, cluster events), enable the EKS Support section on the Rootly connection modal and follow its generated instructions. The modal produces the narrow, read-only permission set (typicallyeks:DescribeCluster, eks:ListClusters, eks:DescribeNodegroup, eks:ListNodegroups, and an EKS access entry attaching the AmazonEKSClusterAdminPolicy-alternative view policy at cluster scope) that Rootly AI actually needs. Prefer that over broad managed policies like AmazonEKSClusterPolicy, which grant write actions Rootly AI never uses.
Verifying The Connection
Click Test Connection in the Rootly modal after pasting the Role ARN. Rootly checks that the role can be used with the External ID you set, and reports back:- Connection verified — the role is set up correctly. Save the integration and Rootly AI can now query AWS.
- Assume-role failed — the trust policy on the AWS role doesn’t reference the External ID correctly. Recheck the trust policy on the AWS side.
- Permissions insufficient — the role works but doesn’t grant the reads Rootly AI needs. Recheck the permissions policy against the services you selected.
Adjusting Access After Setup
To narrow or broaden scope after the initial connection:Open The AWS Card In Rootly
Adjust Services Or Regions
Update The Role's Policy In AWS
Save In Rootly
Best Practices
- Start with narrow service and region scope. You can always expand. Granting broad
ReadOnlyAccessup front makes it harder to reason about what Rootly AI has seen after the fact. - Use a memorable role name.
RootlyAIReadOnly(or similar) makes the role easy to find in IAM Roles listings and easy to identify in CloudTrail logs. - Guard the External ID. The External ID keeps your Rootly connection separate from every other Rootly customer’s. Don’t paste it into public issues, screenshots, or Slack channels.
- Audit AWS-side access changes. Any change to the IAM Role’s trust policy or attached permissions should go through the same review process as any other AWS IAM change.
- Consider a dedicated AWS account for observability queries. If you have a hub-and-spoke AWS setup with a central observability account, connect that account to Rootly AI rather than each spoke account individually.
- Reconnect if you suspect misuse. If you rotate the External ID or suspect the role has been misused, disconnect the integration from Rootly, delete the AWS-side role, and re-run the setup. Reconnection generates a fresh External ID.
Troubleshooting
Test Connection returns 'AssumeRole failed'
Test Connection returns 'AssumeRole failed'
CloudFormation stack fails with 'Insufficient permissions'
CloudFormation stack fails with 'Insufficient permissions'
Rootly AI's investigation cites AWS but the data looks stale
Rootly AI's investigation cites AWS but the data looks stale
EKS queries fail after connecting
EKS queries fail after connecting
AmazonEKSClusterPolicy attached — attach it and retry; (2) the EKS cluster API endpoint is IP-restricted and Rootly AI’s outbound IPs aren’t allowed — add them to the endpoint’s allow-list (they’re shown on the Rootly modal’s EKS section).Rootly AI can query some AWS services but not others
Rootly AI can query some AWS services but not others
After rotating my Role ARN, the integration shows Connected but queries fail
After rotating my Role ARN, the integration shows Connected but queries fail
Frequently Asked Questions
Is Rootly AI's AWS access read-only?
Is Rootly AI's AWS access read-only?
Describe*, Get*, List*, and equivalent read-only actions. Rootly AI cannot start or stop instances, modify security groups, or change any configuration.What is the External ID for?
What is the External ID for?
Can I connect multiple AWS accounts?
Can I connect multiple AWS accounts?
What AWS services does Rootly AI use most often?
What AWS services does Rootly AI use most often?
Does Rootly AI's AWS access show up in CloudTrail?
Does Rootly AI's AWS access show up in CloudTrail?
RootlyAIReadOnly) as the CloudTrail filter to see the full history.Does the integration count against AWS API rate limits?
Does the integration count against AWS API rate limits?
How do I fully disconnect AWS from Rootly?
How do I fully disconnect AWS from Rootly?