配置 Cloud IDS

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

按照以下说明为您的应用配置 Cloud IDS。如需了解 Cloud IDS 的概念性信息,请参阅 Cloud IDS 概览

准备工作

配置 Cloud IDS 之前,您必须满足以下要求。

为 Cloud IDS 设置 IAM 权限

Cloud IDS 具有三个 Identity and Access Management (IAM) 角色。您可以使用示例命令向主帐号授予必要的 IAM 权限。

  • roles/ids.admin:拥有 Cloud IDS Admin 角色 (roles/ids.admin) 的项目主帐号可以创建 IDS 端点。如果您是 Project Owner 或 Project Editor,则表示已拥有此权限,无需明确 ids.admin 角色即可创建 IDS 端点。

    gcloud projects add-iam-policy-binding PROJECT_ID --role=roles/ids.admin --member=user:USER_NAME ;
    

    此角色可以执行以下操作:

    • 创建端点
    • 删除端点
    • 获取端点
    • 列出端点
  • roles/ids.viewer:拥有 Cloud IDS Viewer 角色 (roles/ids.viewer) 的项目查看者和主帐号拥有对 IDS 端点的只读权限。如果您是项目所有者、编辑者或查看者,那么您已经拥有此权限。

    gcloud projects add-iam-policy-binding PROJECT_ID --role=roles/ids.viewer --member=user:USER_NAME ;
    
  • roles/compute.packetMirroringUser:将数据包镜像政策附加到 IDS 端点所需的权限。如果您拥有 compute.securityAdmincontainer.serviceAgent 角色,则表示您已拥有此权限。

    gcloud projects add-iam-policy-binding PROJECT_ID --role=roles/compute.packetMirroringUser --member=user:USER_NAME ;
    
  • roles/logging.viewer:查看近期威胁的额外权限,这是 Cloud IDS 的关键核心功能。如需详细了解此角色,请参阅访问权限控制指南

    gcloud projects add-iam-policy-binding PROJECT_ID --role=roles/logging.viewer --member=user:USER_NAME ;
    

设置专用服务访问通道

如需创建 IDS 端点,您必须启用 Service Networking API,并为 Virtual Private Cloud (VPC) 网络设置网络对等互连。此操作只需针对每个客户项目执行一次,并且可以使用 Google Cloud Console 或 Google Cloud CLI 完成。

如需设置专用服务访问通道,请按以下步骤操作:

  1. 使用以下命令启用 Service Networking API。将 PROJECT_ID 替换为您的项目 ID。

    gcloud services enable servicenetworking.googleapis.com \
     --project=PROJECT_ID
    
  2. 如果您尚未在网络中分配 IP 地址范围,则必须为 VPC 网络中的 Google 服务分配 IP 地址范围。您可以在以下命令中省略 addresses 字段,在这种情况下,Google Cloud 会选择您的 VPC 网络中未使用的地址范围。使用以下命令:

    gcloud compute addresses create RESERVED_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --addresses=192.168.0.0 \
      --prefix-length=16 \
      --description="DESCRIPTION" \
      --network=VPC_NETWORK
    

    替换以下内容:

    • RESERVED_RANGE_NAME:分配的范围的名称,例如 my-allocated-range

    • DESCRIPTION:范围的说明,例如 allocated for my-service

    • VPC_NETWORK:您的 VPC 网络的名称,例如 my-vpc-network

  3. 创建与服务提供方的专用连接。专用连接在您的 VPC 网络与服务提供方网络之间建立 VPC 网络对等互连连接。使用以下命令。该命令会启动一个长时间运行的操作,并返回操作名称。

    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --ranges=RESERVED_RANGE_NAME \
      --network=VPC_NETWORK \
      --project=PROJECT_ID
    

    替换以下内容:

    • RESERVED_RANGE_NAME:一个或多个分配的范围的名称

    • VPC_NETWORK:您的 VPC 网络的名称

    • PROJECT_ID:包含您的 VPC 网络的项目的 ID

    您可以使用以下命令检查操作是否成功。将 OPERATION_NAME 替换为上一步返回的操作名称:

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

针对要监控的每个 VPC 网络重复第 2 步和第 3 步。

创建 Cloud IDS 端点

我们建议您为已部署工作负载的每个区域创建一个 IDS 端点。您还可以为每个区域创建多个 IDS 端点。按照以下步骤创建 IDS 端点并为其分配 IDS 服务配置文件。

控制台

  1. 在 Google Cloud Console 中,前往网络安全页面。

    前往“网络安全”

  2. Cloud IDS 页面上,选择端点标签页。

配置端点:

  1. 点击创建端点
  2. 端点名称字段中输入名称。
  3. 可选:在说明字段中输入说明。
  4. 点击网络下拉列表,然后选择您希望 Cloud IDS 检查的网络。
  5. 区域可用区下拉列表中选择网络或子网的区域和可用区。
  6. 点击继续

选择 Cloud IDS 服务配置文件:

  1. 点击选择 IDS 服务配置文件
  2. 最低威胁严重级别下,选择正确的提醒级别。
  3. 点击创建。创建过程可能需要 10-15 分钟。

创建 IDS 端点后,将数据包镜像政策附加到 IDS 端点:

  1. 选择端点标签页。
  2. 点击 IDS 端点旁边的附加
  3. 政策名称字段中,输入数据包镜像政策的名称。
  4. 点击下一步
  5. 选择要镜像的一个或多个子网。您可以选择多个子网和实例。
  6. 点击下一步
  7. 确定是要镜像所有流量还是要过滤流量:
    1. 如果您要镜像所有流量,请确保已选择镜像所有流量
    2. 如果要根据协议、IP 地址范围、入站流量或出站流量过滤流量,请选择镜像过滤后的流量
      1. 选择允许所有协议允许特定协议
      2. 选择允许所有 IP 范围允许特定 IP 范围
      3. 选择允许入站流量和出站流量仅允许入站流量仅允许出站流量
  8. 点击提交。端点已创建。

现在,您可以查看是否生成了任何威胁日志。以下步骤是可选的:

  1. 点击威胁标签页。
  2. 点击威胁名称即可查看该威胁的威胁详情页面。
  3. 返回威胁标签页。
  4. 点击 IDS 端点右侧的 菜单,然后选择查看威胁日志

gcloud

可选标志

本部分中的命令可能包含以下部分或所有可选标志:

--no-async
等待正在执行的操作完成,而不是立即返回。
--filter=EXPRESSION
对要列出的每个资源项应用布尔值过滤条件 EXPRESSION。如果表达式的计算结果为 True,则会列出该项目。如需详细了解过滤条件表达式并查看示例,请运行 $ gcloud topic filters。此标志与按以下顺序应用的其他标志交互:--flatten--sort-by--filter--limit
--limit=LIMIT
要列出的资源数上限。默认值为无限制。此标志与按以下顺序应用的其他标志交互:--flatten--sort-by--filter--limit
--page-size=PAGE_SIZE
Cloud IDS 会将资源列表输出分组到网页中。此标志指定每页的最大资源数。如果支持分页,则默认设置由服务确定,否则为无限制(无分页)。可以在 --filter--limit 之前或之后应用分页,具体取决于服务。
--sort-by=[FIELD,…]
要排序的资源字段键名的列表(以英文逗号分隔)。默认顺序为升序。为字段添加 ``~ ` 前缀,以表示该字段的降序。此标志与按以下顺序应用的其他标志交互:--flatten--sort-by--filter--limit
--uri
输出资源 URI 列表,而不是默认输出。

说明

如需创建新的 IDS 端点,请执行以下步骤:

  1. 使用命令 gcloud ids endpoints create。将 ENDPOINT_NAMEVPC_NETWORKZONESEVERITY 替换为与您的应用匹配的信息。

    gcloud ids endpoints create ENDPOINT_NAME \
      --network=VPC_NETWORK \
      --zone=ZONE \
      --severity=SEVERITY \
     [--no-async] \
     [GCLOUD_WIDE_FLAG...]
    
  2. 必须提供严重级别标记,并采用以下值之一:

    • 参考信息
    • LOW
    • MEDIUM
    • HIGH
    • CRITICAL
  3. 创建端点后,向其发送数据包镜像政策。首先,使用以下命令从 endpoint_forwarding_rule 字段获取网址:

    gcloud ids endpoints describe ENDPOINT_NAME
    
  4. 使用以下命令创建数据包镜像政策:

    gcloud compute packet-mirrorings create POLICY_NAME \
    --region=REGION --collector-ilb=ENDPOINT_FORWARDING_RULE \
    --network=VPC_NETWORK --mirrored-subnets=SUBNET
    
  5. 数据包镜像有多个可选标志,包括可用于根据协议、IP 地址范围或入站流量或出站流量来过滤流量的标志。如需详细了解这些可选标志,请参阅数据包镜像参考文档

如需删除 IDS 端点,请使用命令 gcloud ids endpoints delete。将 ENDPOINT_NAMEPROJECT_IDZONE 替换为与您的应用匹配的信息:

gcloud ids endpoints delete ENDPOINT_NAME \
   [--project=PROJECT_ID] \
   [--zone=ZONE] \
   [--no-async] \
   [GCLOUD_WIDE_FLAG...]

如需描述 IDS 端点,请使用命令 gcloud ids endpoints describe。将 ENDPOINT_NAMEPROJECT_IDZONE 替换为与您的应用匹配的信息:

gcloud ids endpoints describe ENDPOINT_NAME \
   [--project=PROJECT_ID] \
   [--zone=ZONE] \
   [GCLOUD_WIDE_FLAG...]

如需列出 IDS 端点,请使用命令 gcloud ids endpoints list

gcloud ids endpoints list /
    [--filter=EXPRESSION] \
    [--limit=LIMIT] \
    [--page-size=PAGE_SIZE] \
    [--sort-by=[FIELD,...]] \
    [--uri] \
    [GCLOUD_WIDE_FLAG...]

API

Cloud IDS 端点资源具有以下字段:

字段 类型 字段说明
createTime 字符串 [仅限输出] 创建时间戳,采用 RFC 3339 文本格式。
updateTime 字符串 [仅限输出] 上次更新时间戳(采用 RFC 3339 文本格式)。
name 字符串 [仅限输出] 端点的名称,格式为 projects/{project_id}/locations/{locationId}/endpoints/{endpointId}
网络 字符串 连接到 IDS 端点的 VPC 网络的名称。这可以包含 VPC 网络名称本身(如 "src-net")或网络的完整网址(如 "projects/{project_id}/global/networks/src-net")。创建端点时,此字段为必填字段。
严重程度 字符串

端点报告的最低提醒严重级别。可能的值如下:

  • 参考信息
  • LOW
  • MEDIUM
  • HIGH
  • CRITICAL

创建端点时,此字段是必填字段。

说明 字符串 (可选)端点说明。
endpoint_forwarding_rule 字符串 [仅限输出] 数据包镜像要将流量发送到的端点网络地址的网址。
端点 字符串 [仅限输出] 端点网络入口点的内部 IP 地址。

如需创建 Cloud IDS 端点,请使用如下所示的 HTTP POST 请求,并视情况替换变量。ENDPOINT_NAME 必须介于 1 到 63 个字符之间;只能包含小写字母、数字和连字符;必须以小写字母开头;不得以连字符结尾。

POST projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
{
    "network": "NETWORK_NAME",
    "severity": "SEVERITY_LEVEL",
}

如需删除 Cloud IDS 端点,请使用如下所示的 HTTP DELETE 请求,并视情况替换变量:

DELETE projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

如需获取 Cloud IDS 端点,请使用如下所示的 HTTP GET 请求,并视情况替换变量:

GET projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

如需列出可用区中的所有 Cloud IDS 端点,请使用如下所示的 HTTP GET 请求,并视情况替换变量:

GET projects/PROJECT_NAME/locations/ZONE/endpoints

或者,如需列出所有可用区中的所有 Cloud IDS 端点,您可以将 ZONE 替换为连字符,如下所示:

GET projects/PROJECT_NAME/locations/-/endpoints

后续步骤