AWS WAF 如何使用 IAM - AWS WAFAWS Firewall Manager、和 AWS Shield Advanced

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

AWS WAF 如何使用 IAM

在使用管理IAM访问权限之前 AWS WAF,请先了解哪些IAM功能可供使用 AWS WAF。

要全面了解大多数IAM功能 AWS WAF 以及其他 AWS 服务是如何使用的,请参阅《IAM用户指南》IAM与之配合使用的AWS 服务

基于身份的策略 AWS WAF

支持基于身份的策略:

基于身份的策略是可以附加到身份(例如IAM用户、用户组或角色)的JSON权限策略文档。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略,请参阅IAM用户指南中的创建IAM策略

使用IAM基于身份的策略,您可以指定允许或拒绝的操作和资源,以及允许或拒绝操作的条件。您无法在基于身份的策略中指定主体,因为它适用于其附加的用户或角色。要了解可以在JSON策略中使用的所有元素,请参阅IAM用户指南中的IAMJSON策略元素参考

要查看 AWS WAF 基于身份的策略的示例,请参阅。适用于 AWS WAF的基于身份的策略示例

内部基于资源的政策 AWS WAF

支持基于资源的策略:

基于资源的JSON策略是您附加到资源的策略文档。基于资源的策略的示例包括IAM角色信任策略和 Amazon S3 存储桶策略。在支持基于资源的策略的服务中,服务管理员可以使用它们来控制对特定资源的访问。对于在其中附加策略的资源,策略定义指定主体可以对该资源执行哪些操作以及在什么条件下执行。您必须在基于资源的策略中指定主体。委托人可以包括账户、用户、角色、联合用户或 AWS 服务。

要启用跨账户访问权限,您可以将整个账户或另一个账户中的IAM实体指定为基于资源的策略中的委托人。将跨账户主体添加到基于资源的策略只是建立信任关系工作的一半而已。当委托人和资源处于不同位置时 AWS 账户,可信账户中的IAM管理员还必须向委托人实体(用户或角色)授予访问资源的权限。他们通过将基于身份的策略附加到实体以授予权限。但是,如果基于资源的策略向同一个账户中的主体授予访问权限,则不需要额外的基于身份的策略。有关更多信息,请参阅《IAM用户指南》IAM中的跨账户资源访问权限

AWS WAF 使用基于资源的策略来支持跨账户共享规则组。通过向呼叫或等效CLI的 AWS WAF API呼叫PutPermissionPolicy或呼叫提供基于资源的策略设置,您可以与其他 AWS 账户共享您拥有的规则组。SDK有关其他信息,包括其他可用语言的示例和文档链接,请参阅 AWS WAF API参考PutPermissionPolicy文献。此功能无法通过其他方式使用,例如控制台或 AWS CloudFormation。

的政策行动 AWS WAF

支持策略操作:

管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说,哪个主体 可以对什么资源执行操作,以及在什么条件下执行。

JSON策略Action元素描述了可用于在策略中允许或拒绝访问的操作。策略操作通常与关联的 AWS API操作同名。也有一些例外,例如没有匹配API操作的仅限权限的操作。还有一些操作需要在策略中执行多个操作。这些附加操作称为相关操作

在策略中包含操作以授予执行关联操作的权限。

要查看每个 AWS WAF 操作和权限的列表,请参阅《服务授权参考》中的 AWS WAF V2 定义的操作

正在执行的策略操作在操作前 AWS WAF 使用以下前缀:

wafv2

要在单个语句中指定多项操作,请使用逗号将它们隔开。

"Action": [ "wafv2:action1", "wafv2:action2" ]

您也可以使用通配符(*)指定多个操作。例如,要指定以开头的所有操作List,请包括以下操作: AWS WAF

"Action": "wafv2:List*"

要查看 AWS WAF 基于身份的策略的示例,请参阅。适用于 AWS WAF的基于身份的策略示例

需要额外权限设置的操作

有些操作需要的权限无法在《服务授权参考》中的 AWS WAF V2 定义的操作中进行完整描述。本节提供其他权限信息。

AssociateWebACL 权限

本节列出了使用 AWS WAF 操作ACL将 Web 与资源关联所需的权限AssociateWebACL

对于 Amazon CloudFront 分配,请使用操作代替此 CloudFront 操作UpdateDistribution。有关信息,请参阅UpdateDistributionAmazon CloudFront API 参考》。

亚马逊API网关 REST API

需要在RESTAPI资源类型SetWebACL上调用 API Gateway 和在网络 AWS WAF AssociateWebACL上进行呼叫的权限ACL。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "apigateway:SetWebACL" ], "Resource": [ "arn:aws:apigateway:*::/restapis/*/stages/*" ] }
应用程序负载均衡器

需要权限才能在 Applicati elasticloadbalancing:SetWebACL on Load Balancer 资源类型 AWS WAF AssociateWebACL上调用操作和在网络上调用ACL。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "elasticloadbalancing:SetWebACL" ], "Resource": [ "arn:aws:elasticloadbalancing:*:account-id:loadbalancer/app/*/*" ] }
AWS AppSync GraphQL API

需要权限才能调用 AWS AppSync SetWebACL GraphQL API 资源类型和在网络 AWS WAF AssociateWebACL上调用。ACL

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "appsync:SetWebACL" ], "Resource": [ "arn:aws:appsync:*:account-id:apis/*" ] }
Amazon Cognito 用户池

需要权限才能对用户池资源类型调用 Amazon Cognito AssociateWebACL 操作和在网络 AWS WAF AssociateWebACL上调用。ACL

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "cognito-idp:AssociateWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:account-id:userpool/*" ] }
AWS App Runner 服务

需要权限才能在 App Runner 服务资源类型上调用 App Runner AssociateWebACL 操作和在网络 AWS WAF AssociateWebACL上调用ACL。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "apprunner:AssociateWebAcl" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS 已验证访问实例

需要权限才能在 “已验证访问权限” 实例资源类型上调用ec2:AssociateVerifiedAccessInstanceWebAcl操作和在 Web AWS WAF AssociateWebACL 上调用ACL。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "ec2:AssociateVerifiedAccessInstanceWebAcl" ], "Resource": [ "arn:aws:ec2:*:account-id:verified-access-instance/*" ] }

DisassociateWebACL 权限

本节列出了使用 AWS WAF 操作DisassociateWebACL取消网站ACL与资源的关联所需的权限。

对于 Amazon CloudFront 分配,请使用UpdateDistribution带有空网ACL号的 CloudFront 操作来代替此操作。有关信息,请参阅UpdateDistributionAmazon CloudFront API 参考》。

亚马逊API网关 REST API

需要对RESTAPI资源类型调用 API Gat SetWebACL eway 的权限。不需要通话许可 AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL", "Effect": "Allow", "Action": [ "apigateway:SetWebACL" ], "Resource": [ "arn:aws:apigateway:*::/restapis/*/stages/*" ] }
应用程序负载均衡器

需要权限才能在应用程序负载均衡器资源类型上调用 elasticloadbalancing:SetWebACL 操作。不需要通话许可 AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL", "Effect": "Allow", "Action": [ "elasticloadbalancing:SetWebACL" ], "Resource": [ "arn:aws:elasticloadbalancing:*:account-id:loadbalancer/app/*/*" ] }
AWS AppSync GraphQL API

需要权限才能调用 AWS AppSync SetWebACL GraphQL API 资源类型。不需要通话许可 AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL", "Effect": "Allow", "Action": [ "appsync:SetWebACL" ], "Resource": [ "arn:aws:appsync:*:account-id:apis/*" ] }
Amazon Cognito 用户池

需要权限才能对用户池资源类型调用 Amazon Cognito DisassociateWebACL 操作并进行调用。 AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL1", "Effect": "Allow", "Action": "wafv2:DisassociateWebACL", "Resource": "*" }, { "Sid": "DisassociateWebACL2", "Effect": "Allow", "Action": [ "cognito-idp:DisassociateWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:account-id:userpool/*" ] }
AWS App Runner 服务

需要权限才能在 App Runner 服务资源类型上调用 App Runner DisassociateWebACL 操作并进行调用 AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL1", "Effect": "Allow", "Action": "wafv2:DisassociateWebACL", "Resource": "*" }, { "Sid": "DisassociateWebACL2", "Effect": "Allow", "Action": [ "apprunner:DisassociateWebAcl" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS 已验证访问实例

需要权限才能在 “已验证访问权限” 实例资源类型上调用ec2:DisassociateVerifiedAccessInstanceWebAcl操作并进行调用 AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL1", "Effect": "Allow", "Action": "wafv2:DisassociateWebACL", "Resource": "*" }, { "Sid": "DisassociateWebACL2", "Effect": "Allow", "Action": [ "ec2:DisassociateVerifiedAccessInstanceWebAcl" ], "Resource": [ "arn:aws:ec2:*:account-id:verified-access-instance/*" ] }

GetWebACLForResource 权限

本节列出了使用 AWS WAF 操作访问受保护资源的网站ACL所需的权限GetWebACLForResource

对于 Amazon CloudFront 分配,请使用操作代替此 CloudFront 操作GetDistributionConfig。有关信息,请参阅GetDistributionConfigAmazon CloudFront API 参考》。

注意

GetWebACLForResource 需要调用 GetWebACL 的权限。在这种情况下,GetWebACL仅 AWS WAF 用于验证您的账户是否拥有访问GetWebACLForResource返回ACL的网络所需的权限。当您致电时GetWebACLForResource,您可能会收到一条错误消息,表明您的账户无权使用wafv2:GetWebACL该资源。 AWS WAF 不会将此类错误添加到 AWS CloudTrail 事件历史记录中。

亚马逊 API Gateway REST API、Application Load Balancer 和 AWS AppSync GraphQL API

需要许可才能拨打电话 AWS WAF GetWebACLForResourceGetWebACL和上网ACL。

{ "Sid": "GetWebACLForResource", "Effect": "Allow", "Action": [ "wafv2:GetWebACLForResource", "wafv2:GetWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }
Amazon Cognito 用户池

需要权限才能对用户池资源类型调用 Amazon Cognito GetWebACLForResource 操作以及调 AWS WAF GetWebACLForResource用和。GetWebACL

{ "Sid": "GetWebACLForResource1", "Effect": "Allow", "Action": [ "wafv2:GetWebACLForResource", "wafv2:GetWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "GetWebACLForResource2", "Effect": "Allow", "Action": [ "cognito-idp:GetWebACLForResource" ], "Resource": [ "arn:aws:cognito-idp:*:account-id:userpool/*" ] }
AWS App Runner 服务

需要权限才能调用 App Runner 服务资源类型的 App Runner DescribeWebAclForService 操作以及调用 AWS WAF GetWebACLForResourceGetWebACL

{ "Sid": "GetWebACLForResource1", "Effect": "Allow", "Action": [ "wafv2:GetWebACLForResource", "wafv2:GetWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "GetWebACLForResource2", "Effect": "Allow", "Action": [ "apprunner:DescribeWebAclForService" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS 已验证访问实例

需要权限才能在 “已验证访问权限” 实例资源类型上调用ec2:GetVerifiedAccessInstanceWebAcl操作并调用 AWS WAF GetWebACLForResourceGetWebACL

{ "Sid": "GetWebACLForResource1", "Effect": "Allow", "Action": [ "wafv2:GetWebACLForResource", "wafv2:GetWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "GetWebACLForResource2", "Effect": "Allow", "Action": [ "ec2:GetVerifiedAccessInstanceWebAcl" ], "Resource": [ "arn:aws:ec2:*:account-id:verified-access-instance/*" ] }

ListResourcesForWebACL 权限

本节列出了ACL使用 AWS WAF 操作检索 Web 受保护资源列表所需的权限ListResourcesForWebACL

对于 Amazon CloudFront 分配,请使用操作代替此 CloudFront 操作ListDistributionsByWebACLId。有关信息,请参阅ListDistributionsByWebACLIdAmazon CloudFront API 参考》。

亚马逊 API Gateway REST API、Application Load Balancer 和 AWS AppSync GraphQL API

需要许可才能 AWS WAF ListResourcesForWebACL拨打网站ACL。

{ "Sid": "ListResourcesForWebACL", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }
Amazon Cognito 用户池

需要权限才能在用户群体资源类型上调用 Amazon Cognito ListResourcesForWebACL 操作并调用 AWS WAF ListResourcesForWebACL

{ "Sid": "ListResourcesForWebACL1", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "ListResourcesForWebACL2", "Effect": "Allow", "Action": [ "cognito-idp:ListResourcesForWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:account-id:userpool/*" ] }
AWS App Runner 服务

需要权限才能在 App Runner 服务资源类型上调用 App Runner ListAssociatedServicesForWebAcl 操作并进行调用 AWS WAF ListResourcesForWebACL

{ "Sid": "ListResourcesForWebACL1", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "ListResourcesForWebACL2", "Effect": "Allow", "Action": [ "apprunner:ListAssociatedServicesForWebAcl" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS 已验证访问实例

需要权限才能在 Verified Access 实例资源类型上调用 ec2:DescribeVerifiedAccessInstanceWebAclAssociations 操作并调用 AWS WAF ListResourcesForWebACL

{ "Sid": "ListResourcesForWebACL1", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "ListResourcesForWebACL2", "Effect": "Allow", "Action": [ "ec2:DescribeVerifiedAccessInstanceWebAclAssociations" ], "Resource": [ "arn:aws:ec2:*:account-id:verified-access-instance/*" ] }

的政策资源 AWS WAF

支持策略资源:

管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说,哪个主体 可以对什么资源执行操作,以及在什么条件下执行。

ResourceJSON策略元素指定要应用操作的一个或多个对象。语句必须包含 ResourceNotResource 元素。最佳做法是,使用资源的 Amazon 资源名称 (ARN) 来指定资源。对于支持特定资源类型(称为资源级权限)的操作,您可以执行此操作。

对于不支持资源级权限的操作(如列出操作),请使用通配符 (*) 指示语句应用于所有资源。

"Resource": "*"

要查看 AWS WAF 资源类型及其列表ARNs,请参阅《服务授权参考》中的 AWS WAF V2 定义的资源。要了解您可以使用哪些操作来指定每ARN种资源,请参阅 AWS WAF V2 定义的操作。要允许或拒绝对 AWS WAF 资源子集的访问,请在策略ARN的resource元素中包含该资源的子集。

o AWS WAF wafv2 f ARNs 资源的格式如下:

arn:partition:wafv2:region:account-id:scope/resource-type/resource-name/resource-id

有关ARN规格的一般信息,请参阅中的 Amazon 资源名称 (ARNs) Amazon Web Services 一般参考。

以下列出了特定于ARNswafv2资源的要求:

  • region:对于用于保护 Amazon CloudFront 分配的 AWS WAF 资源,请将其设置为us-east-1。否则,请将其设置为您正在使用受保护区域资源的区域。

  • scope:将范围设置为,global以便在 Amazon CloudFront 配送中使用或regional与 AWS WAF 支持的任何区域资源一起使用。区域资源是 Amazon API Gateway REST API、Application Load Balancer API、 AWS AppSync GraphQL、Amazon Cognito 用户池、服务和 AWS App Runner 已验证访问实 AWS 例。

  • resource-type:指定以下值之一:webaclrulegroupipsetregexpatternset、或managedruleset

  • resource-name:指定您为 AWS WAF 资源提供的名称,或指定通配符 (*) 以表示满足中其他规格的所有资源。ARN您必须指定资源名称和资源 ID,或者为两者指定通配符。

  • resource-id:指定 AWS WAF 资源的 ID,或指定通配符 (*) 以表示满足中其他规格的所有资源。ARN您必须指定资源名称和资源 ID,或者为两者指定通配符。

例如,以下内容为区域111122223333中的账户ARN指定了所有ACLs具有区域范围的网站us-west-1

arn:aws:wafv2:us-west-1:111122223333:regional/webacl/*/*

以下内容为区域中的账户ARN111122223333指定MyIPManagementRuleGroup了名为全局范围的规则组us-east-1

arn:aws:wafv2:us-east-1:111122223333:global/rulegroup/MyIPManagementRuleGroup/1111aaaa-bbbb-cccc-dddd-example-id

要查看 AWS WAF 基于身份的策略的示例,请参阅。适用于 AWS WAF的基于身份的策略示例

的策略条件密钥 AWS WAF

支持服务特定的策略条件键:

管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说,哪个主体可以对什么资源执行操作,以及在什么条件下执行。

Condition 元素(或 Condition )中,可以指定语句生效的条件。Condition 元素是可选的。您可以创建使用条件运算符(例如,等于或小于)的条件表达式,以使策略中的条件与请求中的值相匹配。

如果您在一个语句中指定多个 Condition 元素,或在单个 Condition 元素中指定多个键,则 AWS 使用逻辑 AND 运算评估它们。如果您为单个条件键指定多个值,则使用逻辑OR运算来 AWS 评估条件。在授予语句的权限之前必须满足所有的条件。

在指定条件时,您也可以使用占位符变量。例如,只有在资源上标有IAM用户的用户名时,您才能向IAM用户授予访问该资源的权限。有关更多信息,请参阅《IAM用户指南》中的IAM策略元素:变量和标签

AWS 支持全局条件密钥和特定于服务的条件键。要查看所有 AWS 全局条件键,请参阅《IAM用户指南》中的AWS 全局条件上下文密钥

此外,还 AWS WAF 支持以下条件键,您可以使用这些条件键为策略提供细粒度的筛选:IAM

  • wafv2:LogDestinationResource

    此条件密钥采用日志目标的 Amazon 资源名称 (ARN) 规范。ARN这是您在使用RESTAPI呼叫时为登录目标提供的内容PutLoggingConfiguration

    您可以显式指定ARN,也可以为指定过滤ARN。以下示例指定筛选具有特定位置和前缀ARNs的 Amazon S3 存储桶。

    "Condition": { "ArnLike": { "wafv2:LogDestinationResource": "arn:aws:s3:::aws-waf-logs-suffix/custom-prefix/*" } }
  • wafv2:LogScope

    此条件键以字符串形式定义日志配置的来源。当前,它始终设置为默认值Customer,这表示日志记录目标归您所有和管理。

要查看 AWS WAF 条件键列表,请参阅《服务授权参考》中的 AWS WAF V2 条件密钥。要了解可以使用条件键的操作和资源,请参阅 AWS WAF V2 定义的操作

要查看 AWS WAF 基于身份的策略的示例,请参阅。适用于 AWS WAF的基于身份的策略示例

ACLs在 AWS WAF

支持ACLs:

访问控制列表 (ACLs) 控制哪些委托人(账户成员、用户或角色)有权访问资源。ACLs与基于资源的策略类似,尽管它们不使用JSON策略文档格式。

ABAC与 AWS WAF

支持ABAC(策略中的标签):部分

基于属性的访问控制 (ABAC) 是一种基于属性定义权限的授权策略。在中 AWS,这些属性称为标签。您可以将标签附加到IAM实体(用户或角色)和许多 AWS 资源。为实体和资源添加标签是的第一步。ABAC然后,您可以设计ABAC策略,允许在委托人的标签与他们尝试访问的资源上的标签匹配时进行操作。

ABAC在快速增长的环境中很有用,也有助于解决策略管理变得繁琐的情况。

要基于标签控制访问,您需要使用 aws:ResourceTag/key-nameaws:RequestTag/key-nameaws:TagKeys 条件键在策略的条件元素中提供标签信息。

如果某个服务对于每种资源类型都支持所有这三个条件键,则对于该服务,该值为。如果某个服务仅对于部分资源类型支持所有这三个条件键,则该值为部分

有关的更多信息ABAC,请参阅什么是ABAC? 在《IAM用户指南》中。要查看包含设置步骤的教程ABAC,请参阅IAM用户指南中的使用基于属性的访问控制 (ABAC)

将临时证书与 AWS WAF

支持临时凭证:

当你使用临时证书登录时,有些 AWS 服务 不起作用。有关其他信息,包括哪些 AWS 服务 适用于临时证书 AWS 服务 ,请参阅《IAM用户指南》IAM中的 “适用于临时证书”。

如果您使用除用户名和密码之外的任何方法登录,则 AWS Management Console 使用的是临时证书。例如,当您 AWS 使用公司的单点登录 (SSO) 链接进行访问时,该过程会自动创建临时证书。当您以用户身份登录控制台,然后切换角色时,您还会自动创建临时凭证。有关切换角色的更多信息,请参阅《IAM用户指南》中的切换到角色(控制台)

您可以使用 AWS CLI 或手动创建临时证书 AWS API。然后,您可以使用这些临时证书进行访问 AWS。 AWS 建议您动态生成临时证书,而不是使用长期访问密钥。有关更多信息,请参阅中的临时安全证书IAM

转发服务的访问会话 AWS WAF

支持转发访问会话 (FAS):

当您使用IAM用户或角色在中执行操作时 AWS,您被视为委托人。使用某些服务时,您可能会执行一个操作,然后此操作在其他服务中启动另一个操作。FAS使用调用委托人的权限 AWS 服务以及 AWS 服务 向下游服务发出请求的请求。FAS只有当服务收到需要与其他 AWS 服务 或资源交互才能完成的请求时,才会发出请求。在这种情况下,您必须具有执行这两个操作的权限。有关提出FAS请求时的政策详情,请参阅转发访问会话

AWS WAF的服务角色

支持服务角色:

服务IAM角色是服务代替您执行操作的角色。IAM管理员可以在内部创建、修改和删除服务角色IAM。有关更多信息,请参阅《IAM用户指南》 AWS 服务中的创建角色以向委派权限

警告

更改服务角色的权限可能会中断 AWS WAF 功能。只有在 AWS WAF 提供操作指导时才编辑服务角色。

的服务相关角色 AWS WAF

支持服务相关角色:

服务相关角色是一种链接到的服务角色。 AWS 服务服务可以代入代表您执行操作的角色。服务相关角色出现在您的中 AWS 账户 ,并且归服务所有。IAM管理员可以查看但不能编辑服务相关角色的权限。

有关创建或管理 AWS WAF 服务相关角色的详细信息,请参阅将服务相关角色用于 AWS WAF