部署安全软件代理

您可以将安全软件代理从 Cloud Marketplace 部署到项目中的虚拟机实例。如果您需要卸载安全软件代理,请跳至卸载安全代理

安全软件代理通常是较大的安全产品的组件。例如,如果您订阅了一个安全产品,则该产品可能包含可在虚拟机实例上安装的安全代理。代理收集有关虚拟机实例上的漏洞和可疑行为的数据,并将这些数据发送回软件供应商。您可以在软件供应商提供的信息中心内查看安全报告。

从 Cloud Marketplace 安装安全代理时,您必须独立向软件供应商注册。供应商单独向您收费。

准备工作

例如,如要创建名为 Security Agent Deployer 的身份和访问权限管理自定义角色,首先要创建一个 SecurityAgentDeployer.yaml 文件:

title: SecurityAgentDeployer
description: Role for Users who deploy Security Agents in a project
stage: GA
includedPermissions:
- osconfig.guestPolicies.create
- osconfig.guestPolicies.delete
- osconfig.guestPolicies.get
- osconfig.guestPolicies.list
- storage.buckets.create
- storage.buckets.get
- storage.objects.create
- storage.objects.delete

创建 YAML 文件后,要创建 {iam_name} 自定义角色,请运行以下命令:

gcloud iam roles create role-id --project=project-id   \
   --file=SecurityAgentDeployer.yaml

创建 Security Agent Deployer 的 {iam_name} 自定义角色后,请向其授予您希望部署安全代理的用户:

gcloud projects add-iam-policy-binding <project-id>  \
  --member=user:my-user@example.com   \
  --role=projects/<project-id>/roles/SecurityAgentDeployer

配置项目元数据

您可以使用 Google Cloud 控制台或 Google Cloud CLI 来配置项目元数据 安装在虚拟机实例中的操作系统配置代理。

控制台

  1. 打开项目元数据页面
  2. 点击修改
  3. 点击添加项目,然后添加以下属性:

    enable-osconfig
  4. 此外,尽管不是必需的,但是可以添加以下元数据项,以便以便在 Cloud Logging 日志中包括调试消息。这将有助于对将来的部署进行问题排查。

    osconfig-log-level debug

gcloud

  1. 使用此命令来设置 OS Config 代理的项目元数据:

    gcloud compute project-info add-metadata --metadata=enable-osconfig=true
    
  2. 此外,尽管不是必需的,但以下命令可用于在 Cloud Logging 日志中包括调试消息。这将有助于对将来的部署进行问题排查。

    gcloud compute project-info add-metadata --metadata=osconfig-log-level=debug
    
  3. 要验证元数据是否已正确设置,请使用以下命令:

    gcloud compute project-info describe --flatten="commonInstanceMetadata[]"
    

部署安全代理

要查看 Cloud Marketplace 上可用的安全代理,请使用安全过滤器。

转到安全产品

部署安全代理:

  1. 从 Cloud Marketplace 中选择代理。

  2. 在供应商的网站上注册安全代理。

    在注册过程中,供应商通常会为您提供标识符和凭据,例如密码,激活 ID 或许可 ID。您可以使用这些标识符将 Google Cloud 项目链接到与供应商的订阅。

  3. 注册后,打开安全代理的 Cloud Marketplace 列表,然后按照步骤配置代理。

  4. 在配置页面上,输入注册产品时获得的标识符。然后,在虚拟机分配下,选择要将安全代理部署到的虚拟机实例。

    您可以通过以下字段来过滤虚拟机:

    • 名称前缀
    • 群组标签
  5. 部署会在您的项目中创建一个 Cloud Storage 存储分区,并将安装文件复制到该存储分区。在存储分区详细信息下,选择一个区域以创建用于部署的云存储分区。

  6. 选择虚拟机分配并为 Cloud Storage 存储分区选择区域后,单击Deploy。部署可能需要几分钟才能完成。

  7. 若要跟踪和验证安装,请使用以下方法之一:

    • 列出项目的访客政策,然后验证是否为安全代理创建了新的访客政策。通常,部署为每个操作系统创建一个访客政策。

    • 打开日志查看器,然后检查虚拟机实例资源类型和OSConfigAgent日志类型的日志。

卸载安全代理

概括来讲,您必须执行以下操作才能卸载安全代理:

  1. 删除代理的所有访客政策。这样可以确保 OS Configuration 停止在您创建的任何新虚拟机实例上安装代理。如果在删除访客政策时正在某些虚拟机上安装代理,则安装将继续进行直到完成。

  2. 为安全代理创建新的访客政策,该政策将从已安装代理的虚拟机实例中删除该代理。

从虚拟机上卸载安全代理可能需要几分钟。

删除访客政策

您可以使用 Google Cloud 控制台或 Google Cloud CLI 删除安全代理的访客政策。

控制台

  1. 打开访客政策页面
  2. 选择安全代理的访客政策,然后单击删除

gcloud

  1. 使用此命令列出所有访客政策:

    gcloud beta compute os-config guest-policies list
    
  2. 从访客政策列表中,复制安全产品的访客政策的 ID,然后运行此命令以删除每个访客政策:

    gcloud beta compute os-config guest-policies delete POLICY_ID
    

创建访客政策以删除代理

删除安全代理的访客政策之后,必须使用 desiredState: REMOVED 属性创建一个新政策,以从虚拟机中删除安全代理。

例如,以下访客政策 YAML 文件从 us-central1-f 区域中的所有基于 Debian 的虚拟机实例中删除 cloud-agent-package

assignment:
  groupLabels:
  - labels:
      agent: enabled  # apply to VMs with the "agent" label set to "enabled"
  zones:
  - us-central1-f  # apply to all VMs in this zone
name: projects/YOUR_PROJECT_ID/guestPolicies/cloud-agent-remove
packages:
- desiredState: REMOVED
  manager: APT  # indicates Debian-based OS
  name: cloud-agent-package  # indicates the security agent's package name

您必须将 assignment 部分配置为与部署代理时设置的过滤器匹配。

详细了解如何创建访客政策 YAML 文件

创建访客政策 YAML 文件后,使用以下命令应用它:

gcloud beta compute os-config guest-policies create NEW_POLICY_ID --file YOUR_GUEST_POLICY_FILE

问题排查

调试访客政策

您可以在调试访客政策中找到调试访客政策的一般指南。

特别是关于如何

  • 列出现有的访客政策
  • 检查特定的访客政策
  • 查找哪些政策适用于特定的虚拟机实例
  • 检查 Cloud Logging 日志以搜索与部署相关的可能的错误消息。

如果在特定的虚拟机实例中部署失败,则可以按照以下步骤尝试诊断问题:

  1. 请检查部署是否创建了访客政策。

  2. 如果是,请验证创建的访客政策:

    1. 指预期的安全代理。
    2. 在其 Assignment 中定位预期的虚拟机实例集。
  3. 验证虚拟机实例 lookup 是否包含新的预期访客政策。

  4. 检查 Cloud Logging 日志中是否存在针对该特定虚拟机实例的与 OS Config 相关的错误消息。