

# AWS 安全事件响应 如何与 IAM 协同工作
<a name="how-aws-security-incident-response-works-with-iam"></a>

 AWS Identity and Access Management（IAM）是一种 AWS 服务，可以帮助管理员安全地控制对 AWS 资源的访问。IAM 管理员控制谁可以通过*身份验证*（登录）和*授权*（具有权限）来使用 AWS 安全事件响应 资源。IAM 是一项可以免费使用的 AWS 服务。


|  可以与 AWS 安全事件响应 搭配使用的 IAM 功能  |   | 
| --- | --- | 
|  *IAM 功能*  |  *服务是否支持*  | 
|  基于身份的策略  |  是  | 
|  基于资源的策略  |  否  | 
|  策略操作  |  是  | 
|  策略资源  |  是  | 
|  策略条件键  |  是（全球）  | 
|  ACL  |  否  | 
|  ABAC（策略中的标签）  |  是  | 
|  临时凭证  |  是  | 
|  转发访问会话（FAS）  |  是  | 
|  服务角色  |  否  | 
|  服务关联角色  |  是  | 

**Topics**
+ [适用于 AWS 安全事件响应 的基于身份的策略](identity-based-policies.md)
+ [AWS 安全事件响应 的策略条件键](policy-condition-keys-for-aws-security-incident-response.md)
+ [AWS 安全事件响应 中的访问控制列表（ACL）](access-control-lists-acls-in-aws-security-incident-response.md)

# 适用于 AWS 安全事件响应 的基于身份的策略
<a name="identity-based-policies"></a>

 基于身份的策略是可附加到身份（如 IAM 用户、用户组或角色）的 JSON 权限策略文档。这些策略控制用户和角色可在何种条件下对哪些资源执行哪些操作。要了解如何创建基于身份的策略，请参阅《IAM 用户指南》**中的[创建 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

 通过使用 IAM 基于身份的策略，您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。您无法在基于身份的策略中指定主体，因为它适用于其附加的用户或角色。要了解可在 JSON 策略中使用的所有元素，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素引用](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

**Topics**
+ [基于身份的策略示例](iam-examples.md)
+ [策略最佳实践](policy-best-practices.md)
+ [使用 AWS 安全事件响应 控制台](using-the-amazon-aws-security-incident-response-console.md)
+ [允许用户查看他们自己的权限](allow-users-to-view-their-own-permissions.md)
+ [基于资源的策略](resource-based-policies.md)
+ [策略操作](policy-actions.md)

# 基于身份的策略示例
<a name="iam-examples"></a>

 默认情况下，用户和角色没有创建或修改 AWS 安全事件响应 资源的权限。它们也无法使用 AWS 管理控制台、AWS 命令行界面（AWS CLI）或 AWS API 执行任务。IAM 管理员可以创建 IAM 策略，授予用户对所需资源执行操作的权限。管理员随后可以向角色添加 IAM 策略，用户可以代入角色。

 要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略，请参阅 *IAM 用户指南*中的 [创建 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)。

 有关 AWS 安全事件响应定义的操作和资源类型的详细信息（包括每种资源类型的 ARN 格式），请参阅《Service Authorization Reference》中的 *Actions, resources, and condition keys for AWS 安全事件响应*。**

# 策略最佳实践
<a name="policy-best-practices"></a>

 基于身份的策略确定某个人是否可以创建、访问或删除您账户中的 AWS 安全事件响应 资源。这些操作可能会使 AWS 账户产生成本。创建或编辑基于身份的策略时，请遵循以下指南和建议：

 **AWS 托管式策略及转向最低权限许可入门**：要开始向用户和工作负载授予权限，请使用 *AWS 托管式策略*来为许多常见使用场景授予权限。您可以在 AWS 账户中找到这些策略。我们建议通过定义特定于您的使用案例的 AWS 客户管理型策略来进一步减少权限。有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[工作职能的 AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。

 **应用最低权限**：在使用 IAM 策略设置权限时，请仅授予执行任务所需的权限。为此，您可以定义在特定条件下可以对特定资源执行的操作，也称为*最低权限许可*。有关使用 IAM 应用权限的更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。

**使用 IAM 策略中的条件进一步限制访问权限**：您可以向策略添加条件来限制对操作和资源的访问。例如，您可以编写策略条件来指定必须使用 SSL 发送所有请求。如果通过特定 AWS 服务（例如 AWS CloudFormation）使用服务操作，您还可以使用条件来授予对服务操作的访问权限。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM JSON 策略元素：条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。

**使用 IAM Access Analyzer 验证您的 IAM 策略，以确保权限的安全性和功能性**：IAM Access Analyzer 会验证新策略和现有策略，以确保策略符合 IAM 策略语言（JSON）和 IAM 最佳实践。IAM Access Analyzer 提供 100 多项策略检查和可操作的建议，以帮助您制定安全且功能性强的策略。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM Acess Analyzer 策略验证](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。

**需要多重身份验证（MFA）** – 如果您所处的场景要求您的 AWS 账户中有 IAM 用户或根用户，请启用 MFA 来提高安全性。若要在调用 API 操作时需要 MFA，请将 MFA 条件添加到您的策略中。有关更多信息，请参阅《IAM 用户指南》**中的[配置受 MFA 保护的 API 访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

 有关 IAM 中的最佳实操的更多信息，请参阅《IAM 用户指南》中的 [IAM 中的安全最佳实操](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)**。

# 使用 AWS 安全事件响应 控制台
<a name="using-the-amazon-aws-security-incident-response-console"></a>

 要访问 https://console.aws.amazon.com/security-ir/，您必须具有一组最低权限。这些权限必须允许您列出和查看有关您的 AWS 账户中的 AWS 安全事件响应 资源的详细信息。如果创建比必需的最低权限更为严格的基于身份的策略，对于附加了该策略的实体（用户或角色），控制台将无法按预期正常运行。

 对于只需要调用 AWS CLI 或 AWS API 的用户，您无需为其提供最低控制台权限。相反，只允许访问与其尝试执行的 API 操作相匹配的操作。

 附加 AWS 安全事件响应访问或只读 AWS 托管策略，可确保用户和角色可以使用服务控制台。有关更多信息，请参阅《IAM 用户指南》**中的[为用户添加权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

# 允许用户查看他们自己的权限
<a name="allow-users-to-view-their-own-permissions"></a>

 该示例说明了您如何创建策略，以允许 IAM 用户查看附加到其用户身份的内联和托管式策略。此策略包含通过控制台或者使用 AWS CLI 或 AWS API 以编程方式完成此操作所需的权限。

# 基于资源的策略
<a name="resource-based-policies"></a>

 ***AWS 安全事件响应中基于资源的策略*** 

 支持基于资源的策略：否 

 基于资源的策略是附加到资源的 JSON 策略文档。基于资源的策略的示例包括 IAM *角色信任策略*和 Amazon S3 *存储桶策略*。在支持基于资源的策略的服务中，服务管理员可以使用它们来控制对特定资源的访问。对于在其中附加策略的资源，策略定义指定主体可以对该资源执行哪些操作以及在什么条件下执行。您必须在基于资源的策略中[指定主体](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。主体可以包括账户、用户、角色、联合用户或 AWS 服务。

 有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 中的跨账户资源访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

# 策略操作
<a name="policy-actions"></a>

 ***适用于 AWS 安全事件响应的策略操作*** 

 支持策略操作：是 

 管理员可以使用 AWS JSON 策略来指定谁有权访问什么内容。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

 JSON 策略的 Action 元素描述可用于在策略中允许或拒绝访问的操作。策略操作通常与关联的 AWS API 操作同名。有一些例外情况，例如没有匹配 API 操作的*仅限权限* 操作。还有一些操作需要在策略中执行多个操作。这些附加操作称为*相关操作*。

 在策略中包含操作以授予执行关联操作的权限。

 要查看 AWS 安全事件响应操作的列表，请参阅《Service Authorization Reference》**中 AWS 安全事件响应定义的操作。

 AWS 安全事件响应 中的策略操作在操作前使用以下前缀：

 AWS 安全事件响应 -identity 

 要在单个语句中指定多项操作，请使用逗号将它们隔开。

"Action": [ "AWS 安全事件响应 -identity:action1", "AWS 安全事件响应 -identity:action2" ]

 ***AWS 安全事件响应的策略资源*** 

**支持策略资源：**是。管理员可以使用 AWS JSON 策略来指定谁有权访问什么内容。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

 JSON 策略的 Resource 元素指定要向其应用操作的一个或多个对象。语句必须包含 Resource 或 NotResource 元素。作为最佳实践，请使用其 [Amazon 资源名称（ARN）](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)指定资源。对于支持特定资源类型（称为*资源级权限*）的操作，您可以执行此操作。

 对于不支持资源级权限的操作（如列出操作），请使用通配符（\$1）指示语句应用于所有资源。

 "Resource": "\$1"

# AWS 安全事件响应 的策略条件键
<a name="policy-condition-keys-for-aws-security-incident-response"></a>

 **支持特定于服务的策略条件键：**否 

 管理员可以使用 AWS JSON 策略来指定谁有权访问什么内容。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

 在 Condition 元素（或 Condition *块*）中，您可以指定语句生效的条件。条件元素为可选元素。您可以创建使用[条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)（例如，等于或小于）的条件表达式，以使策略中的条件与请求中的值相匹配。

 如果您在一个语句中指定多个 Condition 元素，或在单个 Condition 元素中指定多个键，则 AWS 会使用 AND 逻辑运算评估条件。如果您为单个条件键指定多个值，则 AWS 会使用 OR 逻辑运算来评估条件。在授予语句的权限之前必须满足所有的条件。

 在指定条件时，您也可以使用占位符变量。例如，只有在使用 IAM 用户名标记 IAM 用户时，您才能为其授予访问资源的权限。有关更多信息，请参阅*《IAM 用户指南》*中的 [IAM 策略元素：变量和标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)。

 AWS 支持全局条件键和特定于服务的条件键。要查看所有 AWS 全局条件键，请参阅*《IAM 用户指南》*中的 [AWS 全局条件上下文键](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

# AWS 安全事件响应 中的访问控制列表（ACL）
<a name="access-control-lists-acls-in-aws-security-incident-response"></a>

 **支持 ACL：**否 

 访问控制列表（ACL）控制哪些主体（账户成员、用户或角色）有权访问资源。ACL 与基于资源的策略类似，但它们不使用 JSON 策略文档格式。

 ***用于 AWS 安全事件响应的基于属性的访问权限控制（ABAC）*** 

 **支持 ABAC（策略中的标签）：**是 

 基于属性的访问控制（ABAC）是一种授权策略，该策略基于属性来定义权限。在 AWS 中，这些属性称为*标签*。您可以将标签附加到 IAM 实体（用户或角色）以及 AWS 资源。标记实体和资源是 ABAC 的第一步。然后设计 ABAC 策略，以在主体的标签与他们尝试访问的资源标签匹配时允许操作。ABAC 在快速增长的环境中非常有用，并在策略管理变得繁琐的情况下可以提供帮助。

 要基于标签控制访问，您需要使用 AWS:ResourceTag/key-name、AWS:RequestTag/key-name 或 AWS:TagKeys 条件键在策略的[条件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供标签信息。如果某个服务对于每种资源类型都支持所有这三个条件键，则对于该服务，该值为**是**。如果某个服务仅对于部分资源类型支持所有这三个条件键，则该值为**部分**。有关 ABAC 的更多信息,请参阅《IAM 用户指南**》中的[什么是 ABAC？](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)。要查看设置 ABAC 步骤的教程，请参阅《IAM 用户指南》**中的[使用基于属性的访问权限控制（ABAC）](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)。

 ***将临时凭证用于 AWS 安全事件响应*** 

**支持临时凭证：**是

AWS 服务在您使用临时凭证登录时无法正常工作。有关更多信息，包括AWS服务与临时凭证配合使用，请参阅《IAM 用户指南》**中的[使用 IAM 的AWS服务](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。如果您不使用用户名和密码而用其他方法登录到 AWS 管理控制台，可使用临时凭证。例如，当您使用贵公司的单点登录（SSO）链接访问 AWS 时，该过程将自动创建临时凭证。当您以用户身份登录控制台，然后切换角色时，您还会自动创建临时凭证。有关切换角色的更多信息，请参阅《IAM 用户指南》**中的[切换到角色（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)。

 您可以使用 AWS CLI 或者 AWS API 手动创建临时凭证。之后，您可以使用这些临时凭证访问 AWS。AWS 建议您动态生成临时凭证，而不是使用长期访问密钥。有关更多信息，请参阅 [IAM 中的临时安全凭证](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html)。

 ***AWS 安全事件响应 的转发访问会话*** 

 **支持转发访问会话（FAS）：**是 

 当您使用 IAM 用户或角色在 AWS 中执行操作时，您将被视为主体。使用某些服务时，您可能会执行一个操作，然后此操作在其他服务中启动另一个操作。FAS 使用主体调用 AWS 服务的权限，结合请求的 AWS 服务，向下游服务发出请求。只有在服务收到需要与其它 AWS 服务或资源交互才能完成的请求时，才会发出 FAS 请求。在这种情况下，您必须具有执行这两项操作的权限。有关发出 FAS 请求时的策略详情，请参阅[转发访问会话](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html)。