手动管理 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. 选择 Create Endpoint(创建端点)。

  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 的安全组,请参阅 Amazon EC2 用户指南中的创建安全组

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

手动安装安全客户端

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

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

  • 方法 2-使用 Linux Package Managers — 无论您的 Amazon EC2 实例是否处于 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 文档

适用于 Debian 服务器

提供的适用于 Debian 服务器的 Amazon 系统映像 (AMI) Amazon 要求您安装 Amazon Systems Manager 代理(SSM 代理)。你需要执行额外的步骤来安装 SSM 代理,这样你的 Amazon EC2 Debian Server 实例 SSM 就可以托管了。有关您需要采取的步骤的信息,请参阅《Amazon Systems Manager 用户指南》中的在 Debian 服务器实例上手动安装 SSM 代理

要安装适用于 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 安全代理安装状态

使用此方法,您可以通过运行 RPM 脚本或 Debian 脚本来安装 GuardDuty 安全代理。根据操作系统,您可以选择首选方法:

  • 使用 RPM 脚本在操作系统发行版 AL2 或 AL2023 上安装安全代理。

  • 使用 Debian 脚本在操作系统发行版 Ubuntu 或 Debian 上安装安全代理。有关支持的 Ubuntu 和 Debian 操作系统发行版的信息,请参阅。验证架构要求

RPM installation
重要

我们建议先验证 GuardDuty 安全代理 RPM 签名,然后再将其安装到您的计算机上。

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

    1. 准备模板

      使用适当的公钥、x86_64 RPM 的签名、arm64 RPM 的签名以及指向 Amazon S3 存储桶中托管的 RPM 脚本的相应访问链接来准备命令。替换 Amazon Web Services 区域、 Amazon 账户 ID 和 GuardDuty 代理版本的值以访问 RPM 脚本。

      • 公钥

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

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

        x86_64 RPM 的访问链接
        s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.2.0/x86_64/amazon-guardduty-agent-1.2.0.x86_64.rpm
        arm64 RPM 的访问链接
        s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.2.0/arm64/amazon-guardduty-agent-1.2.0.arm64.rpm
      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 Asia Pacific (Tokyo) 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
      ca-west-1 加拿大西部(卡尔加里) 339712888787
      ap-south-2 亚太地区(海得拉巴) 950823858135
      eu-south-2 欧洲(西班牙) 919611009337
      eu-central-2 欧洲(苏黎世) 529164026651
      ap-southeast-4 亚太地区(墨尔本) 251357961535
      il-central-1 以色列(特拉维夫) 870907303882
    2. 下载模板

      在以下命令中,要下载相应的公钥、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.2.0/x86_64/amazon-guardduty-agent-1.2.0.x86_64.rpm ./amazon-guardduty-agent-1.2.0.x86_64.rpm aws s3 cp s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.2.0/x86_64/amazon-guardduty-agent-1.2.0.x86_64.sig ./amazon-guardduty-agent-1.2.0.x86_64.sig aws s3 cp s3://694911143906-eu-west-1-guardduty-agent-rpm-artifacts/1.2.0/publickey.pem ./publickey.pem
    3. 导入公钥

      使用以下命令将公钥导入数据库:

      gpg --import publickey.pem

      gpg 显示导入成功

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

      使用以下命令验证签名

      gpg --verify amazon-guardduty-agent-1.2.0.x86_64.sig amazon-guardduty-agent-1.2.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"

      使用以下命令从数据库中删除公钥:

      gpg --delete-keys AwsGuardDuty

      现在,再次尝试验证过程。

  2. 使用 Linux 或 macOS 上的 SSH 进行连接

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

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

Debian installation
重要

我们建议先验证 GuardDuty 安全代理 Debian 签名,然后再将其安装到您的计算机上。

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

    1. 为相应的公钥、amd64 Debian 软件包的签名、arm64 Debian 软件包的签名以及 Amazon S3 存储桶中托管的 Debian 脚本的相应访问链接准备模板

      在以下模板中,替换 Amazon 账户 ID 和 GuardDuty 代理版本的值以访问 Debian 软件包脚本。 Amazon Web Services 区域

      • 公钥

        s3://694911143906-eu-west-1-guardduty-agent-deb-artifacts/1.2.0/publickey.pem
      • GuardDuty 安全代理 Debian 签名

        amd64 的签名
        s3://694911143906-eu-west-1-guardduty-agent-deb-artifacts/1.2.0/amd64/amazon-guardduty-agent-1.2.0.amd64.sig
        arm64 的签名
        s3://694911143906-eu-west-1-guardduty-agent-deb-artifacts/1.2.0/arm64/amazon-guardduty-agent-1.2.0.arm64.sig
      • 访问 Amazon S3 存储桶中 Debian 脚本的链接

        amd64 的访问链接
        s3://694911143906-eu-west-1-guardduty-agent-deb-artifacts/1.2.0/amd64/amazon-guardduty-agent-1.2.0.amd64.deb
        arm64 的访问链接
        s3://694911143906-eu-west-1-guardduty-agent-deb-artifacts/1.2.0/arm64/amazon-guardduty-agent-1.2.0.arm64.deb
      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 Asia Pacific (Tokyo) 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
      ca-west-1 加拿大西部(卡尔加里) 339712888787
      ap-south-2 亚太地区(海得拉巴) 950823858135
      eu-south-2 欧洲(西班牙) 919611009337
      eu-central-2 欧洲(苏黎世) 529164026651
      ap-southeast-4 亚太地区(墨尔本) 251357961535
      il-central-1 以色列(特拉维夫) 870907303882
    2. 下载相应的公钥、amd64 的签名、arm64 的签名,以及指向 Amazon S3 存储桶中托管的 Debian 脚本的相应访问链接

      在以下命令中,将账户 ID 替换为相应的 Amazon Web Services 账户 ID,将地区替换为您当前的区域。

      aws s3 cp s3://694911143906-eu-west-1-guardduty-agent-deb-artifacts/1.2.0/amd64/amazon-guardduty-agent-1.2.0.amd64.deb ./amazon-guardduty-agent-1.2.0.amd64.deb aws s3 cp s3://694911143906-eu-west-1-guardduty-agent-deb-artifacts/1.2.0/amd64/amazon-guardduty-agent-1.2.0.amd64.sig ./amazon-guardduty-agent-1.2.0.amd64.sig aws s3 cp s3://694911143906-eu-west-1-guardduty-agent-deb-artifacts/1.2.0/publickey.pem ./publickey.pem
    3. 将公钥导入数据库

      gpg --import publickey.pem

      gpg 显示导入成功

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

      gpg --verify amazon-guardduty-agent-1.2.0.amd64.sig amazon-guardduty-agent-1.2.0.amd64.deb

      成功验证后,您将看到一条类似于以下结果的消息:

      输出示例:

      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

      现在,您可以继续使用 Debian 安装 GuardDuty 安全代理。

      但是,如果验证失败,则意味着 Debian 软件包中的签名可能已被篡改。

      例如:

      gpg: Signature made Fri 17 Nov 2023 07:58:11 PM UTC using ? key ID 093FF49D gpg: BAD signature from "AwsGuardDuty"

      使用以下命令从数据库中删除公钥:

      gpg --delete-keys AwsGuardDuty

      现在,重试验证过程。

  2. 使用 Linux 或 macOS 上的 SSH 进行连接

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

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

内存不足错误

如果您在手动安装或更新 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 安全客户端相同的步骤进行操作。