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

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

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

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

重要

我们建议您首先阅读以下介绍性主题,这些主题讲解了管理 Amazon Shield 资源访问的基本概念和选项。有关更多信息,请参阅管理 Amazon Shield 资源的访问权限的概述

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

{ "Version": "2016-06-02", "Statement": [ { "Sid": "CreateFunctionPermissions", "Effect": "Allow", "Action": [ "shield:ListProtections", "shield:DescribeProtection", "shield:ListAttacks", "shield:DescribeAttack" ], "Resource": "*" }, { "Sid": "PermissionToPassAnyRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/*" } ] }

该策略包含两条语句:

  • 第一条语句授予查看统计信息的权限Amazon Shield保护和行动. 该策略指定通配符 (*) 作为Resource值。

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

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

有关显示所有 Amazon Shield API 操作及其适用的资源的表,请参阅 API 操作的所需权限

Topics

使用 Amazon Shield 控制台所需的权限

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

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

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

Amazon Shield使用Amazon管理的策略AWSShieldDRTAccessPolicy,您可以使用它授予 Shield 响应团队 (SRT) 访问您的帐户的权限。这样可允许 SRT 对您的账户执行操作,并管理您的Amazon WAF规则和 Shield 保护。要使用此功能,您需要创建一个角色并将其传递给 Shield API 操作,并将 SRT 角色关联起来。在 API 中,这是AssociateDRTRole. 在 CLI 中,它是associate-drt-role. 有关此策略的更多信息,请参阅“第 5 步:配置AmazonSRT 支持”。

注意

您可以查看Amazon托管权限策略,方法是登录到 IAM 控制台并搜索策略。

您还可以创建自己的自定义 IAM 策略,以授予执行Amazon ShieldAPI 操作和资源。您可以将这些自定义策略附加到需要上述权限的 IAM 用户和组或您为 Shield 资源创建的自定义执行角色(IAM 角色)。

客户管理的策略示例

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

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

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

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

示例主题

创建 IAM 用户

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

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

示例 1:向用户授予对 Shield、云端和 CloudWatch 的只读访问权限

以下策略向用户授予对 Shield 关联资源的只读访问权限,包括 Amazon CloudFront 资源以及 Amazon CloudWatch 指标。对于需要权限查看 Shield 防护和攻击中的设置以及在 CloudWatch 中监控指标的用户,这十分有用。这些用户无法创建、更新或删除 Shield 资源。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ProtectedResourcesReadAccess", "Effect": "Allow", "Action": [ "cloudfront:List*", "elasticloadbalancing:List*", "route53:List*", "cloudfront:Describe*", "elasticloadbalancing:Describe*", "route53:Describe*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "cloudfront:GetDistribution*", "globalaccelerator:ListAccelerators", "globalaccelerator:DescribeAccelerator" ], "Resource": [ "arn:aws:elasticloadbalancing:*:*:*", "arn:aws:cloudfront::*:*", "arn:aws:route53:::hostedzone/*", "arn:aws:cloudwatch:*:*:*:*", "arn:aws:globalaccelerator::*:*" ] }, { "Sid": "ShieldReadOnly", "Effect": "Allow", "Action": [ "shield:List*", "shield:Describe*", "shield:Get*" ], "Resource": "*" } ] }

示例 2:向用户授予对 Shield、云端和云监控的完全访问权限

以下策略使用户可以执行任何 Shield 操作、对 CloudFront Web 分配执行任何操作以及在 CloudWatch 中监控指标和请求示例。它对作为 Shield 管理员的用户十分有用:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ProtectedResourcesReadAccess", "Effect": "Allow", "Action": [ "cloudfront:List*", "elasticloadbalancing:List*", "route53:List*", "cloudfront:Describe*", "elasticloadbalancing:Describe*", "route53:Describe*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "cloudfront:GetDistribution*", "globalaccelerator:ListAccelerators", "globalaccelerator:DescribeAccelerator" ], "Resource": [ "arn:aws:elasticloadbalancing:*:*:*", "arn:aws:cloudfront::*:*", "arn:aws:route53:::hostedzone/*", "arn:aws:cloudwatch:*:*:*:*", "arn:aws:globalaccelerator::*:*" ] }, { "Sid": "ShieldFullAccess", "Effect": "Allow", "Action": [ "shield:*" ], "Resource": "*" } ] }

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