将基于身份的策略(IAM 策略)用于Amazon WAFClassic - Amazon WAF、Amazon Firewall Manager 和 Amazon Shield Advanced
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

将基于身份的策略(IAM 策略)用于Amazon WAFClassic

注意

这是Amazon WAFClassic文档中)。仅当 2019 年 11 月之前在 Amazon WAF 中创建了 Amazon WAF 资源(例如规则和 Web ACL),但尚未将这些资源迁移到最新版本时,才应使用此版本。要迁移您的资源,请参阅迁移您的Amazon WAFClassic 资源Amazon WAF

对于最新版本的Amazon WAF,请参阅Amazon WAF.

本部分提供了基于身份的策略的示例,这些示例展示了账户管理员如何将权限策略附加到 IAM 身份(即用户、组和角色),从而授予对Amazon WAFClassic 资源。

重要

我们建议您首先阅读以下介绍性主题,这些主题说明基本概念和可用于管理对Amazon WAFClassic 资源。有关更多信息,请参阅有关管理对您的访问权限的概述Amazon WAFClassic 资源

下面显示了一个示例权限策略:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateFunctionPermissions", "Effect": "Allow", "Action": [ "waf:ListWebACLs", "waf:ListRules", "waf:GetWebACL", "waf:GetRule", "cloudwatch:ListMetrics", "waf:GetSampledRequests" ], "Resource": "*" }, { "Sid": "PermissionToPassAnyRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/*" } ] }

该策略包含两条语句:

  • 第一条语句授予查看统计信息的权限Amazon WAF经典的 Web ACL,使用waf:ListWebACLswaf:ListRuleswaf:GetWebACLwaf:GetRulecloudwatch:ListMetrics, 和waf:GetSampledRequests操作。Amazon WAFClassic 对于这些操作中的某些操作,不支持资源级别的权限。因此,该策略指定通配符 (*) 作为 Resource 值。

  • 第二条语句授予执行 IAM 操作的权限iam:PassRole上的 IAM 角色。结尾处的通配符 (*)Resource值意味着该语句允许iam:PassRole对任何 IAM 角色执行操作。要仅仅将这些权限扩展到特定角色,请使用特定角色名称替换资源 ARN 中的通配符 (*)。

该策略没有指定 Principal 元素,因为在基于身份的策略中,您不会指定获取权限的委托人。附加了策略的用户是隐式委托人。向 IAM 角色附加权限策略后,该角色的信任策略中标识的委托人将获取权限。

对于显示所有Amazon WAF经典 API 操作及其适用于的资源,请参阅Amazon WAFClassic API 权限:操作、资源和条件参考.

Topics

使用所需的权限Amazon WAF经典控制台

这些区域有:Amazon WAFClassic 控制台为您提供了一个创建和管理的集成环境Amazon WAFClassic 资源。控制台提供了许多功能和工作流程,它们通常需要创建Amazon WAF除了 API 特定于 API 的权限以及Amazon WAFClassic API 权限:操作、资源和条件参考. 有关这些附加控制台权限的更多信息,请参阅客户管理的策略示例

Amazon适用于 的 托管(预定义)策略Amazon WAFClassic

Amazon通过提供由创建和管理的独立 IAM 策略来满足许多常用案例的要求。Amazon托管策略可授予常用案例的必要权限,因此,您可以免去调查都需要哪些权限的工作。有关更多信息,请参阅 IAM 用户指南中的 Amazon 托管策略

以下Amazon托管策略(您可以将它们附加到自己账户中的用户)是特定于的Amazon WAFClassic:

  • AWSWAFReadOnlyAccess— 授予对的只读访问权限Amazon WAFClassic 资源。

  • AWSWAFFullAccess— 授予对的完全访问权限Amazon WAFClassic 资源。

  • AWSWAFConsoleReadOnlyAccess— 授予对的只读访问权限Amazon WAF经典控制台,其中包括Amazon WAF和集成服务,例如 Amazon CloudFront、Amazon API Gateway、Application Load Balancer 和 Amazon CloudWatch。

  • AWSWAFConsoleFullAccess— 授予对的完全访问权限Amazon WAF经典控制台,其中包括Amazon WAF和集成服务,例如 Amazon CloudFront、Amazon API Gateway、Application Load Balancer 和 Amazon CloudWatch。

注意

您可以通过登录到 IAM 控制台并在该控制台中搜索特定策略来查看这些权限策略。

此外,您还可以创建自定义 IAM 策略,以授予对Amazon WAF经典 API 操作和资源。您可以将这些自定义策略挂载到需要上述权限的 IAM 用户和组或您为Amazon WAFClassic 资源。

客户管理的策略示例

此部分中的示例提供了一组可附加到用户的示例策略。如果您是首次创建策略,建议您先在账户中创建 IAM 用户,并按本节操作步骤所述顺序将策略附加到该用户。

在将每个策略附加到用户时,可使用控制台验证该策略的效果。最初,用户没有权限并且无法在控制台中执行任何操作。在将策略附加到用户时,可以验证用户是否能在控制台中执行各种操作。

建议您使用两个浏览器窗口:一个浏览器窗口用于创建用户和授予权限,另一个浏览器窗口用于使用用户凭证登录 Amazon Web Services Management Console,并在向用户授予权限时验证这些权限。

有关说明如何创建可用作执行角色的 IAM 角色的示例:Amazon WAF经典资源,请参阅创建 IAM 角色中的IAM 用户指南.

示例主题

创建 IAM 用户

首先,您需要创建一个 IAM 用户,将该用户添加到具有管理权限的 IAM 组,然后向您创建的 IAM 用户授予管理权限。随后,您可以使用专用 URL 和该用户的凭证访问 Amazon。

有关说明,请参阅创建您的第一个 IAM 用户和管理员组中的IAM 用户指南.

示例 1:授予用户对的只读访问权限Amazon WAF经典、CloudFront 和云观看

以下策略将向用户授予对的只读访问权限Amazon WAF经典资源、Amazon CloudFront 网络分配以及 Amazon CloudWatch 指标。对于需要权限查看设置的用户,这十分有用:Amazon WAF经典条件、规则和 Web ACL,用于了解与 Web ACL 关联的分配以及在 CloudWatch 中监控指标和请求示例。这些用户无法创建、更新或删除Amazon WAFClassic 资源。

{ "Version":"2012-10-17", "Statement": [ { "Action": [ "waf:Get*", "waf:List*", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics" ], "Effect": "Allow", "Resource": "*" } ] }

示例 2:授予用户对的完全访问权限Amazon WAF经典、CloudFront 和云观看

以下策略可让用户执行任何Amazon WAFCloudFront Web 分配上执行任何操作,并在 CloudWatch 中监控指标和请求示例。它对于用户十分有用Amazon WAFClassic 管理员。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "waf:*", "cloudfront:CreateDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudfront:DeleteDistribution", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics" ], "Effect": "Allow", "Resource": "*" } ] }

强烈建议您为拥有管理权限的用户配置 Multi-Factor Authentication (MFA)。有关更多信息,请参阅 。将 Multi-Factor Authentication (MFA) 设备用于Amazon中的IAM 用户指南.

示例 3:授予对指定的访问权限Amazon Web Services 账户

此策略向账户 444455556666 授予以下权限:

  • 对的完全访问权限Amazon WAF经典的操作和资源。

  • 对所有 CloudFront 分配的读取和更新访问权限,这使您可以关联 Web ACL 和 CloudFront 分配。

  • 对所有 CloudWatch 指标和指标统计数据的读取访问权限,以便您可以在Amazon WAFClassic 控制台。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "waf:*" ], "Resource": [ "arn:aws:waf::444455556666:*" ] }, { "Effect": "Allow", "Action": [ "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudfront:UpdateDistribution", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics" ], "Resource": [ "*" ] } ] }

示例 4:授予对指定 Web ACL 的访问权限

此策略向账户 444455556666 中的 webacl ID 112233d7c-86b2-458b-af83-51c51example 授予以下权限:

  • 对 的完全访问权限Amazon WAFClassicGetUpdate, 和Delete操作和资源

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "waf:*" ], "Resource": [ "arn:aws:waf::444455556666:webacl/112233d7c-86b2-458b-af83-51c51example" ] } ] }