云服务器内容精选

  • OBS数据删除或覆盖后是否可以恢复? 华为云无法恢复您主动删除、覆盖、配置规则自动删除或服务协议到期自动删除的OBS数据,请您谨慎操作。 可能导致数据被删除或覆盖的场景: 通过控制台、API、SDK、OBS Browser+、obsutil、obsfs方式删除对象。详情请参见删除对象。 通过控制台、API、SDK、OBS Browser+、obsutil、obsfs方式上传同名文件到OBS,会导致OBS内已有文件被覆盖。 如果您在生命周期规则中配置了定期删除文件的规则,OBS会根据生命周期的配置定期删除符合条件的文件。详情请参见生命周期管理。 如果您配置了跨区域复制规则,且选择的是增/删/改同步,则对源存储空间(桶)进行文件修改或删除操作时,操作会同步到目的Bucket。详情请参见跨区域复制。 没有正确的配置桶的访问权限,导致文件被他人恶意删除或覆盖。访问权限相关说明请参见权限管理。 如果账号欠费,会根据“客户等级”定义不同的保留期时长。进入保留期后您在OBS中存储的数据会予以保留,账号会处于受限状态。保留期满仍未缴清欠款,存储在OBS中的数据将被删除且无法恢复。详情请参见欠费和续费。 如何防止误删除或误覆盖: 权限控制 正确使用OBS提供的访问控制能力防止数据被删除或覆盖。详情请参见安全最佳实践。 OBS控制台支持敏感操作保护,开启后执行删除桶等敏感操作时,系统会进行身份验证,防止误删除数据。详情请参见敏感数据保护介绍。 开启多版本控制 利用多版本控制,您可以在一个桶中保留多个版本的对象,使您更方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。详情请参见多版本控制。 跨区域复制到异地备份 您可以使用跨区域复制功能将数据复制到异地进行备份。详情请参见跨区域复制。 WORM保护对象 您可以通过WORM功能保护对象,在保护期内阻止删除或覆盖对象。详情请参见WORM。 父主题: 安全性
  • 基本概念 以下为常见的基本概念,可以帮助用户减少学习Kerberos框架所花费的时间,有助于更好的理解Kerberos业务。以HDFS安全认证为例: TGT 票据授权票据(Ticket-Granting Ticket),由Kerberos服务生成,提供给应用程序与Kerberos服务器建立认证安全会话,该票据的默认有效期为24小时,24小时后该票据自动过期。 TGT申请方式(以HDFS为例): 通过HDFS提供的接口获取。 /** * login Kerberos to get TGT, if the cluster is in security mode * @throws IOException if login is failed */ private void login() throws IOException { // not security mode, just return if (! "kerberos".equalsIgnoreCase(conf.get("hadoop.security.authentication"))) { return; } //security mode System.setProperty("java.security.krb5.conf", PATH_TO_KRB5_CONF); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFromKeytab(PRNCIPAL_NAME, PATH_TO_KEYTAB); } 通过客户端shell命令以kinit方式获取。 ST 服务票据(Server Ticket),由Kerberos服务生成,提供给应用程序与应用服务建立安全会话,该票据一次性有效。 ST的生成在FusionInsight产品中,基于hadoop-rpc通信,由rpc底层自动向Kerberos服务端提交请求,由Kerberos服务端生成。
  • 结构 Kerberos的原理架构如图1所示,各模块的说明如表1所示。 图1 原理架构 表1 模块说明 模块 说明 Application Client 应用客户端,通常是需要提交任务(或者作业)的应用程序。 Application Server 应用服务端,通常是应用客户端需要访问的应用程序。 Kerberos 提供安全认证的服务。 KerberosAdmin 提供认证用户管理的进程。 KerberosServer 提供认证票据分发的进程。 步骤原理说明: 应用客户端(Application Client)可以是集群内某个服务,也可以是客户二次开发的一个应用程序,应用程序可以向应用服务提交任务或者作业。 应用程序在提交任务或者作业前,需要向Kerberos服务申请TGT(Ticket-Granting Ticket),用于建立和Kerberos服务器的安全会话。 Kerberos服务在收到TGT请求后,会解析其中的参数来生成对应的TGT,使用客户端指定的用户名的密钥进行加密响应消息。 应用客户端收到TGT响应消息后,解析获取TGT,此时,再由应用客户端(通常是rpc底层)向Kerberos服务获取应用服务端的ST(Server Ticket)。 Kerberos服务在收到ST请求后,校验其中的TGT合法后,生成对应的应用服务的ST,再使用应用服务密钥将响应消息进行加密处理。 应用客户端收到ST响应消息后,将ST打包到发给应用服务的消息里面传输给对应的应用服务端(Application Server)。 应用服务端收到请求后,使用本端应用服务对应的密钥解析其中的ST,并校验成功后,本次请求合法通过。
  • 认证代码实例讲解 package com.huawei.bigdata.hdfs.examples; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.security.UserGroupInformation; public class KerberosTest { private static String PATH_TO_HDFS_SITE_XML = KerberosTest.class.getClassLoader().getResource("hdfs-site.xml") .getPath(); private static String PATH_TO_CORE_SITE_XML = KerberosTest.class.getClassLoader().getResource("core-site.xml") .getPath(); private static String PATH_TO_KEYTAB = KerberosTest.class.getClassLoader().getResource("user.keytab").getPath(); private static String PATH_TO_KRB5_CONF = KerberosTest.class.getClassLoader().getResource("krb5.conf").getPath(); private static String PRNCIPAL_NAME = "develop"; private FileSystem fs; private Configuration conf; /** * initialize Configuration */ private void initConf() { conf = new Configuration(); // add configuration files conf.addResource(new Path(PATH_TO_HDFS_SITE_XML)); conf.addResource(new Path(PATH_TO_CORE_SITE_XML)); } /** * login Kerberos to get TGT, if the cluster is in security mode * @throws IOException if login is failed */ private void login() throws IOException { // not security mode, just return if (! "kerberos".equalsIgnoreCase(conf.get("hadoop.security.authentication"))) { return; } //security mode System.setProperty("java.security.krb5.conf", PATH_TO_KRB5_CONF); UserGroupInformation.setConfiguration(conf); UserGroupInformation.loginUserFromKeytab(PRNCIPAL_NAME, PATH_TO_KEYTAB); } /** * initialize FileSystem, and get ST from Kerberos * @throws IOException */ private void initFileSystem() throws IOException { fs = FileSystem.get(conf); } /** * An example to access the HDFS * @throws IOException */ private void doSth() throws IOException { Path path = new Path("/tmp"); FileStatus fStatus = fs.getFileStatus(path); System.out.println("Status of " + path + " is " + fStatus); //other thing } public static void main(String[] args) throws Exception { KerberosTest test = new KerberosTest(); test.initConf(); test.login(); test.initFileSystem(); test.doSth(); } } Kerberos认证时需要配置Kerberos认证所需要的文件参数,主要包含keytab路径,Kerberos认证的用户名称,Kerberos认证所需要的客户端配置krb5.conf文件。 方法login()为调用hadoop的接口执行Kerberos认证,生成TGT票据。 方法doSth()调用hadoop的接口访问文件系统,此时底层RPC会自动携带TGT去Kerberos认证,生成ST票据。 以上代码可在安全模式下的HDFS二次开发样例工程中创建KerberosTest.java,运行并查看调测结果,具体操作过程请参考HDFS开发指南(安全模式)。
  • 关闭SSL加密 在“实例管理”页面,选择指定的实例,单击实例名称。 在左侧导航栏中选择“HTAP实时分析”,单击目标HTAP实例名称,进入HTAP实例基本信息页面。 在“实例信息”模块的“SSL”处,单击。 图2 关闭SSL 在弹出框中,单击“是”,关闭SSL加密。 稍后可在“基本信息”页面,查看到SSL已关闭。 SSL关闭后,您可以通过非SSL方式连接HTAP实例,具体操作请参见通过JDBC方式连接。
  • 请求消息 表2 参数说明 名称 是否必选 参数类型 说明 port 是 Integer 端口号。 RDS for MySQL端口号范围:大于等于1024,小于等于65535,不包含12017和33071。 RDS for PostgreSQL端口号范围:2100~9500。 对于RDS for SQL Server 2022 EE、2022 SE、2022 Web版、2019 EE、2019 SE、2019 Web版、2017 EE、2017 SE、2017 Web版:端口设置范围为1433和2100~9500(其中5050、5353、5355、5985和5986不可设置)。 除此之外的其他版本:端口设置范围为1433和2100~9500(其中5355、5985和5986不可设置)。
  • DCS是否使用哨兵模式管理Redis实例? Redis 4.0/5.0/6.0主备、读写分离实例,以及集群实例的每个分片(每个分片也是一个主备实例),都使用了哨兵模式(Sentinel)进行管理,Sentinel会一直监控主备节点是否正常运行,当主节点出现故障时,自动进行主备节点切换,切换完成后恢复正常访问,无需用户进行操作。 Sentinel对用户不可见,仅在服务内部中使用。 Redis 3.0不支持哨兵模式,使用的是keeplived进行监控,当主节点故障时进行主备切换,备节点自动接管服务,无需用户进行操作。 父主题: 安全性
  • 账户密码复杂度设置 华为云关系型数据库服务Console端数据库密码复杂度,请参见购买实例中的数据库配置表格。 华为云关系型数据库对在客户端新创建的数据库用户设置了密码安全策略,安全策略如下: 口令长度至少8个字符。 口令至少包含大写字母、小写字母、数字和特殊字符各一个。 创建实例时,为用户提供了密码复杂度校验,由于root用户可以修改密码复杂度,安全起见,建议修改后的密码复杂度不低于华为云关系型数据库的初始化设置。
  • 账户说明 您在创建RDS for MariaDB数据库实例时,系统会自动为实例创建如下系统账户(用户不可使用),用于给数据库实例提供完善的后台运维管理服务。 删除、重命名、修改这些账户的密码和权限信息,会导致实例运行异常,请谨慎操作。 rdsAdmin:管理账户,用于查询和修改实例信息、故障排查、迁移、恢复等操作。 rdsRepl:复制账户,用于备实例或只读实例在主实例上同步数据。 rdsBackup:备份账户,用于后台的备份。 rdsMetric:指标监控账户,用于watchdog采集数据库状态数据。
  • Redis的安全加固方面有哪些建议? 在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,但是原生Redis版本在安全方面非常薄弱,很多地方不满足安全要求,如果暴露在公网上,极易受到恶意攻击,导致数据泄露和丢失。 针对DCS的Redis实例,您在使用过程中,可参考如下建议: 网络连接配置 敏感数据加密后存储在Redis实例,且实例不开启公网访问。 对于敏感数据,尽量加密后存储。如无特殊需要,尽量不使用公网访问。 对安全组设置有限的、必须的允许访问规则。 安全组与VPC均是用于网络安全访问控制的配置,以端口最少放开原则配置安全组规则,降低网络入侵风险。 客户端应用所在ECS设置防火墙。 客户端应用所在的服务器建议配置防火墙过滤规则。 设置实例访问密码。 配置实例白名单。 Redis-cli使用 隐藏密码 安全问题:通过在redis-cli指定-a参数,密码会被ps出来,属于敏感信息。 解决方案:修改Redis源码,在main方法进入后,立即隐藏掉密码,避免被ps出来。 禁用脚本通过sudo方式执行 安全问题: redis-cli访问参数带密码敏感信息,会被ps出来,也容易被系统记录操作日志。 解决方案:改为通过API方式(Python可以使用redis-py)来安全访问,禁止通过sudo方式切换到dbuser账号使用redis-cli。 父主题: 安全性
  • 响应消息 正常响应要素说明 表2 要素说明 名称 参数类型 说明 cert_info_list Array 证书列表。详情请参见表3。 表3 cert_info_list字段数据结构说明 名称 参数类型 说明 download_link String 下载链接。 category String 证书类型。枚举值: international national 正常响应样例 { "cert_info_list": [ { "category": "international", "download_link": "https://{region}.huaweicloud.com/rds/Certificate_Download.zip" } ] } 异常响应 请参见异常请求结果。
  • 使用须知 开启或关闭SSL会导致实例重启,请谨慎操作。 在开启或关闭SSL时,文档数据库服务会进行一次重启,重启过程中每个节点会有一次约30秒的闪断,建议您安排好业务并确保应用有重连机制。 开启SSL,可以通过SSL方式连接数据库,具有更高的安全性。 目前已禁用不安全的加密算法,支持的安全加密算法对应的加密套件参考如下。 版本 支持的TLS版本 支持的加密算法套件 3.4 TLS 1.2 AES256-GCM-SHA384 AES128-GCM-SHA256 4.0 TLS 1.2 DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES128-GCM-SHA256 用户的客户端所在服务器需要支持对应的TLS版本以及对应的加密算法套件,否则会连接失败。 关闭SSL,可以采用非SSL方式连接数据库。
  • 账户密码等级设置 GaussDB(for MySQL)管理控制台上数据库密码复杂度,请参见购买实例中的数据库配置表格。 GaussDB(for MySQL)对在客户端新创建的数据库用户,设置了密码安全策略: 口令长度至少8个字符。 口令至少包含大写字母、小写字母、数字、特殊字符三种字符的组合,其中允许输入~!@#%^*-_=+?,()&$特殊字符。 创建实例时,为用户提供了密码复杂度校验,由于root用户可以修改密码复杂度,安全起见,建议修改后的密码复杂度不低于GaussDB(for MySQL)数据库的初始化设置。
  • 账户说明 您在创建GaussDB(for MySQL)实例时,系统会自动为实例创建如下系统账户(用户不可使用),用于给数据库实例提供完善的后台运维管理服务。 删除、重命名、修改这些账户的密码和权限信息,会导致实例运行异常,请谨慎操作。 rdsAdmin:管理账户,拥有最高的superuser权限,用于查询和修改实例信息、故障排查、迁移、恢复等操作。 rdsRepl:复制账户,用于只读节点在主实例上同步数据。 rdsBackup:备份账户,用于后台的备份。 rdsMetric:指标监控账户,用于watchdog采集数据库状态数据。 rdsProxy:数据库代理账户,该账户在开通读写分离时才会自动创建,用于通过读写分离地址连接数据库时鉴权使用。
  • 集群(未启用Kerberos认证)安全配置建议 Hadoop社区版本提供两种认证方式Kerberos认证(安全模式)和Simple认证(普通模式),在创建集群时,MRS支持配置是否启用Kerberos认证。 在安全模式下MRS集群统一使用Kerberos认证协议进行安全认证。 而普通模式下MRS集群各组件使用原生开源的认证机制,一般为Simple认证方式。而Simple认证,在客户端连接服务端的过程中,默认以客户端执行用户(例如操作系统用户“root”等)自动完成认证,管理员或业务用户不显示感知认证。而且客户端在运行时,甚至可以通过注入UserGroupInformation来伪装成任意用户(包括superuser),集群资源管理接口和数据控制接口在服务端无认证和鉴权控制,很容易被黑客利用和攻击。 所以在普通模式下,必须通过严格限定网络访问权限来保障集群的安全。操作建议如下: 尽量将业务应用程序部署在同VPC和子网下的ECS中,避免通过外网访问MRS集群。 配置严格限制访问范围的安全组规则,禁止对MRS集群的入方向端口配置允许Any或0.0.0.0的访问规则。 如需从集群外访问集群内组件原生页面,请参考创建连接MRS集群的SSH隧道并配置浏览器进行配置。 父主题: 安全性说明