AWSWAFReadOnlyAccess
Summary
Provides read only access to AWS WAF actions.
Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.
Identity
- ARN
arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess- Default version
- v13
- Created
- Last edited
- Services
- amplify, apprunner, appsync, bedrock-agentcore, cognito-idp, ec2, elasticloadbalancing, waf, waf-regional, wafv2
Control-plane actions (119)
By access level: 52 List, 67 Read.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| Amplify | 2 of 41 | 1 List, 1 Read; 1 restricted, 0 conditional | amplify:GetWebACLForResource, amplify:ListResourcesForWebACL |
| App Runner | 3 of 42 | 2 List, 1 Read; 1 restricted, 0 conditional | apprunner:DescribeWebAclForService, apprunner:ListAssociatedServicesForWebAcl, apprunner:ListServices |
| AppSync | 2 of 87 | 1 List, 1 Read; 1 restricted, 0 conditional | appsync:GetWebACLForResource, appsync:ListResourcesForWebACL |
| Bedrock-Agentcore | 2 of 197 | 1 List, 1 Read; 1 restricted, 0 conditional | bedrock-agentcore:GatewayGetWebACLForResource, bedrock-agentcore:GatewayListResourcesForWebACL |
| Cognito User Pools | 2 of 139 | 1 List, 1 Read; 1 restricted, 0 conditional | cognito-idp:GetWebACLForResource, cognito-idp:ListResourcesForWebACL |
| EC2 | 2 of 834 | 2 List; 1 restricted, 0 conditional | ec2:DescribeVerifiedAccessInstanceWebAclAssociations, ec2:GetVerifiedAccessInstanceWebAcl |
| ELB | 2 of 77 | 1 List, 1 Read; 1 restricted, 0 conditional | elasticloadbalancing:DescribeWebACLAssociation, elasticloadbalancing:GetLoadBalancerWebACL |
| WAF | 34 of 77 | 15 List, 19 Read; 34 restricted, 0 conditional | waf:Get*, waf:List* |
| WAF Regional | 36 of 81 | 16 List, 20 Read; 36 restricted, 0 conditional | waf-regional:Get*, waf-regional:GetWebACLForResource, waf-regional:List* |
| WAF V2 | 34 of 64 | 12 List, 22 Read; 34 restricted, 0 conditional | wafv2:CheckCapacity, wafv2:Describe*, wafv2:Get*, wafv2:List* |
Amplify: 2 actions
- amplify:GetWebACLForResource (Read)
- amplify:ListResourcesForWebACL (List)
App Runner: 3 actions
- apprunner:DescribeWebAclForService (Read)
- apprunner:ListAssociatedServicesForWebAcl (List)
- apprunner:ListServices (List)
AppSync: 2 actions
- appsync:GetWebACLForResource (Read)
- appsync:ListResourcesForWebACL (List)
Bedrock-Agentcore: 2 actions
- bedrock-agentcore:GatewayGetWebACLForResource (Read)
- bedrock-agentcore:GatewayListResourcesForWebACL (List)
Cognito User Pools: 2 actions
- cognito-idp:GetWebACLForResource (Read)
- cognito-idp:ListResourcesForWebACL (List)
EC2: 2 actions
- ec2:DescribeVerifiedAccessInstanceWebAclAssociations (List)
- ec2:GetVerifiedAccessInstanceWebAcl (List)
ELB: 2 actions
- elasticloadbalancing:DescribeWebACLAssociation (List)
- elasticloadbalancing:GetLoadBalancerWebACL (Read)
WAF: 34 actions
- waf:GetByteMatchSet (Read)
- waf:GetChangeToken (Read)
- waf:GetChangeTokenStatus (Read)
- waf:GetGeoMatchSet (Read)
- waf:GetIPSet (Read)
- waf:GetLoggingConfiguration (Read)
- waf:GetPermissionPolicy (Read)
- waf:GetRateBasedRule (Read)
- waf:GetRateBasedRuleManagedKeys (Read)
- waf:GetRegexMatchSet (Read)
- waf:GetRegexPatternSet (Read)
- waf:GetRule (Read)
- waf:GetRuleGroup (Read)
- waf:GetSampledRequests (Read)
- waf:GetSizeConstraintSet (Read)
- waf:GetSqlInjectionMatchSet (Read)
- waf:GetWebACL (Read)
- waf:GetXssMatchSet (Read)
- waf:ListActivatedRulesInRuleGroup (List)
- waf:ListByteMatchSets (List)
- waf:ListGeoMatchSets (List)
- waf:ListIPSets (List)
- waf:ListLoggingConfigurations (List)
- waf:ListRateBasedRules (List)
- waf:ListRegexMatchSets (List)
- waf:ListRegexPatternSets (List)
- waf:ListRuleGroups (List)
- waf:ListRules (List)
- waf:ListSizeConstraintSets (List)
- waf:ListSqlInjectionMatchSets (List)
- waf:ListSubscribedRuleGroups (List)
- waf:ListTagsForResource (Read)
- waf:ListWebACLs (List)
- waf:ListXssMatchSets (List)
WAF Regional: 36 actions
- waf-regional:GetByteMatchSet (Read)
- waf-regional:GetChangeToken (Read)
- waf-regional:GetChangeTokenStatus (Read)
- waf-regional:GetGeoMatchSet (Read)
- waf-regional:GetIPSet (Read)
- waf-regional:GetLoggingConfiguration (Read)
- waf-regional:GetPermissionPolicy (Read)
- waf-regional:GetRateBasedRule (Read)
- waf-regional:GetRateBasedRuleManagedKeys (Read)
- waf-regional:GetRegexMatchSet (Read)
- waf-regional:GetRegexPatternSet (Read)
- waf-regional:GetRule (Read)
- waf-regional:GetRuleGroup (Read)
- waf-regional:GetSampledRequests (Read)
- waf-regional:GetSizeConstraintSet (Read)
- waf-regional:GetSqlInjectionMatchSet (Read)
- waf-regional:GetWebACL (Read)
- waf-regional:GetWebACLForResource (Read)
- waf-regional:GetXssMatchSet (Read)
- waf-regional:ListActivatedRulesInRuleGroup (List)
- waf-regional:ListByteMatchSets (List)
- waf-regional:ListGeoMatchSets (List)
- waf-regional:ListIPSets (List)
- waf-regional:ListLoggingConfigurations (List)
- waf-regional:ListRateBasedRules (List)
- waf-regional:ListRegexMatchSets (List)
- waf-regional:ListRegexPatternSets (List)
- waf-regional:ListResourcesForWebACL (List)
- waf-regional:ListRuleGroups (List)
- waf-regional:ListRules (List)
- waf-regional:ListSizeConstraintSets (List)
- waf-regional:ListSqlInjectionMatchSets (List)
- waf-regional:ListSubscribedRuleGroups (List)
- waf-regional:ListTagsForResource (Read)
- waf-regional:ListWebACLs (List)
- waf-regional:ListXssMatchSets (List)
WAF V2: 34 actions
- wafv2:CheckCapacity (Read)
- wafv2:DescribeAllManagedProducts (Read)
- wafv2:DescribeManagedProductsByVendor (Read)
- wafv2:DescribeManagedRuleGroup (Read)
- wafv2:DescribeTopContributorsByEvent (Read)
- wafv2:GetDecryptedAPIKey (Read)
- wafv2:GetIPSet (Read)
- wafv2:GetLoggingConfiguration (Read)
- wafv2:GetManagedRuleSet (Read)
- wafv2:GetMobileSdkRelease (Read)
- wafv2:GetPermissionPolicy (Read)
- wafv2:GetRateBasedStatementManagedKeys (Read)
- wafv2:GetRegexPatternSet (Read)
- wafv2:GetRevenueStatistics (Read)
- wafv2:GetRevenueStatisticsSummary (Read)
- wafv2:GetRevenueStatisticsTimeSeries (Read)
- wafv2:GetRuleGroup (Read)
- wafv2:GetSampledRequests (Read)
- wafv2:GetTopPathStatisticsByTraffic (Read)
- wafv2:GetWebACL (Read)
- wafv2:GetWebACLForResource (Read)
- wafv2:ListAPIKeys (List)
- wafv2:ListAvailableManagedRuleGroupVersions (List)
- wafv2:ListAvailableManagedRuleGroups (List)
- wafv2:ListIPSets (List)
- wafv2:ListLoggingConfigurations (List)
- wafv2:ListManagedRuleSets (List)
- wafv2:ListMobileSdkReleases (List)
- wafv2:ListRegexPatternSets (List)
- wafv2:ListResourcesForWebACL (List)
- wafv2:ListRuleGroups (List)
- wafv2:ListSettlementRecords (List)
- wafv2:ListTagsForResource (Read)
- wafv2:ListWebACLs (List)
Data-plane actions (0)
By access level: none.
This policy grants no actions in this plane.
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 only List and Read actions.
Guidance
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Related policies
Same service
- AWSFMAdminFullAccess
- AWSFMAdminReadOnlyAccess
- AWSFMMemberReadOnlyAccess
- AWSShieldDRTAccessPolicy
- AWSShieldServiceRolePolicy
- AWSWAFConsoleFullAccess
- AWSWAFConsoleReadOnlyAccess
- AWSWAFFullAccess
Same domain
Frequently asked questions
Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.
Policy JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowReadOnlyOfAWSWAFClassic",
"Effect": "Allow",
"Action": [
"waf:Get*",
"waf:List*",
"waf-regional:Get*",
"waf-regional:List*"
],
"Resource": [
"arn:aws:waf::*:bytematchset/*",
"arn:aws:waf::*:ipset/*",
"arn:aws:waf::*:ratebasedrule/*",
"arn:aws:waf::*:rule/*",
"arn:aws:waf::*:sizeconstraintset/*",
"arn:aws:waf::*:sqlinjectionset/*",
"arn:aws:waf::*:webacl/*",
"arn:aws:waf::*:xssmatchset/*",
"arn:aws:waf::*:regexmatch/*",
"arn:aws:waf::*:regexpatternset/*",
"arn:aws:waf::*:geomatchset/*",
"arn:aws:waf::*:rulegroup/*",
"arn:aws:waf::*:changetoken/*",
"arn:aws:waf-regional:*:*:bytematchset/*",
"arn:aws:waf-regional:*:*:ipset/*",
"arn:aws:waf-regional:*:*:ratebasedrule/*",
"arn:aws:waf-regional:*:*:rule/*",
"arn:aws:waf-regional:*:*:sizeconstraintset/*",
"arn:aws:waf-regional:*:*:sqlinjectionset/*",
"arn:aws:waf-regional:*:*:webacl/*",
"arn:aws:waf-regional:*:*:xssmatchset/*",
"arn:aws:waf-regional:*:*:regexmatch/*",
"arn:aws:waf-regional:*:*:regexpatternset/*",
"arn:aws:waf-regional:*:*:geomatchset/*",
"arn:aws:waf-regional:*:*:rulegroup/*",
"arn:aws:waf-regional:*:*:changetoken/*"
]
},
{
"Sid": "AllowWAFClassicGetWebACLForResource",
"Effect": "Allow",
"Action": [
"waf-regional:GetWebACLForResource"
],
"Resource": "arn:aws:waf-regional:*:*:*/*"
},
{
"Sid": "AllowReadOnlyOfAWSWAF",
"Effect": "Allow",
"Action": [
"wafv2:Get*",
"wafv2:List*",
"wafv2:Describe*",
"wafv2:CheckCapacity"
],
"Resource": [
"arn:aws:wafv2:*:*:*/webacl/*/*",
"arn:aws:wafv2:*:*:*/ipset/*/*",
"arn:aws:wafv2:*:*:*/managedruleset/*/*",
"arn:aws:wafv2:*:*:*/rulegroup/*/*",
"arn:aws:wafv2:*:*:*/regexpatternset/*/*"
]
},
{
"Sid": "AllowGetActionForCognito",
"Effect": "Allow",
"Action": [
"cognito-idp:GetWebACLForResource"
],
"Resource": "arn:aws:cognito-idp:*:*:userpool/*"
},
{
"Sid": "AllowListActionsForCognito",
"Effect": "Allow",
"Action": [
"cognito-idp:ListResourcesForWebACL"
],
"Resource": "*"
},
{
"Sid": "AllowGetActionForAppRunner",
"Effect": "Allow",
"Action": [
"apprunner:DescribeWebAclForService"
],
"Resource": "arn:aws:apprunner:*:*:service/*/*"
},
{
"Sid": "AllowListActionsForAppRunner",
"Effect": "Allow",
"Action": [
"apprunner:ListServices",
"apprunner:ListAssociatedServicesForWebAcl"
],
"Resource": "*"
},
{
"Sid": "AllowGetActionForAVA",
"Effect": "Allow",
"Action": [
"ec2:GetVerifiedAccessInstanceWebAcl"
],
"Resource": "arn:aws:ec2:*:*:verified-access-instance/*"
},
{
"Sid": "AllowListActionsForAVA",
"Effect": "Allow",
"Action": [
"ec2:DescribeVerifiedAccessInstanceWebAclAssociations"
],
"Resource": "*"
},
{
"Sid": "AllowGetActionForAmplify",
"Effect": "Allow",
"Action": [
"amplify:GetWebACLForResource"
],
"Resource": "arn:aws:amplify:*:*:apps/*"
},
{
"Sid": "AllowListActionsForAmplify",
"Effect": "Allow",
"Action": [
"amplify:ListResourcesForWebACL"
],
"Resource": "*"
},
{
"Sid": "AllowGetActionsForAppSync",
"Effect": "Allow",
"Action": [
"appsync:GetWebACLForResource"
],
"Resource": "arn:aws:appsync:*:*:apis/*"
},
{
"Sid": "AllowListActionsForAppSync",
"Effect": "Allow",
"Action": [
"appsync:ListResourcesForWebACL"
],
"Resource": "*"
},
{
"Sid": "AllowGetActionsForELB",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:GetLoadBalancerWebACL"
],
"Resource": "arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*"
},
{
"Sid": "AllowListActionsForELB",
"Effect": "Allow",
"Action": [
"elasticloadbalancing:DescribeWebACLAssociation"
],
"Resource": "*"
},
{
"Sid": "AllowReadActionsForAgentCoreGateway",
"Effect": "Allow",
"Action": [
"bedrock-agentcore:GatewayGetWebACLForResource"
],
"Resource": "arn:aws:bedrock-agentcore:*:*:gateway/*"
},
{
"Sid": "AllowListActionsForAgentCoreGateway",
"Effect": "Allow",
"Action": [
"bedrock-agentcore:GatewayListResourcesForWebACL"
],
"Resource": "*"
}
]
}
Version history
Current version v13, edited by AWS on 2026-07-01. 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/AWSWAFReadOnlyAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AWSWAFReadOnlyAccessCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AWSWAFReadOnlyAccessTerraform
resource "aws_iam_role_policy_attachment" "awswafreadonlyaccess" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("AWSWAFReadOnlyAccess"),
);Sources
Pending editorial review. No editorial sources are listed yet.