

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

# 预防性控制
<a name="preventative-controls"></a>

*预防性控制*是旨在防止事件发生的安全控制措施。这些防护机制是第一道防线，帮助防止未经授权的访问或对网络的意外更改。预防性控制的一个例子是具有只读访问权限的 AWS Identity and Access Management (IAM) 角色，因为它有助于防止未经授权的用户进行意外写入操作。

**Topics**
+ [目标](#preventative-objectives)
+ [流程](#preventative-process)
+ [使用案例](#preventative-use-cases)
+ [Technology](#preventative-technology)
+ [业务成果](#preventative-business-outcomes)

## 目标
<a name="preventative-objectives"></a>

预防性控制的主要目的是最大限度地减少或避免威胁事件发生的可能性。这种控制有助于防止未经授权的系统访问和意外的更改影响系统。预防性控制的目标如下：
+ **责任划分** - 预防性控制可以建立限制权限的逻辑边界，允许权限仅在指定的账户或环境中执行特定任务。示例包括：
  + 将工作负载划分到不同账户以执行特定服务
  + 将账户划分到独立的生产、开发和测试环境
  + 将访问权限和责任委派给多个实体以执行特定功能，例如，使用 IAM 角色或承担的角色仅允许特定的工作职能执行某些操作
+ **访问控制** - 预防性控制可以始终如一地允许或拒绝访问环境中的资源和数据。示例包括：
  + 防止用户超出其预期权限，即*权限提升*
  + 仅限授权用户和服务访问应用程序和数据
  + 确保管理员组尽量维持较小规模
  + 避免使用根用户凭证。
+ **强制执行** - 预防性控制可使您的公司遵守策略、准则和标准。示例包括：
  + 作为最低安全基线的锁定配置
  + 实施其他安全措施，比如多重身份验证
  + 避免由未经批准的角色执行非标准任务和操作

## 流程
<a name="preventative-process"></a>

*预防性控制映射*是将控制映射到需求，使用策略通过限制、禁用或阻止来实现这些控制的过程。在映射控制时，要考虑它们对环境、资源和用户的主动影响。以下是映射控制的最佳做法：
+ 应将禁止某项活动的严格控制映射到需要审查、批准和更改流程的生产环境。
+ 为了提供构建和测试的灵活性，开发环境或封闭环境可能会减少预防性控制。
+ 数据分类、资产风险级别和风险管理策略决定了预防性控制。
+ 映射到现有框架，作为遵守标准和法规的证据。
+ 按地理位置、环境、账户、网络、用户、角色或资源实施预防性控制。

## 使用案例
<a name="preventative-use-cases"></a>

### 数据处理
<a name="preventative-data-handling"></a>

创建一个可以访问账户中所有数据的角色。如果存在敏感的加密数据，过于宽松的权限可能会带来风险，具体取决于可以代入该角色的用户或组。通过使用 AWS Key Management Service (AWS KMS) 中的密钥策略，您可以控制谁有权访问密钥并可以解密数据。

### 权限提升
<a name="preventative-privilege-escalation"></a>

如果分配的管理和写入权限过于宽泛，用户可以绕过预期权限的限制，为自己授予额外的权限。创建和管理角色的用户可以分配*权限边界*，它定义了角色允许的最大权限。

### 工作负载锁定
<a name="preventative-workload-lockdown"></a>

如果您的企业没有可预见的使用特定服务的需求，请启用*服务控制策略，该策略*限制哪些服务可以在组织的成员账户中运行，或者根据该策略限制服务。 AWS 区域如果威胁行为体设法入侵和访问组织中的账户，这种预防性控制可以减少影响范围。有关更多信息，请参阅本指南中的[服务控制策略](#scps)。

### 对其他应用程序的影响
<a name="preventative-impact"></a>

预防性控制可以强制使用 IAM、加密和日志记录等服务和功能，以满足应用程序的安全要求。您还可以使用这些控制来限制威胁行为体因无意错误或配置错误而利用的操作，来帮助防范漏洞。

## Technology
<a name="preventative-technology"></a>

### 服务控制策略
<a name="scps"></a>

在中 AWS Organizations，[服务控制策略](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) (SCPs) 定义了组织中成员帐户的最大可用权限。这些策略可确保您的账户符合组织的访问控制准则。在为您的组织 SCPs 进行设计时，请注意以下几点：
+ SCPs 是预防性控制措施，因为它们为组织成员账户中的 IAM 角色和用户定义并强制执行允许的最大权限。
+ SCPs 仅影响组织成员账户中的 IAM 角色和用户。不会影响组织管理账户中的用户和角色。

通过定义每个 AWS 区域的最大权限，可以使 SCP 更加精细。

### IAM 权限边界
<a name="preventative-technology2"></a>

在 AWS Identity and Access Management (IAM) 中，[权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)用于设置基于身份的策略可以向 IAM 实体（用户或角色）授予的最大权限。实体的权限边界仅允许实体执行其基于身份的策略和权限边界都允许的操作。设置权限边界时，请注意以下几点：
+ 您可以使用 AWS 托管策略或客户托管策略来设置 IAM 实体的边界。
+ 权限边界自己不授予访问权限。权限边界策略限制了授予 IAM 实体的权限。

## 业务成果
<a name="preventative-business-outcomes"></a>

### 节省时间
<a name="preventative-business-outcome1"></a>
+ 通过在设置预防性控制后添加自动化，可以减少手动干预需求，降低出错频率。
+ 使用权限边界作为预防性控制有助于安全和 IAM 团队专注于关键任务，例如治理和支持。

### 监管合规
<a name="preventative-business-outcome2"></a>
+ 公司可能需要遵守内部或行业法规。这些可能是区域限制、用户和角色限制或服务限制。 SCPs 可以帮助您保持合规性并避免违规处罚。

### 降低风险
<a name="preventative-business-outcome3"></a>
+ 随着业务增长，创建和管理新角色和策略的请求数量也在增加。理解为每个应用程序手动创建权限所需的上下文变得更加困难。建立预防性控制作为基线，有助于防止用户执行意外操作，即使他们意外获得访问权限。
+ 对访问策略应用预防性控制提供了一个额外的保护层，来帮助保护数据和资产。