

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

# 教程：AWS 上的自动安全响应入门
<a name="getting-stated-with-asr"></a>

本教程将指导您完成首次部署。它将从部署解决方案的先决条件开始，最后是你修复成员账户中的示例发现。

## 准备账目
<a name="prepare-the-accounts"></a>

为了演示该解决方案的跨账户和跨区域修复功能，本教程将使用两个账户。您也可以将解决方案部署到单个帐户。

以下示例使用账户`111111111111`和`222222222222`来演示解决方案。 `111111111111`将是管理员帐户，也`222222222222`将是成员帐户。我们将制定解决方案，以修复各地区`us-east-1`和`us-west-2`地区的资源调查结果。

下表举例说明了我们将针对每个账户和地区的每个步骤采取的行动。


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 无 | 无 | 
|  `222222222222`  | 成员 | 无 | 无 | 

管理员帐户是执行解决方案管理操作的帐户，即手动启动修复或使用修复配置 DynamoDB 表启用全自动修复。此账户还必须是您想要修复发现的所有账户的 Security Hub 委托管理员账户，但它不必是，也不应是您的账户所属的 AWS 组织的 AWS Organizations 管理员账户。

## 启用 AWS Config
<a name="enable-aws-config"></a>

请查看以下文档：
+  [AWS Config 文档](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [AWS Config 定价](https://aws.amazon.com/config/pricing/) 
+  [启用 AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html) 

在两个账户和两个区域中启用 AWS Config。这将产生费用。

**重要**  
确保选择 “包括全球资源（例如 AWS IAM 资源）” 选项。如果您在启用 AWS Config 时未选择此选项，则不会看到与全球资源（例如 AWS IAM 资源）相关的调查结果


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 启用 AWS Config | 启用 AWS Config | 
|  `222222222222`  | 成员 | 启用 AWS Config | 启用 AWS Config | 

## 启用 AWS 安全中心
<a name="enable-aws-security-hub"></a>

请查看以下文档：
+  [AWS Security Hub 文档](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) 
+  [AWS Security Hub 定价](https://aws.amazon.com/security-hub/pricing/) 
+  [启用 AWS Security Hub](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html) 

在两个账户和两个区域中启用 AWS Security Hub。这将产生费用。


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 启用 AWS Security Hub | 启用 AWS Security Hub | 
|  `222222222222`  | 成员 | 启用 AWS Security Hub | 启用 AWS Security Hub | 

## 启用整合的控制结果
<a name="enable-consolidated-findings"></a>

请查看以下文档：
+  [生成和更新控制结果](https://docs.aws.amazon.com/securityhub/latest/userguide/controls-findings-create-update.html) 

在本教程中，我们将演示在启用 AWS Security Hub 的合并控制结果功能（这是推荐的配置）的情况下如何使用该解决方案。在截至撰写本文时还不支持此功能的分区中，您需要部署特定于标准的剧本，而不是 SC（安全控制）。

在两个账户和两个区域中启用合并控制结果。


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 启用整合的控制结果 | 启用整合的控制结果 | 
|  `222222222222`  | 成员 | 启用整合的控制结果 | 启用整合的控制结果 | 

使用新功能可能需要一些时间才能生成调查结果。您可以继续本教程，但是如果没有新功能，您将无法修复生成的发现。使用新要素生成的结果可以通过`GeneratorId`字段值来识别`security-control/<control_id>`。

## 配置跨区域查找结果聚合
<a name="configure-cross-region-findings"></a>

请查看以下文档：
+  [跨区域聚合](https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html) 
+  [启用跨区域聚合](https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation-enable.html) 

在两个账户中配置从 **us-west-2** 到 us-east-1 的查找聚合**。**


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 从 us-west-2 配置聚合 | 无 | 
|  `222222222222`  | 成员 | 从 us-west-2 配置聚合 | 无 | 

调查结果可能需要一些时间才能传播到聚合区域。您可以继续本教程，但是在其他区域的发现结果开始出现在聚合区域中之前，您将无法对其进行修复。

## 指定 Security Hub 管理员帐户
<a name="designate-a-security-hub-admin"></a>

请查看以下文档：
+  [在 AWS Security Hub 中管理账户](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-accounts.html) 
+  [管理组织成员账户](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-accounts-orgs.html) 
+  [通过邀请管理成员账户](https://docs.aws.amazon.com/securityhub/latest/userguide/account-management-manual.html) 

在接下来的示例中，我们将使用手动邀请方法。对于一组生产账户，我们建议通过 AWS Organizations 管理 Security Hub 的委托管理。

在 AWS Security Hub 控制台的管理员账户 (`111111111111`) 中，邀请成员账户 (`222222222222`) 接受管理员账户 () 作为 Security Hub 授权管理员的身份接受管理员账户。从成员账户接受邀请。


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 邀请成员账号 | 无 | 
|  `222222222222`  | 成员 | 接受邀请 | 无 | 

调查结果可能需要一些时间才能传播到管理员帐户。您可以继续本教程，但是在成员帐户中发现的结果开始出现在管理员帐户中之前，您将无法对其进行修复。

## 为自行管理 StackSets 的权限创建角色
<a name="create-roles-for-self-managed-stacksets"></a>

请查看以下文档：
+  [AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) 
+  [授予自我管理权限](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html) 

我们将向多个账户部署 CloudFormation 堆栈，因此我们将使用 StackSets。我们无法使用服务管理权限，因为管理堆栈和成员堆栈都有嵌套堆栈，服务不支持这些堆栈，因此我们必须使用自我管理的权限。

部署堆栈以获得基本的 StackSet 操作权限。对于生产账户，您可能希望根据 “高级权限选项” 文档缩小权限范围。


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 部署 StackSet 管理员角色堆栈<br />部署 StackSet 执行角色堆栈 | 无 | 
|  `222222222222`  | 成员 | 部署 StackSet 执行角色堆栈 | 无 | 

## 创建将生成示例结果的不安全资源
<a name="create-the-insecure-resources"></a>

请查看以下文档：
+  [Security Hub 控件参考](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-controls-reference.html) 
+  [AWS Lambda 控件](https://docs.aws.amazon.com/securityhub/latest/userguide/lambda-controls.html) 

以下示例资源配置不安全，用于演示补救措施。示例控件是 Lambda.1：Lambda 函数策略应禁止公开访问。

**重要**  
我们将故意创建配置不安全的资源。请查看控制的性质，并评估在您的环境中为自己创建此类资源的风险。请注意您的组织可能拥有的任何用于检测和报告此类资源的工具，并在适当时申请例外。如果我们选择的示例控件不适合您，请选择该解决方案支持的另一个控件。

在成员账户的第二个区域中，导航到 AWS Lambda 控制台并在最新的 Python 运行时中创建函数。在 “配置” → “权限” 下，添加一条策略声明，允许在不进行身份验证的情况下从 URL 调用该函数。

在控制台页面确认该功能允许公共访问。解决方案修复此问题后，比较权限以确认公共访问权限已被撤销。


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 无 | 无 | 
|  `222222222222`  | 成员 | 无 | 使用不安全的配置创建 Lambda 函数 | 

AWS Config 可能需要一些时间才能检测到不安全的配置。您可以继续本教程，但在 Config 检测到发现之前，您将无法对其进行补救。

## 为相关控件创建 CloudWatch 日志组
<a name="create-cloudwatch-log-groups"></a>

请查看以下文档：
+  [使用 Amazon CloudTrail 日志监控 CloudWatch 日志文件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/monitor-cloudtrail-log-files-with-cloudwatch-logs.html) 
+  [CloudTrail 控件](https://docs.aws.amazon.com/securityhub/latest/userguide/cloudtrail-controls.html) 

该解决方案支持的各种 CloudTrail 控件要求有一个作为多区域 CloudTrail目标的 CloudWatch 日志组。在以下示例中，我们将创建一个占位符日志组。对于生产帐户，您应该正确配置与 CloudWatch 日志的 CloudTrail 集成。

在每个账户和区域中创建一个同名的日志组，例如：`asr-log-group`。


| Account | 用途 | us-east-1 中的行动 | us-west-2 中的行动 | 
| --- | --- | --- | --- | 
|  `111111111111`  | Admin | 创建日志组 | 创建日志组 | 
|  `222222222222`  | 成员 | 创建日志组 | 创建日志组 | 