云服务器内容精选

  • 免Agent方式审计数据库 部分数据库类型及版本支持免安装Agent方式,如表1所示。 表1 支持免Agent安装的关系型数据库 数据库类型 支持的版本 GaussDB for MySQL 默认都支持 RDS for SQLServer (华为 云审计 实例:23.02.27.182148 及其之后的版本支持) 默认都支持 RDS for MySQL 5.6(5.6.51.1及以上版本) 5.7(5.7.29.2及以上版本) 8.0(8.0.20.3及以上版本) DDS 4.0 PostgreSQL (华为云审计实例:23.04.17.123301 及其之后的版本支持) 须知: 当SQL语句大小超过4KB审计时会被截断,会导致审计到的SQL语句不完整。 14(14.4及以上版本) 13(13.6及以上版本) 12(12.10及上版本) 11(11.15及以上版本) 9.6(9.6.24及以上版本) 9.5(9.5.25及以上版本) RDS for MariaDB 默认都支持 免安装Agent模式配置简单、易操作,但较之安装了Agent的DBSS实例,支持的功能上存在如下差异: 统计会话数量时,无法统计成功登录、与失败登录的会话个数。 无法获取数据库访问时客户端的端口号。 由于GaussDB(DWS)服务具有日志审计开关的权限控制策略,只有华为云账号或拥有Security Administrator权限的用户才能开启或者关闭DWS数据库审计开关。 GaussDB默认不开启ddl,用户需要参照GaussDB用户手册操作开启如下配置: audit_system_object = 130023423,操作请参考:GaussDB开发指南。 datastyle=ISO,YMD,保证日期格式为yyyy-MM-dd HH:mm:ss+Z。 图1 免Agent安装流程 表2 快速使用数据库安全审计操作步骤 步骤 配置操作 说明 1 添加数据库 购买数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 申请数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 2 开启数据库安全审计 您需要开启数据库安全审计功能,将添加的数据库连接到数据库安全审计实例,才能使用数据库安全审计功能。 3 查看审计结果 数据库安全审计默认提供一条“全审计规则”的审计范围,可以对连接数据库安全审计实例的所有数据库进行审计。开启数据库安全审计后,您可以在数据库安全审计界面查看被添加的数据库的审计结果。 须知: 您可以根据业务需求设置数据库审计规则。有关配置审计规则的详细操作,请参见配置审计规则。
  • 背景信息 数据库安全审计支持对华为云上的E CS /BMS自建数据库和RDS关系型数据库进行审计。 数据库安全审计不支持跨区域(Region)使用。待审计的数据库必须和购买申请的数据库安全审计实例在同一区域。 数据库开启SSL时,将不能使用数据库安全审计功能。如果您需要使用数据库安全审计功能,请关闭数据库的SSL。关闭数据库SSL的详细操作,请参见如何关闭数据库SSL?。 有关审计数据的保存说明,请参见数据库安全审计的审计数据可以保存多久?。
  • 通过Agent方式审计数据库 非表1中的数据库类型及版本,需采用安装Agent方式开启DBSS服务。 图2 快速使用数据库安全审计流程图 表3 快速使用数据库安全审计操作步骤 步骤 配置操作 说明 1 添加数据库 购买数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 2 添加Agent 添加的数据库开启审计功能后,您需要为添加的数据库选择Agent的添加方式。 数据库安全审计支持对华为云上的ECS/BMS自建数据库和RDS关系型数据库进行审计,请根据您在华为云上实际部署的数据库选择Agent添加方式。 3 添加安全组规则 Agent添加完成后,您还需要为数据库安全审计实例所在的安全组添加入方向规则TCP协议(8000端口)和UDP协议(7000-7100端口),使Agent与审计实例之间的网络连通,数据库安全审计才能对添加的数据库进行审计。 4 安装Agent(Linux操作系统) 安全组规则添加完成后,您还需要下载Agent,并根据Agent的添加方式在数据库端或应用端安装Agent。 5 开启数据库安全审计 Agent安装成功后,您还需要开启数据库安全审计功能,将添加的数据库连接到数据库安全审计实例,才能使用数据库安全审计功能。 6 查看审计结果 数据库安全审计默认提供一条“全审计规则”的审计范围,可以对连接数据库安全审计实例的所有数据库进行审计。开启数据库安全审计后,您可以在数据库安全审计界面查看被添加的数据库的审计结果。 须知: 您可以根据业务需求设置数据库审计规则。有关配置审计规则的详细操作,请参见配置审计规则。
  • 免Agent方式审计数据库 部分数据库类型及版本支持免安装Agent方式,如表1所示。 表1 支持免Agent安装的关系型数据库 数据库类型 支持的版本 GaussDB for MySQL 默认都支持 RDS for SQLServer (华为云审计实例:23.02.27.182148 及其之后的版本支持) 默认都支持 RDS for MySQL 5.6(5.6.51.1及以上版本) 5.7(5.7.29.2及以上版本) 8.0(8.0.20.3及以上版本) DDS 4.0 PostgreSQL (华为云审计实例:23.04.17.123301 及其之后的版本支持) 须知: 当SQL语句大小超过4KB审计时会被截断,会导致审计到的SQL语句不完整。 14(14.4及以上版本) 13(13.6及以上版本) 12(12.10及上版本) 11(11.15及以上版本) 9.6(9.6.24及以上版本) 9.5(9.5.25及以上版本) RDS for MariaDB 默认都支持 免安装Agent模式配置简单、易操作,但较之安装了Agent的DBSS实例,支持的功能上存在如下差异: 统计会话数量时,无法统计成功登录、与失败登录的会话个数。 无法获取数据库访问时客户端的端口号。 由于GaussDB(DWS)服务具有日志审计开关的权限控制策略,只有华为云账号或拥有Security Administrator权限的用户才能开启或者关闭DWS数据库审计开关。 GaussDB默认不开启ddl,用户需要参照GaussDB用户手册操作开启如下配置: audit_system_object = 130023423,操作请参考:GaussDB开发指南。 datastyle=ISO,YMD,保证日期格式为yyyy-MM-dd HH:mm:ss+Z。 图1 免Agent安装流程 表2 快速使用数据库安全审计操作步骤 步骤 配置操作 说明 1 添加数据库 购买数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 申请数据库安全审计后,您需要将待审计的数据库添加到数据库安全审计实例。 2 开启数据库安全审计 您需要开启数据库安全审计功能,将添加的数据库连接到数据库安全审计实例,才能使用数据库安全审计功能。 3 查看审计结果 数据库安全审计默认提供一条“全审计规则”的审计范围,可以对连接数据库安全审计实例的所有数据库进行审计。开启数据库安全审计后,您可以在数据库安全审计界面查看被添加的数据库的审计结果。 须知: 您可以根据业务需求设置数据库审计规则。有关配置审计规则的详细操作,请参见配置审计规则。
  • 步骤三:查看审计结果 您可参照本节内容在总览界面查看审计结果信息,同时也可根据需求在报表界面进行设置,生成报表、下载或预览报表。 查看总览信息。 进入总览入口,如图7所示,查看总览信息。 在总览界面,展示了该实例的审计时长、SQL语句总量、风险总量以及今日语句、今日风险、今日会话量 您可以选择“语句”或“会话”页签,分别查看SQL语句信息和会话分布图。 图7 进入总览入口 生成报表、下载或预览报表。 参照图8进入报表管理界面。 图8 进入报表管理入口 在左侧导航树中,选择“报表”。 在“选择实例”下拉列表框中,选择需要生成审计报表的实例。选择“报表管理”页签。 在需要生成报表的模板所在行的“操作”列,单击“立即生成报表”。 在弹出的对话框中,单击,设置报表的开始时间和结束时间,选择生成报表的数据库。 单击“确定”。 系统跳转到“报表结果”页面,您可以查看报表的生成进度。报表生成后,您可以“预览”或“下载”报表,如图9所示。 如果您需要在线预览报表,请使用Google Chrome或Mozilla FireFox浏览器。 图9 预览或下载报表
  • 方案概述 本文档介绍了如何对关系型数据库(应用部署于ECS)进行安全审计。对于部分关系型数据库,DBSS服务支持免安装Agent模式,无需安装Agent,即可开启数据库安全审计。 如果您需要安全审计的数据库类型如表1所示,请参见本节内容。 表1 支持免Agent安装的关系型数据库 数据库类型 支持的版本 GaussDB for MySQL 默认都支持 RDS for SQLServer (华为云审计实例:23.02.27.182148 及其之后的版本支持) 默认都支持 RDS for MySQL 5.6(5.6.51.1及以上版本) 5.7(5.7.29.2及以上版本) 8.0(8.0.20.3及以上版本) GaussDB(DWS) 8.2.0.100及以上版本 PostgreSQL (华为云审计实例:23.04.17.123301 及其之后的版本支持) 须知: 当SQL语句大小超过4KB审计时会被截断,会导致审计到的SQL语句不完整。 14(14.4及以上版本) 13(13.6及以上版本) 12(12.10及上版本) 11(11.15及以上版本) 9.6(9.6.24及以上版本) 9.5(9.5.25及以上版本) RDS for MariaDB 默认都支持 如果您需要安全审计的数据库类型不在表1范围内,请参见审计RDS关系型数据库(安装Agent)。 免安装Agent模式配置简单、易操作,但较之安装了Agent的DBSS实例,支持的功能上存在如下差异: 统计会话数量时,无法统计成功登录、与失败登录的会话个数。 无法获取数据库访问时客户端的端口号。 由于GaussDB(DWS)服务具有日志审计开关的权限控制策略,只有华为云账号或拥有Security Administrator权限的用户才能开启或者关闭DWS数据库审计开关。 GaussDB默认不开启ddl,用户需要需按GaussDB用户手册开启(audit_system_object = 130023423 )配置,同时该配置页中需保证日期格式为yyyy-MM-dd HH:mm:ss+Z(datastyle=ISO,YMD),操作请参考:GaussDB开发指南。
  • 方案架构 数据库(GaussDB for MySQL或RDS for MySQL指定版本)将日志传送给DBSS,经过日志数据解析保存至DBSS实例日志库中,进行安全分析、聚合统计、合规分析等操作,实现对数据库的安全审计。 图1 审计RDS关系型数据库(免安装Agent)架构图 本文以GaussDB for MySQL为例,详细信息如表2所示,您需要对该数据库内部违规和不正当操作进行定位追责,满足等保测评数据库审计需求。本节详细介绍该场景下开启数据库安全审计功能和验证审计结果的具体操作。 表2 数据库示例信息说明 数据库类别 RDS数据库 数据库类型 GaussDB for MySQL 兼容的数据库版本 MySQL 8.0 数据库IP地址 192.168.0.237 数据库端口 3306
  • 基本概念 账号 用户注册时的账号,账号对其所拥有的资源及云服务具有完全的访问权限,可以重置用户密码、分配用户权限等。由于账号是付费主体,为了确保账号安全,建议您不要直接使用账号进行日常管理工作,而是创建用户并使用创建的用户进行日常管理工作。 用户 由账号在 IAM 中创建的用户,是云服务的使用人员,具有身份凭证(密码和访问密钥)。 通常在调用API的鉴权过程中,您需要用到账号、用户和密码等信息。 区域(Region) 从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 详情请参见区域和可用区。 可用区(AZ,Availability Zone) 一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个集群。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 项目 区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源),以默认项目为单位进行授权,用户可以访问您账号中该区域的所有资源。如果您希望进行更加精细的权限控制,可以在区域默认的项目中创建子项目,并在子项目中创建资源,然后以子项目为单位进行授权,使得用户仅能访问特定子项目中资源,使得资源的权限控制更加精确。 图1 项目隔离模型
  • 概述 欢迎使用数据库安全服务(Database Security Service,DBSS)。数据库安全服务是一个智能的数据库安全服务,基于大数据分析技术,提供数据库审计,SQL注入攻击检测,风险操作识别等功能,保障云上数据库的安全。 您可以使用本文档提供的API对实例、规则进行相关操作,如创建、查询、删除等。支持的全部操作请参见API。 在调用数据库安全服务API之前,请确保已经充分了解数据库安全服务相关概念,详细信息请参见产品介绍。
  • 响应参数 状态码: 200 表8 响应Body参数 参数 参数类型 描述 description String 描述 code String 返回码 order_id String 订单ID 状态码: 400 表9 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表10 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码。 error_msg String 错误请求返回的错误信息。 状态码: 403 表11 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表12 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码。 error_msg String 错误请求返回的错误信息。 状态码: 500 表13 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表14 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码。 error_msg String 错误请求返回的错误信息。
  • 请求示例 /v2/{project_id}/dbss/audit/charge/period/order { "flavor_ref" : "st6.xlarge.4", "name" : "DBSS-acc3", "vpc_id" : "4c035747-f77b-4c6d-b23b-cb3a2b96c7e6", "availability_zone" : "xx-xx", "comment" : "", "region" : "xx-xx", "nics" : [ { "subnet_id" : "6201dcf2-1374-43ec-ae8b-78b4081572d3" } ], "security_groups" : [ { "id" : "04088976-9c63-4e6b-9070-84e6a30c782b" } ], "cloud_service_type" : "hws.service.type.dbss", "charging_mode" : 0, "period_type" : 2, "period_num" : 1, "subscription_num" : 1, "is_auto_renew" : 0, "product_infos" : [ { "product_id" : "00301-xxxxxxx-0--0", "cloud_service_type" : "hws.service.type.dbss", "resource_type" : "hws.resource.type.dbss", "resource_spec_code" : "dbss.bypassaudit.low", "product_spec_desc" : "{\"specDesc\":{\"zh-cn\":{},\"en-us\":{\"instance Name\":\"DBSS-test\",\"VPC\":\"default_vpc\",\"Subnet\":\"subnet-af32\"}}}" } ], "promotion_info" : "", "enterprise_project_id" : "0", "tags" : [ { "key" : "key_test", "value" : "1" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务查询用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 实例名称。取值范围: 只能由中文字符、英文字母、数字、下划线、中划线组成,且长度小于等于64个字符。 flavor_ref 是 String 云服务器使用的规格ID vpc_id 是 String 虚拟私有云的ID availability_zone 是 String 云服务器对应可用分区信息。(两个主备分区,中间用“,”分割,例如az1.dc1,az2.dc2)。 enterprise_project_id 否 String 企业项目ID。对接EPS必输。 nics 是 Array of nics objects 云服务器对应的网卡信息 security_groups 是 Array of security_groups objects 云服务器对应安全组信息 comment 否 String 备注信息 region 是 String 云服务器所在区域ID cloud_service_type 是 String 服务类型: hws.service.type.dbss charging_mode 是 Integer 计费模式: 0: 包周期计费 1: 按需计费 period_type 是 Integer -订购周期类型 0: 天 1:周 2:月 3:年 4: 小时 5: 绝对时间 period_num 是 Integer 订购周期数 subscription_num 是 Integer 订购数量: DBSS只支持订购1套,不支持多套 product_infos 是 Array of product_infos objects 产品信息列表 tags 否 Array of KeyValueBean objects 资源标签 promotion_info 否 String 折扣信息 is_auto_renew 否 Integer 自动续费 1: 自动续费 0: 不自动续费 表4 nics 参数 是否必选 参数类型 描述 subnet_id 是 String 网卡对应的子网ID ip_address 否 String IP地址,不填或空字符串为自动分配 表5 security_groups 参数 是否必选 参数类型 描述 id 是 String 云服务器对应的安全组ID,会对创建云服务器中配置的网卡生效 表6 product_infos 参数 是否必选 参数类型 描述 product_id 是 String 产品ID cloud_service_type 是 String 服务类型: hws.service.type.dbss resource_type 是 String 资源类型: hws.resource.type.dbss resource_spec_code 是 String 资源规格:- dbss.bypassaudit.low- dbss.bypassaudit.medium- dbss.bypassaudit.high product_spec_desc 否 String 产品规格的中英文描述,规格包含:主机名称、规格、虚拟私有云、子网。json字符串格式 :{"specDesc":{"zh-cn":{"主机名称":"value1","规格":"value2","虚拟私有云":"value3","子网":"value4"},"en-us":{"Instance Name":"value1","Edition":"value2","VPC":"value3","Subnet":"value4"}}} 表7 KeyValueBean 参数 是否必选 参数类型 描述 key 是 String 键 value 否 String 值
  • 响应示例 状态码: 200 成功 { "azs" : [ { "zone_name" : "xx-xx", "zone_number" : 2, "az_type" : "normal", "alias" : "可用区2", "alias_us" : "AZ2" }, { "zone_name" : "xx-xx", "zone_number" : 1, "az_type" : "normal", "alias" : "可用区1", "alias_us" : "AZ1" }, { "zone_name" : "xx-xx", "zone_number" : 3, "az_type" : "normal", "alias" : "可用区3", "alias_us" : "AZ3" } ] } 状态码: 400 客户端错误 { "error" : { "error_code" : "DBSS.XXXX", "error_msg" : "XXX" } }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 azs Array of AzInfo objects 可用区集合 表4 AzInfo 参数 参数类型 描述 zone_name String 可用区名称 zone_number Integer 可用区编号 az_type String 可用区类型 alias String 可用区中文别名 alias_us String 可用区英文别名 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表6 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码。 error_msg String 错误请求返回的错误信息。 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表8 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码。 error_msg String 错误请求返回的错误信息。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error Object 错误信息返回体。 表10 ErrorDetail 参数 参数类型 描述 error_code String 错误请求返回的错误码。 error_msg String 错误请求返回的错误信息。
  • 请求示例 /v1/{project_id}/{instance_id}/dbss/audit/databases/rds { "databases" : [ { "id" : "123751d3ee2f47aea64822e98318c6a8in01", "db_name" : "rds1", "status" : "ACTIVE", "port" : "3306", "ip" : "192.168.0.119", "instance_name" : "rds1", "version" : "8.0", "type" : "MySQL", "enterprise_id" : "0", "enterprise_name" : "default" }, { "id" : "2343f7285d684fed8b09fac201c3fc7ain01", "db_name" : "rds2", "status" : "ACTIVE", "port" : "3306", "ip" : "192.168.0.92", "instance_name" : "rds2", "version" : "8.0", "type" : "MySQL", "enterprise_id" : "0", "enterprise_name" : "default" } ] }