云服务器内容精选

  • 流量能否直接先过CDN再过高防,或先过高防再过CDN? 以下两种均不可以。 第一种情况:流量先经过CDN再经过高防,即高防串联在CDN后面。 结果:高防的DDoS防护功能失去意义。 原因:攻击流量先到达CDN,CDN被攻击用户无法访问,攻击流量不会到达高防,高防没有做流量清洗的机会。 图2 流量先经过CDN再经过高防原理说明 第二种情况:流量先经过高防再经过CDN,即CDN串联在高防后面。 结果:CDN的加速功能失去意义。 原因: CDN加速 能力的工作原理是使用户可以就近访问分散在各地的CDN节点,客户直接访问高防则无法使用CDN就近访问的加速能力。 图3 流量先经过高防再经过CDN原理说明
  • 约束限制 当用户的视频、电商等业务系统可以通过 域名 区分动静态资源,可以使用“DDoS高防+CDN”联动方案,动静态资源相关说明如表1所示。 部分平台业务系统的动静态资源采用一套域名,没有做动静态资源分离,这种情况无法使用“DDoS高防+CDN”联动方案,请参考备选方案进行处理。 图1 “DDoS高防+CDN”联动方案原理说明 表1 动态资源与静态资源 类别 定义 举例 解决办法 动态资源 服务器端在应答客户请求前需要和数据库进行交互的业务。 支付 登录 动态资源的域名解析到高防的CNAME。高防防护能够保证登录、支付等功能平台稳定运行不中断。 静态资源 客户可以直接在对象存储中获取的固定资源。 图片 视频 静态资源的域名解析到CDN的CNAME。CDN加速使客户能够快速获取视频、图片等资源,提升客户体验。 如果是静态资源,例如图片业务的域名是image.abc.com,DNS将image.abc.com解析到CDN的CNAME,即可以获取静态资源CDN加速能力。 如果是动态资源,例如登录业务的域名是login.abc.com,DNS将login.abc.com解析到高防的CNAME,高防防护保证登录功能稳定运行。
  • 应用场景 当您的网站类业务部署在华为云E CS 上时,您可以为网站业务配置“DDoS原生高级防护+ELB”联动防护,即ECS源站服务器部署ELB后将ELB的公网IP添加到DDoS原生高级防护实例进行防护,进一步提升ECS防御DDoS攻击能力。 相比直接为ECS开启DDoS原生高级防护,“DDoS原生高级防护+ELB”联动防护通过ELB丢弃未监听协议和端口的流量,对不同类型的DDoS攻击(例如,SSDP、NTP、Memcached等反射型攻击、UDP Flood攻击、SYN Flood大包攻击)有更好的防御效果,可以大幅度提升ECS防御DDoS攻击能力,确保用户业务安全、可靠。
  • 操作场景 本章节指导用户使用"多次同步方案"迁移增量对象数据。 主要迁移步骤如下所示: 使用 OMS 完成源端数据的全量迁移。 多次增量迁移数据,减少源端和目的端数据差异。 多次增量迁移后,确认一个能够接受的增量迁移时间窗,停止源端业务,启动最后一次增量迁移,迁移完成后启动目的端写业务。 迁移过程中, 对象存储迁移 服务会调用源端云服务提供商的 对象存储服务 接口,所产生的费用都遵从源端云服务提供商的计费规则并由其向您收取。
  • 前提条件 请准备基础认证信息: AC CES S_KEY:华为云账号Access Key SECRET_ACCESS_KEY:华为云账号Secret Access Key DOMAIN_ID:华为云账号ID,详情请参见华为云账号基本概念 CCM_ENDPOINT:华为云CCM服务(PCA属于CCM下的微服务)访问终端节点,详情请参见终端节点说明 华为云SDK,提供统一的SDK使用方式。通过添加依赖或下载的方式调用华为云API,访问华为云应用、资源和数据。 PCA服务统一SDK地址见 SDK中心 。 华为云统一SDK使用指导请参见华为云开发者Java软件开发工具包(Java SDK)。 父主题: PCA代码示例最佳实践
  • 读请求路由到主实例的场景 如果查询语句被放在事务中,事务请求都会路由到主实例。如果在查询语句前设置set autocommit=0时也当做事务处理路由到主实例。 如果所有只读节点都均异常或只读节点权重为0时,则查询会路由到主实例。对于成功开启读写分离功能的实例,您可以设置其主实例和只读实例的权重。具体操作请参见读写分离权重。 在执行SQL语句时: 如果执行了Multi-Statements(如“insert xxx;select xxx”),当前连接的后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。 带锁的读操作(如SELECT for UPDATE)会被路由到主节点。 当使用/*FORCE_MASTER*/这个Hint语句时,会被路由到主实例。 如果执行了Handler语句,默认后续请求会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。 父主题: TaurusDB读写分离最佳实践
  • 指定obsutil上传下载时进行限速 obsutil支持通过在配置文件.obsutilconfig中配置rateLimitThreshold参数实现对上传/下载操作进行限速。 参数具体描述可参考配置参数说明,默认不指定即不进行限速,此时具体的上传/下载速度取决于用户侧的实际网络带宽及上传/下载任务的并发配置,具体调优方案可以参考obsutil性能调优最佳实践。 需要注意的是,rateLimitThreshold参数指定的是obsutil任务的全局限速,这意味着当使用cp、sync等命令进行批量文件的上传/下载时,最终的实际上传/下载速度上限仍然为rateLimitThreshold指定的阈值而不是批量任务的并发任务数*rateLimitThreshold。 父主题: 最佳实践
  • 场景说明 安全云脑 (SecMaster)是华为云原生的新一代安全运营中心,集华为云多年安全经验,基于云原生安全,提供云上资产管理、安全态势管理、安全信息和事件管理、安全编排与自动响应等能力。 安全云脑支持在重大保障及防护演练前,全面地进行资产脆弱性盘点;在攻防演练期间,高强度7*24的安全保障,侧重于防攻击,保障业务可用性不因安全攻击受影响,侧重于防入侵,保障不因入侵失分被问责。能够更智能、更快速,帮助您实现一体化、自动化安全运营管理,满足您的安全需求。 本场景将介绍在护网、重保场景中安全云脑的使用,具体流程如下图所示: 图1 使用流程 父主题: 安全云脑护网/重保最佳实践
  • 免责声明 业务可用性风险 本功能旨在帮助用户在迁移后保持主机的私有IP地址与源端一致,但不保证切换IP后的业务可用性。需要用户自行评估并承担由此带来的风险。 回退说明 主机迁移 工作流提供自动化的IP不变功能,但不提供自动化回退功能。如果用户在使用该功能后遇到问题需要回退,仅支持手动回退。 IP冲突风险提示 源端与目的端在私有IP相同的情况下,可能会引发IP冲突,进而导致业务不可用。 未知风险提示 由于迁移无法对业务进行深入的嗅探和分析,因此使用IP不变功能后可能出现其他未被预见的问题。 用户责任 用户应当在迁移前进行充分的测试和准备,并在迁移后自行排查和解决可能出现的问题。我们建议在正式迁移前,用户先在测试环境中进行模拟迁移,以评估潜在风险并制定相应的应对策略。
  • 步骤二:上传URL列表文件至OBS桶 登录OBS管理控制台,在左侧导航栏选择“桶列表”。 在桶列表中,单击创建的目的端OBS桶,进入“对象”页面。 单击“新建文件夹”,在“文件夹名称”中输入自定义名称(例如:cephUrl),单击“确定”。 单击上一步创建的文件夹名称,进入该文件夹,单击“上传对象”,系统弹出“上传对象”对话框。 通过以下任意方式,将待迁移对象的URL列表文件(在本文示例中为s3url.txt)上传至文件夹。 拖拽URL列表文件至“上传对象”区域框内,单击“上传”。 单击“上传对象”区域框内的“添加文件”,选择URL列表文件进行添加,单击“上传”。
  • 准备工作 华为账号准备 使用MgC之前,您需要拥有一个华为账号或一个可用于访问MgC的 IAM 用户,并获取账号/IAM用户的访问密钥(AK/SK)。获取方法请参考准备工作。 创建迁移项目 在MgC控制台为本次迁移创建独立的项目,方法请参考项目管理。 创建目的端OBS桶 在华为云创建一个用于存放URL列表文件和接收源端数据的OBS标准存储桶,区域选择您希望迁移到的目的端区域。创建方法请参考创建桶。 如果使用IAM用户进行迁移,该IAM用户需要拥有目的端桶的读写权限。授权方法请参考对单个IAM用户授予桶的读写权限。 创建集群 通过集群可以创建Master节点、迁移节点和列举节点,确保存储工作流的顺利运行。创建方法请参考创建集群。
  • 操作步骤 登录迁移中心管理控制台。 在左侧导航栏选择“总览”,进入总览页面。 在新手入门选择跨可用区迁移,在单批次小数量主机迁移用户一站式跨可用区迁移区域,单击“开始创建”按钮。 在弹出一站式跨可用区迁移窗口,自定义应用名称,选择要迁移到的目的可用区。 单击“开始执行”,系统会自动采集当前账号下所选区域主机信息,并自动创建应用将主机加入到该应用内,开始迁移评估。 评估执行完成后,单击“关闭”按钮,进行工作流配置。 根据表1参数说明,配置工作流参数。 表1 参数说明 区域 参数 说明 工作流详情 名称 用户自定义 描述 用户自定义 应用程序 应用名称 选择步骤4中自定义的应用名称。 迁移设置 区域 选择待迁移可用区所在Region,与创建的应用配置保持一致。 目的可用区 选择要迁移到目的端可用区,与创建的应用配置保持一致。 网络设置 当前只支持“保留源端配置”。 目的虚拟机创建策略 立即创建 工作流立即开始进行源端备份,源端各自独立备份完成后,立即开始生成镜像和目的端主机。 目的端是否关机 选择“是”,生成目的端后,目的端保持关机状态。 选择“否”,生成目的端后,目的端自动开机。 增量备份前源端是否关机 选择“是”,工作流在执行增量备份前,会关闭源端主机,这样可以最大限度保证新建目的端数据与源端数据的一致性。 选择“否”,工作流在执行增量备份时,依旧保持开机状态。 创建系统盘镜像 选择“是”,将基于源端系统盘创建系统盘镜像,便于后续目的端重装系统。 选择“否”,不创建系统盘镜像。 高级设置 自动删除镜像 选择开启,业务割接后自动删除迁移过程中产生的备份、快照及镜像文件。 保持主网卡IP不变 选择开启时,将目的端的主网卡私有IP切换为源端主网卡私有IP,并绑定源端主网卡绑定的EIP,此时源端主网卡私有IP将设置为随机IP,并解绑EIP。以上操作不支持自动回退,需要您手动回退。 工作流配置完成后,单击“下一步:确认并创建”按钮,确认配置信息无误后,单击“确认创建工作流”。迁移工作流创建完成,可在工作流列表查看。 此时迁移工作流状态为“等待中”,并未开始迁移。 单击工作流名称,进入工作流详情页面,工作流步骤为迁移模板的标准步骤,您也可以在工作流步骤中自行添加阶段/步骤。 确定工作流步骤后,单击“运行”按钮,开始迁移。 在工作流步骤页签可以监控迁移进展。如果迁移步骤中包含手动操作,需要您进行手动确认后,才能进行后续步骤。 在主机页签,可以查看每台主机的迁移状态。
  • 解决方案 数据库用户 数据库用户的主要用途是使用该用户账号连接数据库、访问数据库对象和执行SQL语句。在连接数据库时,必须使用一个已经存在的数据库用户。因此,作为数据库管理员,需要为每一个需要连接数据库的使用者规划一个数据库用户。 在创建数据库用户时,至少需要指定用户名和密码。 默认情况下,数据库用户可以分为两大类,详细信息请参见表1。 表1 用户分类 分类 描述 初始用户 具有数据库的最高权限,并且具有所有的系统权限和对象权限。初始用户不受对象的权限设置影响。这个特点类似Unix系统的root的权限。从安全角度考虑,除了必要的情况,建议尽量避免以初始用户身份操作。 在安装数据库或者初始化数据库时,可以指定初始用户名和密码。如果不指定用户名则会自动生成一个与安装数据库的OS用户同名的初始用户。如果不指定密码则安装后初始用户密码为空,需要通过gsql客户端设置初始用户的密码后才能执行其他操作。 说明: 基于安全性考虑, GaussDB Kernel禁止了所有用户trust方式的远程登录方式,禁止了初始用户的任何方式的远程登录。 普通用户 默认可以访问数据库的默认系统表和视图(pg_authid、pg_largeobject、pg_user_status和pg_auth_history除外),可以连接默认的数据库postgres以及使用public模式下的对象(包括表、视图和函数等)。 可以通过CREATE USER、ALTER USER指定系统权限,或者通过GRANT ALL PRIVILEGE授予SYSADMIN权限。 可以通过GRANT语句授予某些对象的权限。 可以通过GRANT语法将其他角色或用户的权限授权给该用户。 数据库权限分类 通过权限和角色,可以控制用户访问指定的数据,以及执行指定类型的SQL语句。详细信息请参见表2。 系统权限只能通过CREATE/ALTER USER、CREATE/ALTER ROLE语句指定(其中SYSADMIN还可以通过GRANT/REVOKE ALL PRIVILEGES的方式赋予、回收),无法从角色继承。 表2 权限分类 分类 描述 系统权限 系统权限又称为用户属性,可以在创建用户和修改用户时指定,包括SYSADMIN、MONADMIN、OPRADMIN、POLADMIN、CREATEDB、CREATEROLE、AUDITADMIN和 LOG IN。 系统权限一般通过CREATE/ALTER USER语句指定。除了SYSADMIN外的其他系统权限,无法通过GRANT/REVOKE进行授予和撤销。并且,系统权限无法通过ROLE被继承。 对象权限 对象权限是指在表、视图、索引和函数等数据库对象上执行各种操作的权限,对象权限包括SELECT、INSERT、UPDATE和DELETE等。 只有对象的所有者或者系统管理员才可以执行GRANT/REVOKE语句来分配/撤销对象权限。 角色 角色是一组权限的集合,可以将一个角色的权限赋予其他角色和用户。 由于无法给其他角色和用户赋予系统权限,所以角色只有是对象权限的集合时才有意义。 数据库权限模型 系统权限模型 默认权限机制 图1 权限架构 权限架构如图1,默认权限机制下sysadmin具有大多数的权限。 初始安装用户:集群安装过程中自动生成的账户,拥有系统的最高权限,能够执行所有的操作。 SYSADMIN:系统管理员权限,权限仅次于初始安装用户,默认具有与对象所有者相同的权限,但不包括监控管理员权限和运维管理员权限。 MONADMIN:监控管理员权限,具有监控模式dbe_perf及模式下视图和函数的访问权限和授予权限。 OPRADMIN:运维管理员权限,具有使用Roach工具执行备份恢复的权限。 CREATEROLE:安全管理员权限,具有创建、修改、删除用户/角色的权限。 AUDITADMIN:审计管理员权限,具有查看和维护数据库审计日志的权限。 CREATEDB:具有创建数据库的权限。 POLADMIN:安全策略管理员权限,具有创建资源标签,数据动态脱敏策略和统一审计策略的权限。 三权分立机制 图2 三权分立机制 SYSADMIN:系统管理员权限,不再具有创建、修改、删除用户/角色的权限,也不再具有查看和维护数据库审计日志的权限。 CREATEROLE:安全管理员权限,具有创建、修改、删除用户/角色的权限。 AUDITADMIN:审计管理员权限,具有查看和维护数据库审计日志的权限。 一个用户/角色只能具有SYSADMIN、CREATEROLE和AUDITADMIN中的一项系统权限。 对象权限模型 对象权限:指在数据库、模式、表等数据库对象上执行特定动作的权限,比如:SELECT、INSERT、UPDATE、DELETE和CONNECT等。 针对不同的数据库对象有不同的对象权限,相应地可以被授予用户/角色。 通过GRANT/REVOKE来传递对象权限,对象权限可以通过角色被继承。 角色权限模型 GaussDB Kernel提供了一组默认角色,以gs_role_开头命名。它们提供对特定的、通常需要高权限操作的访问,可以将这些角色GRANT给数据库内的其他用户或角色,让这些用户能够使用特定的功能。在授予这些角色时应当非常小心,以确保它们被用在需要的地方。表3描述了内置角色允许的权限范围。 表3 内置角色权限 角色 权限描述 gs_role_copy_files 具有执行copy … to/from filename的权限,但需要先打开GUC参数enable_copy_server_files。 gs_role_signal_backend 具有调用函数pg_cancel_backend()、pg_terminate_backend()和pg_terminate_session()来取消或终止其他会话的权限,但不能操作属于初始用户和PERSISTENCE用户的会话。 gs_role_tablespace 具有创建表空间(tablespace)的权限。 gs_role_replication 具有调用逻辑复制相关函数的权限,例如kill_snapshot()、pg_create_logical_replication_slot()、pg_create_physical_replication_slot()、pg_drop_replication_slot()、pg_replication_slot_advance()、pg_create_physical_replication_slot_extern()、pg_logical_slot_get_changes()、pg_logical_slot_peek_changes(),pg_logical_slot_get_binary_changes()、pg_logical_slot_peek_binary_changes()。 gs_role_account_lock 具有加解锁用户的权限,但不能加解锁初始用户和PERSISTENCE用户。 gs_role_pldebugger 具有执行dbe_pldebugger下调试函数的权限。 gs_role_directory_create 具有执行创建directory对象的权限,但需要先打开GUC参数enable_access_server_directory。 gs_role_directory_drop 具有执行删除directory对象的权限,但需要先打开GUC参数enable_access_server_directory。 系统权限配置 默认权限机制配置方法 初始用户 数据库安装过程中自动生成的账户称为初始用户。初始用户也是系统管理员、监控管理员、运维管理员和安全策略管理员,拥有系统的最高权限,能够执行所有的操作。如果安装时不指定初始用户名称则该账户与进行数据库安装的操作系统用户同名。如果在安装时不指定初始用户的密码,安装完成后密码为空,在执行其他操作前需要通过gsql客户端修改初始用户的密码。如果初始用户密码为空,则除修改密码外无法执行其他SQL操作以及升级、扩容和节点替换等操作。 初始用户会绕过所有权限检查。建议仅将此初始用户作为DBA管理用途,而非业务用途。 系统管理员 gaussdb=#CREATE USER u_sysadmin WITH SYSADMIN password '********'; --或者使用如下SQL,效果一样,需要该用户已存在。 gaussdb=#ALTER USER u_sysadmin01 SYSADMIN; 监控管理员 gaussdb=#CREATE USER u_monadmin WITH MONADMIN password '********'; --或者使用如下SQL,效果一样,需要该用户已存在。 gaussdb=#ALTER USER u_monadmin01 MONADMIN; 运维管理员 gaussdb=#CREATE USER u_opradmin WITH OPRADMIN password "xxxxxxxxx"; --或者使用如下SQL,效果一样,需要该用户已存在。 gaussdb=#ALTER USER u_opradmin01 OPRADMIN; 安全策略管理员 gaussdb=#CREATE USER u_poladmin WITH POLADMIN password "xxxxxxxxx"; --或者使用如下SQL,效果一样,需要该用户已存在。 gaussdb=#ALTER USER u_poladmin01 POLADMIN; 三权分立机制配置方式 此模式需要设置guc参数“enableSeparationOfDut”y的值为“on”,该参数为POSTMASTER类型参数,修该完之后需要重启数据库。 gs_guc set -Z datanode -N all -I all -c "enableSeparationOfDuty=on" gs_om -t stop gs_om -t start 创建和配置相应的用户权限的语法和默认权限一致。 角色权限配置 --创建数据库test gaussdb=#CREATE DATABASE test; --创建角色role1,创建用户user1 gaussdb=#CREATE ROLE role1 PASSWORD '********'; gaussdb=#CREATE USER user1 PASSWORD '********'; --赋予CREATE ANY TABLE权限角色role1 gaussdb=#GRANT CREATE ON DATABASE test TO role1; --将角色role1赋予给用户user1,则用户user1属于组role1,继承role1的相应权限可以在test数据库中创建模式。 gaussdb=#GRANT role1 TO user1; --查询用户和角色信息 gaussdb=#\du role1|user1; List of roles Role name | Attributes | Member of -----------+--------------+----------- role1 | Cannot login | {} user1 | | {role1}
  • 背景 一个数据库可能有很多的用户需要访问,为了方便管理这些用户,将用户组成一个数据库角色。一个数据库角色可以视为一个数据库用户或者一组数据库用户。 对于数据库来说,用户和角色是基本相同的概念,不同之处在于,使用CREATE ROLE创建角色,不会创建同名的SCHEMA,并且默认没有LOGIN权限;而使用CREATE USER创建用户,会自动创建同名的SCHEMA,默认有LOGIN权限。换句话说,一个拥有LOGIN权限的角色可以被认为是一个用户。在业务设计中,仅建议通过ROLE来组织权限,而不是用来访问数据库。
  • 背景 一个数据库可能有很多的用户需要访问,为了方便管理这些用户,将用户组成一个数据库角色。一个数据库角色可以视为一个数据库用户或者一组数据库用户。 对于数据库来说,用户和角色是基本相同的概念,不同之处在于,使用CREATE ROLE创建角色,不会创建同名的SCHEMA,并且默认没有LOGIN权限;而使用CREATE USER创建用户,会自动创建同名的SCHEMA,默认有LOGIN权限。换句话说,一个拥有LOGIN权限的角色可以被认为是一个用户。在业务设计中,仅建议通过ROLE来组织权限,而不是用来访问数据库。