本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon WAFAPI 权限:操作、资源和条件参考
当你设置时访问控制并编写您可挂载到 IAM 身份的权限策略(基于身份的策略),请将本部分中的信息作为指南。对于每个Amazon WAFAPI 操作,您需要知道可以授权执行该操作的操作,以及Amazon您可以为其授予权限的资源。您可以在策略的 Action 字段中指定这些操作,并在策略的 Resource 字段中指定资源值。
要指定操作,请在 API 操作名称之前使用 wafv2: 前缀 (例如,wafv2:CreateIPSet)。
你可以用通用Amazon您的条件键Amazon WAF表达条件的政策。有关以下内容的完整列表Amazon钥匙,请参阅条件的可用密钥在里面IAM 用户指南.
全局和区域设置
在本节中的资源设置中,使用以下 scope 和 region 设置:
-
对于 CloudFront 分布,集合
范围到global并设置领域到us-east-1. -
对于 Amazon API Gateway REST APIAmazon AppSyncGraphQL API 或Amazon Cognito 用户池设置
范围到regional并设置领域到您感兴趣的区域。
资源引用的 Amazon WAF API 权限
对于所有资源权限设置,如果资源通过 Amazon 资源名称 (ARN) 引用任何其他资源,则除了访问第一个资源所需的权限之外,您还必须具有访问被引用资源的权限。例如,要使用引用 IP 集、正则表达式模式集或规则组的 Web ACL,除了拥有访问该 Web ACL 资源的权限外,还需要拥有访问 IP 集资源、正则表达式模式集资源或规则组资源的权限。
Amazon WAF 标准 API 权限
上的基本 CRUD 和列表操作Amazon资源遵循标准的权限授予模式。该模式适用于 Web ACL、规则组、IP 集和正则表达式模式集。
授予 Web ACL 的权限
申请 Web ACL 和 Web ACL 引用的任何资源的权限:
-
遵循本节中提供的关于
WebACL和webacl的 CRUD 和列表操作权限指导。 -
对于 Web ACL 引用的任何规则组,请遵循本节中提供的关于
RuleGroup和rulegroup的指导。 -
对于 Web ACL 引用的任何托管规则组,请为
DescribeManagedRuleGroup提供Amazon WAF 非标准 API 和必需的操作权限下列出的权限。 -
对于 Web ACL 引用的任何 IP 集,请遵循本节中提供的关于
IPSet和ipset的指导。 -
对于 Web ACL 引用的任何正则表达式模式集,请遵循本节中提供的关于
RegexPatternSet和regexpatternset的指导。
授予规则组的权限
申请规则组和规则组引用的任何资源的权限:
-
遵循本节中提供的关于
RuleGroup和rulegroup的 CRUD 和列表操作权限指导。 -
对于规则组引用的任何 IP 集,请遵循本节中提供的关于
IPSet和ipset的指导。 -
对于规则组引用的任何正则表达式模式集,请遵循本节中提供的关于
RegexPatternSet和regexpatternset的指导。
授予 IP 集的权限
对于 IP 集,请遵循本节中提供的关于 IPSet 和 ipset 的 CRUD 和列表操作权限指导。
授予正则表达式模式集的权限
对于正则表达式模式集,请遵循本节中提供的关于 RegexPatternSet 和 regexpatternset 的 CRUD 和列表操作权限指导。
Amazon WAF CRUD 和列表权限
CRUD 和列表的模式适用于 Web ACL、规则组、IP 集和正则表达式模式集。本部分显示 Web ACL 操作的模式。对于其他资源类型,请根据本节之前的指导在字符串中替换为这些资源类型。
Web ACL 的 CRUD 操作
-
Amazon WAFAPI 操作–CreateWebACL,GetWebACL,UpdateWebACL,以及DeleteWebACL
-
API 操作–
wafv2:CreateWebACL,wafv2:GetWebACL,wafv2:UpdateWebACL,wafv2:DeleteWebACL -
资源–
arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID
Web ACL 的列表操作
-
Amazon WAFAPI 操作–ListWeb访问控制列表
-
API 操作–
wafv2:ListWebACLs -
资源–
arn:aws:wafv2:region:account-id:scope/webacl/*如果要列出账户中的所有资源,请为全局调用列表操作一次,为每个区域应用程序区域调用一次。
Amazon WAF 非标准 API 权限
以下操作不遵循标准 CRUD 和列表模式,需要特定的资源权限设置。
对于每个操作,我们列出所需的策略操作及其关联的策略资源。
- AssociateWebACL
-
API 操作–
wafv2:AssociateWebACL,elasticloadbalancing:SetWebACL,apigateway:SetWebACL,appsync:SetWebACL,cognito-idp:AssociateWebACL资源–
arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-IDarn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/ApplicationLoadBalancerName/ApplicationLoadBalancerIDarn:aws:apigateway:region::/restapis/api-ID/stages/stage-namearn:aws:appsync:region:account-id:apis/GraphQLApiIdarn:aws:cognito-idp:region:account-id:userpool/USER_POOL_ID - CheckCapacity
-
API 操作–
wafv2:CheckCapacity资源— 这需要对所含规则中引用的所有 ARN 拥有权限。它不需要任何其他权限。
- DescribeManagedRuleGroup
-
API 操作–
wafv2:DescribeManagedRuleGroup资源–
arn:aws:wafv2:region:account-id:scope/managedruleset/* - DisassociateWebACL
-
API 操作–
wafv2:DisassociateWebACL,elasticloadbalancing:SetWebACL,apigateway:SetWebACL,appsync:SetWebACL,cognito-idp:DisassociateWebACL资源–
arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-IDarn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/ApplicationLoadBalancerName/ApplicationLoadBalancerIDarn:aws:apigateway:region::/restapis/api-ID/stages/stage-namearn:aws:appsync:region:account-id:apis/GraphQLApiIdarn:aws:cognito-idp:region:account-id:userpool/USER_POOL_ID - GetRateBasedStatementManagedKeys
-
API 操作–
wafv2:GetRateBasedStatementManagedKeys资源–
arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID - GetSampledRequests
-
API 操作–
wafv2:GetSampledRequests资源— 资源权限取决于您在 API 调用中指定的参数。您必须有权访问与针对示例的请求对应的 Web ACL。例如:
arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID
- GetWebACLForResource
-
API 操作–
wafv2:GetWebACLForResource,cognito-idp:GetWebACLForResource资源— 资源权限取决于您在 API 调用中指定的资源。您必须有权访问与请求对应的 Web ACL。
资源–
arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-IDarn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-IDarn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/ApplicationLoadBalancerName/ApplicationLoadBalancerIDarn:aws:apigateway:region::/restapis/api-ID/stages/stage-namearn:aws:appsync:region:account-id:apis/GraphQLApiIdarn:aws:cognito-idp:region:account-id:userpool/USER_POOL_ID
- ListAvailableManagedRuleGroups
-
API 操作–
wafv2:ListAvailableManagedRuleGroups资源–
arn:aws:wafv2:region:account-id:scope/managedruleset/* - ListResourcesForWebACL
-
API 操作–
wafv2:ListResourcesForWebACL,cognito-idp:ListResourcesForWebACL资源— 资源权限取决于您与 Web ACL 关联的资源。您必须有权访问与请求对应的 Web ACL。
arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-IDarn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-IDarn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/ApplicationLoadBalancerName/ApplicationLoadBalancerIDarn:aws:apigateway:region::/restapis/api-ID/stages/stage-namearn:aws:appsync:region:account-id:apis/GraphQLApiIdarn:aws:cognito-idp:region:account-id:userpool/USER_POOL_ID