AWS CSPM 入门

编辑

概述

编辑

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

设置 AWS CSPM

编辑

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

无代理部署

编辑

此功能处于测试阶段,可能会发生变化。其设计和代码不如正式 GA 功能成熟,按“原样”提供,不提供任何保证。测试版功能不受正式 GA 功能支持 SLA 的约束。

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

    1. 选项 1:直接访问密钥/CloudFormation(推荐)。在 首选方法 下,选择 直接访问密钥。展开 生成 AWS 账户凭证的步骤 部分,然后按照显示的说明使用 CloudFormation 自动创建必要的凭证。
    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. 仅对于组织级部署,您必须在 CloudFormation 模板的 OrganizationalUnitIds 字段中输入要部署到的组织单元的 ID。您可以在 AWS 控制台的 AWS 组织 → AWS 账户 下找到它(它显示在组织名称下)。
  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 策略。

您必须将信任策略中的 <Management account 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"
        }
    ]
}

您必须将信任策略中的 <Management account 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 账户的代理策略。
  • 单击保存并继续