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

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

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

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

注意

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

您可以使用常规Amazon的条件键Amazon WAF策略来表达条件。有关的完整列表Amazon密钥,请参阅适用条件的可用密钥中的IAM 用户指南.

全局和区域设置

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

  • 对于 CloudFront 发行版,请将scopeglobal并设置区域us-east-1.

  • 对于 Amazon API Gateway REST API、ApApplication Load Balancer 或Amazon AppSyncGraphQL API,将scoperegional并设置区域到您感兴趣的区域。

资源引用的 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 引用的任何资源的权限:

  • 遵循本节中提供的关于 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 操作CreateWebACLGetWebACLUpdateWebACL, 和DeleteWebACL

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

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

Web ACL 的列表操作

  • Amazon WAFAPI 操作ListWebACLs

  • API 操作wafv2:ListWebACLs

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

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

Amazon WAF 非标准 API 权限

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

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

AssociateWebACL

API 操作wafv2:AssociateWebACLelasticloadbalancing:SetWebACLapigateway:SetWebACLappsync:SetWebACL

资源

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

CheckCapacity

API 操作wafv2:CheckCapacity

资源— 这需要对包含的规则中引用的所有 ARN 的权限。它不需要任何其他权限。

DescribeManagedRuleGroup

API 操作wafv2:DescribeManagedRuleGroup

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

DisassociateWebACL

API 操作wafv2:DisassociateWebACLelasticloadbalancing:SetWebACLapigateway:SetWebACLappsync:SetWebACL

资源

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

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

ListAvailableManagedRuleGroups

API 操作wafv2:ListAvailableManagedRuleGroups

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