Amazon WAFAPI 权限:操作、资源和条件参考 - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon WAFAPI 权限:操作、资源和条件参考

在设置访问控制和编写您可附加到 IAM 身份的权限策略(基于身份的策略)时,请使用本部分中的信息作为指南。对于每个Amazon WAF API 操作,您都需要知道您可授予执行权限的操作,以及您可授予权限Amazon的资源。您可以在策略的 Action 字段中指定这些操作,并在策略的 Resource 字段中指定资源值。

注意

要指定操作,请在 API 操作名称之前使用 wafv2: 前缀 (例如,wafv2:CreateIPSet)。

您可以在Amazon WAF策略中使用通用Amazon条件键来表达条件。有关Amazon键的完整列表,请参阅《IAM 用户指南》中的条件的可用键

全局和区域设置

在本节中的资源设置中,使用以下 scoperegion 设置:

  • 对于 CloudFront 分布,将范围设置为global,将区域设置为us-east-1

  • 对于 Amazon API Gateway REST API、Application Load Balancer、Amazon AppSync GraphQL API 或 Amazon Cognito 用户池,请将范围设置为regional并将区域设置为你感兴趣的区域。

资源引用的 Amazon WAF API 权限

对于所有资源权限设置,如果资源通过 Amazon 资源名称 (ARN) 引用任何其他资源,则除了访问第一个资源所需的权限之外,您还必须具有访问被引用资源的权限。例如,要使用引用 IP 集、正则表达式模式集或规则组的 Web ACL,除了拥有访问该 Web ACL 资源的权限外,还需要拥有访问 IP 集资源、正则表达式模式集资源或规则组资源的权限。

Amazon WAF 标准 API 权限

Amazon资源上的基本 CRUD 和列表操作遵循权限授予的标准模式。该模式适用于 Web ACL、规则组、IP 集和正则表达式模式集。

授予 Web ACL 的权限

申请 Web ACL 和 Web ACL 引用的任何资源的权限:

  • 遵循本节中提供的关于 WebACLwebacl 的 CRUD 和列表操作权限指导。

  • 对于 Web ACL 引用的任何规则组,请遵循本节中提供的关于 RuleGrouprulegroup 的指导。

  • 对于 Web ACL 引用的任何托管规则组,请为 DescribeManagedRuleGroup 提供Amazon WAF 非标准 API 和必需的操作权限下列出的权限。

  • 对于 Web ACL 引用的任何 IP 集,请遵循本节中提供的关于 IPSetipset 的指导。

  • 对于 Web ACL 引用的任何正则表达式模式集,请遵循本节中提供的关于 RegexPatternSetregexpatternset 的指导。

授予规则组的权限

申请规则组和规则组引用的任何资源的权限:

  • 遵循本节中提供的关于 RuleGrouprulegroup 的 CRUD 和列表操作权限指导。

  • 对于规则组引用的任何 IP 集,请遵循本节中提供的关于 IPSetipset 的指导。

  • 对于规则组引用的任何正则表达式模式集,请遵循本节中提供的关于 RegexPatternSetregexpatternset 的指导。

授予 IP 集的权限

对于 IP 集,请遵循本节中提供的关于 IPSetipset 的 CRUD 和列表操作权限指导。

授予正则表达式模式集的权限

对于正则表达式模式集,请遵循本节中提供的关于 RegexPatternSetregexpatternset 的 CRUD 和列表操作权限指导。

Amazon WAF CRUD 和列表权限

CRUD 和列表的模式适用于 Web ACL、规则组、IP 集和正则表达式模式集。本部分显示 Web ACL 操作的模式。对于其他资源类型,请根据本节之前的指导在字符串中替换为这些资源类型。

Web ACL 的 CRUD 操作

  • Amazon WAFAPI 操作CreateWebACLGetWebACLUpdateWebACLDeleteWebACL

  • API 操作wafv2:CreateWebACLwafv2:GetWebACLwafv2:UpdateWebACLwafv2:DeleteWebACL

  • 资源arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID

Web ACL 的列表操作

  • Amazon WAFAPI 操作ListWebACL

  • API 操作wafv2:ListWebACLs

  • 资源arn:aws:wafv2:region:account-id:scope/webacl/*

    如果要列出账户中的所有资源,请为全局调用列表操作一次,为每个区域应用程序区域调用一次。

Amazon WAF 非标准 API 权限

以下操作不遵循标准 CRUD 和列表模式,需要特定的资源权限设置。

对于每个操作,我们列出所需的策略操作及其关联的策略资源。

AssociateWebACL

API 操作wafv2:AssociateWebACLelasticloadbalancing:SetWebACLapigateway:SetWebACLappsync:SetWebACLcognito-idp:AssociateWebACL

资源

arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID

arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/ApplicationLoadBalancerName/ApplicationLoadBalancerID

arn:aws:apigateway:region::/restapis/api-ID/stages/stage-name

arn:aws:appsync:region:account-id:apis/GraphQLApiId

arn: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:DisassociateWebACLelasticloadbalancing:SetWebACLapigateway:SetWebACLappsync:SetWebACLcognito-idp:DisassociateWebACL

资源

arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID

arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/ApplicationLoadBalancerName/ApplicationLoadBalancerID

arn:aws:apigateway:region::/restapis/api-ID/stages/stage-name

arn:aws:appsync:region:account-id:apis/GraphQLApiId

arn: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:GetWebACLForResourcecognito-idp:GetWebACLForResource 

资源-资源权限取决于您在 API 调用中指定的资源。您必须有权访问与请求对应的 Web ACL。

资源

arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID

arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID

arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/ApplicationLoadBalancerName/ApplicationLoadBalancerID

arn:aws:apigateway:region::/restapis/api-ID/stages/stage-name

arn:aws:appsync:region:account-id:apis/GraphQLApiId

arn: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:ListResourcesForWebACLcognito-idp:ListResourcesForWebACL

资源-资源权限取决于您与 Web ACL 关联的资源。您必须有权访问与请求对应的 Web ACL。

arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID

arn:aws:wafv2:region:account-id:scope/webacl/entity-name/entity-ID

arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/ApplicationLoadBalancerName/ApplicationLoadBalancerID

arn:aws:apigateway:region::/restapis/api-ID/stages/stage-name

arn:aws:appsync:region:account-id:apis/GraphQLApiId

arn:aws:cognito-idp:region:account-id:userpool/USER_POOL_ID