开始使用适用于 AWS 的 CSPM

编辑

概述

编辑

本页介绍如何使用云安全态势管理 (CSPM) 功能开始监控云资产的安全态势。

设置适用于 AWS 的 CSPM

编辑

您可以通过注册单个云账户或注册包含多个账户的组织来设置适用于 AWS 的 CSPM。无论哪种方式,首先您将添加 CSPM 集成,然后启用云账户访问。有两种可用的部署技术:无代理和基于代理。无代理部署允许您收集云态势数据,而无需管理 Elastic Agent 在云中的部署。基于代理的部署要求您在要监控的云账户中部署和管理 Elastic Agent。

无代理部署

编辑

此功能处于 Beta 测试阶段,可能会发生更改。设计和代码不如官方 GA 功能成熟,并且按原样提供,不提供任何保证。Beta 功能不受官方 GA 功能的支持 SLA 的约束。

  1. 在导航菜单中查找 集成,或使用 全局搜索字段
  2. 搜索 CSPM,然后单击结果。
  3. 单击 添加云安全态势管理 (CSPM)
  4. 选择 AWS,然后选择 AWS 组织以加入多个账户,或选择 单个账户以加入单个账户。
  5. 为您的集成指定一个名称,该名称与您要监控的 AWS 账户/组织的目的或团队相匹配,例如,dev-aws-account
  6. 单击 高级选项,然后选择 无代理 (BETA)
  7. 接下来,您需要向 AWS 进行身份验证。有两种方法可用

    1. 选项 1:直接访问密钥/CloudFormation(推荐)。在 首选方法 下,选择 直接访问密钥。展开 生成 AWS 账户凭据的步骤 部分,然后按照显示的说明使用 CloudFormation 自动创建必要的凭据。

      如果您不想监控组织中的每个账户,请使用单击 启动 CloudFormation 后出现的 OrganizationalUnitIDs 字段指定要监控的账户。

    2. 选项 2:临时密钥。要使用临时密钥进行身份验证,请参阅 临时密钥的说明。
  8. 选择身份验证方法并提供所有必要的凭据后,单击 保存并继续 以完成部署。您的数据应该会在几分钟内开始出现。

基于代理的部署

编辑
添加 CSPM 集成
编辑
  1. 在导航菜单中查找 集成,或使用 全局搜索字段
  2. 搜索 CSPM,然后单击结果。
  3. 单击 添加云安全态势管理 (CSPM)
  4. 选择 AWS,然后选择 AWS 组织以加入多个账户,或选择 单个账户以加入单个账户。
  5. 为您的集成指定一个名称,该名称与您要监控的 AWS 账户/组织的目的或团队相匹配,例如,dev-aws-account
设置云账户访问
编辑

CSPM 集成需要访问 AWS 的内置 SecurityAudit IAM 策略,以便发现和评估您云账户中的资源。有几种方法可以提供访问权限。

对于大多数用例,最简单的选项是使用 AWS CloudFormation 在您的 AWS 账户中自动配置必要的资源和权限。下面将介绍此方法以及几种手动选项。

CloudFormation(推荐)
编辑
  1. 添加云安全态势管理 (CSPM) 集成 菜单中,在 设置访问 下,选择 CloudFormation
  2. 在新浏览器标签或窗口中,以管理员身份登录到您要加入的 AWS 账户或组织。
  3. 返回到您的 Kibana 标签。单击页面底部的 保存并继续
  4. 查看信息,然后单击 启动 CloudFormation
  5. CloudFormation 模板会在新的浏览器标签中出现。
  6. 仅对于组织级部署,您必须将要部署到的组织单元 ID 输入到 CloudFormation 模板的 OrganizationalUnitIds 字段中。您可以在 AWS 控制台的 AWS Organizations → AWS 账户(在每个组织的名称下)找到组织单元 ID。您还可以使用此字段指定要监控的组织中的哪些账户以及要跳过的账户。
  7. (可选)使用右上角的控件切换到您要部署的 AWS 区域。
  8. 勾选 功能 下的复选框,以授权创建必要的资源。

    The Add permissions screen in AWS
  9. 在模板底部,选择 创建堆栈

当您返回到 Kibana 时,单击 查看资产 以查看您的新集成正在收集的数据。

组织级加入的手动身份验证
编辑

如果您要加入单个账户而不是组织,请跳过此部分。

当使用手动身份验证在组织级别加入时,您需要使用 AWS 控制台为要部署到的组织配置必要的权限

  • 在组织的管理账户(根账户)中,创建一个名为 cloudbeat-root 的 IAM 角色(名称很重要)。该角色需要几个策略

    • 以下内联策略
单击以展开策略
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "organizations:List*",
                "organizations:Describe*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
  • 以下信任策略
单击以展开策略
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<Management Account ID>:root"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
  • AWS 管理的 SecurityAudit 策略。

您必须将信任策略中的 <管理账户 ID> 替换为您的 AWS 账户 ID。

  • 接下来,对于要扫描的组织中的每个账户,创建一个名为 cloudbeat-securityaudit 的 IAM 角色,并具有以下策略

    • AWS 管理的 SecurityAudit 策略。
    • 以下信任策略
单击以展开策略
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<Management Account ID>:role/cloudbeat-root"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

您必须将信任策略中的 <管理账户 ID> 替换为您的 AWS 账户 ID。

创建必要的角色后,使用其中一种手动身份验证方法进行身份验证。

当使用以下任何身份验证方法部署到组织时,您需要确保您提供的凭据授予承担 cloudbeat-root 权限的权限。

手动身份验证方法
编辑

无论您使用哪种方法进行身份验证,请确保已附加 AWS 的内置 SecurityAudit IAM 策略

选项 1 - 默认实例角色
编辑

如果要部署到 AWS 组织而不是 AWS 账户,您应该已经创建了一个新角色cloudbeat-root。跳到步骤 2“将新的 IAM 角色附加到 EC2 实例”,并附加此角色。您可以使用现有或新的 EC2 实例。

按照 AWS 的 适用于 Amazon EC2 的 IAM 角色文档,使用 IAM 控制台创建 IAM 角色,这将自动生成实例配置文件。

  1. 创建 IAM 角色

    1. 在 AWS 中,转到您的 IAM 控制面板。单击 角色,然后单击 创建角色
    2. 选择受信任的实体 页面上的 受信任的实体类型 下,选择 AWS 服务
    3. 使用案例 下,选择 EC2。单击 下一步

      The Select trusted entity screen in AWS
    4. 添加权限 页面上,搜索并选择 SecurityAudit。单击 下一步

      The Add permissions screen in AWS
    5. 名称、查看和创建 页面上,为您的角色命名,然后单击 创建角色
  2. 将新的 IAM 角色附加到 EC2 实例

    1. 在 AWS 中,选择一个 EC2 实例。
    2. 选择 操作 > 安全 > 修改 IAM 角色

      The EC2 page in AWS
    3. 修改 IAM 角色 页面上,搜索并选择您的新 IAM 角色。
    4. 单击 更新 IAM 角色
    5. 返回 Kibana 并完成手动设置

请确保将 CSPM 集成部署到此 EC2 实例。在 Kibana 中完成设置时,在 设置访问* 部分,选择 *承担角色。对于无代理部署,将 角色 ARN 留空。对于基于代理的部署,将其留空,除非您想指定 Elastic Agent 应承担的角色而不是 EC2 实例的默认角色。单击 保存并继续

选项 2 - 直接访问密钥
编辑

访问密钥是 IAM 用户或 AWS 账户根用户的长期凭据。要将访问密钥用作凭据,您必须提供 访问密钥 ID秘密访问密钥。提供凭据后,完成手动设置

有关更多详细信息,请参阅 访问密钥和秘密访问密钥

创建 IAM 用户时,您必须选择 编程访问

选项 3 - 临时安全凭证
编辑

您可以在 AWS 中配置临时安全凭证,使其持续指定的时间。它们由访问密钥 ID、秘密访问密钥和会话令牌组成,通常使用 GetSessionToken 找到。

由于临时安全凭证是短期的,一旦过期,您需要生成新的凭证并手动更新集成配置,才能继续收集云态势数据。请在凭证过期之前更新,以避免数据丢失。

启用了多因素身份验证 (MFA) 的 IAM 用户在调用 GetSessionToken 时需要提交 MFA 代码。有关更多详细信息,请参阅 AWS 的临时安全凭证文档。

您可以使用 AWS CLI 生成临时凭证。例如,如果启用了 MFA,可以使用以下命令

sts get-session-token --serial-number arn:aws:iam::1234:mfa/[email protected] --duration-seconds 129600 --token-code 123456

此命令的输出包括以下字段,您应该在配置 KSPM 集成时提供这些字段

  • 访问密钥 ID:访问密钥的第一部分。
  • 秘密访问密钥:访问密钥的第二部分。
  • 会话令牌:使用临时安全凭证时所需的令牌。

提供凭证后,请完成手动设置

选项 4 - 共享凭证文件
编辑

如果您为不同的工具或应用程序使用不同的 AWS 凭证,则可以使用配置文件中的配置文件定义多个访问密钥。有关更多详细信息,请参阅 AWS 的共享凭证文件文档。

无需向集成提供 访问密钥 ID秘密访问密钥,而是提供在共享凭证文件中查找访问密钥所需的信息

  • 凭证配置文件名称:共享凭证文件中的配置文件名称。
  • 共享凭证文件:共享凭证文件的目录。

如果您没有为所有配置字段提供值,则集成将使用这些默认值

  • 如果未提供 访问密钥 ID秘密访问密钥ARN 角色,则集成将检查 凭证配置文件名称
  • 如果没有 凭证配置文件名称,将使用默认配置文件。
  • 如果 共享凭证文件 为空,将使用默认目录。
  • 对于 Linux 或 Unix,共享凭证文件位于 ~/.aws/credentials

提供凭证后,请完成手动设置

选项 5 - IAM 角色 Amazon 资源名称 (ARN)
编辑

IAM 角色 Amazon 资源名称 (ARN) 是您可以在 AWS 账户中创建的 IAM 身份。您定义角色的权限。角色没有标准的长期凭证,例如密码或访问密钥。相反,当您担任角色时,它会为您的会话提供临时安全凭证。

要使用 IAM 角色 ARN,请在首选手动方法下选择担任角色,输入 ARN,然后继续完成手动设置。

完成手动设置
编辑

提供 AWS 凭证后,在添加此集成的目标位置

如果您想监控尚未部署 Elastic Agent 的 AWS 账户或组织

  • 选择新主机
  • 命名 Elastic Agent 策略。使用与您要监控的云账户或账户的用途或团队匹配的名称。例如,dev-aws-account
  • 单击保存并继续,然后单击将 Elastic Agent 添加到主机添加代理向导将出现,并提供 Elastic Agent 二进制文件,您可以下载并将其部署到您的 AWS 账户。

如果您想监控已部署 Elastic Agent 的 AWS 账户或组织

  • 选择现有主机
  • 选择适用于要监控的 AWS 账户的代理策略。
  • 单击保存并继续