

**引入全新的主机体验 AWS WAF**

现在，您可以使用更新的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息，请参阅[使用控制台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

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

# 将服务相关角色用于 AWS WAF
<a name="using-service-linked-roles"></a>

本节介绍如何使用服务相关角色授予对 AWS 账户中资源的 AWS WAF 访问权限。

AWS WAF 使用 AWS Identity and Access Management (IAM) [服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服务相关角色是一种与之直接关联的 IAM 角色的独特类型。 AWS WAF Service-linked 角色由预定义 AWS WAF ，包括该服务代表您调用其他 AWS 服务所需的所有权限。

服务相关角色使设置变得 AWS WAF 更加容易，因为您不必手动添加必要的权限。 AWS WAF 定义其服务相关角色的权限，除非另有定义，否则 AWS WAF 只能担任其角色。定义的权限包括信任策略和权限策略。这些权限策略不能附加到任何其他 IAM 实体。

只有在先删除角色的相关资源后，才能删除服务相关角色。这样可以保护您的 AWS WAF 资源，因为您不会无意中删除访问资源的权限。

有关支持服务相关角色的其它服务的信息，请参阅[使用 IAM 的AWS 服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)并查找**Service-Linked 角色**列中显示为**是**的服务。请选择**是**与查看该服务的服务关联角色文档的链接。

## Service-linked 的角色权限 AWS WAF
<a name="slr-permissions"></a>

AWS WAF 使用服务相关角色`AWSServiceRoleForWAFV2Logging`向 Amazon Data Firehose 写入日志。只有在启用登录功能后才会使用此角色 AWS WAF。有关日志记录的信息，请参阅[记录 AWS WAF 保护包 (Web ACL) 流量](logging.md)。

此服务相关角色附加到 AWS 托管策略`WAFV2LoggingServiceRolePolicy`。有关托管策略的更多信息，请参阅 [AWS 托管策略： WAFV2LoggingServiceRolePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-WAFV2LoggingServiceRolePolicy)。

`AWSServiceRoleForWAFV2Logging` 服务关联角色信任 `wafv2.amazonaws.com` 服务来代入角色。

该角色的权限策略 AWS WAF 允许对指定资源完成以下操作：
+ Amazon Data Firehose 操作：Firehose 数据流资源上名称以 `aws-waf-logs-` 开头的 `PutRecord` 和 `PutRecordBatch`。例如 `aws-waf-logs-us-east-2-analytics`。
+ AWS Organizations 行动：`DescribeOrganization`在 Organizations 组织资源上。
+ AWS Key Management Service 操作：`GenerateDataKey`并`Decrypt`允许 Amazon Data Firehose 使用客户托管的 AWS KMS 密钥对数据进行加密。

在 IAM 控制台中查看完整的服务相关角色:[AWSServiceRoleForWAFV2Logging](https://console.aws.amazon.com/iam/home#/roles/details/AWSServiceRoleForWAFV2Logging).

您必须配置权限，允许 IAM 实体（如用户、组或角色）创建、编辑或删除服务关联角色。有关更多信息，请参阅 *IAM 用户指南*中的[Service-Linked 角色权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 为 创建服务相关角色 AWS WAF
<a name="create-slr"></a>

您无需手动创建服务关联角色。当您启用 AWS WAF 登录功能 AWS 管理控制台，或者在 CLI 或 AWS WAF AP AWS WAF I 中`PutLoggingConfiguration`发出请求时， AWS WAF 会为您创建服务相关角色。

您必须具有 `iam:CreateServiceLinkedRole` 权限以启用日志记录。

如果您删除该服务关联角色，然后需要再次创建，您可以使用相同流程在账户中重新创建此角色。启用 AWS WAF 日志记录后， AWS WAF 会再次为您创建服务相关角色。

## 为 编辑服务相关角色 AWS WAF
<a name="edit-slr"></a>

AWS WAF 不允许您编辑`AWSServiceRoleForWAFV2Logging`服务相关角色。在创建服务相关角色后，您将无法更改角色的名称，因为可能有多种实体引用该角色。不过，您可以使用 IAM 编辑角色的说明。有关更多信息，请参阅 *IAM 用户指南*中的[编辑 Service-Linked 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 删除 的服务相关角色 AWS WAF
<a name="delete-slr"></a>

如果不再需要使用某个需要服务关联角色的功能或服务，我们建议您删除该角色。这样就没有未被主动监控或维护的未使用实体。但是，必须先清除服务相关角色的资源，然后才能手动删除它。

**注意**  
如果您尝试删除资源时 AWS WAF 服务正在使用该角色，则删除可能会失败。如果发生这种情况，请等待几分钟后重试。

**删除 AWS WAF 使用的资源 `AWSServiceRoleForWAFV2Logging`**

1. 在 AWS WAF 控制台上，从每个 Web ACL 中删除日志记录。有关更多信息，请参阅 [记录 AWS WAF 保护包 (Web ACL) 流量](logging.md)。

1. 使用 API 或 CLI，为已启用日志记录的每个 web ACL 提交 `DeleteLoggingConfiguration` 请求。有关更多信息，请参阅 [AWS WAF API 参考](https://docs.aws.amazon.com/waf/latest/APIReference/Welcome.html)。

**使用 IAM 手动删除服务关联角色**

使用 IAM 控制台、IAM CLI 或 IAM API 删除 `AWSServiceRoleForWAFV2Logging` 服务相关角色。有关更多信息，请参阅 *IAM 用户指南*中的[删除Service-Linked 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## 支持的区域 AWS WAF 服务关联角色
<a name="slr-regions"></a>

AWS WAF 支持在提供服务的所有地区使用服务相关角色。有关更多信息，请参阅 [AWS WAF 终端节点和限额](https://docs.aws.amazon.com/general/latest/gr/waf.html)。