本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon WAFAPI 权限:操作、资源和条件参考
当您设置访问控制并编写您可附加到 IAM 身份的权限策略(基于身份的策略),请使用本部分中的信息作为指南。对于每个Amazon WAFAPI 操作时,您需要知道可为其授予执行该操作的权限的相应操作,并且需要知道Amazon资源,您可以授予权限。您可以在策略的 Action
字段中指定这些操作,并在策略的 Resource
字段中指定资源值。
要指定操作,请在 API 操作名称之前使用 wafv2:
前缀 (例如,wafv2:CreateIPSet
)。
您可以使用常规Amazon的条件键Amazon WAF策略来表达条件。有关的完整列表Amazon密钥,请参阅适用条件的可用密钥中的IAM 用户指南.
全局和区域设置
在本节中的资源设置中,使用以下 scope
和 region
设置:
-
对于 CloudFront 发行版,请将
scope
到global
并设置区域
到us-east-1
. -
对于 Amazon API Gateway REST API、ApApplication Load Balancer 或Amazon AppSyncGraphQL API,将
scope
到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 操作–ListWebACLs
-
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
资源–
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:DisassociateWebACL
、elasticloadbalancing:SetWebACL
、apigateway:SetWebACL
、appsync: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/*