日志审计:多账号下VPC流日志采集与监控方案

简介: 本文主要介绍如何基于日志审计进行跨账号的VPC流日志采集与监控。

本文主要介绍如何基于日志审计进行跨账号的VPC流日志采集与监控。

1. 目标读者

需要对VPC流日志进行采集与监控的IT运维人员,需要对多账号下VPC流日志进行统一分析管理的数据分析人员或需要满足安全审计场景的管理员等。

2. 相关概念

什么是日志审计

日志审计服务是阿里云日志服务SLS平台下的一款应用,它在继承了日志服务SLS的全部功能以外,还有强大的多账号管理及跨地域采集功能,支持通过资源目录(Resource Directory)的方式有组织性地统一地管理和记录多账号下云产品实例的日志信息,可以便于用户进行统一分析,问题排查,回溯复盘等操作。

日志审计的云产品资源覆盖范围请参考云产品覆盖及相关资源

什么是VPC流日志

VPC流日志可以记录VPC网络中弹性网卡ENI传入传出的流量信息,帮助用户检查访问控制规则、监控网络流量和排查网络故障。日志审计开启VPC流日志开关后,会对满足采集策略的VPC实例创建流日志,能够捕获对应VPC实例中所有弹性网卡的流量,包括在开启流日志功能后新建的弹性网卡。流日志功能捕获的流量信息会以流日志记录的方式写入日志审计Project中。

3. 方案架构

首先,用户在日志审计下可以通过两种模式进行多账号授权,分别是自定义授权模式资源目录管理模式

image.png

配置好多账号后,针对VPC流日志,日志审计服务支持将各个主账号(中心账号+其他成员账号)采集到的日志存储到中心主账号下的各个与VPC实例处于相同地域的日志服务Project (slsaudit-region-$uid-$region)中。

如果用户打开同步到中心开关后,依赖日志服务的数据加工功能将各个地域的Logstore(vpc_log)同步到一个中心化的Logstore中,以便做中心化查询、分析、告警、可视化、二次开发等。

中心化选择

VPC实例所属地域A

审计中心所属地域C

区域A是否有日志

是否创建

数据加工

中心是否有日志

日志存储时间

开启中心化

A与C同地域

不会创建

中心C有

取决中心化TTL和区域

A的数据加工能力

A与C不同地域

区域A有

会创建

关闭中心化

A与C同地域

不会创建

中心C无

取决区域化TTL

A与C不同地域

4. 方案优势

该日志审计采集VPC流日志方案具有以下优势:

(1)实例的自动发现和日志的自动采集,打开VPC流日志采集开关后,后续如果新增云产品实例,只要满足采集条件(如用户自定义采集策略限制)日志审计将会自动地将云产品实例对应的日志采集进来,无需用户手动操作。

(2)跨区域中心化能力,日志审计可选日志Region化存储,更支持通过自动创建数据加工将日志存储到同一中心区域,在该中心project下进行统一查询分析,报表展示、告警配置等。

(3)日志审计支持跨账号采集云产品日志,对于多账号用户来说,可以将不同账号下的日志采集到同一中心账号下,其他账号作为该中心账号的成员账号,实现跨账号的日志汇总和管理。

(4)日志审计还支持丰富的内置报表、内置告警规则、威胁情报等功能。

(5)日志审计支持通过Terraform的方式进行采集编排和管理,具体参见使用Terraform的方式进行日志审计采集管理

5. 方案实施

下面主要介绍两种实施方案,分别是通过sls控制台进行采集和通过terraform进行日志审计采集。

通过SLS控制台进行多账号下VPC流日志的采集

开启日志审计应用

用户首先进入日志服务控制台,找到日志应用下的日志审计服务,然后点击进入,对于首次开启日志审计服务的用户,需要根据页面提示完成授权。

完成授权后,日志审计服务将使用服务关联角色AliyunServiceRoleForSLSAudit进行云产品的日志采集。更多信息,请参见管理服务关联角色AliyunServiceRoleForSLSAudit

image.png

完成多账号配置

用户可以进入审计配置全局配置界面,配置多账号的采集

image.png

资源目录管理模式

对于使用阿里云资源目录管理的账号可以使用资源目录管理模式进行多账号设置,可以配置“全员”和“自定义”两种方式进行日志审计跨账号采集。

image.png

自定义鉴权管理模式

用户也可以通过自定义鉴权管理模式进行日志审计多账号添加配置,在自定义鉴权管理中又存在两种添加方式,一种是通过账号密钥辅助授权,一种是手动授权模式。账号密钥辅助授权需要输入账号uid和对应的AccessKey以及AccessSecret信息,手动授权可以参考自定义授权日志采集与同步

image.png

开启VPC流日志采集

在sls控制台进入到日志审计页面后,用户仅需要打开流日志采集开关,即可开启日志采集与监控。

image.png

如果用户需要将不同地域下的日志汇总到同一日志库下,仅需要打开同步到中心开关,就会将各个区域下采集到的VPC流日志汇总到中心Project下的vpc_log日志库中。

高级采集策略配置

日志审计可以实现实例粒度采集控制,用户可以通过采集策略限制采集实例目标,比如用户可以只采集某个具体的VPC实例或者只采集某个地域、某个账号下的VPC实例。下图是一个采集策略的配置示例,用户通过该采集策略仅仅采集满足标签变量env为test的VPC实例的流日志,而不采集其他不满足条件的VPC实例的流日志。

image.png

统一日志查询入口

通过account-id字段用户可以分辨日志来自哪个阿里云账号,通过region字段和vpc-id字段用户可以找到知道流日志属于哪个VPC实例。

image.png

比如用户可以统计不同账号在不同地域的不同VPC实例下的日志条数。

image.png

报表分析

在日志审计开通VPC流日志采集后会自动生成以下三张报表,辅助用户进行采集分析

流日志概览

image.png

Traffic中心

image.png

Reject概览

image.png

通过Terrafrom配置多账号下VPC流日志的采集

前文主要介绍了如何通过sls控制台进行VPC流日志采集与监控,下面将介绍如何通过terraform进行账号配置和采集配置。

Terraform的使用前提和初始化步骤可以查看使用Terrafrom配置日志审计,下面是一个使用采集策略VPC配置案例。

首先我们定义采集策略,和前文控制台配置一样,通过该采集策略仅仅采集满足标签变量env为test的VPC实例的流日志,而不采集其他不满足条件的VPC实例的流日志。

variable vpc_policy {
  type        = string
  default     = <

 

然后在VPC流日志采集中引用该采集策略变量,这里我们使用的是资源目录自定义模式,其中vairable_map参数与含义请参考附录:variable map参数

resource "alicloud_log_audit" "example" {
  display_name = "tf-audit-test"
  aliuid       = "your_center_account_id"
  variable_map = {
    "vpc_flow_enabled" = "true",    #开启vpc流日志采集
    "vpc_flow_ttl" = "7",           #区域化存储天数
    "vpc_sync_enabled" = "true",    #开启同步到中心
    "vpc_sync_ttl" = "180"          #中心化存储天数
    "vpc_flow_collection_policy" = var.vpc_policy #采集策略
  }
  multi_account = ["your_other_account1,your_other_account2"]
  resource_directory_type="custom"

然后应用该Terraform配置即可开启VPC流日志的采集与监控。

terraform apply

作者介绍
目录