
# 第三方云平台及线下IDC数据审计
#### 应用场景
针对企业存在第三方云平台及线下互联网数据中心IDC（Internet Data Center）自建数据资产的场景，可通过华为云数据安全中心DSC（Data Security Center）进行统一管理。本文讲述如何在跨云场景下进行配置，以实现用华为云的DSC服务去审计其他云的数据库。
#### 方案架构
企业的数据资产可能分布于华为云、第三方云平台以及线下IDC。为了实现统一管理，第三方云平台及本地IDC中的数据库资产可以作为自建数据资产接入DSC。华为云和其它云之间通过VPN打通网络，华为云的DSC服务通过VPN通道去扫描他云的数据库。
![](https://support.huaweicloud.com/bestpractice-dsc/zh-cn_image_0000002581461569.png)
对于第三方云平台和线下IDC的数据库，需要接入DSC并开启数据审计功能，需要完成下列几步操作：
1. **创建VPC专有网络**：第三方云平台和线下IDC需要通过VPC专有网络接入DSC。
2. **网络打通**：对第三方云平台和线下IDC的数据库进行审计，需要先打通第三方云平台或线下IDC与VPC专有网络的连接，您可以采用VPN网关、云专线等多种方式打通网络。
3. **接入数据安全中心**：把第三方云平台及线下IDC的数据库资产作为自建数据资产接入到DSC。
4. **配置访问控制策略**：配置数据审计端口的安全组策略，保证流量采集功能正常。
5. **开通数据库安全审计功能**：打通DSC与VPC专有网络的网络连接，安装Agent进行流量采集。
6. **验证** **审计效果**：完成上述步骤后，您可以在控制台查看审计日志。
 
#### 方案优势
本方案面向混合云架构企业，实现第三方云、线下 IDC 数据库统一接入 DSC 开展审计；支持 VPN、专线、云企业网多种组网模式，适配不同成本与性能需求；审计流量经由私网终端节点传输，规避公网风险；Agent 旁路采集对业务零侵入；云外资产直接复用 DSC 全套审计、风险检测与合规能力，无需额外采购硬件审计设备，实现云上云下数据安全一体化管控，同时借助安全组完成链路访问权限管控，满足等保审计合规要求。
#### 资源与成本规划
本节介绍最佳实践中资源规划情况，包含以下内容：
表1资源与成本规划 
| 资源      | 资源说明                                                                                                                                                                                                                                                                                                                                                                                             | 每日费用                                                                               |
|:---|:---|:---|
| 数据安全中心  | 专业版： - 计费模式：包年/包月  - 支持的数据库数量：2个  - 支持添加的OBS体量：100GB  - 支持的API调用额度：100万次   | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-dsc/dsc_07_0003.html)。   |
| 数据库安全服务 | 安全审计-数据库审计专业版： - 计费模式：包年/包月  - 吞吐量峰值：6,000条/秒                                                                                                                                                                     | 具体的计费方式及标准请参考[计费说明](https://support.huaweicloud.com/price-dbss/DBSS_07_0003.html)。 |
   
#### 前提条件
已[购买数据安全中心](https://support.huaweicloud.com/usermanual-dsc/dsc_01_0008.html)。
#### 操作步骤
#### 步骤一：在华为云创建VPC专有网络
您可以通过创建VPC专有网络，结合华为云的多种网络产品，在保障安全与稳定的基础上，高效实现第三方云平台或本地数据中心资源向华为云的扩展与互联。
1. 进入[创建虚拟私有云页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/vpc/vpcs/createVpc)。
2. 单击"创建虚拟私有云"，根据界面提示配置VPC和子网参数。 
   - **区域**：选择计划创建云资源的地域。
   
   - **IPv4网段** ：当前VPC与其他VPC、云下数据中心连通时，要避免网络两端的IP地址冲突，否则无法正常通信。
     - 建议您使用[RFC 1918](https://www.rfc-editor.org/rfc/rfc1918.txt)中指定的私有IPv4地址范围，作为VPC的网段。
     
     - 不能使用100.64.0.0/10、214.0.0.0/4、198.18.0.0/15、169.254.0.0/16、0.0.0.0/8、127.0.0.0/8或240.0.0.0/4网段作为VPC的IPv4网段。
      
   
   - **子网IPv4网段** ：子网的网段必须在VPC网段范围内，子网网段的掩码长度范围为"子网所在VPC的掩码\~29"，比如VPC网段为10.0.0.0/16，掩码为16，则子网的掩码可在16\~29范围内选择。关于VPC子网规划更详细的说明，请参见[VPC网络规划建议](https://support.huaweicloud.com/usermanual-vpc/vpc_0001.html)。
   
   - 其他参数请根据界面提示配置，更多详细内容请参见[创建虚拟私有云和子网](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013935842.html)。
   
   
   
   
 
#### 步骤二：打通网络
您可以参考下表中的参考文档，采用VPN网关、云专线（DC）、云连接（CC）等多种方式打通网络。
| **网络连接方式**       | **适用场景**                                                    | **参考文档**                                                                                            |
|:---|:---|:---|
| **VPN网关**        | 适用于对成本敏感且可以接受一定网络延迟的用户，特别是那些需要快速部署和灵活调整的企业。                 | [通过站点入云VPN企业版实现数据中心和VPC互通](https://support.huaweicloud.com/qs-vpn/vpn_qs_00001.html)                |
| **云专线（DC）**      | 适用于对网络质量要求极高，可以承受较高成本的大中型企业，特别是金融、医疗等对数据传输稳定性有严格要求的行业。      | [用户通过单专线BGP协议访问VPC](https://support.huaweicloud.com/bestpractice-dc/dc_05_0002.html)                |
| **云连接（CC** **）** | 适用于需要跨区域、跨账号VPC互通以及与本地IDC高效互联的企业，特别是那些拥有多个数据中心并希望简化网络管理的企业。 | [连通不同区域的多个VPC和云下IDC的网络](https://support.huaweicloud.com/usermanual-vpc/vpc_plan_0005.html#section2) |
   
#### 步骤三：数据安全中心新增自建数据库资产
1. [登录DSC服务控制台](https://console.huaweicloud.com/dsc/)。
2. 单击左上角的![](https://support.huaweicloud.com/bestpractice-dsc/zh-cn_image_0000002633809836.png)，选择区域或项目。
3. 在左侧导航树中选择"资产中心 \> 资产管理"，进入"资产管理"页签。
4. 选择"数据库 \> 自建DB"，进入"数据库"页签。
5. 单击"数据库实例"，进入"数据库实例"页签。
6. 单击左上角的"添加实例"，进入"添加数据库实例"弹框。根据[表2]配置相关参数，单击"确定"完成自建数据库实例的添加。
   
   图1添加数据库实例
   ![](https://support.huaweicloud.com/bestpractice-dsc/zh-cn_image_0000002656540372.png)
   
    表2配置数据库实例信息 
   | 参数        | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 区域        | 默认与控制台左上方选择的区域一致。                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 组织成员账号    | 如果已通过多账号管理功能将组织成员纳入DSC，则显示该参数，单击选择账号显示该账号下的信息。                                                                                                                                                                                                                                                                                                                                                                                               |
   | ECS实例     | 单击下拉框选择需要添加的自建数据库实例所属ECS。                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 安全组       | 单击下拉框选择所属安全组。                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 数据库引擎     | 单击下拉框选择对应的自建数据库的引擎。                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 版本        | 单击下拉框选择数据库引擎的版本。                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 连接方式      | "数据库引擎"选择"Oracle"时显示该参数，单击下拉框选择连接方式： - 服务名：请输入服务名称。  - SID：请输入SID。   |
   | 模式名       | "数据库引擎"选择"DMDBMS"时，需要输入数据库的模式名。                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 主机        | 单击下拉框选择主机。 集群部署模式下，如需使用脱敏功能需设置为主节点IP。                                                                                                                                                                                                                                                                                                                                            |
   | 数据库端口     | 输入0-65535的整数。                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 数据库名称     | 输入数据库名称。                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 用户名/密码    | 输入该数据库的用户名和密码。                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 资产名称      | 输入长度范围为4-255个字符，仅允许输入中英文、数字、"-"、"_"，并且开头需为中文或者字母。                                                                                                                                                                                                                                                                                                                                                                                            |
   | 创建元数据拉取任务 | 支持元数据任务的数据库，打开开关后，会基于实例的默认数据库自动下发元数据任务，拉取实例的库、表、列信息。 "数据库引擎"选择SQLServer、Oracle、MongoDB、GaussDB时，不支持创建元数据拉取任务。                                                                                                                                                                                                                                                                       |
      
   
   
 
#### 步骤四：配置安全组访问控制策略
将待审计数据库添加至数据库安全审计实例后，您需要根据您在云上实际部署的数据库选择添加Agent的方式以及在应用端或数据库端安装Agent。Agent程序会获取访问数据库流量、将流量数据上传到审计系统、接收审计系统配置命令和上报数据库状态监控数据，帮助您实现对数据库的安全审计。
同时，Agent添加完成后，还需要为数据库安全审计实例所在的安全组添加入方向规则TCP协议（8000端口）和UDP协议（7000-7100端口），使Agent与审计实例之间的网络连通，数据库安全审计实例才能对添加的数据库进行审计。
1. [添加Agent](https://support.huaweicloud.com/usermanual-dbss/dbss_01_0188.html#section3)。
2. [下载并安装Agent](https://support.huaweicloud.com/usermanual-dbss/dbss_01_0314.html#section2)。
3. 在左侧导航树中，选择"数据库列表"，进入"数据库列表"界面。
4. 在"选择实例"下拉列表框中，选择需要添加安全组规则的数据库所属的实例。
5. 记录Agent安装节点IP信息。 
   在数据库所在行的"Agent"列，单击"查看Agent"。在下方的**"Agent列表"** 中，记录**"安装节点IP"**。
   图2安装节点IP   
   ![](https://support.huaweicloud.com/bestpractice-dsc/zh-cn_image_0000002664196885.png)
   
   
6. 在数据库列表的上方，单击"添加安全组规则"。
7. 在弹出的弹框中，记录数据库安全审计实例的"安全组名称"（例如default）。
8. 单击"前往处理"，进入"安全组"列表界面。
9. 在列表上方的搜索框中选择属性筛选，或输入关键字搜索，搜索指定的安全组。单击安全组名称。
10. 选择"入方向规则"，检查安全组的入方向规则。 
    请检查该安全组的入方向规则是否已为安装节点IP配置了TCP协议（端口为8000）和UDP协议（端口为7000-7100）规则。
    - 如果该安全组已配置安装节点的入方向规则，请执行[开启数据库安全审计]。
    
    - 如果该安全组未配置安装节点的入方向规则，请执行[11]。
    
    
    
    
11. 为安装节点添加入方向安全规则。
    
    1. 在入方向规则页面，单击"添加规则"。
       图3添加规则   
       ![](https://support.huaweicloud.com/bestpractice-dsc/zh-cn_image_0000002332690953.png) 
    
    2. 在"添加入方向规则"对话框中，添加TCP协议（端口为8000）和UDP协议（端口为7000-7100）规则。
       ![](https://support.huaweicloud.com/bestpractice-dsc/public_sys-resources/note_3.0-zh-cn.png)
       源地址可以是单个IP地址、IP地址段或安全组：
       - 单个IP地址：例如192.168.10.10/32。
       
       - IP地址段：例如192.168.52.0/24。
       
       - 所有IP地址：0.0.0.0/0。
       
       - 安全组：例如sg-abc。
        
       图4"添加入方向规则"对话框   
       ![](https://support.huaweicloud.com/bestpractice-dsc/zh-cn_image_0000002298731576.png) 
    
    3. 单击"确定"，完成添加入方向规则。
    
    
    
    
 
 #### 步骤五：开启数据库安全审计功能
数据库安全审计默认提供一条"全审计规则"的审计范围，可以对成功连接数据库安全审计实例的所有数据库进行安全审计。开启数据库安全审计后，您可以查看被添加的数据库的审计结果。
1. [登录DSC服务控制台](https://console.huaweicloud.com/dsc/)。
2. 单击左上角的![](https://support.huaweicloud.com/bestpractice-dsc/zh-cn_image_0000002633831840.png)，选择区域或项目。
3. 在左侧导航树中选择"数据审计 \> 数据库安全审计"，进入"数据库安全审计"页面。
4. 在左侧导航树中，选择"数据库列表"，进入"数据库列表"界面。
5. 在"选择实例"下拉框中，选择需要开启审计的数据库安全审计实例。
6. 在待开启审计所在行的"操作"列，单击"开启"，开启审计功能。 
   审计功能开启后，该数据库的"审计状态"为"已开启"，不需要重启数据库。
   
   
 
#### 步骤六：在DBSS页面验证审计效果
1. 开启审计后，在数据库上执行一条SQL语句（例如"show databases"）。
2. 在左侧导航栏选择"数据报表"，进入"数据报表"页面。
3. 在"选择实例"下拉列表框中，选择需要验证的数据库所属的实例。
4. 选择"语句"页签。
5. 展开下拉列表，选择"**全部时间"** 、**"近30分钟"** 、**"近1小时"** 、**"今日"** 、**"近7天"** 、**"近30天"** 或自定义时间段。单击搜索框，选择属性筛选，或输入关键字搜索。
   
   - 如果在SQL语句列表中显示了输入的SQL语句，说明审计成功。
   
   - 如果在SQL语句列表中未显示输入的SQL语句，说明Agent与数据库安全审计实例之间网络通信异常，请参见[如何处理Agent与数据库安全审计实例之间通信异常](https://support.huaweicloud.com/dbss_faq/dbss_01_0246.html)进行解决。
   
   
   图5查看SQL语句   
   ![](https://support.huaweicloud.com/bestpractice-dsc/zh-cn_image_0000002554637413.png)
   表3SQL语句列表参数说明 
   | 参数名称     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   |:---|:---|
   | SQL语句    | 完整的SQL语句。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | 客户端IP    | 执行SQL语句所在客户端的IP地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 数据库IP/域名 | 执行SQL语句所在的数据库的IP地址/域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 数据库用户    | 执行SQL语句的数据库用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 数据库名     | 执行SQL语句的数据库名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 风险等级     | 执行SQL语句的风险等级。 - 高  - 中  - 低  - 无风险   |
   | 规则       | 执行SQL语句的规则名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 操作类型     | 执行SQL语句的操作类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 响应结果     | 执行SQL语句的响应结果。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 生成时间     | 执行SQL语句的生成时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 操作       | 可对SQL语句执行的操作。 - 添加到白名单：可将该SQL语句添加到白名单。                                                                                                                                                                                                                                                                                                                                                                        |
      
   
   
 
