AmazonEC2ReadOnlyAccess
Summary
Provides read only access to Amazon EC2 via the AWS Management Console. The policy allows ec2:Describe* and ec2:GetSecurityGroupsForVpc, plus read actions for Elastic Load Balancing, CloudWatch and Auto Scaling, on all resources.
Permissions imported from the AWS Managed Policy Reference Guide; other sections reviewed against the listed AWS sources.
Identity
- ARN
arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess- Default version
- v5
- Created
- Last edited
- Services
- autoscaling, cloudwatch, ec2, elasticloadbalancing
Control-plane actions (243)
By access level: 218 List, 25 Read.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| EC2 Auto Scaling | 22 of 68 | 21 List, 1 Read; 0 restricted, 0 conditional | autoscaling:Describe* |
| CloudWatch | 5 of 160 | 5 Read; 0 restricted, 0 conditional | cloudwatch:Describe* |
| EC2 | 196 of 834 | 195 List, 1 Read; 0 restricted, 0 conditional | ec2:Describe*, ec2:GetSecurityGroupsForVpc |
| ELB | 20 of 77 | 2 List, 18 Read; 0 restricted, 0 conditional | elasticloadbalancing:Describe* |
EC2 Auto Scaling: 22 actions
- autoscaling:DescribeAccountLimits (List)
- autoscaling:DescribeAccountSettings (List)
- autoscaling:DescribeAdjustmentTypes (List)
- autoscaling:DescribeAutoScalingGroups (List)
- autoscaling:DescribeAutoScalingInstances (List)
- autoscaling:DescribeAutoScalingNotificationTypes (List)
- autoscaling:DescribeInstanceRefreshes (List)
- autoscaling:DescribeLaunchConfigurations (List)
- autoscaling:DescribeLifecycleHookTypes (List)
- autoscaling:DescribeLifecycleHooks (List)
- autoscaling:DescribeLoadBalancerTargetGroups (List)
- autoscaling:DescribeLoadBalancers (List)
- autoscaling:DescribeMetricCollectionTypes (List)
- autoscaling:DescribeNotificationConfigurations (List)
- autoscaling:DescribePolicies (List)
- autoscaling:DescribeScalingActivities (List)
- autoscaling:DescribeScalingProcessTypes (List)
- autoscaling:DescribeScheduledActions (List)
- autoscaling:DescribeTags (Read)
- autoscaling:DescribeTerminationPolicyTypes (List)
- autoscaling:DescribeTrafficSources (List)
- autoscaling:DescribeWarmPool (List)
CloudWatch: 5 actions
- cloudwatch:DescribeAlarmHistory (Read)
- cloudwatch:DescribeAlarms (Read)
- cloudwatch:DescribeAlarmsForMetric (Read)
- cloudwatch:DescribeAnomalyDetectors (Read)
- cloudwatch:DescribeInsightRules (Read)
EC2: 196 actions
- ec2:DescribeAccountAttributes (List)
- ec2:DescribeAccountVpcEncryptionControl (List)
- ec2:DescribeAddressTransfers (List)
- ec2:DescribeAddresses (List)
- ec2:DescribeAddressesAttribute (List)
- ec2:DescribeAggregateIdFormat (List)
- ec2:DescribeApplicationStatus (List)
- ec2:DescribeApplicationStatusCheckAssociations (List)
- ec2:DescribeApplicationStatusChecks (List)
- ec2:DescribeAvailabilityZones (List)
- ec2:DescribeAwsNetworkPerformanceMetricSubscriptions (List)
- ec2:DescribeBundleTasks (List)
- ec2:DescribeByoipCidrs (List)
- ec2:DescribeCapacityBlockExtensionHistory (List)
- ec2:DescribeCapacityBlockExtensionOfferings (List)
- ec2:DescribeCapacityBlockOfferings (List)
- ec2:DescribeCapacityBlockStatus (List)
- ec2:DescribeCapacityBlocks (List)
- ec2:DescribeCapacityManagerDataExports (List)
- ec2:DescribeCapacityReservationBillingRequests (List)
- ec2:DescribeCapacityReservationCancellationQuotes (List)
- ec2:DescribeCapacityReservationDateChangeQuotes (List)
- ec2:DescribeCapacityReservationFleets (List)
- ec2:DescribeCapacityReservationTopology (List)
- ec2:DescribeCapacityReservations (List)
- ec2:DescribeCarrierGateways (List)
- ec2:DescribeClassicLinkInstances (List)
- ec2:DescribeClientVpnAuthorizationRules (List)
- ec2:DescribeClientVpnConnections (List)
- ec2:DescribeClientVpnEndpoints (List)
- ec2:DescribeClientVpnRoutes (List)
- ec2:DescribeClientVpnTargetNetworks (List)
- ec2:DescribeCoipPools (List)
- ec2:DescribeConversionTasks (List)
- ec2:DescribeCustomerGateways (List)
- ec2:DescribeDeclarativePoliciesReports (List)
- ec2:DescribeDhcpOptions (List)
- ec2:DescribeEgressOnlyInternetGateways (List)
- ec2:DescribeElasticGpus (List)
- ec2:DescribeExportImageTasks (List)
- ec2:DescribeExportTasks (List)
- ec2:DescribeFastLaunchImages (List)
- ec2:DescribeFastSnapshotRestores (List)
- ec2:DescribeFleetHistory (List)
- ec2:DescribeFleetInstances (List)
- ec2:DescribeFleets (List)
- ec2:DescribeFlowLogs (List)
- ec2:DescribeFpgaImageAttribute (List)
- ec2:DescribeFpgaImages (List)
- ec2:DescribeHostReservationOfferings (List)
- ec2:DescribeHostReservations (List)
- ec2:DescribeHosts (List)
- ec2:DescribeIamInstanceProfileAssociations (List)
- ec2:DescribeIdFormat (List)
- ec2:DescribeIdentityIdFormat (List)
- ec2:DescribeImageAttribute (List)
- ec2:DescribeImageReferences (List)
- ec2:DescribeImageUsageReportEntries (List)
- ec2:DescribeImageUsageReports (List)
- ec2:DescribeImages (List)
- ec2:DescribeImportImageTasks (List)
- ec2:DescribeImportSnapshotTasks (List)
- ec2:DescribeInstanceAttribute (List)
- ec2:DescribeInstanceConnectEndpoints (List)
- ec2:DescribeInstanceCreditSpecifications (List)
- ec2:DescribeInstanceEventNotificationAttributes (List)
- ec2:DescribeInstanceEventWindows (List)
- ec2:DescribeInstanceImageMetadata (List)
- ec2:DescribeInstanceSqlHaHistoryStates (List)
- ec2:DescribeInstanceSqlHaStates (List)
- ec2:DescribeInstanceStatus (List)
- ec2:DescribeInstanceTopology (List)
- ec2:DescribeInstanceTypeOfferings (List)
- ec2:DescribeInstanceTypes (List)
- ec2:DescribeInstances (List)
- ec2:DescribeInternetGateways (List)
- ec2:DescribeIpamByoasn (List)
- ec2:DescribeIpamExternalResourceVerificationTokens (List)
- ec2:DescribeIpamInternetRegistryAssociations (List)
- ec2:DescribeIpamPolicies (List)
- ec2:DescribeIpamPoolAllocations (List)
- ec2:DescribeIpamPools (List)
- ec2:DescribeIpamPrefixListResolverTargets (List)
- ec2:DescribeIpamPrefixListResolvers (List)
- ec2:DescribeIpamResourceDiscoveries (List)
- ec2:DescribeIpamResourceDiscoveryAssociations (List)
- ec2:DescribeIpamScopes (List)
- ec2:DescribeIpams (List)
- ec2:DescribeIpv6Pools (List)
- ec2:DescribeKeyPairs (List)
- ec2:DescribeLaunchTemplateVersions (List)
- ec2:DescribeLaunchTemplates (List)
- ec2:DescribeLocalGatewayRouteTablePermissions (List)
- ec2:DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations (List)
- ec2:DescribeLocalGatewayRouteTableVpcAssociations (List)
- ec2:DescribeLocalGatewayRouteTables (List)
- ec2:DescribeLocalGatewayVirtualInterfaceGroups (List)
- ec2:DescribeLocalGatewayVirtualInterfaces (List)
- ec2:DescribeLocalGateways (List)
- ec2:DescribeLockedSnapshots (List)
- ec2:DescribeMacHosts (List)
- ec2:DescribeMacModificationTasks (List)
- ec2:DescribeManagedPrefixLists (List)
- ec2:DescribeMovingAddresses (List)
- ec2:DescribeNatGateways (List)
- ec2:DescribeNetworkAcls (List)
- ec2:DescribeNetworkInsightsAccessScopeAnalyses (List)
- ec2:DescribeNetworkInsightsAccessScopes (List)
- ec2:DescribeNetworkInsightsAnalyses (List)
- ec2:DescribeNetworkInsightsPaths (List)
- ec2:DescribeNetworkInterfaceAttribute (List)
- ec2:DescribeNetworkInterfacePermissions (List)
- ec2:DescribeNetworkInterfaces (List)
- ec2:DescribeOutpostLags (List)
- ec2:DescribePlacementGroups (List)
- ec2:DescribePrefixLists (List)
- ec2:DescribePrincipalIdFormat (List)
- ec2:DescribePublicIpv4Pools (List)
- ec2:DescribeRegions (List)
- ec2:DescribeReplaceRootVolumeTasks (List)
- ec2:DescribeReservedInstances (List)
- ec2:DescribeReservedInstancesListings (List)
- ec2:DescribeReservedInstancesModifications (List)
- ec2:DescribeReservedInstancesOfferings (List)
- ec2:DescribeRouteServerEndpoints (List)
- ec2:DescribeRouteServerPeers (List)
- ec2:DescribeRouteServers (List)
- ec2:DescribeRouteTables (List)
- ec2:DescribeScheduledInstanceAvailability (List)
- ec2:DescribeScheduledInstances (List)
- ec2:DescribeSecondaryInterfaces (List)
- ec2:DescribeSecondaryNetworks (List)
- ec2:DescribeSecondarySubnets (List)
- ec2:DescribeSecurityGroupReferences (List)
- ec2:DescribeSecurityGroupRules (List)
- ec2:DescribeSecurityGroupVpcAssociations (List)
- ec2:DescribeSecurityGroups (List)
- ec2:DescribeServiceLinkVirtualInterfaces (List)
- ec2:DescribeSnapshotAttribute (List)
- ec2:DescribeSnapshotTierStatus (List)
- ec2:DescribeSnapshots (List)
- ec2:DescribeSpotDatafeedSubscription (List)
- ec2:DescribeSpotFleetInstances (List)
- ec2:DescribeSpotFleetRequestHistory (List)
- ec2:DescribeSpotFleetRequests (List)
- ec2:DescribeSpotInstanceRequests (List)
- ec2:DescribeSpotPriceHistory (List)
- ec2:DescribeStaleSecurityGroups (List)
- ec2:DescribeStoreImageTasks (List)
- ec2:DescribeSubnets (List)
- ec2:DescribeTags (List)
- ec2:DescribeTrafficMirrorFilterRules (List)
- ec2:DescribeTrafficMirrorFilters (List)
- ec2:DescribeTrafficMirrorSessions (List)
- ec2:DescribeTrafficMirrorTargets (List)
- ec2:DescribeTransitGatewayAttachments (List)
- ec2:DescribeTransitGatewayConnectPeers (List)
- ec2:DescribeTransitGatewayConnects (List)
- ec2:DescribeTransitGatewayMeteringPolicies (List)
- ec2:DescribeTransitGatewayMulticastDomains (List)
- ec2:DescribeTransitGatewayPeeringAttachments (List)
- ec2:DescribeTransitGatewayPolicyTables (List)
- ec2:DescribeTransitGatewayRouteTableAnnouncements (List)
- ec2:DescribeTransitGatewayRouteTables (List)
- ec2:DescribeTransitGatewayVpcAttachments (List)
- ec2:DescribeTransitGateways (List)
- ec2:DescribeTrunkInterfaceAssociations (List)
- ec2:DescribeVerifiedAccessEndpoints (List)
- ec2:DescribeVerifiedAccessGroups (List)
- ec2:DescribeVerifiedAccessInstanceLoggingConfigurations (List)
- ec2:DescribeVerifiedAccessInstanceWebAclAssociations (List)
- ec2:DescribeVerifiedAccessInstances (List)
- ec2:DescribeVerifiedAccessTrustProviders (List)
- ec2:DescribeVolumeAttribute (List)
- ec2:DescribeVolumeStatus (List)
- ec2:DescribeVolumes (List)
- ec2:DescribeVolumesModifications (List)
- ec2:DescribeVpcAttribute (List)
- ec2:DescribeVpcBlockPublicAccessExclusions (List)
- ec2:DescribeVpcBlockPublicAccessOptions (List)
- ec2:DescribeVpcClassicLink (List)
- ec2:DescribeVpcClassicLinkDnsSupport (List)
- ec2:DescribeVpcEncryptionControls (List)
- ec2:DescribeVpcEndpointAssociations (List)
- ec2:DescribeVpcEndpointConnectionNotifications (List)
- ec2:DescribeVpcEndpointConnections (List)
- ec2:DescribeVpcEndpointServiceConfigurations (List)
- ec2:DescribeVpcEndpointServicePermissions (List)
- ec2:DescribeVpcEndpointServices (List)
- ec2:DescribeVpcEndpoints (List)
- ec2:DescribeVpcPeeringConnections (List)
- ec2:DescribeVpcs (List)
- ec2:DescribeVpnConcentrators (List)
- ec2:DescribeVpnConnections (List)
- ec2:DescribeVpnGateways (List)
- ec2:GetSecurityGroupsForVpc (Read)
ELB: 20 actions
- elasticloadbalancing:DescribeAccountLimits (Read)
- elasticloadbalancing:DescribeCapacityReservation (Read)
- elasticloadbalancing:DescribeInstanceHealth (Read)
- elasticloadbalancing:DescribeListenerAttributes (Read)
- elasticloadbalancing:DescribeListenerCertificates (Read)
- elasticloadbalancing:DescribeListeners (Read)
- elasticloadbalancing:DescribeLoadBalancerAttributes (Read)
- elasticloadbalancing:DescribeLoadBalancerPolicies (Read)
- elasticloadbalancing:DescribeLoadBalancerPolicyTypes (Read)
- elasticloadbalancing:DescribeLoadBalancers (List)
- elasticloadbalancing:DescribeRules (Read)
- elasticloadbalancing:DescribeSSLPolicies (Read)
- elasticloadbalancing:DescribeTags (Read)
- elasticloadbalancing:DescribeTargetGroupAttributes (Read)
- elasticloadbalancing:DescribeTargetGroups (Read)
- elasticloadbalancing:DescribeTargetHealth (Read)
- elasticloadbalancing:DescribeTrustStoreAssociations (Read)
- elasticloadbalancing:DescribeTrustStoreRevocations (Read)
- elasticloadbalancing:DescribeTrustStores (Read)
- elasticloadbalancing:DescribeWebACLAssociation (List)
Data-plane actions (2)
By access level: 1 List, 1 Read.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| CloudWatch | 2 of 5 | 1 List, 1 Read; 0 restricted, 0 conditional | cloudwatch:GetMetricStatistics, cloudwatch:ListMetrics |
CloudWatch: 2 actions
- cloudwatch:GetMetricStatistics (Read)
- cloudwatch:ListMetrics (List)
Excluded and conditional actions
No patterns are excluded by NotAction or Deny statements.
Resource scope and attachment
Resource scope across granted actions: all-resources.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants only List and Read actions.
Guidance
Practical scope
Every statement applies to Resource "*". The actions are ec2:Describe*, ec2:GetSecurityGroupsForVpc, elasticloadbalancing:Describe*, cloudwatch:ListMetrics, cloudwatch:GetMetricStatistics, cloudwatch:Describe* and autoscaling:Describe*. The policy contains no create, modify, delete or run actions.
Use cases
- Give users, groups or roles read-only access to Amazon EC2, including Describe access to Elastic Load Balancing and Auto Scaling and read access to CloudWatch metrics.
Best practices
- AWS managed policies don't grant least privilege permissions. The IAM User Guide suggests using IAM Access Analyzer to see which permissions principals actually use, then writing a custom policy or generating one with only the required permissions.
Security considerations
- The policy reaches beyond EC2: it also allows Describe actions for Elastic Load Balancing, CloudWatch and Auto Scaling, and cloudwatch:GetMetricStatistics, on all resources.
- You can't change the permissions in AWS managed policies. Services occasionally add permissions to an AWS managed policy to support new features, and this type of update affects all identities where the policy is attached.
Assignment guidance
You can attach this policy to your IAM identities (users, groups and roles). The reference page also links to guidance on creating a permission set using AWS managed policies in IAM Identity Center. It fits where read-only access to Amazon EC2 is intended. For narrower access, the IAM User Guide suggests writing a customer managed policy with only the permissions your team needs.
Related policies
Same service
- AdministratorAccess-AWSElasticBeanstalk
- AIDevOpsReleaseManagementVPCPolicy
- AmazonAppStreamServiceAccess
- AmazonBioDiscoveryServiceLinkedRolePolicy
- AmazonDataZoneEnvironmentRolePermissionsBoundary
- AmazonDataZoneProjectDeploymentPermissionsBoundary
- AmazonDataZoneProjectRolePermissionsBoundary
- AmazonDataZoneSageMakerProvisioningRolePolicy
Same domain
Frequently asked questions
- When should I attach AmazonEC2ReadOnlyAccess?
- The Amazon EC2 User Guide says you can attach it to your IAM identities and that it grants permissions that allow read-only access to Amazon EC2. Attach it where viewing EC2 resources is the intended scope. For narrower access, write a customer managed policy with only the permissions your team needs.
- What does AmazonEC2ReadOnlyAccess grant?
- It allows ec2:Describe*, ec2:GetSecurityGroupsForVpc, elasticloadbalancing:Describe*, cloudwatch:ListMetrics, cloudwatch:GetMetricStatistics, cloudwatch:Describe* and autoscaling:Describe* on all resources. It contains no create, modify, delete or run actions.
- What are the security risks of AmazonEC2ReadOnlyAccess?
- The policy grants no write actions, but it applies to all resources and covers Elastic Load Balancing, CloudWatch and Auto Scaling as well as EC2. AWS managed policies don't grant least privilege permissions, and you must consider the security risk of granting principals more permissions than they need. Services add permissions to AWS managed policies over time, and each update affects all identities the policy is attached to.
Policy JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:GetSecurityGroupsForVpc"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "elasticloadbalancing:Describe*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics",
"cloudwatch:Describe*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "autoscaling:Describe*",
"Resource": "*"
}
]
}
Version history
Current version v5, edited by AWS on 2026-02-12. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.
Attach snippets
AWS CLI
aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccessCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccessTerraform
resource "aws_iam_role_policy_attachment" "amazonec2readonlyaccess" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonEC2ReadOnlyAccess"),
);Sources
- AmazonEC2ReadOnlyAccess (AWS Managed Policy Reference Guide) (retrieved ; supports summary, practicalScope, useCases, securityConsiderations, assignmentGuidance, faqs)
- AWS managed policies for Amazon EC2 (Amazon EC2 User Guide) (retrieved ; supports useCases, securityConsiderations, assignmentGuidance, faqs)
- AWS managed policies for job functions (IAM User Guide) (retrieved ; supports bestPractices, assignmentGuidance, faqs)