计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
文档首页/ 云数据库 GaussDB/ 最佳实践/ GaussDB安全配置建议

GaussDB安全配置建议

更新时间:2025-01-22 GMT+08:00

安全性是华为云与您的共同责任。华为云负责云服务自身的安全,提供安全的云。作为租户,您需要合理使用云服务提供的安全能力对数据进行保护,安全地使用云。详情请参见责任共担

本文提供了GaussDB使用过程中的安全配置建议,旨在为提高整体安全能力提供可操作的规范性指导。根据该指导文档您可以持续评估GaussDB的安全状态,更好的组合使用GaussDB提供的多种安全能力,提高对GaussDB的整体安全防御能力,保护存储在GaussDB的数据不泄露、不被篡改,以及数据传输过程中不泄露、不被篡改。

本文从以下几个维度给出建议,您可以评估GaussDB的使用情况,并根据业务需要在本指导的基础上进行安全配置。

最大连接数配置

如果GaussDB连接数过高,会消耗服务器大量资源,导致操作响应变慢,可以修改max_connections参数进行优化,具体内容请参见连接设置

max_connections:允许和数据库连接的最大并发连接数,此参数会影响集群的并发能力。

安全认证配置

为了保证用户体验,同时为了防止账户被人通过暴力破解,GaussDB设置了账户登录重试次数及失败后自动解锁时间的保护措施,GaussDB针对账户提供了以下能力:

  • failed_login_attempts:允许用户设置最大登录失败次数。
  • password_lock_time:此参数允许用户修改账户被锁定后自动解锁时间,单位为天。

    若管理员发现某账户被盗、非法访问等异常情况,可手动锁定该账户。当管理员认为账户恢复正常后,可手动解锁该账户。

    以手动锁定和解锁用户joe为例,命令格式如下:

    • 手动锁定
      1
      2
      gaussdb=# ALTER USER joe ACCOUNT LOCK;
      ALTER ROLE
      
    • 手动解锁
      1
      2
      gaussdb=# ALTER USER joe ACCOUNT UNLOCK;
      ALTER ROLE
      

用户密码的安全策略

GaussDB为了客户账号的安全,GaussDB对用户密码进行了以下设置:

  • 用户密码存储在系统表pg_authid中,为防止用户密码泄露,GaussDB对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。
  • GaussDB数据库用户的密码都有密码有效期,如果需要修改密码有效期,可以通过修改password_effect_time来更改。

权限管理

  • 虚拟私有云可以为GaussDB实例构建隔离的、用户自主配置和管理的虚拟网络环境。子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性,可以使用IAM为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,通过IAM进行精细的权限管理。具体内容请参见权限管理
  • 保障数据库的安全性和稳定性在使用数据库实例之前务必先设置安全组,具体内容请参见设置安全组规则
  • 为防止PUBLIC拥有CREATE权限,导致数据库任何账户都可以在PUBLIC模式下创建表或者其他数据库对象,其他用户也可以修改这些数据,可以如下SQL语句来查询:

    SELECT CAST(has_schema_privilege('public','public','CREATE') AS TEXT);

    • 如果返回为TRUE,执行如下SQL语句进行修复:

      REVOKE CREATE ON SCHEMA public FROM PUBLIC;

  • PUBLIC角色属于任何用户,如果将对象的所有权限授予PUBLIC角色,则任意用户都会继承此对象的所有权限,违背权限最小化原则,为了保障数据库数据的安全,此角色应该拥有尽可能少的权限。通过执行如下SQL语句来确定所有权限是否授权PUBLIC角色:

    SELECT relname,relacl FROM pg_class WHERE (CAST(relacl AS TEXT) LIKE '%,=arwdDxt/%}' OR CAST(relacl AS TEXT) LIKE '{=arwdDxt/%}') AND (CAST(relacl AS TEXT) LIKE '%,=APmiv/%}' OR CAST(relacl AS TEXT) LIKE '{=APmiv/%}');

    • 为空则说明已授权,如果已授权,可通过执行如下SQL语句来修复:

      REVOKE ALL ON <OBJECT_NAME> FROM PUBLIC;

  • pg_catalog模式下的pg_authid系统表中包含了数据库中所有的角色信息。由于所有用户会继承PUBLIC角色的权限,为了防止敏感信息泄露或被更改,PUBLIC角色不允许拥有pg_authid系统表的任何权限,执行如下SQL语句,如果查询结果显示不为空,则已经被授权:

    SELECT relname,relacl FROM pg_class WHERE relname = 'pg_authid' AND CAST(relacl AS TEXT) LIKE '%,=%}';

    • 如果已授权,通过执行如下SQL语句进行修复:

      REVOKE ALL ON pg_authid FROM PUBLIC;

  • 普通用户指用于执行普通业务操作的非管理员用户。作为普通用户,不应该拥有超出其正常权限范围的管理权限,例如创建角色权限,创建数据库权限,审计权限,监控权限,运维权限,安全策略权限等,在满足正常业务需求的前提下,为了确保普通用户权限最小化,应撤销普通用户非必须的管理权限。
  • 在创建函数时声明SECURITY DEFINER表示函数以创建它的用户权限执行,如果使用不当会导致函数执行者借助创建者的权限执行越权操作,所以一定确保这样的函数不被滥用。为了安全考虑,禁止PUBLIC角色执行SECURITY DEFINER类型的函数,执行如下SQL语句查询pubilc角色是否有SECURITY DEFINER类型的函数:

    SELECT a.proname, b.nspname FROM pg_proc a, pg_namespace b where a.pronamespace=b.oid and b.nspname <> 'pg_catalog' and a.prosecdef='t';

    • 如果返回非空,执行如下SQL语句检查是否有执行权限:

      SELECT CAST(has_function_privilege('public', 'function_name([arg_type][, ...])', 'EXECUTE') AS TEXT);

      • 返回TRUE,则代表拥有,执行下面的SQL语句进行修复:

        REVOKE EXECUTE ON FUNCTION function_name([arg_type][, ...]) FROM PUBLIC;

  • SECURITY INVOKER函数是以调用它的用户的权限来执行,使用不当会导致函数创建者借助执行者的权限执行越权操作,所以在调用非自身创建的这类函数时,一定要先检查函数执行内容,避免造成函数创建者借助执行者的权限执行了越权的操作。

数据库审计

  • GaussDB可以记录实例相关的操作,但是仅针对支持的审计操作,请在操作前查询操作列表,具体内容请参见支持审计的关键操作列表
  • 确保配置开启数据库对象的添加、删除、修改审计,具体内容请参见数据库审计
  • 支持审计日志可视化查看,可开启LTS的能力,具体内容可参见LTS日志

WAL 归档配置

WAL(Write Ahead Log)即预写式日志,也称为Xlog。wal_level决定了写入WAL的信息量。为了在备机上开启只读查询,wal_level需要在主机上设置成hot_standby,并且备机设置hot_standby参数为on。

备份管理

GaussDB支持数据库实例的备份和恢复,以保证数据可靠性。备份目前将以未加密的方式存储,防止客户误操作或者服务异常的情况下,因没有开启备份而造成数据丢失的情况,GaussDB针对备份提供了以下能力:

  • 提供了自动和手动的备份功能,具体内容请参见备份概述,在创建GaussDB实例时,系统默认开启实例级自动备份策略。实例创建成功后,您可根据业务需要修改实例级自动备份策略。
  • 提供了自动备份策略,定时定期对数据库进行备份。具体内容请参见设置自动备份策略
  • 提供了导出备份文件的能力,具体内容请参见导出备份信息

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容