手动管理 Amazon EC2 实例的安全代理 - Amazon GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

手动管理 Amazon EC2 实例的安全代理

启用运行时监控后,您需要手动安装 GuardDuty 安全代理。通过安装代理, GuardDuty 将接收来自 Amazon EC2 实例的运行时事件。

要管理 GuardDuty 安全代理,您必须创建 Amazon VPC 终端节点,然后按照步骤手动安装安全代理。

手动创建 Amazon VPC 终端节点

在安装 GuardDuty 安全代理之前,必须先创建亚马逊虚拟私有云 (Amazon VPC) 终端节点。这将有助于 GuardDuty 接收您的 Amazon EC2 实例的运行时事件。

注意

使用 VPC 终端节点无需支付额外费用。

创建 Amazon VPC 终端节点
  1. 登录 Amazon Web Services Management Console 并打开亚马逊 VPC 控制台,网址为 https://console.aws.amazon.com/vpc/

  2. 在导航窗格的 VPC 私有云下,选择终端节点

  3. 选择创建端点

  4. 创建端点页面​​上,对于服务类别,选择其他端点服务

  5. 对于服务名称,输入 com.amazonaws.us-east-1.guardduty-data

    请务必将 us-ea st-1 替换为你的。 Amazon Web Services 区域该区域必须与属于您的 Amazon 账户 ID 的 Amazon EC2 实例位于同一区域。

  6. 选择验证服务

  7. 成功验证服务名称后,选择您的实例所在的 VPC。添加以下政策,仅限指定账户使用 Amazon VPC 终端节点。使用此策略下面提供的组织 Condition,您可以更新以下策略来限制对端点的访问。要向您组织中的特定账户 ID 提供 Amazon VPC 终端节点支持,请参阅Organization condition to restrict access to your endpoint

    { "Version": "2012-10-17", "Statement": [ { "Action": "*", "Resource": "*", "Effect": "Allow", "Principal": "*" }, { "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "111122223333" } }, "Action": "*", "Resource": "*", "Effect": "Deny", "Principal": "*" } ] }

    aws:PrincipalAccount 账户 ID 必须与包含 VPC 和 VPC 端点的账户匹配。以下列表显示如何与其他 Amazon 账户 ID 共享 VPC 终端节点:

    • 要指定多个账户来访问 VPC 终端节点,请"aws:PrincipalAccount: "111122223333"使用以下区块替换:

      "aws:PrincipalAccount": [ "666666666666", "555555555555" ]

      请务必将 Amazon 账户 ID 替换为需要访问 VPC 终端节点的账户的账户 ID。

    • 要允许组织中的所有成员访问 VPC 终端节点,请"aws:PrincipalAccount: "111122223333"替换为以下行:

      "aws:PrincipalOrgID": "o-abcdef0123"

      一定要用你的组织 ID 替换组织 o-abcdef0123

    • 要限制通过组织 ID 访问资源,请将您的ResourceOrgID添加到策略中。有关更多信息,请参阅 IAM 用户指南中的 aws:ResourceOrgID

      "aws:ResourceOrgID": "o-abcdef0123"
  8. 其他设置下,选择启用 DNS 名称

  9. 子网下,选择您的实例所在的子网。

  10. 安全组下,选择一个已从您的 VPC(或您的 Amazon EC2 实例)启用入站端口 443 的安全组。如果您还没有启用入站端口 443 的安全组,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的创建安全组

    如果在限制您的 VPC(或实例)的入站权限时出现问题,请为来自任何 IP 地址的入站 443 端口提供支持。(0.0.0.0/0)

手动安装安全客户端

GuardDuty 提供了以下两种在您的 Amazon EC2 实例上安装 GuardDuty 安全代理的方法:

  • 方法 1-通过使用 Amazon Systems Manager -此方法需要 Amazon Systems Manager 管理您的 Amazon EC2 实例。

  • 方法 2-使用 RPM 安装脚本-无论您的 Amazon EC2 实例是否处于 Amazon Systems Manager 托管状态,您都可以使用此方法。

方法 1-通过使用 Amazon Systems Manager

要使用此方法,请确保您的 Amazon EC2 实例处于 Amazon Systems Manager 托管状态,然后安装代理。

Amazon Systems Manager 托管 Amazon EC2 实例

使用以下步骤 Amazon Systems Manager 管理您的 Amazon EC2 实例。

  • Amazon Systems Manager帮助您管理 Amazon 应用程序和资源 end-to-end 并实现大规模的安全运营。

    要使用管理您的 Amazon EC2 实例 Amazon Systems Manager,请参阅Amazon Systems Manager 用户指南中的为 Amazon EC2 实例设置 Systems Manager

  • 下表显示了新的 GuardDuty 托管 Amazon Systems Manager 文档:

    文档名称 文档类型 用途

    AmazonGuardDuty-RuntimeMonitoringSsmPlugin

    Distributor

    打包 GuardDuty 安全客户端。

    AmazonGuardDuty-ConfigureRuntimeMonitoringSsmPlugin

    命令

    运行安装/卸载脚本来安装安全客户端。 GuardDuty

    有关更多信息 Amazon Systems Manager,请参阅《Amazon Systems Manager 用户指南》中的 Amazon EC2 Systems Manager 文档

要安装适用于 Amazon EC2 实例的 GuardDuty 代理,请使用以下方法 Amazon Systems Manager
  1. 打开 Amazon Systems Manager 控制台,网址为 https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择 “文档

  3. 在 Ow ned by Amazon 中,选择AmazonGuardDuty-ConfigureRuntimeMonitoringSsmPlugin

  4. 选择 Run Command

  5. 输入以下 “运行命令” 参数

    • 操作:选择 “安装”。

    • 安装类型:选择 “安装” 或 “卸载”。

    • 名称: AmazonGuardDuty-RuntimeMonitoringSsmPlugin

    • 版本:如果此处仍为空,您将获得最新版本 GuardDuty 的安全客户端。有关发行版本的更多信息,请参阅GuardDuty 适用于 Amazon EC2 实例的安全代理

  6. 选择目标的 Amazon EC2 实例。您可以选择一个或多个 Amazon EC2 实例。有关更多信息,请参阅《Amazon Systems Manager 用户指南》中的从控制台Amazon Systems Manager 运行命令

  7. 验证 GuardDuty 代理安装是否正常。有关更多信息,请参阅 正在验证 GuardDuty 安全代理安装状态

方法 2-使用 RPM 安装脚本

重要

我们强烈建议您在计算机上安装 GuardDuty 安全代理 RPM 签名之前对其进行验证。

  1. 验证 GuardDuty 安全代理 RPM 签名

    1. 下载相应的公钥、x86_64 RPM 的签名、arm64 RPM 的签名以及指向 Amazon S3 存储桶中托管的 RPM 脚本的相应访问链接

      您可以使用以下模板来形成公钥、x86_64 RPM 的签名、arm64 RPM 的签名以及 RPM 脚本的相应访问链接。替换 Amazon Web Services 区域、 Amazon 账户 ID 和 GuardDuty 代理版本的值以访问 RPM 脚本。

      • 公钥

        s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.1.0/publickey.pem
      • GuardDuty 安全代理 RPM 签名

        x86_64 RPM 的签名
        s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.1.0/x86_64/amazon-guardduty-agent-1.1.0.x86_64.sig
        arm64 RPM 的签名
        s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.1.0/arm64/amazon-guardduty-agent-1.1.0.arm64.sig
      • 访问 Amazon S3 存储桶中 RPM 脚本的链接

        x86_64 RPM 的访问链接
        s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.1.0/x86_64/amazon-guardduty-agent-1.1.0.x86_64.rpm
        arm64 RPM 的访问链接
        s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.1.0/arm64/amazon-guardduty-agent-1.1.0.arm64.rpm

      在以下命令中,要下载相应的公钥、x86_64 RPM 的签名、arm64 RPM 的签名以及 Amazon S3 存储桶中托管的 RPM 脚本的相应访问链接,请确保将账户 ID 替换为相应 Amazon Web Services 账户 的 ID,将区域替换为当前区域。

      aws s3 cp s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.1.0/x86_64/amazon-guardduty-agent-1.1.0.x86_64.rpm ./amazon-guardduty-agent-1.1.0.x86_64.rpm aws s3 cp s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.1.0/x86_64/amazon-guardduty-agent-1.1.0.x86_64.sig ./amazon-guardduty-agent-1.1.0.x86_64.sig aws s3 cp s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.1.0/publickey.pem ./publickey.pem
      Amazon Web Services 区域 区域名称 Amazon 账号
      eu-west-1 欧洲地区(爱尔兰) 694911143906
      us-east-1 美国东部(弗吉尼亚州北部) 593207742271
      us-west-2 美国西部(俄勒冈州) 733349766148
      eu-west-3 欧洲地区(巴黎) 665651866788
      us-east-2 美国东部(俄亥俄州) 307168627858
      eu-central-1 欧洲地区(法兰克福) 323658145986
      ap-northeast-2 亚太地区(首尔) 914738172881
      eu-north-1 欧洲地区(斯德哥尔摩) 591436053604
      ap-east-1 亚太地区(香港) 258348409381
      me-south-1 中东(巴林) 536382113932
      eu-west-2 欧洲地区(伦敦) 892757235363
      ap-northeast-1 亚太地区(东京) 533107202818
      ap-southeast-1 亚太地区(新加坡) 174946120834
      ap-south-1 亚太地区(孟买) 251508486986
      ap-southeast-3 亚太地区(雅加达) 510637619217
      sa-east-1 南美洲(圣保罗) 758426053663
      ap-northeast-3 亚太地区(大阪) 273192626886
      eu-south-1 欧洲地区(米兰) 266869475730
      af-south-1 非洲(开普敦) 197869348890
      ap-southeast-2 亚太地区(悉尼) 005257825471
      me-central-1 中东(阿联酋) 000014521398
      us-west-1 美国西部(北加利福尼亚) 684579721401
      ca-central-1 加拿大(中部) 354763396469
      ap-south-2 亚太地区(海得拉巴) 950823858135
      eu-south-2 欧洲(西班牙) 919611009337
      eu-central-2 欧洲(苏黎世) 529164026651
      ap-southeast-4 亚太地区(墨尔本) 251357961535
      il-central-1 以色列(特拉维夫) 870907303882
    2. 将公钥导入数据库

      gpg --import publickey.pem

      gpg 显示导入成功

      gpg: key 093FF49D: public key "AwsGuardDuty" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
    3. 验证签名

      gpg --verify amazon-guardduty-agent-1.1.0.x86_64.sig amazon-guardduty-agent-1.1.0.x86_64.rpm

      如果验证通过,您将看到一条类似于以下结果的消息。现在,您可以继续使用 RPM 安装 GuardDuty 安全代理。

      输出示例:

      gpg: Signature made Fri 17 Nov 2023 07:58:11 PM UTC using ? key ID 093FF49D gpg: Good signature from "AwsGuardDuty" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 7478 91EF 5378 1334 4456 7603 06C9 06A7 093F F49D

      如果验证失败,则意味着 RPM 上的签名可能已被篡改。您必须从数据库中删除公钥并重试验证过程。

      例如:

      gpg: Signature made Fri 17 Nov 2023 07:58:11 PM UTC using ? key ID 093FF49D gpg: BAD signature from "AwsGuardDuty"
    4. 从数据库中删除公钥。

      gpg --delete-keys AwsGuardDuty
  2. 使用 Linux 或 macOS 上的 SSH 进行连接

  3. 使用以下命令安装 GuardDuty 安全代理:

    sudo rpm -ivh amazon-guardduty-agent-1.1.0.x86_64.rpm
  4. 验证 GuardDuty 代理安装是否正常。有关这些步骤的更多信息,请参阅正在验证 GuardDuty 安全代理安装状态

  5. (可选)使用以下命令删除 GuardDuty 安全客户端:

    sudo rpm -ev amazon-guardduty-agent

内存不足错误

如果您在手动安装或更新 Amazon EC2 GuardDuty 的安全代理时out-of-memory遇到错误,请参阅对内存不足错误进行故障排除

正在验证 GuardDuty 安全代理安装状态

验证 GuardDuty 安全代理是否正常
  1. 使用 Linux 或 macOS 上的 SSH 进行连接

  2. 运行以下命令以检查 GuardDuty 安全代理的状态:

    sudo systemctl status amazon-guardduty-agent

如果要查看安全代理安装日志,可以在下方查看这些日志/var/log/amzn-guardduty-agent/

要查看日志,请执行此操作sudo journalctl -u amazon-guardduty-agent

手动更新 GuardDuty 安全客户端

您可以使用 R un 命令更新 GuardDuty 安全客户端。您可以按照与安装 GuardDuty 安全客户端相同的步骤进行操作。