Discovery runs in the region set on the connection, except S3 buckets, which are account-wide. It also captures the relationships between these resources: which ECS service runs which tasks, which task runs on which EC2 instance, which services and tasks sit behind a target group, and which resources share a VPC or subnet.
This metadata gives NOFire AI more context for investigations and root cause analysis.
ECS discovery reads
ecs:ListClusters, ecs:ListServices, ecs:ListTasks, and the matching ecs:Describe* actions. The ReadOnlyAccess managed policy from Step 1 covers all of these actions. If you replace that policy with a narrower one that omits them, ECS is skipped and the rest of the discovery still completes.Prerequisites
- An AWS account, and permission to create IAM roles in it.
- The AWS region you want discovered. One connection covers one region.
- The external ID shown on the NOFire AI dashboard when you add an AWS connection.
Step 1: Create IAM role
Alternative: Create role using AWS CLI
Alternative: Create role using AWS CLI
For automation or scripting, you can create the IAM role with the AWS CLI:
Alternative: Create role using Terraform
Alternative: Create role using Terraform
If you manage infrastructure with Terraform, copy the module below into your configuration. Set Apply the configuration and copy the role ARN from the
external_id to the value shown in the NOFire AI dashboard. Keep it secret and never commit it to version control.nofireai_role_arn output:Step 2: Add AWS connection to NOFire AI
Test the connection
- Open the Connections dashboard and make sure that the AWS connection status is READY. A connection that stays in an error state did not authenticate.
- Ask NOFire a question that needs AWS context, for example “which AWS resources back the checkout service?”. An answer that names your resources confirms the connection works end to end.
Troubleshooting
Connection test fails with an access-denied error
Connection test fails with an access-denied error
The external ID on the connection must match the one in the role’s trust policy exactly, and the trust policy must name the NOFire AI account ID
593113792344. Open the role in IAM, check the Trust relationships tab, and compare both values with what you entered on the connection.Connection saves but discovers nothing
Connection saves but discovers nothing
The connection’s region holds no supported resources. Add a connection for the region where your workloads actually run.
Some resource types are missing
Some resource types are missing
Make sure that all three managed policies are still attached to the role: ReadOnlyAccess, CloudWatchLogsReadOnlyAccess, and AmazonRDSPerformanceInsightsReadOnly. A role created with only
ReadOnlyAccess discovers resources but cannot query logs or database performance insights.ECS resources are missing while everything else is discovered
ECS resources are missing while everything else is discovered
The role can no longer read ECS. An account whose role lost ECS read access looks identical to an account that runs no ECS, so discovery continues and the ECS clusters, services, and tasks drop out of the graph. Re-attach ReadOnlyAccess to the role.
Discovery is slow
Discovery is slow
Discovery time scales with the number of resources in the region. Avoid connections for regions that hold no resources.
Multiple accounts
Add one connection per AWS account, each with its own IAM role and external ID. Use the connection name to identify the account and environment, for exampleproduction-us or staging.







