Skip to main content
IAM Policy Map

ViewOnlyAccess

OperatorJob functionActiveReviewedShow on mapCompare

Summary

A job function policy that AWS describes as granting permissions to view resources and basic metadata across all AWS services. The IAM User Guide describes it as granting List*, Describe*, Get*, View* and Lookup* access to resources for AWS services. The document names actions under 125 service prefixes, so check that the services you use are covered.

Permissions imported from the AWS Managed Policy Reference Guide; other sections reviewed against the listed AWS sources.

Identity

ARN
arn:aws:iam::aws:policy/job-function/ViewOnlyAccess
Default version
v48
Created
Last edited
Services
acm, aiops, amplify, apigateway, appconfig, appsync, athena, autoscaling, aws-marketplace, backup, batch, bedrock, bedrock-agentcore, bedrock-mantle, clouddirectory, cloudformation, cloudfront, cloudsearch, cloudtrail, cloudwatch, codeartifact, codebuild, codecommit, codedeploy, codepipeline, cognito-identity, cognito-idp, cognito-sync, comprehend, config, connect, cost-optimization-hub, databrew, datapipeline, dax, devicefarm, directconnect, discovery, dlm, dms, ds, dynamodb, ec2, ecr, ecs, eks, elasticache, elasticbeanstalk, elasticfilesystem, elasticloadbalancing, elasticmapreduce, elastictranscoder, emr-containers, emr-serverless, es, events, firehose, fsx, gamelift, glacier, glue, greengrass, iam, importexport, inspector, iot, kafka, kendra, kinesis, kinesisanalytics, kms, lambda, lex, lightsail, logs, lookoutvision, m2, machinelearning, mediaconnect, mediastore, memorydb, mobiletargeting, oam, opsworks, opsworks-cm, organizations, outposts, polly, profile, qapps, qbusiness, ram, rds, redshift, redshift-serverless, resource-explorer-2, rolesanywhere, route53, route53domains, route53profiles, route53resolver, s3, sagemaker, sdb, servicecatalog, ses, shield, sns, sqs, ssm, states, storagegateway, swf, tiros, trustedadvisor, uxc, waf, waf-regional, wafv2, wisdom, workdocs, workmail, workspaces, xray

Control-plane actions (1990)

By access level: 1351 List, 638 Read, 1 Write.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
Certificate Manager1 of 421 List; 0 restricted, 0 conditionalacm:ListCertificates
AI Operations5 of 333 List, 2 Read; 0 restricted, 0 conditionalaiops:GetInvestigation, aiops:GetInvestigationGroup, aiops:ListInvestigationEvents, aiops:ListInvestigationGroups, aiops:ListInvestigations
Amplify3 of 412 List, 1 Read; 0 restricted, 0 conditionalamplify:GetWebACLForResource, amplify:ListDomainAssociations, amplify:ListResourcesForWebACL
API Gateway10 of 445 List, 5 Read; 1 restricted, 0 conditionalapigateway:GET, apigateway:GetPortal, apigateway:GetPortalProduct, apigateway:GetPortalProductSharingPolicy, apigateway:GetRoutingRule, apigateway:ListPortalProducts, apigateway:ListPortals, apigateway:ListProductPages, apigateway:ListProductRestEndpointPages, apigateway:ListRoutingRules
AppConfig19 of 5610 List, 9 Read; 0 restricted, 0 conditionalappconfig:GetAccountSettings, appconfig:GetApplication, appconfig:GetConfigurationProfile, appconfig:GetDeploymentStrategy, appconfig:GetEnvironment, appconfig:GetExperimentDefinition, appconfig:GetExtension, appconfig:GetExtensionAssociation, appconfig:ListApplications, appconfig:ListConfigurationProfiles, appconfig:ListDeploymentStrategies, appconfig:ListDeployments and 7 more
AppSync6 of 876 Read; 0 restricted, 0 conditionalappsync:GetApi, appsync:GetChannelNamespace, appsync:GetGraphqlApi, appsync:GetIntrospectionSchema, appsync:GetResourcePolicy, appsync:GetSourceApiAssociation
Athena17 of 8613 List, 4 Read; 0 restricted, 0 conditionalathena:List*
EC2 Auto Scaling22 of 6821 List, 1 Read; 0 restricted, 0 conditionalautoscaling:Describe*
Marketplace1 of 971 List; 0 restricted, 0 conditionalaws-marketplace:ViewSubscriptions
Backup34 of 12217 List, 17 Read; 0 restricted, 0 conditionalbackup:DescribeBackupJob, backup:DescribeBackupVault, backup:DescribeCopyJob, backup:DescribeFramework, backup:DescribeGlobalSettings, backup:DescribeProtectedResource, backup:DescribeRecoveryPoint, backup:DescribeRegionSettings, backup:DescribeReportJob, backup:DescribeReportPlan, backup:DescribeRestoreJob, backup:GetBackupPlan and 22 more
Batch1 of 461 List; 0 restricted, 0 conditionalbatch:ListJobs
Bedrock88 of 23239 List, 49 Read; 0 restricted, 0 conditionalbedrock:GetAccountDataRetention, bedrock:GetAdvancedPromptOptimizationJob, bedrock:GetAgent, bedrock:GetAgentActionGroup, bedrock:GetAgentAlias, bedrock:GetAgentCollaborator, bedrock:GetAgentKnowledgeBase, bedrock:GetAgentVersion, bedrock:GetAutomatedReasoningPolicy, bedrock:GetAutomatedReasoningPolicyAnnotations, bedrock:GetAutomatedReasoningPolicyBuildWorkflow, bedrock:GetAutomatedReasoningPolicyNextScenario and 76 more
Bedrock-Agentcore36 of 1972 List, 34 Read; 0 restricted, 0 conditionalbedrock-agentcore:GatewayGetWebACLForResource, bedrock-agentcore:GatewayListResourcesForWebACL, bedrock-agentcore:GetAgentRuntimeEndpoint, bedrock-agentcore:GetApiKeyCredentialProvider, bedrock-agentcore:GetBrowser, bedrock-agentcore:GetBrowserProfile, bedrock-agentcore:GetCapacityProvider, bedrock-agentcore:GetCodeInterpreter, bedrock-agentcore:GetConfigurationBundle, bedrock-agentcore:GetConfigurationBundleVersion, bedrock-agentcore:GetConsentPortal, bedrock-agentcore:GetEvaluator and 24 more
Bedrock Mantle15 of 388 List, 7 Read; 0 restricted, 0 conditionalbedrock-mantle:CallWithBearerToken, bedrock-mantle:GetAccountDataRetention, bedrock-mantle:GetCustomizedModel, bedrock-mantle:GetFineTuningJob, bedrock-mantle:GetModel, bedrock-mantle:GetProject, bedrock-mantle:GetReservation, bedrock-mantle:ListCustomizedModelAssociations, bedrock-mantle:ListCustomizedModels, bedrock-mantle:ListFiles, bedrock-mantle:ListFineTuningJobs, bedrock-mantle:ListModels and 3 more
Cloud Directory4 of 664 List; 0 restricted, 0 conditionalclouddirectory:ListAppliedSchemaArns, clouddirectory:ListDevelopmentSchemaArns, clouddirectory:ListDirectories, clouddirectory:ListPublishedSchemaArns
CloudFormation26 of 10423 List, 3 Read; 0 restricted, 0 conditionalcloudformation:DescribeStacks, cloudformation:GetTemplateSummary, cloudformation:List*
CloudFront42 of 17341 List, 1 Read; 0 restricted, 0 conditionalcloudfront:List*
CloudSearch3 of 322 List, 1 Read; 0 restricted, 0 conditionalcloudsearch:DescribeDomains, cloudsearch:List*
CloudTrail4 of 662 List, 2 Read; 0 restricted, 0 conditionalcloudtrail:DescribeTrails, cloudtrail:ListEventDataStores, cloudtrail:ListTrails, cloudtrail:LookupEvents
CloudWatch60 of 16024 List, 36 Read; 0 restricted, 0 conditionalcloudwatch:Get*, cloudwatch:List*
CodeArtifact2 of 512 List; 0 restricted, 0 conditionalcodeartifact:ListDomains, codeartifact:ListPackages
CodeBuild3 of 673 List; 0 restricted, 0 conditionalcodebuild:ListBuilds*, codebuild:ListProjects
CodeCommit8 of 918 List; 0 restricted, 0 conditionalcodecommit:List*
CodeDeploy25 of 4817 List, 8 Read; 0 restricted, 0 conditionalcodedeploy:BatchGetApplicationRevisions, codedeploy:BatchGetApplications, codedeploy:BatchGetDeploymentGroups, codedeploy:BatchGetDeploymentInstances, codedeploy:BatchGetDeploymentTargets, codedeploy:BatchGetDeployments, codedeploy:BatchGetOnPremisesInstances, codedeploy:Get*, codedeploy:List*
CodePipeline1 of 441 List; 0 restricted, 0 conditionalcodepipeline:ListPipelines
Cognito Identity3 of 212 List, 1 Read; 0 restricted, 0 conditionalcognito-identity:GetPrincipalTagAttributeMap, cognito-identity:ListIdentities, cognito-identity:ListIdentityPools
Cognito User Pools15 of 13915 List; 0 restricted, 0 conditionalcognito-idp:List*
Cognito Sync1 of 191 List; 0 restricted, 0 conditionalcognito-sync:ListDatasets
Comprehend34 of 8534 Read; 0 restricted, 0 conditionalcomprehend:Describe*, comprehend:List*
Config33 of 10218 List, 15 Read; 0 restricted, 0 conditionalconfig:Describe*, config:List*
Connect70 of 38866 List, 4 Read; 0 restricted, 0 conditionalconnect:List*
Cost Optimization Hub5 of 83 List, 2 Read; 0 restricted, 0 conditionalcost-optimization-hub:GetPreferences, cost-optimization-hub:GetRecommendation, cost-optimization-hub:ListEnrollmentStatuses, cost-optimization-hub:ListRecommendationSummaries, cost-optimization-hub:ListRecommendations
DataBrew2 of 442 Read; 0 restricted, 0 conditionaldatabrew:ListJobs, databrew:ListProjects
Data Pipeline3 of 212 List, 1 Read; 0 restricted, 0 conditionaldatapipeline:DescribePipelines, datapipeline:GetAccountLimits, datapipeline:ListPipelines
DynamoDBAccelerator7 of 305 List, 2 Read; 0 restricted, 0 conditionaldax:DescribeClusters, dax:DescribeDefaultParameters, dax:DescribeEvents, dax:DescribeParameterGroups, dax:DescribeParameters, dax:DescribeSubnetGroups, dax:ListTags
Device Farm24 of 7724 List; 0 restricted, 0 conditionaldevicefarm:List*
Direct Connect18 of 7318 Read; 0 restricted, 0 conditionaldirectconnect:Describe*
Application Discovery2 of 292 List; 0 restricted, 0 conditionaldiscovery:List*
Data Lifecycle Manager3 of 81 List, 2 Read; 0 restricted, 0 conditionaldlm:GetLifecyclePolicies, dlm:GetLifecyclePolicy, dlm:ListTagsForResource
DMS9 of 1259 Read; 0 restricted, 0 conditionaldms:List*
Directory Service1 of 911 List; 0 restricted, 0 conditionalds:DescribeDirectories
DynamoDB26 of 686 List, 20 Read; 0 restricted, 0 conditionaldynamodb:DescribeBackup, dynamodb:DescribeContinuousBackups, dynamodb:DescribeContributorInsights, dynamodb:DescribeEndpoints, dynamodb:DescribeExport, dynamodb:DescribeGlobalTable, dynamodb:DescribeGlobalTableSettings, dynamodb:DescribeImport, dynamodb:DescribeKinesisStreamingDestination, dynamodb:DescribeLimits, dynamodb:DescribeReservedCapacity, dynamodb:DescribeReservedCapacityOfferings and 14 more
EC2265 of 834222 List, 43 Read; 0 restricted, 0 conditionalec2:DescribeAccountAttributes, ec2:DescribeAccountVpcEncryptionControl, ec2:DescribeAddressTransfers, ec2:DescribeAddresses, ec2:DescribeAddressesAttribute, ec2:DescribeAggregateIdFormat, ec2:DescribeApplicationStatus, ec2:DescribeApplicationStatusCheckAssociations, ec2:DescribeApplicationStatusChecks, ec2:DescribeAvailabilityZones, ec2:DescribeAwsNetworkPerformanceMetricSubscriptions, ec2:DescribeBundleTasks and 200 more
Elastic Container Registry3 of 651 List, 2 Read; 0 restricted, 0 conditionalecr:DescribeRegistry, ecr:DescribeRepositories, ecr:ListImages
Elastic Container Service34 of 9215 List, 19 Read; 0 restricted, 0 conditionalecs:Describe*, ecs:List*
EKS29 of 7413 List, 16 Read; 0 restricted, 0 conditionaleks:DescribeAccessEntry, eks:DescribeAddon, eks:DescribeAddonConfiguration, eks:DescribeAddonVersions, eks:DescribeCapability, eks:DescribeCluster, eks:DescribeClusterVersions, eks:DescribeEksAnywhereSubscription, eks:DescribeFargateProfile, eks:DescribeIdentityProviderConfig, eks:DescribeInsight, eks:DescribeInsightsRefresh and 17 more
ElastiCache19 of 7719 List; 0 restricted, 0 conditionalelasticache:Describe*
Elastic Beanstalk4 of 504 List; 0 restricted, 0 conditionalelasticbeanstalk:DescribeApplicationVersions, elasticbeanstalk:DescribeApplications, elasticbeanstalk:DescribeEnvironments, elasticbeanstalk:ListAvailableSolutionStacks
EFS1 of 381 List; 0 restricted, 0 conditionalelasticfilesystem:DescribeFileSystems
ELB6 of 771 List, 5 Read; 0 restricted, 0 conditionalelasticloadbalancing:DescribeInstanceHealth, elasticloadbalancing:DescribeListeners, elasticloadbalancing:DescribeLoadBalancerAttributes, elasticloadbalancing:DescribeLoadBalancers, elasticloadbalancing:DescribeTargetGroups, elasticloadbalancing:DescribeTargetHealth
EMR16 of 8811 List, 5 Read; 0 restricted, 0 conditionalelasticmapreduce:List*
Elastic Transcoder4 of 174 List; 0 restricted, 0 conditionalelastictranscoder:List*
EMR Containers2 of 252 List; 0 restricted, 0 conditionalemr-containers:ListTagsForResource, emr-containers:ListVirtualClusters
EMR Serverless1 of 251 List; 0 restricted, 0 conditionalemr-serverless:ListApplications
OpenSearch Service3 of 1382 List, 1 Read; 0 restricted, 0 conditionales:DescribeElasticsearchDomain, es:DescribeElasticsearchDomains, es:ListDomainNames
EventBridge3 of 713 List; 0 restricted, 0 conditionalevents:ListRuleNamesByTarget, events:ListRules, events:ListTargetsByRule
Firehose3 of 102 List, 1 Read; 0 restricted, 0 conditionalfirehose:DescribeDeliveryStream, firehose:List*
FSx1 of 561 Read; 0 restricted, 0 conditionalfsx:DescribeFileSystems
GameLift Servers13 of 12112 List, 1 Read; 0 restricted, 0 conditionalgamelift:List*
Glacier9 of 336 List, 3 Read; 0 restricted, 0 conditionalglacier:DescribeJob, glacier:GetVaultAccessPolicy, glacier:GetVaultNotifications, glacier:List*
Glue12 of 3064 List, 8 Read; 0 restricted, 0 conditionalglue:GetJobRuns, glue:GetResourcePolicies, glue:GetSchema, glue:GetTable, glue:GetTableVersion, glue:GetTableVersions, glue:GetTables, glue:GetTags, glue:ListJobs, glue:ListSchemaVersions, glue:ListSchemas, glue:ListSessions
IoT Greengrass27 of 11225 List, 2 Read; 0 restricted, 0 conditionalgreengrass:List*
IAM40 of 19040 List; 0 restricted, 0 conditionaliam:GetAccountSummary, iam:GetLoginProfile, iam:List*
Import/Export1 of 61 List; 0 restricted, 0 conditionalimportexport:ListJobs
Inspector9 of 378 List, 1 Read; 0 restricted, 0 conditionalinspector:List*
IoT69 of 29367 List, 1 Read, 1 Write; 0 restricted, 0 conditionaliot:List*
MSK1 of 641 List; 0 restricted, 0 conditionalkafka:ListClusters
Kendra2 of 661 List, 1 Read; 0 restricted, 0 conditionalkendra:ListDataSources, kendra:ListTagsForResource
Kinesis1 of 421 List; 0 restricted, 0 conditionalkinesis:ListStreams
Kinesis Analytics2 of 341 List, 1 Read; 0 restricted, 0 conditionalkinesisanalytics:ListApplications, kinesisanalytics:ListTagsForResource
KMS2 of 582 List; 0 restricted, 0 conditionalkms:ListKeys, kms:ListResourceTags
Lambda29 of 12125 List, 4 Read; 0 restricted, 0 conditionallambda:GetPolicy, lambda:GetProvisionedConcurrencyConfig, lambda:GetResourcePolicy, lambda:List*
Lex9 of 1469 List; 0 restricted, 0 conditionallex:GetBotAliases, lex:GetBotChannelAssociations, lex:GetBotVersions, lex:GetBots, lex:GetIntentVersions, lex:GetIntents, lex:GetSlotTypeVersions, lex:GetSlotTypes, lex:GetUtterancesView
Lightsail9 of 1619 Read; 0 restricted, 0 conditionallightsail:GetBlueprints, lightsail:GetBundles, lightsail:GetInstancePortStates, lightsail:GetInstanceSnapshots, lightsail:GetInstances, lightsail:GetKeyPair, lightsail:GetRegions, lightsail:GetStaticIps, lightsail:IsVpcPeered
CloudWatch Logs24 of 13323 List, 1 Read; 0 restricted, 0 conditionallogs:Describe*, logs:GetTransformer, logs:ListEntitiesForLogGroup, logs:ListLogGroupsForEntity, logs:ListLogGroupsForQuery, logs:ListTagsForResource
Lookout Vision3 of 253 List; 0 restricted, 0 conditionallookoutvision:ListModelPackagingJobs, lookoutvision:ListModels, lookoutvision:ListProjects
Mainframe Modernization5 of 372 List, 3 Read; 0 restricted, 0 conditionalm2:GetApplication, m2:GetEnvironment, m2:ListApplications, m2:ListEnvironments, m2:ListTagsForResource
Machine Learning5 of 275 List; 0 restricted, 0 conditionalmachinelearning:Describe*
MediaConnect7 of 957 List; 0 restricted, 0 conditionalmediaconnect:ListEntitlements, mediaconnect:ListFlows, mediaconnect:ListOfferings, mediaconnect:ListReservations, mediaconnect:ListRouterInputs, mediaconnect:ListRouterNetworkInterfaces, mediaconnect:ListRouterOutputs
MediaStore3 of 261 List, 2 Read; 0 restricted, 0 conditionalmediastore:DescribeContainer, mediastore:GetLifecyclePolicy, mediastore:ListTagsForResource
MemoryDB2 of 472 Read; 0 restricted, 0 conditionalmemorydb:DescribeAcls, memorydb:DescribeUsers
Pinpoint4 of 1194 List; 0 restricted, 0 conditionalmobiletargeting:GetApplicationSettings, mobiletargeting:GetCampaigns, mobiletargeting:GetImportJobs, mobiletargeting:GetSegments
OAM3 of 153 Read; 0 restricted, 0 conditionaloam:ListAttachedLinks, oam:ListLinks, oam:ListSinks
OpsWorks22 of 7422 List; 0 restricted, 0 conditionalopsworks:Describe*
OpsworksCM5 of 195 List; 0 restricted, 0 conditionalopsworks-cm:Describe*
Organizations20 of 6320 List; 0 restricted, 0 conditionalorganizations:List*
Outposts5 of 442 List, 3 Read; 0 restricted, 0 conditionaloutposts:GetOutpost, outposts:GetOutpostInstanceTypes, outposts:ListOutposts, outposts:ListSites, outposts:ListTagsForResource
Polly4 of 133 List, 1 Read; 0 restricted, 0 conditionalpolly:Describe*, polly:List*
Profile2 of 1172 List; 0 restricted, 0 conditionalprofile:ListDomains, profile:ListIntegrations
Q Apps1 of 211 Read; 0 restricted, 0 conditionalqapps:ListTagsForResource
Q Business7 of 677 Read; 0 restricted, 0 conditionalqbusiness:GetApplication, qbusiness:GetDataSource, qbusiness:GetIndex, qbusiness:GetPlugin, qbusiness:GetPolicy, qbusiness:GetRetriever, qbusiness:GetWebExperience
Resource Access Manager1 of 391 Read; 0 restricted, 0 conditionalram:GetResourceShareAssociations
RDS49 of 17347 List, 2 Read; 0 restricted, 0 conditionalrds:Describe*
Redshift3 of 1673 List; 0 restricted, 0 conditionalredshift:DescribeClusters, redshift:DescribeEvents, redshift:ViewQueriesInConsole
Redshift Serverless8 of 693 List, 5 Read; 0 restricted, 0 conditionalredshift-serverless:GetCustomDomainAssociation, redshift-serverless:GetEndpointAccess, redshift-serverless:GetNamespace, redshift-serverless:GetRecoveryPoint, redshift-serverless:GetResourcePolicy, redshift-serverless:ListSnapshots, redshift-serverless:ListTagsForResource, redshift-serverless:ListWorkgroups
Resource Explorer6 of 373 List, 3 Read; 0 restricted, 0 conditionalresource-explorer-2:GetDefaultView, resource-explorer-2:GetIndex, resource-explorer-2:ListIndexes, resource-explorer-2:ListSupportedResourceTypes, resource-explorer-2:ListTagsForResource, resource-explorer-2:ListViews
IAM Roles Anywhere5 of 305 List; 0 restricted, 0 conditionalrolesanywhere:ListCrls, rolesanywhere:ListProfiles, rolesanywhere:ListSubjects, rolesanywhere:ListTagsForResource, rolesanywhere:ListTrustAnchors
Route 5337 of 7122 List, 15 Read; 0 restricted, 0 conditionalroute53:Get*, route53:List*
Route 53 Domains4 of 363 List, 1 Read; 0 restricted, 0 conditionalroute53domains:List*
Route 53 Profiles7 of 194 List, 3 Read; 0 restricted, 0 conditionalroute53profiles:GetProfile, route53profiles:GetProfileAssociation, route53profiles:GetProfileResourceAssociation, route53profiles:ListProfileAssociations, route53profiles:ListProfileResourceAssociations, route53profiles:ListProfiles, route53profiles:ListTagsForResource
Route 53 Resolver32 of 7016 List, 16 Read; 0 restricted, 0 conditionalroute53resolver:Get*, route53resolver:List*
S32 of 1552 List; 0 restricted, 0 conditionals3:ListAllMyBuckets, s3:ListMultiRegionAccessPoints
SageMaker175 of 44195 List, 80 Read; 0 restricted, 0 conditionalsagemaker:Describe*, sagemaker:List*
SimpleDB2 of 132 List; 0 restricted, 0 conditionalsdb:List*
Service Catalog24 of 11723 List, 1 Read; 0 restricted, 0 conditionalservicecatalog:List*
SES39 of 23131 List, 8 Read; 0 restricted, 0 conditionalses:DescribeActiveReceiptRuleSet, ses:List*, ses:ListDedicatedIpPools
Shield6 of 405 List, 1 Read; 0 restricted, 0 conditionalshield:List*
SNS11 of 407 List, 4 Read; 0 restricted, 0 conditionalsns:GetDataProtectionPolicy, sns:GetSubscriptionAttributes, sns:List*
SQS6 of 206 Read; 0 restricted, 0 conditionalsqs:GetQueueAttributes, sqs:GetQueueUrl, sqs:ListDeadLetterSourceQueues, sqs:ListMessageMoveTasks, sqs:ListQueueTags, sqs:ListQueues
Systems Manager2 of 1642 List; 0 restricted, 0 conditionalssm:ListAssociations, ssm:ListDocuments
Step Functions6 of 376 List; 0 restricted, 0 conditionalstates:ListActivities, states:ListExecutions, states:ListMapRuns, states:ListStateMachineAliases, states:ListStateMachineVersions, states:ListStateMachines
Storage Gateway5 of 974 List, 1 Read; 0 restricted, 0 conditionalstoragegateway:DescribeSMBSettings, storagegateway:ListGateways, storagegateway:ListLocalDisks, storagegateway:ListVolumeRecoveryPoints, storagegateway:ListVolumes
SWF4 of 324 List; 0 restricted, 0 conditionalswf:List*
Tiros3 of 53 Read; 0 restricted, 0 conditionaltiros:GetQueryAnswer, tiros:GetQueryExplanation, tiros:GetQueryExtensionAccounts
Trusted Advisor16 of 4216 Read; 0 restricted, 0 conditionaltrustedadvisor:Describe*
User Experience Customization (UXC)1 of 41 Read; 0 restricted, 0 conditionaluxc:ListServices
WAF16 of 7715 List, 1 Read; 0 restricted, 0 conditionalwaf:List*
WAF Regional17 of 8116 List, 1 Read; 0 restricted, 0 conditionalwaf-regional:List*
WAF V213 of 6412 List, 1 Read; 0 restricted, 0 conditionalwafv2:List*
Q in Connect1 of 971 List; 0 restricted, 0 conditionalwisdom:ListAssistants
WorkDocs2 of 612 List; 0 restricted, 0 conditionalworkdocs:DescribeAvailableDirectories, workdocs:DescribeInstances
WorkMail13 of 1265 List, 8 Read; 0 restricted, 0 conditionalworkmail:Describe*
WorkSpaces25 of 10313 List, 12 Read; 0 restricted, 0 conditionalworkspaces:Describe*
X-Ray6 of 321 List, 5 Read; 0 restricted, 0 conditionalxray:GetEncryptionConfig, xray:GetGroups, xray:GetSamplingRules, xray:GetSamplingStatisticSummaries, xray:GetTraceSegmentDestination, xray:ListResourcePolicies

The full action list is in actions.json.

Data-plane actions (21)

By access level: 9 List, 12 Read.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
Bedrock6 of 373 List, 3 Read; 0 restricted, 0 conditionalbedrock:GetAsyncInvoke, bedrock:GetDataAutomationStatus, bedrock:GetIngestedDocumentAcl, bedrock:ListInvocationSteps, bedrock:ListInvocations, bedrock:ListSessions
Bedrock-Agentcore3 of 623 Read; 0 restricted, 0 conditionalbedrock-agentcore:GetAgentCard, bedrock-agentcore:GetCodeInterpreterSession, bedrock-agentcore:GetPaymentSession
CloudWatch4 of 51 List, 3 Read; 0 restricted, 0 conditionalcloudwatch:Get*, cloudwatch:List*
Q Apps2 of 181 List, 1 Read; 0 restricted, 0 conditionalqapps:GetQApp, qapps:ListQApps
S31 of 251 List; 0 restricted, 0 conditionals3:ListBucket
SageMaker1 of 191 List; 0 restricted, 0 conditionalsagemaker:List*
SWF2 of 192 List; 0 restricted, 0 conditionalswf:List*
User Experience Customization (UXC)1 of 21 Read; 0 restricted, 0 conditionaluxc:GetAccountCustomizations
X-Ray1 of 121 Read; 0 restricted, 0 conditionalxray:GetSamplingTargets

The full action list is in actions.json.

Excluded and conditional actions

No patterns are excluded by NotAction or Deny statements.

Resource scope and attachment

Resource scope across granted actions: mixed.

Can be attached: Yes, to users, groups and roles.

Why this tier

  • Grants 1 write, tagging or permissions-management action, short of full control of any service.

Guidance

Practical scope

The GeneralViewOnlyAccessStatement statement applies to Resource "*". A second statement, APIGatewayAccess, allows apigateway:GET on a list of Amazon API Gateway resource ARNs. AWS says the user can view a list of AWS resources and basic metadata in the account across services, but cannot read resource content or metadata that goes beyond the quota and list information for resources.

Use cases

  • View a list of AWS resources and basic metadata in the account across services (the View-only user job function).

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 first statement applies to all resources across services, so it exposes resource lists and basic metadata account-wide, even though AWS says it does not read resource content.
  • In the IAM User Guide, ReadOnlyAccess points to ViewOnlyAccess as the option that doesn't grant access to read data in storage services.
  • You cannot change the permissions in an AWS managed policy. If AWS updates the policy, the update affects every user, group and role it is attached to.

Assignment guidance

You can attach this policy to your users, groups and roles. The reference page also links to guidance on creating a permission set using AWS managed policies in IAM Identity Center. AWS says you can attach job function policies to any IAM identity. It fits where a user only needs to see what exists in the account. Where a user must read stored data, AWS describes ReadOnlyAccess instead.

Same service

Same domain

Frequently asked questions

When should I attach ViewOnlyAccess?
Attach it for a user who needs to view a list of AWS resources and basic metadata in the account across services. It is the View-only user job function.
What does ViewOnlyAccess grant?
It grants List*, Describe*, Get*, View* and Lookup* access to resources for AWS services, plus apigateway:GET on a list of Amazon API Gateway resource ARNs.
What are the security risks of ViewOnlyAccess?
It applies to all resources across services, so the user can see what exists throughout the account. AWS says the user cannot read resource content or metadata beyond quota and list information. AWS managed policies don't grant least privilege permissions, and you must consider the security risk of granting principals more permissions than they need. AWS updates to the policy affect every identity it is attached to.

Policy JSON

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "GeneralViewOnlyAccessStatement",
      "Effect": "Allow",
      "Action": [
        "acm:ListCertificates",
        "aiops:GetInvestigation",
        "aiops:GetInvestigationGroup",
        "aiops:ListInvestigationEvents",
        "aiops:ListInvestigationGroups",
        "aiops:ListInvestigations",
        "amplify:GetWebACLForResource",
        "amplify:ListDomainAssociations",
        "amplify:ListResourcesForWebACL",
        "apigateway:GetPortal",
        "apigateway:GetPortalProduct",
        "apigateway:GetPortalProductSharingPolicy",
        "apigateway:GetRoutingRule",
        "apigateway:ListPortalProducts",
        "apigateway:ListPortals",
        "apigateway:ListProductPages",
        "apigateway:ListProductRestEndpointPages",
        "apigateway:ListRoutingRules",
        "appconfig:GetAccountSettings",
        "appconfig:GetApplication",
        "appconfig:GetConfigurationProfile",
        "appconfig:GetDeploymentStrategy",
        "appconfig:GetEnvironment",
        "appconfig:GetExperimentDefinition",
        "appconfig:GetExtension",
        "appconfig:GetExtensionAssociation",
        "appconfig:ListApplications",
        "appconfig:ListConfigurationProfiles",
        "appconfig:ListDeploymentStrategies",
        "appconfig:ListDeployments",
        "appconfig:ListEnvironments",
        "appconfig:ListExperimentDefinitions",
        "appconfig:ListExperimentRuns",
        "appconfig:ListExtensionAssociations",
        "appconfig:ListExtensions",
        "appconfig:ListHostedConfigurationVersions",
        "appconfig:ListTagsForResource",
        "appsync:GetApi",
        "appsync:GetChannelNamespace",
        "appsync:GetGraphqlApi",
        "appsync:GetIntrospectionSchema",
        "appsync:GetResourcePolicy",
        "appsync:GetSourceApiAssociation",
        "athena:List*",
        "autoscaling:Describe*",
        "aws-marketplace:ViewSubscriptions",
        "backup:DescribeBackupJob",
        "backup:DescribeBackupVault",
        "backup:DescribeCopyJob",
        "backup:DescribeFramework",
        "backup:DescribeGlobalSettings",
        "backup:DescribeProtectedResource",
        "backup:DescribeRecoveryPoint",
        "backup:DescribeRegionSettings",
        "backup:DescribeReportJob",
        "backup:DescribeReportPlan",
        "backup:DescribeRestoreJob",
        "backup:GetBackupPlan",
        "backup:GetBackupPlanFromJSON",
        "backup:GetBackupPlanFromTemplate",
        "backup:GetBackupSelection",
        "backup:GetSupportedResourceTypes",
        "backup:ListBackupJobs",
        "backup:ListBackupPlanTemplates",
        "backup:ListBackupPlanVersions",
        "backup:ListBackupPlans",
        "backup:ListBackupSelections",
        "backup:ListBackupVaults",
        "backup:ListCopyJobs",
        "backup:ListFrameworks",
        "backup:ListLegalHolds",
        "backup:ListProtectedResources",
        "backup:ListProtectedResourcesByBackupVault",
        "backup:ListRecoveryPointsByBackupVault",
        "backup:ListRecoveryPointsByLegalHold",
        "backup:ListRecoveryPointsByResource",
        "backup:ListReportJobs",
        "backup:ListReportPlans",
        "backup:ListRestoreJobs",
        "backup:ListTags",
        "batch:ListJobs",
        "bedrock-agentcore:GatewayGetWebACLForResource",
        "bedrock-agentcore:GatewayListResourcesForWebACL",
        "bedrock-agentcore:GetAgentCard",
        "bedrock-agentcore:GetAgentRuntimeEndpoint",
        "bedrock-agentcore:GetApiKeyCredentialProvider",
        "bedrock-agentcore:GetBrowser",
        "bedrock-agentcore:GetBrowserProfile",
        "bedrock-agentcore:GetCapacityProvider",
        "bedrock-agentcore:GetCodeInterpreter",
        "bedrock-agentcore:GetCodeInterpreterSession",
        "bedrock-agentcore:GetConfigurationBundle",
        "bedrock-agentcore:GetConfigurationBundleVersion",
        "bedrock-agentcore:GetConsentPortal",
        "bedrock-agentcore:GetEvaluator",
        "bedrock-agentcore:GetGateway",
        "bedrock-agentcore:GetGatewayRateLimit",
        "bedrock-agentcore:GetGatewayRule",
        "bedrock-agentcore:GetGatewayTarget",
        "bedrock-agentcore:GetHarnessEndpoint",
        "bedrock-agentcore:GetMemory",
        "bedrock-agentcore:GetOauth2CredentialProvider",
        "bedrock-agentcore:GetOnlineEvaluationConfig",
        "bedrock-agentcore:GetPaymentConnector",
        "bedrock-agentcore:GetPaymentCredentialProvider",
        "bedrock-agentcore:GetPaymentManager",
        "bedrock-agentcore:GetPaymentSession",
        "bedrock-agentcore:GetPolicy",
        "bedrock-agentcore:GetPolicyEngine",
        "bedrock-agentcore:GetPolicyEngineSummary",
        "bedrock-agentcore:GetPolicyGeneration",
        "bedrock-agentcore:GetPolicyGenerationSummary",
        "bedrock-agentcore:GetPolicySummary",
        "bedrock-agentcore:GetRegistry",
        "bedrock-agentcore:GetRegistryRecord",
        "bedrock-agentcore:GetResourcePolicy",
        "bedrock-agentcore:GetTokenVault",
        "bedrock-agentcore:ListApiKeyCredentialProviders",
        "bedrock-agentcore:ListOauth2CredentialProviders",
        "bedrock-agentcore:ListTagsForResource",
        "bedrock-mantle:CallWithBearerToken",
        "bedrock-mantle:GetAccountDataRetention",
        "bedrock-mantle:GetCustomizedModel",
        "bedrock-mantle:GetFineTuningJob",
        "bedrock-mantle:GetModel",
        "bedrock-mantle:GetProject",
        "bedrock-mantle:GetReservation",
        "bedrock-mantle:ListCustomizedModelAssociations",
        "bedrock-mantle:ListCustomizedModels",
        "bedrock-mantle:ListFiles",
        "bedrock-mantle:ListFineTuningJobs",
        "bedrock-mantle:ListModels",
        "bedrock-mantle:ListProjects",
        "bedrock-mantle:ListReservations",
        "bedrock-mantle:ListTagsForResource",
        "bedrock:GetAccountDataRetention",
        "bedrock:GetAdvancedPromptOptimizationJob",
        "bedrock:GetAgent",
        "bedrock:GetAgentActionGroup",
        "bedrock:GetAgentAlias",
        "bedrock:GetAgentCollaborator",
        "bedrock:GetAgentKnowledgeBase",
        "bedrock:GetAgentVersion",
        "bedrock:GetAsyncInvoke",
        "bedrock:GetAutomatedReasoningPolicy",
        "bedrock:GetAutomatedReasoningPolicyAnnotations",
        "bedrock:GetAutomatedReasoningPolicyBuildWorkflow",
        "bedrock:GetAutomatedReasoningPolicyNextScenario",
        "bedrock:GetBlueprint",
        "bedrock:GetBlueprintOptimizationStatus",
        "bedrock:GetBlueprintRecommendation",
        "bedrock:GetCustomModel",
        "bedrock:GetCustomModelDeployment",
        "bedrock:GetDataAutomationLibrary",
        "bedrock:GetDataAutomationLibraryIngestionJob",
        "bedrock:GetDataAutomationProject",
        "bedrock:GetDataAutomationStatus",
        "bedrock:GetDataSource",
        "bedrock:GetEvaluationJob",
        "bedrock:GetExecutionFlowSnapshot",
        "bedrock:GetFlow",
        "bedrock:GetFlowAlias",
        "bedrock:GetFlowExecution",
        "bedrock:GetFlowVersion",
        "bedrock:GetFoundationModel",
        "bedrock:GetFoundationModelAvailability",
        "bedrock:GetGuardrail",
        "bedrock:GetImportedModel",
        "bedrock:GetInferenceProfile",
        "bedrock:GetIngestedDocumentAcl",
        "bedrock:GetIngestionJob",
        "bedrock:GetKnowledgeBase",
        "bedrock:GetKnowledgeBaseDocuments",
        "bedrock:GetMarketplaceModelEndpoint",
        "bedrock:GetModelCopyJob",
        "bedrock:GetModelCustomizationJob",
        "bedrock:GetModelEvaluationJob",
        "bedrock:GetModelImportJob",
        "bedrock:GetModelInvocationJob",
        "bedrock:GetModelInvocationLoggingConfiguration",
        "bedrock:GetPromptRouter",
        "bedrock:GetProvisionedModelThroughput",
        "bedrock:GetResourcePolicy",
        "bedrock:GetUseCaseForModelAccess",
        "bedrock:ListAdvancedPromptOptimizationJobs",
        "bedrock:ListAgentActionGroups",
        "bedrock:ListAgentAliases",
        "bedrock:ListAgentCollaborators",
        "bedrock:ListAgentKnowledgeBases",
        "bedrock:ListAgentVersions",
        "bedrock:ListAgents",
        "bedrock:ListAsyncInvokes",
        "bedrock:ListAutomatedReasoningPolicies",
        "bedrock:ListAutomatedReasoningPolicyBuildWorkflows",
        "bedrock:ListBlueprints",
        "bedrock:ListCustomModelDeployments",
        "bedrock:ListCustomModels",
        "bedrock:ListDataAutomationLibraries",
        "bedrock:ListDataAutomationLibraryEntities",
        "bedrock:ListDataAutomationLibraryIngestionJobs",
        "bedrock:ListDataAutomationProjects",
        "bedrock:ListDataSources",
        "bedrock:ListEnforcedGuardrailsConfiguration",
        "bedrock:ListEvaluationJobs",
        "bedrock:ListFlowAliases",
        "bedrock:ListFlowExecutions",
        "bedrock:ListFlowVersions",
        "bedrock:ListFlows",
        "bedrock:ListFoundationModelAgreementOffers",
        "bedrock:ListFoundationModels",
        "bedrock:ListGuardrails",
        "bedrock:ListImportedModels",
        "bedrock:ListInferenceProfiles",
        "bedrock:ListIngestionJobs",
        "bedrock:ListInvocationSteps",
        "bedrock:ListInvocations",
        "bedrock:ListKnowledgeBaseDocuments",
        "bedrock:ListKnowledgeBases",
        "bedrock:ListMarketplaceModelEndpoints",
        "bedrock:ListModelCopyJobs",
        "bedrock:ListModelCustomizationJobs",
        "bedrock:ListModelImportJobs",
        "bedrock:ListModelInvocationJobs",
        "bedrock:ListPromptRouters",
        "bedrock:ListPrompts",
        "bedrock:ListProvisionedModelThroughputs",
        "bedrock:ListSessions",
        "bedrock:ListTagsForResource",
        "bedrock:ValidateFlowDefinition",
        "clouddirectory:ListAppliedSchemaArns",
        "clouddirectory:ListDevelopmentSchemaArns",
        "clouddirectory:ListDirectories",
        "clouddirectory:ListPublishedSchemaArns",
        "cloudformation:DescribeStacks",
        "cloudformation:GetTemplateSummary",
        "cloudformation:List*",
        "cloudfront:List*",
        "cloudsearch:DescribeDomains",
        "cloudsearch:List*",
        "cloudtrail:DescribeTrails",
        "cloudtrail:ListEventDataStores",
        "cloudtrail:ListTrails",
        "cloudtrail:LookupEvents",
        "cloudwatch:Get*",
        "cloudwatch:List*",
        "codeartifact:ListDomains",
        "codeartifact:ListPackages",
        "codebuild:ListBuilds*",
        "codebuild:ListProjects",
        "codecommit:List*",
        "codedeploy:BatchGetApplicationRevisions",
        "codedeploy:BatchGetApplications",
        "codedeploy:BatchGetDeploymentGroups",
        "codedeploy:BatchGetDeploymentInstances",
        "codedeploy:BatchGetDeploymentTargets",
        "codedeploy:BatchGetDeployments",
        "codedeploy:BatchGetOnPremisesInstances",
        "codedeploy:Get*",
        "codedeploy:List*",
        "codepipeline:ListPipelines",
        "codestar:List*",
        "cognito-identity:GetPrincipalTagAttributeMap",
        "cognito-identity:ListIdentities",
        "cognito-identity:ListIdentityPools",
        "cognito-idp:List*",
        "cognito-sync:ListDatasets",
        "comprehend:Describe*",
        "comprehend:List*",
        "config:Describe*",
        "config:List*",
        "connect:List*",
        "cost-optimization-hub:GetPreferences",
        "cost-optimization-hub:GetRecommendation",
        "cost-optimization-hub:ListEnrollmentStatuses",
        "cost-optimization-hub:ListRecommendationSummaries",
        "cost-optimization-hub:ListRecommendations",
        "databrew:ListJobs",
        "databrew:ListProjects",
        "datapipeline:DescribePipelines",
        "datapipeline:GetAccountLimits",
        "datapipeline:ListPipelines",
        "dax:DescribeClusters",
        "dax:DescribeDefaultParameters",
        "dax:DescribeEvents",
        "dax:DescribeParameterGroups",
        "dax:DescribeParameters",
        "dax:DescribeSubnetGroups",
        "dax:ListTags",
        "devicefarm:List*",
        "directconnect:Describe*",
        "discovery:List*",
        "dlm:GetLifecyclePolicies",
        "dlm:GetLifecyclePolicy",
        "dlm:ListTagsForResource",
        "dms:List*",
        "ds:DescribeDirectories",
        "dynamodb:DescribeBackup",
        "dynamodb:DescribeContinuousBackups",
        "dynamodb:DescribeContributorInsights",
        "dynamodb:DescribeEndpoints",
        "dynamodb:DescribeExport",
        "dynamodb:DescribeGlobalTable",
        "dynamodb:DescribeGlobalTableSettings",
        "dynamodb:DescribeImport",
        "dynamodb:DescribeKinesisStreamingDestination",
        "dynamodb:DescribeLimits",
        "dynamodb:DescribeReservedCapacity",
        "dynamodb:DescribeReservedCapacityOfferings",
        "dynamodb:DescribeStream",
        "dynamodb:DescribeTable",
        "dynamodb:DescribeTableReplicaAutoScaling",
        "dynamodb:DescribeTimeToLive",
        "dynamodb:GetAbacStatus",
        "dynamodb:GetResourcePolicy",
        "dynamodb:ListBackups",
        "dynamodb:ListContributorInsights",
        "dynamodb:ListExports",
        "dynamodb:ListGlobalTables",
        "dynamodb:ListImports",
        "dynamodb:ListStreams",
        "dynamodb:ListTables",
        "dynamodb:ListTagsOfResource",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAccountVpcEncryptionControl",
        "ec2:DescribeAddressTransfers",
        "ec2:DescribeAddresses",
        "ec2:DescribeAddressesAttribute",
        "ec2:DescribeAggregateIdFormat",
        "ec2:DescribeApplicationStatus",
        "ec2:DescribeApplicationStatusCheckAssociations",
        "ec2:DescribeApplicationStatusChecks",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeAwsNetworkPerformanceMetricSubscriptions",
        "ec2:DescribeBundleTasks",
        "ec2:DescribeByoipCidrs",
        "ec2:DescribeCapacityBlockExtensionHistory",
        "ec2:DescribeCapacityBlockExtensionOfferings",
        "ec2:DescribeCapacityBlockOfferings",
        "ec2:DescribeCapacityBlockStatus",
        "ec2:DescribeCapacityBlocks",
        "ec2:DescribeCapacityManagerDataExports",
        "ec2:DescribeCapacityReservationBillingRequests",
        "ec2:DescribeCapacityReservationCancellationQuotes",
        "ec2:DescribeCapacityReservationFleets",
        "ec2:DescribeCapacityReservationTopology",
        "ec2:DescribeCapacityReservations",
        "ec2:DescribeCarrierGateways",
        "ec2:DescribeClassicLinkInstances",
        "ec2:DescribeClientVpnAuthorizationRules",
        "ec2:DescribeClientVpnConnections",
        "ec2:DescribeClientVpnEndpoints",
        "ec2:DescribeClientVpnRoutes",
        "ec2:DescribeClientVpnTargetNetworks",
        "ec2:DescribeCoipPools",
        "ec2:DescribeConversionTasks",
        "ec2:DescribeCustomerGateways",
        "ec2:DescribeDeclarativePoliciesReports",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeEgressOnlyInternetGateways",
        "ec2:DescribeElasticGpus",
        "ec2:DescribeExportImageTasks",
        "ec2:DescribeExportTasks",
        "ec2:DescribeFastLaunchImages",
        "ec2:DescribeFastSnapshotRestores",
        "ec2:DescribeFleetHistory",
        "ec2:DescribeFleetInstances",
        "ec2:DescribeFleets",
        "ec2:DescribeFlowLogs",
        "ec2:DescribeFpgaImageAttribute",
        "ec2:DescribeFpgaImages",
        "ec2:DescribeHost*",
        "ec2:DescribeIamInstanceProfileAssociations",
        "ec2:DescribeIdFormat",
        "ec2:DescribeIdentityIdFormat",
        "ec2:DescribeImage*",
        "ec2:DescribeImport*",
        "ec2:DescribeInstance*",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeIpamByoasn",
        "ec2:DescribeIpamExternalResourceVerificationTokens",
        "ec2:DescribeIpamInternetRegistryAssociations",
        "ec2:DescribeIpamPolicies",
        "ec2:DescribeIpamPoolAllocations",
        "ec2:DescribeIpamPools",
        "ec2:DescribeIpamPrefixListResolverTargets",
        "ec2:DescribeIpamPrefixListResolvers",
        "ec2:DescribeIpamResourceDiscoveries",
        "ec2:DescribeIpamResourceDiscoveryAssociations",
        "ec2:DescribeIpamScopes",
        "ec2:DescribeIpams",
        "ec2:DescribeIpv6Pools",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeLaunchTemplateVersions",
        "ec2:DescribeLaunchTemplates",
        "ec2:DescribeLocalGatewayRouteTablePermissions",
        "ec2:DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations",
        "ec2:DescribeLocalGatewayRouteTableVpcAssociations",
        "ec2:DescribeLocalGatewayRouteTables",
        "ec2:DescribeLocalGatewayVirtualInterfaceGroups",
        "ec2:DescribeLocalGatewayVirtualInterfaces",
        "ec2:DescribeLocalGateways",
        "ec2:DescribeLockedSnapshots",
        "ec2:DescribeMacHosts",
        "ec2:DescribeMacModificationTasks",
        "ec2:DescribeManagedPrefixLists",
        "ec2:DescribeMovingAddresses",
        "ec2:DescribeNatGateways",
        "ec2:DescribeNetwork*",
        "ec2:DescribeOutpostLags",
        "ec2:DescribePlacementGroups",
        "ec2:DescribePrefixLists",
        "ec2:DescribePrincipalIdFormat",
        "ec2:DescribePublicIpv4Pools",
        "ec2:DescribeRegions",
        "ec2:DescribeReplaceRootVolumeTasks",
        "ec2:DescribeReserved*",
        "ec2:DescribeRouteServerEndpoints",
        "ec2:DescribeRouteServerPeers",
        "ec2:DescribeRouteServers",
        "ec2:DescribeRouteTables",
        "ec2:DescribeScheduledInstanceAvailability",
        "ec2:DescribeScheduledInstances",
        "ec2:DescribeSecondaryInterfaces",
        "ec2:DescribeSecondaryNetworks",
        "ec2:DescribeSecondarySubnets",
        "ec2:DescribeSecurityGroupReferences",
        "ec2:DescribeSecurityGroupRules",
        "ec2:DescribeSecurityGroupVpcAssociations",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeServiceLinkVirtualInterfaces",
        "ec2:DescribeSnapshot*",
        "ec2:DescribeSpot*",
        "ec2:DescribeStaleSecurityGroups",
        "ec2:DescribeStoreImageTasks",
        "ec2:DescribeSubnets",
        "ec2:DescribeTags",
        "ec2:DescribeTrafficMirrorFilterRules",
        "ec2:DescribeTrafficMirrorFilters",
        "ec2:DescribeTrafficMirrorSessions",
        "ec2:DescribeTrafficMirrorTargets",
        "ec2:DescribeTransitGatewayAttachments",
        "ec2:DescribeTransitGatewayConnectPeers",
        "ec2:DescribeTransitGatewayConnects",
        "ec2:DescribeTransitGatewayMeteringPolicies",
        "ec2:DescribeTransitGatewayMulticastDomains",
        "ec2:DescribeTransitGatewayPeeringAttachments",
        "ec2:DescribeTransitGatewayPolicyTables",
        "ec2:DescribeTransitGatewayRouteTableAnnouncements",
        "ec2:DescribeTransitGatewayRouteTables",
        "ec2:DescribeTransitGatewayVpcAttachments",
        "ec2:DescribeTransitGateways",
        "ec2:DescribeTrunkInterfaceAssociations",
        "ec2:DescribeVerifiedAccessEndpoints",
        "ec2:DescribeVerifiedAccessGroups",
        "ec2:DescribeVerifiedAccessInstanceLoggingConfigurations",
        "ec2:DescribeVerifiedAccessInstanceWebAclAssociations",
        "ec2:DescribeVerifiedAccessInstances",
        "ec2:DescribeVerifiedAccessTrustProviders",
        "ec2:DescribeVolume*",
        "ec2:DescribeVpc*",
        "ec2:DescribeVpnConcentrators",
        "ec2:DescribeVpnConnections",
        "ec2:DescribeVpnGateways",
        "ec2:GetActiveVpnTunnelStatus",
        "ec2:GetAllowedImagesSettings",
        "ec2:GetAssociatedEnclaveCertificateIamRoles",
        "ec2:GetAssociatedIpv6PoolCidrs",
        "ec2:GetCapacityManagerAttributes",
        "ec2:GetCapacityManagerMetricDimensions",
        "ec2:GetCapacityManagerMonitoredTagKeys",
        "ec2:GetCapacityReservationUsage",
        "ec2:GetCoipPoolUsage",
        "ec2:GetDeclarativePoliciesReportSummary",
        "ec2:GetDefaultCreditSpecification",
        "ec2:GetEbsDefaultKmsKeyId",
        "ec2:GetEbsEncryptionByDefault",
        "ec2:GetEnabledIpamPolicy",
        "ec2:GetFlowLogsIntegrationTemplate",
        "ec2:GetGroupsForCapacityReservation",
        "ec2:GetHostReservationPurchasePreview",
        "ec2:GetImageAncestry",
        "ec2:GetImageBlockPublicAccessState",
        "ec2:GetInstanceMetadataDefaults",
        "ec2:GetInstanceTypesFromInstanceRequirements",
        "ec2:GetIpamAddressHistory",
        "ec2:GetIpamDiscoveredAccounts",
        "ec2:GetIpamDiscoveredResourceCidrs",
        "ec2:GetIpamDiscoveredRoutes",
        "ec2:GetIpamInternetRegistryAssociationAsns",
        "ec2:GetIpamInternetRegistryAssociationCidrs",
        "ec2:GetIpamPolicyAllocationRules",
        "ec2:GetIpamPolicyOrganizationTargets",
        "ec2:GetIpamPoolCidrs",
        "ec2:GetIpamPrefixListResolverRules",
        "ec2:GetIpamPrefixListResolverVersions",
        "ec2:GetIpamResourceCidrs",
        "ec2:GetIpamRouteOriginAuthorizations",
        "ec2:GetIpamRouteProtectionFindings",
        "ec2:GetIpamRoutingPolicyRegistrations",
        "ec2:GetManagedPrefixListAssociations",
        "ec2:GetManagedPrefixListEntries",
        "ec2:GetManagedResourceVisibility",
        "ec2:GetNetworkInsightsAccessScopeAnalysisFindings",
        "ec2:GetNetworkInsightsAccessScopeContent",
        "ec2:GetReservedInstancesExchangeQuote",
        "ec2:GetResourcePolicy",
        "ec2:GetRouteServerAssociations",
        "ec2:GetRouteServerPropagations",
        "ec2:GetSecurityGroupsForVpc",
        "ec2:GetSerialConsoleAccessStatus",
        "ec2:GetSnapshotBlockPublicAccessState",
        "ec2:GetSpotPlacementScores",
        "ec2:GetSubnetCidrReservations",
        "ec2:GetTransitGatewayAttachmentPropagations",
        "ec2:GetTransitGatewayMeteringPolicyEntries",
        "ec2:GetTransitGatewayMulticastDomainAssociations",
        "ec2:GetTransitGatewayPolicyTableAssociations",
        "ec2:GetTransitGatewayPolicyTableEntries",
        "ec2:GetTransitGatewayPrefixListReferences",
        "ec2:GetTransitGatewayRouteTableAssociations",
        "ec2:GetTransitGatewayRouteTablePropagations",
        "ec2:GetVerifiedAccessEndpointPolicy",
        "ec2:GetVerifiedAccessEndpointTargets",
        "ec2:GetVerifiedAccessGroupPolicy",
        "ec2:GetVerifiedAccessInstanceWebAcl",
        "ec2:GetVpcResourcesBlockingEncryptionEnforcement",
        "ec2:GetVpnConnectionDeviceTypes",
        "ec2:GetVpnTunnelReplacementStatus",
        "ec2:ListImagesInRecycleBin",
        "ec2:ListSnapshotsInRecycleBin",
        "ec2:ListVolumesInRecycleBin",
        "ec2:SearchLocalGatewayRoutes",
        "ec2:SearchTransitGatewayMulticastGroups",
        "ec2:SearchTransitGatewayRoutes",
        "ecr:DescribeRegistry",
        "ecr:DescribeRepositories",
        "ecr:ListImages",
        "ecs:Describe*",
        "ecs:List*",
        "eks:DescribeAccessEntry",
        "eks:DescribeAddon",
        "eks:DescribeAddonConfiguration",
        "eks:DescribeAddonVersions",
        "eks:DescribeCapability",
        "eks:DescribeCluster",
        "eks:DescribeClusterVersions",
        "eks:DescribeEksAnywhereSubscription",
        "eks:DescribeFargateProfile",
        "eks:DescribeIdentityProviderConfig",
        "eks:DescribeInsight",
        "eks:DescribeInsightsRefresh",
        "eks:DescribeNodegroup",
        "eks:DescribePodIdentityAssociation",
        "eks:DescribeUpdate",
        "eks:ListAccessEntries",
        "eks:ListAccessPolicies",
        "eks:ListAddons",
        "eks:ListAssociatedAccessPolicies",
        "eks:ListCapabilities",
        "eks:ListClusters",
        "eks:ListEksAnywhereSubscriptions",
        "eks:ListFargateProfiles",
        "eks:ListIdentityProviderConfigs",
        "eks:ListInsights",
        "eks:ListNodegroups",
        "eks:ListPodIdentityAssociations",
        "eks:ListTagsForResource",
        "eks:ListUpdates",
        "elasticache:Describe*",
        "elasticbeanstalk:DescribeApplicationVersions",
        "elasticbeanstalk:DescribeApplications",
        "elasticbeanstalk:DescribeEnvironments",
        "elasticbeanstalk:ListAvailableSolutionStacks",
        "elasticfilesystem:DescribeFileSystems",
        "elasticloadbalancing:DescribeInstanceHealth",
        "elasticloadbalancing:DescribeListeners",
        "elasticloadbalancing:DescribeLoadBalancerAttributes",
        "elasticloadbalancing:DescribeLoadBalancers",
        "elasticloadbalancing:DescribeTargetGroups",
        "elasticloadbalancing:DescribeTargetHealth",
        "elasticmapreduce:List*",
        "elastictranscoder:List*",
        "emr-containers:ListTagsForResource",
        "emr-containers:ListVirtualClusters",
        "emr-serverless:ListApplications",
        "es:DescribeElasticsearchDomain",
        "es:DescribeElasticsearchDomains",
        "es:ListDomainNames",
        "events:ListRuleNamesByTarget",
        "events:ListRules",
        "events:ListTargetsByRule",
        "firehose:DescribeDeliveryStream",
        "firehose:List*",
        "fsx:DescribeFileSystems",
        "gamelift:List*",
        "glacier:DescribeJob",
        "glacier:GetVaultAccessPolicy",
        "glacier:GetVaultNotifications",
        "glacier:List*",
        "glue:GetJobRuns",
        "glue:GetResourcePolicies",
        "glue:GetSchema",
        "glue:GetTable",
        "glue:GetTableVersion",
        "glue:GetTableVersions",
        "glue:GetTables",
        "glue:GetTags",
        "glue:ListJobs",
        "glue:ListSchemaVersions",
        "glue:ListSchemas",
        "glue:ListSessions",
        "greengrass:List*",
        "iam:GetAccountSummary",
        "iam:GetLoginProfile",
        "iam:List*",
        "importexport:ListJobs",
        "inspector:List*",
        "iot:List*",
        "kafka:ListClusters",
        "kendra:ListDataSources",
        "kendra:ListTagsForResource",
        "kinesis:ListStreams",
        "kinesisanalytics:ListApplications",
        "kinesisanalytics:ListTagsForResource",
        "kms:ListKeys",
        "kms:ListResourceTags",
        "lambda:GetPolicy",
        "lambda:GetProvisionedConcurrencyConfig",
        "lambda:GetResourcePolicy",
        "lambda:List*",
        "lex:GetBotAliases",
        "lex:GetBotChannelAssociations",
        "lex:GetBotVersions",
        "lex:GetBots",
        "lex:GetIntentVersions",
        "lex:GetIntents",
        "lex:GetSlotTypeVersions",
        "lex:GetSlotTypes",
        "lex:GetUtterancesView",
        "lightsail:GetBlueprints",
        "lightsail:GetBundles",
        "lightsail:GetInstancePortStates",
        "lightsail:GetInstanceSnapshots",
        "lightsail:GetInstances",
        "lightsail:GetKeyPair",
        "lightsail:GetRegions",
        "lightsail:GetStaticIps",
        "lightsail:IsVpcPeered",
        "logs:Describe*",
        "logs:GetTransformer",
        "logs:ListEntitiesForLogGroup",
        "logs:ListLogGroupsForEntity",
        "logs:ListLogGroupsForQuery",
        "logs:ListTagsForResource",
        "lookoutvision:ListModelPackagingJobs",
        "lookoutvision:ListModels",
        "lookoutvision:ListProjects",
        "m2:GetApplication",
        "m2:GetEnvironment",
        "m2:ListApplications",
        "m2:ListEnvironments",
        "m2:ListTagsForResource",
        "machinelearning:Describe*",
        "mediaconnect:ListEntitlements",
        "mediaconnect:ListFlows",
        "mediaconnect:ListOfferings",
        "mediaconnect:ListReservations",
        "mediaconnect:ListRouterInputs",
        "mediaconnect:ListRouterNetworkInterfaces",
        "mediaconnect:ListRouterOutputs",
        "mediastore:DescribeContainer",
        "mediastore:GetLifecyclePolicy",
        "mediastore:ListTagsForResource",
        "memorydb:DescribeAcls",
        "memorydb:DescribeUsers",
        "mobiletargeting:GetApplicationSettings",
        "mobiletargeting:GetCampaigns",
        "mobiletargeting:GetImportJobs",
        "mobiletargeting:GetSegments",
        "oam:ListAttachedLinks",
        "oam:ListLinks",
        "oam:ListSinks",
        "opsworks-cm:Describe*",
        "opsworks:Describe*",
        "organizations:List*",
        "outposts:GetOutpost",
        "outposts:GetOutpostInstanceTypes",
        "outposts:ListOutposts",
        "outposts:ListSites",
        "outposts:ListTagsForResource",
        "polly:Describe*",
        "polly:List*",
        "profile:ListDomains",
        "profile:ListIntegrations",
        "qapps:GetQApp",
        "qapps:ListQApps",
        "qapps:ListTagsForResource",
        "qbusiness:GetApplication",
        "qbusiness:GetDataSource",
        "qbusiness:GetIndex",
        "qbusiness:GetPlugin",
        "qbusiness:GetPolicy",
        "qbusiness:GetRetriever",
        "qbusiness:GetWebExperience",
        "ram:GetResourceShareAssociations",
        "rds:Describe*",
        "redshift-serverless:GetCustomDomainAssociation",
        "redshift-serverless:GetEndpointAccess",
        "redshift-serverless:GetNamespace",
        "redshift-serverless:GetRecoveryPoint",
        "redshift-serverless:GetResourcePolicy",
        "redshift-serverless:ListSnapshots",
        "redshift-serverless:ListTagsForResource",
        "redshift-serverless:ListWorkgroups",
        "redshift:DescribeClusters",
        "redshift:DescribeEvents",
        "redshift:ViewQueriesInConsole",
        "resource-explorer-2:GetDefaultView",
        "resource-explorer-2:GetIndex",
        "resource-explorer-2:ListIndexes",
        "resource-explorer-2:ListSupportedResourceTypes",
        "resource-explorer-2:ListTagsForResource",
        "resource-explorer-2:ListViews",
        "rolesanywhere:ListCrls",
        "rolesanywhere:ListProfiles",
        "rolesanywhere:ListSubjects",
        "rolesanywhere:ListTagsForResource",
        "rolesanywhere:ListTrustAnchors",
        "route53:Get*",
        "route53:List*",
        "route53domains:List*",
        "route53profiles:GetProfile",
        "route53profiles:GetProfileAssociation",
        "route53profiles:GetProfileResourceAssociation",
        "route53profiles:ListProfileAssociations",
        "route53profiles:ListProfileResourceAssociations",
        "route53profiles:ListProfiles",
        "route53profiles:ListTagsForResource",
        "route53resolver:Get*",
        "route53resolver:List*",
        "s3:ListAllMyBuckets",
        "s3:ListBucket",
        "s3:ListMultiRegionAccessPoints",
        "sagemaker:Describe*",
        "sagemaker:List*",
        "sdb:List*",
        "servicecatalog:List*",
        "ses:DescribeActiveReceiptRuleSet",
        "ses:List*",
        "ses:ListDedicatedIpPools",
        "shield:List*",
        "sns:GetDataProtectionPolicy",
        "sns:GetSubscriptionAttributes",
        "sns:List*",
        "sqs:GetQueueAttributes",
        "sqs:GetQueueUrl",
        "sqs:ListDeadLetterSourceQueues",
        "sqs:ListMessageMoveTasks",
        "sqs:ListQueueTags",
        "sqs:ListQueues",
        "ssm:ListAssociations",
        "ssm:ListDocuments",
        "states:ListActivities",
        "states:ListExecutions",
        "states:ListMapRuns",
        "states:ListStateMachineAliases",
        "states:ListStateMachineVersions",
        "states:ListStateMachines",
        "storagegateway:DescribeSMBSettings",
        "storagegateway:ListGateways",
        "storagegateway:ListLocalDisks",
        "storagegateway:ListVolumeRecoveryPoints",
        "storagegateway:ListVolumes",
        "swf:List*",
        "tiros:GetQueryAnswer",
        "tiros:GetQueryExplanation",
        "tiros:GetQueryExtensionAccounts",
        "trustedadvisor:Describe*",
        "uxc:GetAccountCustomizations",
        "uxc:ListServices",
        "waf-regional:List*",
        "waf:List*",
        "wafv2:List*",
        "wisdom:ListAssistants",
        "workdocs:DescribeAvailableDirectories",
        "workdocs:DescribeInstances",
        "workmail:Describe*",
        "workspaces:Describe*",
        "xray:GetEncryptionConfig",
        "xray:GetGroups",
        "xray:GetSamplingRules",
        "xray:GetSamplingStatisticSummaries",
        "xray:GetSamplingTargets",
        "xray:GetTraceSegmentDestination",
        "xray:ListResourcePolicies"
      ],
      "Resource": "*"
    },
    {
      "Sid": "APIGatewayAccess",
      "Effect": "Allow",
      "Action": [
        "apigateway:GET"
      ],
      "Resource": [
        "arn:aws:apigateway:*::/apis",
        "arn:aws:apigateway:*::/apis/*/authorizers/*",
        "arn:aws:apigateway:*::/apis/*/authorizers",
        "arn:aws:apigateway:*::/apis/*/cors",
        "arn:aws:apigateway:*::/apis/*/deployments/*",
        "arn:aws:apigateway:*::/apis/*/deployments",
        "arn:aws:apigateway:*::/apis/*/exports/*",
        "arn:aws:apigateway:*::/apis/*/integrations/*",
        "arn:aws:apigateway:*::/apis/*/integrations",
        "arn:aws:apigateway:*::/apis/*/models/*",
        "arn:aws:apigateway:*::/apis/*/models",
        "arn:aws:apigateway:*::/apis/*/routes/*",
        "arn:aws:apigateway:*::/apis/*/routes",
        "arn:aws:apigateway:*::/apis/*/stages",
        "arn:aws:apigateway:*::/apis/*/stages/*",
        "arn:aws:apigateway:*::/clientcertificates",
        "arn:aws:apigateway:*::/clientcertificates/*",
        "arn:aws:apigateway:*::/domainnames",
        "arn:aws:apigateway:*::/domainnames/*/apimappings",
        "arn:aws:apigateway:*::/restapis",
        "arn:aws:apigateway:*::/restapis/*/authorizers/*",
        "arn:aws:apigateway:*::/restapis/*/authorizers",
        "arn:aws:apigateway:*::/restapis/*/deployments/*",
        "arn:aws:apigateway:*::/restapis/*/deployments",
        "arn:aws:apigateway:*::/restapis/*/documentation/parts/*",
        "arn:aws:apigateway:*::/restapis/*/documentation/parts",
        "arn:aws:apigateway:*::/restapis/*/documentation/versions/*",
        "arn:aws:apigateway:*::/restapis/*/documentation/versions",
        "arn:aws:apigateway:*::/restapis/*/gatewayresponses/*",
        "arn:aws:apigateway:*::/restapis/*/gatewayresponses",
        "arn:aws:apigateway:*::/restapis/*/models/*",
        "arn:aws:apigateway:*::/restapis/*/models",
        "arn:aws:apigateway:*::/restapis/*/requestvalidators",
        "arn:aws:apigateway:*::/restapis/*/requestvalidators/*",
        "arn:aws:apigateway:*::/restapis/*/resources/*",
        "arn:aws:apigateway:*::/restapis/*/resources",
        "arn:aws:apigateway:*::/restapis/*/stages",
        "arn:aws:apigateway:*::/restapis/*/stages/*",
        "arn:aws:apigateway:*::/tags/*",
        "arn:aws:apigateway:*::/vpclinks"
      ]
    }
  ]
}

Version history

Current version v48, edited by AWS on 2026-10-30. 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/job-function/ViewOnlyAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/job-function/ViewOnlyAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/job-function/ViewOnlyAccess

CloudFormation

Resources:
  ExampleRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument: {}  # replace with your trust policy
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/job-function/ViewOnlyAccess

Terraform

resource "aws_iam_role_policy_attachment" "job_function_viewonlyaccess" {
  role       = aws_iam_role.example.name
  policy_arn = "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess"
}

CDK (TypeScript)

role.addManagedPolicy(
  iam.ManagedPolicy.fromAwsManagedPolicyName("job-function/ViewOnlyAccess"),
);

Sources