创建流日志收集器

您可以为特定虚拟私有云 (VPC),子网,实例或接口订购和供应流日志收集器。 开始之前,请确保查看 关于流日志 中列出的用例,并满足以下先决条件。

供应流日志收集器时,请记住 最精细的粒度获胜。

控制台中的前提条件

在创建流日志收集器之前,请确保满足以下先决条件:

  1. 请确保至少存在一个 VPC,子网和虚拟服务器实例。 有关指示信息,请参阅 创建 VPC 和子网 和 创建虚拟服务器实例。

  2. 确保流日志中存在具有存储区的 IBM Cloud® Object Storage 实例。 要创建 Object Storage 存储区,请参阅 IBM Cloud Object Storage 排序页面。

    Object Storage 桶必须是与目标资源位于同一区域的单区域桶。 此外,建议您通过 IAM 访问组和审计日志记录来保护存储区。

  3. 授权类型为 Flow Logs for VPC 类型的资源,以使用步骤 2 中创建的 Object Storage 实例。

    要执行此操作,请按照以下步骤操作:

    • 在 IBM Cloud 控制台中,单击 管理> 访问权 (IAM),然后从导航窗格中选择 授权。

    • 单击 创建 并完成以下信息:

      对于源服务:

      • 选择“VPC 基础设施服务”。
      • 选择“基于选定属性的资源”。
      • 对于资源类型,请选择 Flow Logs for VPC。
      • 对于源服务实例,选择 所有实例。

      对于目标服务:

      • 选择 Cloud Object Storage。
      • 选择“基于选定属性的资源”。
      • 对于服务实例,选择 string equals> All instances。

      为了实现更精细的粒度,您可以指定是否希望目标包含 特定资源。 如果选择特定资源作为目标,那么可以添加属性以进一步限定访问权的作用域。 属性类型取决于您选择的目标服务。 例如,您可以 分配对特定存储区的访问权,而不是单个实例。

      对于服务访问权,选择 写入者 角色以分配对访问目标服务的源服务的访问权。

    • 单击授权。

    有关更多信息,请参阅使用授权来授予服务之间的访问权。

CLI 中的先决条件

在创建流日志收集器之前,请确保满足以下先决条件:

  1. 请确保至少存在一个 VPC,子网和虚拟服务器实例。 有关指示信息,请参阅 创建 VPC 和子网 和 创建虚拟服务器实例。

  2. 确保流日志中存在具有存储区的 IBM Cloud® Object Storage 实例。 要创建 Object Storage 存储区,请参阅 IBM Cloud Object Storage 排序页面。

    Object Storage 桶必须是与目标资源位于同一区域的单区域桶。 此外,建议您通过 IAM 访问组和审计日志记录来保护存储区。

  3. 授权类型为 Flow Logs for VPC 的资源使用步骤 2 中创建的 Object Storage 实例。

    要执行此操作,请输入以下命令:

    ibmcloud iam authorization-policy-create is cloud-object-storage Writer --source-resource-type flow-log-collector --target-service-instance-id $COS_INSTANCE_GUID
    ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id $COS_INSTANCE_GUID
    

    您可以从 Object Storage 实例的“服务凭证”部分获取 COS_INSTANCE_GUID,如下所示。

    Object Storage 服务凭证
    Object Storage 服务凭证

    有关更多信息,请参阅使用授权来授予服务之间的访问权。

API 的先决条件

在创建流日志收集器之前,请确保满足以下先决条件:

  1. 请确保至少存在一个 VPC,子网和虚拟服务器实例。 有关指示信息,请参阅 创建 VPC 和子网 和 创建虚拟服务器实例。

  2. 确保流日志中存在具有存储区的 IBM Cloud® Object Storage 实例。 要创建 Object Storage 存储区,请参阅 IBM Cloud Object Storage 排序页面。

    Object Storage 桶必须是与目标资源位于同一区域的单区域桶。 此外,建议您通过 IAM 访问组和审计日志记录来保护存储区。

  3. 授权类型为 Flow Logs for VPC 的资源使用步骤 2 中创建的 Object Storage 实例。

    要执行此操作,请按照以下步骤操作:

    • 在 IBM Cloud 控制台中,单击 管理> 访问权 (IAM),然后从导航窗格中选择 授权。

    • 单击 创建 并完成以下信息:

      对于源服务:

      • 选择“VPC 基础设施服务”。
      • 选择“基于选定属性的资源”。
      • 对于资源类型,请选择 Flow Logs for VPC。
      • 对于源服务实例,选择 所有实例。

      对于目标服务:

      • 选择 Cloud Object Storage。
      • 选择“基于选定属性的资源”。
      • 对于服务实例,选择 string equals> All instances。

      对于服务访问权,选择 写入者 角色以分配对访问目标服务的源服务的访问权。

    • 单击授权。

    有关更多信息,请参阅使用授权来授予服务之间的访问权。

在控制台中创建流量日志收集器

要使用 IBM Cloud 控制台创建流日志收集器,请执行以下步骤:

  1. 转至 IBM Cloud 控制台 并登录到您的帐户。

  2. 选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 流量日志。

    此时将显示 VPC 仪表板的流日志。

  3. 单击创建转到流量日志供应页面。

  4. 输入下列字段的值:

    • 名称-输入流日志收集器的唯一名称。
    • 资源组-为流日志收集器选择资源组。 您可以使用此流日志的默认组,或从列表中选择(如果已定义)。 有关更多信息,请参阅在资源组中组织资源的最佳实践。
    • 标记-(可选) 添加标记以组织,跟踪使用成本或管理对资源的访问权。
    • 访问管理标记-(可选) 向资源添加访问管理标记以帮助组织访问控制关系。 访问管理标记唯一受支持的格式为 key:value。 有关更多信息,请参阅 使用标记控制对资源的访问。
  5. 有关采集器的详细信息,请为流量日志选择目标服务。 根据您的选择,可能需要其他字段。

    • 虚拟私有云- 选择一个 VPC。 将记录所选 VPC 中的所有网络流量。
    • 子网-选择 VPC 和所选 VPC 中的子网。 将记录所选子网中的所有流量。
    • 实例-选择 VPC 和存在于所选 VPC 中的虚拟服务器实例。 将记录虚拟服务器实例的所有流量。
    • 接口-选择 VPC,所选 VPC 中的虚拟服务器实例以及所选虚拟服务器实例的特定网络接口。 将记录所选网络接口的所有流量。
    • 未连接的虚拟网络接口- 指定未连接的虚拟网络接口的 ID。 这有助于创建一个专用和隔离的日志路径,以便在准备就绪时连接到日志收集服务。
  6. 指定日志的存储位置。 流日志将写入 Object Storage 存储区,该存储区必须创建为与目标资源位于同一区域中的单区域存储区。

    • Cloud Object Storage 实例-所需存储区所在的 Object Storage 实例。
    • 位置-此输入不可用,因为它直接绑定到目标资源所在的区域。
    • 存储区-流日志收集器服务写入的所需 IBM Cloud® Object Storage 存储区。

从 CLI 创建流日志收集器

开始之前,请 设置 CLI 环境。

要使用 CLI 创建流日志收集器,请运行以下命令:

  ibmcloud is flow-log-create \
    --bucket STORAGE_BUCKET_NAME \
    --target TARGET_ID [--name NAME] \
    --active ACTIVE \
    [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME] \
    [--json]

其中:

--bucket
Object Storage 存储桶的名称。 --target
流量日志的目标。 --name
流日志的新名称。 --active
指示此收集器是否处于活动状态。 --resource-group-id
资源组的标识。 此选项与 --resource-group-name 互斥。 --resource-group-name
资源组的名称。 此选项与 --resource-group-id 互斥。 --json
以 JSON 格式格式化输出。

使用 API 创建流日志收集器

要使用 API 创建流日志收集器,请执行以下步骤:

  1. 使用正确的变量设置 API 环境。

  2. 将以下值存储在要在 API 命令中使用的变量中:

    • ResourceGroupId-首先,获取资源组,然后填充变量:
    export ResourceGroupId=<your_resourcegroup_id>
    
    • VpcId-使用 list vpc 命令 (使用前面的变量) 进行查找,然后根据提供的标识填充变量:
    export VpcId=<your_VPC_id>
    
    • COSbucket- Object Storage 存储区的名称。
    export COSbucket=<your_COS_bucket_name>
    
  3. 启动所有变量时,为特定 VPC 供应流日志收集器:

    curl -X POST
      -sH "Authorization:${iam_token}"
      "$vpc_api_endpoint/v1/flow_log_collectors?version=$api_version&generation=2" \
      -d  '{ \
           "name": "flow-logs-1", \
           "resource_group": { "id": "'$ResourceGroupId'"  }, \
           "storage_bucket": { "name": "'$COSbucket'" }, \
           "target": { "id": "'$VpcId'" } \
           }' | jq
    

    该示例使用 jq 作为解析器,这是一个根据 MIT 许可证 授权的第三方工具。 某些操作系统默认不包含 jq。 使用前请安装 jq ,或替换为其他 JSON 解析器。

  4. 要供应以子网,虚拟服务器实例或 VNIC 为目标的收集器,必须提供子网标识,虚拟服务器实例标识或 VNIC 标识作为收集器目标。 例如,以下请求将创建以虚拟服务器实例标识为目标的收集器:

    export VsiId=<your_vsi_id>
    
    curl -X POST \
      -sH "Authorization:${iam_token}" \
      "$vpc_api_endpoint/v1/flow_log_collectors?version=$api_version&generation=2" \
      -d '{ \
       	 "name": "flow-logs-1", \
          "resource_group": { "id": "'$ResourceGroupId'"  }, \
          "storage_bucket": { "name": "'$COSbucket'" }, \
          "target": { "id": "'$VsiId'" } \
          }' | jq
    

后续步骤