1
Connect
Go to Connections and click Connect next to AWS CloudWatch. Ordyn generates an External ID for you.
2
Create the role
Run the setup command Ordyn shows in AWS CloudShell. It creates a role that trusts Ordyn’s account with that External ID and grants everything below. You can also create the role by hand.
3
Enter the role ARN and region
Paste the role ARN, pick the region, and connect.
Permissions
The IAM role Ordyn assumes needs the AWS managed policies CloudWatchReadOnlyAccess and ViewOnlyAccess, plus thestruct-coverage-access inline policy (89 actions) for Auto Monitors, infrastructure checks and AMP. AMP access is optional for connection readiness; setup includes it.
Verify permissions
Check the role’s own permissions without creating anything. Granted by:struct-coverage-access.
Infrastructure inventory
List the account’s resources in every enabled region. Granted by:ViewOnlyAccess, struct-coverage-access.
Permissions Ordyn uses: resource-explorer-2:Search, resource-explorer-2:ListResources, resource-explorer-2:GetIndex, resource-explorer-2:GetView, resource-explorer-2:GetDefaultView, ec2:DescribeRegions.
Resource configuration
Read control-plane configuration without application data or secret values. Granted by:struct-coverage-access.
Permissions Ordyn uses (51)
Permissions Ordyn uses (51)
Metrics
Discover and query CloudWatch metrics. Granted by:CloudWatchReadOnlyAccess.
Permissions Ordyn uses: cloudwatch:ListMetrics, cloudwatch:GetMetricData, cloudwatch:GetMetricStatistics.
Logs
Read existing logs and run read-only log queries. Granted by:CloudWatchReadOnlyAccess.
Permissions Ordyn uses: logs:DescribeLogGroups, logs:FilterLogEvents, logs:StartQuery, logs:GetQueryResults, logs:StopQuery.
Infrastructure change history
Read management events to refresh resources that changed. Granted by:ViewOnlyAccess, struct-coverage-access.
Permissions Ordyn uses: cloudtrail:LookupEvents.
Managed Prometheus metrics
Only needed for AMP: discover workspaces and query PromQL using the existing role. Granted by:struct-coverage-access.
Permissions Ordyn uses: aps:ListWorkspaces, aps:DescribeWorkspace, aps:QueryMetrics, aps:GetLabels, aps:GetSeries, aps:GetMetricMetadata.
Managed Prometheus rule inventory
Only needed for AMP: inspect existing alerts, recording rules and delivery. Granted by:struct-coverage-access.
Permissions Ordyn uses: aps:ListRuleGroupsNamespaces, aps:DescribeRuleGroupsNamespace, aps:DescribeAlertManagerDefinition.
Manage Prometheus alerts
Only needed for AMP: manage native rules, Alertmanager and SNS delivery. Granted by:struct-coverage-access.
Permissions Ordyn uses (16)
Permissions Ordyn uses (16)
Manage monitoring
Create, tag, inspect and remove the alarms and metric filters Ordyn manages, and the SNS topic that delivers alarms to Ordyn. Granted by:struct-coverage-access.
- Inventory reads through AWS Resource Explorer. Turn on Resource Explorer indexing in the account and set an unfiltered default view, or Ordyn reports inventory as incomplete.
- Do not use CloudWatchLogsReadOnlyAccess alone: it cannot list metrics or describe alarms.
- Some configuration responses can include sensitive values, such as Lambda and ECS environment variables. Ordyn redacts environment variables and known secret-bearing fields before saving resource snapshots.
How to grant
Create the role (AWS CloudShell)
Create the role (AWS CloudShell)
Update an existing role
Update an existing role
The struct-coverage-access inline policy
The struct-coverage-access inline policy
2026-10-16.1. See permission changes.
The existing-role upgrade command, and the command Ordyn shows when a check finds missing access, replace struct-coverage-access and then delete inline policies that older Ordyn setups created under other names (struct-managed-monitors-write, struct-coverage-infrastructure-*, and struct-coverage-monitors-*). The new-role setup command does not remove legacy policies. If you created the role by hand, use the same policy name so later updates replace it.