华为云用户手册

  • 应用服务网格与其他服务的关系 表1 应用服务网格与其他服务的关系 服务名称 应用服务网格与其他服务的关系 主要交互功能 云容器引擎 CCE 云容器引擎(Cloud Container Engine,CCE)提供高可靠高性能的企业级容器应用管理服务,支持Kubernetes社区原生应用和工具,简化云上自动化容器运行环境搭建。 您可以为CCE集群启用服务网格功能,对集群中的服务进行治理。 购买CCE集群 弹性负载均衡 ELB 弹性负载均衡(Elastic Load Balance,ELB)将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错。 您可以通过弹性负载均衡从外部访问应用服务网格。 创建共享型负载均衡器 应用性能管理 APM 应用性能管理 (Application Performance Management, APM )实时监控并管理云应用性能和故障的云服务,提供专业的分布式应用性能分析能力,可以帮助运维人员快速解决应用在分布式架构下的问题定位和性能瓶颈等难题,为用户体验保驾护航。 您可以使用应用性能管理,对应用服务网格中运行的服务进行全链路拓扑管理和分布式调用链追踪,方便您快速进行故障定位和根因分析。 全链路拓扑 调用链
  • 计费模式 ASM分为“按需计费”与“包年/包月”两种计费模式。 按需计费模式 按需计费模式是根据当前集群中服务网格治理的Pod实例数量,按每小时扣费。 企业版网格治理不足20实例时,按20实例数收取费用,超过20实例时,按实际实例数收取费用。 企业版网格仅可选择5000实例治理。 专有网格可选择5000实例治理,也可选择体验20实例。 基础版网格可免费使用,最大可支持200实例。 包年/包月计费模式 为您提供实例套餐包,相比于按需模式更优惠;包年更优惠,仅需支付10个月的套餐包费用即可包一整年。企业版网格支持此计费模式。 表1 包周期收费表 网格可管理的最大实例数(Pod个数) 配置费用(元/月) 50 6,750 500 27,600 1,000 45,000 2,000 70,200 5,000 141,750
  • 优势 无侵入的迁移方案:对于大量当前使用传统SDK开发的服务,当要使用服务网格能力时,ASM提供了一套迁移业务无侵入的迁移方案。在服务调用方将Outbound的流量引流到网格的数据面上来。即短路原有SDK里的服务发现和负载均衡,直接通过Kubernetes的服务名访问,使用Kubernetes的服务发现,SDK里的治理逻辑也可逐步的被网格替换。这样服务的运行治理能力都下沉到由Kubernetes和服务网格提供的基础设施上。 统一策略管理:控制面使用ASM统一的控制面做服务发现和治理规则管理,不需要独立的注册中心和配置中心;数据面的服务发现、负载均衡和各种治理都在ASM数据面Envoy上执行,SDK作为开发框架,回归到开发框架的本来职能,作为一个纯净轻量的应用开发框架供用户开发代码。 多种基础设施:在方案中,数据面可以是容器,也可以是VM。服务可以是各种语言,本身开发框架也没有限制。统一通过网格的控制面下发流量规则,对所有形态的数据面进行一致的管理。
  • 优势 重试:服务访问失败自动重试,从而提高总体访问成功率和质量。支持配置HTTP请求重试次数、重试超时时间和重试条件。 超时:服务访问超时自动处理,快速失败,从而避免资源锁定和请求卡顿。支持配置HTTP请求超时时间。 连接池:通过连接池管理,可以对四层协议配置TCP的最大连接数、连接超时时间、最大无响应次数、最短空闲时间和健康检查间隔,对七层协议配置HTTP最大请求数、最大重试次数、最大等待请求数、每连接最大请求数、连接最大空闲时间,从而防止一个服务的失败级联影响到整个应用。 熔断:通过熔断配置实例被驱逐前的连续错误次数、驱逐间隔时长、最小驱逐时间、最大驱逐比例等参数,从而定期考察被访问的服务实例的工作情况,如果连续出现访问异常,则将服务实例标记为异常并进行隔离,在一段时间内不为其分配流量。过一段时间后,被隔离的服务实例会再次被解除隔离,尝试处理请求,如果还不正常,则被隔离更长的时间。从而实现异常服务实例的故障隔离和自动故障恢复。 负载均衡:配置各种负载均衡策略,如随机、轮询、最少连接,还可以配置一致性哈希将流量转发到特定的服务实例上。 HTTP头域:灵活增加、修改和删除指定HTTP头域,包括将HTTP请求转发到目标服务之前对Headers的操作,以及将HTTP响应回复给客户端前,对Headers的操作,以非侵入方式管理请求内容。 故障注入:通过对选定的服务注入中断故障、延时故障来构造故障场景,无需修改代码即可进行故障测试。
  • 适用场景 众所周知,将传统的单体应用拆分为一个个微服务固然带来了各种好处,包括更好的灵活性、可伸缩性、重用性,但微服务也同样面临着特殊的安全需求,如下所示: 为了抵御中间人攻击,需要用到流量加密。 为了提供灵活的服务访问控制,需要用到TLS和细粒度访问策略。 为了决定哪些人在哪些时间可以做哪些事,需要用到审计工具。 面对这些需求应用服务网格提供全面的安全解决方案,包括身份验证策略,透明的TLS加密以及授权和审计工具。
  • 优势 非侵入安全:应用服务网格是以一种安全基础设施的方式向用户提供透明的安全能力,让不涉及安全问题的代码安全运行,让不太懂安全的人可以开发和运维安全的服务,不用修改业务代码就能提供服务访问安全。应用服务网格提供了一个透明的分布式安全层,并提供了底层安全的通信通道,管理服务通信的认证、授权和加密,提供Pod到Pod、服务到服务的通信安全。开发人员在这个安全基础设施层上只需专注于应用程序级别的安全性。 多集群安全:在多集群场景下ASM提供了全局的服务访问安全。多个集群的网格共享一套根证书,给数据面的服务实例分发密钥和证书对,并定期替换密钥证书,根据需要撤销密钥证书。在服务间访问时,网格的数据面代理就会代理本地服务和对端进行双向认证、通道加密。这里的双向认证的服务双方可以来自两个不同的集群,从而做到跨集群的透明的端到端双向认证。 细粒度授权:在认证的基础上,就可以进行服务间的访问授权管理,可以控制某个服务,或者服务的一个特定接口进行授权管理。如只开放给特定的一个Namespace下的服务,或者开放给某个特定的服务。源服务和目标服务可以在不同的集群,甚至源服务的不同实例在不同的集群,目标服务的不同实例在不同的集群。
  • 优势 非侵入监控数据采集:在复杂应用的场景下,服务间的访问拓扑,调用链,监控等都是对服务整体运行状况进行管理,服务访问异常时进行定位定界的必要手段。服务网格技术的一项重要能力就是以应用非侵入的方式提供这些监控数据的采集,用户只需关注自己的业务开发,无需额外关注监控数据的生成。 丰富APM能力:ASM基于网格生成服务访问数据,集成各种不同的APM服务,提供跨集群智能的服务运行管理。包括跨集群的服务调用链、服务访问拓扑和服务运行健康状态。通过跨集群的全局视图来关联服务间的访问状况。 灵活的服务运行管理:在拓扑图上通过服务的访问数据,可以直观的观察到服务的健康状况,服务间的依赖情况。并且可以对关心的服务进行下钻,从服务级别下钻到服务版本级别,还可以进一步下钻到服务实例级别。通过实例级别的拓扑可以观察到配置了熔断规则后,网格如何隔离故障实例,使其逐渐接收不到流量。并且可以在故障实例正常时,如何进行实例的故障恢复,自动给恢复的实例重新分配流量。
  • 工作负载 工作负载即Kubernetes对一组Pod的抽象模型,用于描述业务的运行载体,包括Deployment、Statefulset、Job、Deamonset等。 无状态工作负载(即Kubernetes中的“Deployments”):Pod之间完全独立、功能相同,具有弹性伸缩、滚动升级等特性。如:Nginx、WordPress。 有状态工作负载(即Kubernetes中的“StatefulSets”):Pod之间不完全独立,具有稳定的持久化存储和网络标示,以及有序的部署、收缩和删除等特性。如:mysql-HA、etcd。
  • 什么是Istio Istio是一个提供连接、保护、控制以及观测功能的开放平台,通过提供完整的非侵入式的微服务治理解决方案,能够很好的解决云原生服务的管理、网络连接以及安全管理等服务网络治理问题。 随着微服务的大量应用,其构成的分布式应用架构在运维、调试和安全管理等维度变得更加复杂,开发者需要面临更大的挑战,如:服务发现、负载均衡、故障恢复、指标收集和监控,以及金丝雀发布、蓝绿发布、限流、访问控制、端到端认证等。 在较高的层次上,Istio有助于降低这些部署的复杂性,并减轻开发团队的压力。它是一个完全开源的服务网格,可以透明地分层到现有的分布式应用程序上。它也是一个平台,包括允许集成到任何日志记录平台、遥测或策略系统的API。Istio的多样化功能使您能够成功高效地运行分布式微服务架构,并提供保护、连接和监控微服务的统一方法。 服务网格 服务网格(Service Mesh)通常用于描述构成应用程序的微服务网络以及应用之间的交互。它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,例如蓝绿发布、金丝雀发布、限流、访问控制和端到端认证等。
  • 产品功能 灰度发布 基于请求内容灰度规则:支持基于请求内容灰度规则,可以配置Header、Cookie等多种请求信息。 基于流量比例灰度规则:支持基于流量比例灰度规则,根据权重比例分配流量。 金丝雀灰度流程:提供向导方式引导用户完成金丝雀灰度流程,包括灰度版本上线、观察灰度版本运行、配置灰度规则、观测访问情况、切分流量等。 蓝绿灰度流程:提供向导方式引导用户完成蓝绿灰度流程,包括灰度版本上线、观察灰度版本运行、观测访问情况、版本切换等。 流量治理 七层连接池管理:支持配置HTTP最大请求数、最大重试次数、最大等待请求数、每连接最大请求数以及连接最大空闲时间。 四层连接池管理:支持配置TCP最大连接数、连接超时时间、最大无响应次数、最短空闲时间以及健康检查间隔。 熔断:支持配置服务熔断规则,包括实例被驱逐前的连续错误数、检查周期、基础隔离时间以及最大隔离实例比例。 重试:支持配置HTTP重试次数、重试超时时间以及重试条件。 超时:支持配置HTTP请求超时时间。 负载均衡:支持配置随机调度、轮询调度、最少连接和一致性哈希多种负载均衡算法。 HTTP头域:可以灵活添加、修改和删除指定HTTP头域,包括将HTTP请求转发到目标服务之前对Headers的操作,以及将HTTP响应回复给客户端前,对Headers的操作。 故障注入:支持配置延时故障和中断故障。 安全 对端认证:对端认证定义了流量如何通过隧道(或者不通过隧道)传输到当前服务的实例,当前支持配置默认模式(UNSET)、宽容模式(PERMISSIVE)和严格模式(STRICT)三种认证策略。 访问授权:访问授权用来实现对网格中服务的访问控制功能,即判断一个请求是否允许发送到当前的服务。 可观察性 应用访问拓扑:支持网格应用访问拓扑,体现服务间依赖。 服务运行监控:支持服务访问信息,包括服务和服务各个版本的QPS和延时等指标。 访问日志:支持收集和检索服务的访问日志。 调用链:支持非侵入调用链埋点,并可以通过检索调用链数据进行问题定界定位。 多集群服务治理 扁平网络:支持多集群扁平网络数据面场景治理。 非扁平网络:支持多集群非扁平网络数据面场景治理。 网格数据面服务框架 Spring Cloud:支持Spring Cloud SDK开发的服务在网格上统一管理。 Dubbo:支持Dubbo SDK开发的服务在网格上统一管理。 兼容性和扩展 社区版本兼容:API完全兼容Istio。 社区插件支持:支持Tracing、Prometheus、Kiali、Grafana。
  • ingressgateway实例资源消耗参考 每个ingressgateway实例的资源消耗与连接类型、连接数量、QPS有关,可以参考以下数据: 表1 长连接内存消耗 连接数量 内存消耗(MB) 1 0.055 1000 55 10000 550 表2 短连接CPU和内存消耗 QPS CPU消耗(m) 内存消耗(MB) 100 30 100 1000 300 100 10000 3000 150 以上数据仅供参考,具体的资源消耗和实际的业务模型有关,以实际测试结果为准。
  • 为什么要使用Istio Istio提供了一个完整的解决方案,通过为整个服务网格提供行为洞察和操作控制来满足微服务应用程序的多样化需求。 Kubernetes提供了部署、升级和有限的运行流量管理能力,但并不具备熔断、限流、调用链追踪等能力。Istio是基于Kubernetes构建的开放平台,它很好的补齐了Kubernetes在微服务治理上的诸多能力。 图1 Istio和Kubernetes的关系 想要让服务支持Istio,只需要在您的环境中部署一个特殊的Sidecar代理,使用Istio控制平面功能配置和管理代理,拦截微服务之间的所有网络通信: 实现HTTP、gRPC、WebSocket和TCP流量的自动负载均衡。 通过丰富的路由规则、重试和故障注入,可以对流量行为进行细粒度控制。 通过可插入的策略层和配置API,支持访问控制、速率限制和配额。 对出入集群入口和出口中所有流量自动度量指标、日志记录和追踪。 通过强大的基于身份的验证和授权,在集群中实现安全的服务间通信。 Istio旨在实现可扩展性,满足各种部署需求。
  • 操作场景 企业主机安全 是提升主机整体安全性的服务,通过主机管理、风险预防、入侵检测、主动防御、安全运营等功能,可全面识别并管理主机中的信息资产,实时监测主机中的风险并阻止非法入侵行为,帮助企业构建服务器安全体系,降低当前服务器面临的主要安全风险。关于企业主机安全提供的服务器安全防护功能请参见产品功能。 本文以如下配置为例,介绍购买并开启主机安全防护的操作指导。 主机:EulerOS 2.9华为云弹性云服务器 防护配额: 计费模式:包年/包月 版本规格:旗舰版 数量:1
  • 准备工作 在购买主机安全防护之前,请先 注册华为账号 并开通华为云。具体操作详见注册华为账号并开通华为云、实名认证。 如果您已开通华为云并进行实名认证,请忽略此步骤。 请保证账户有足够的资金,以避免购买HSS防护配额失败。具体操作请参见账户充值。 若使用 IAM 用户进行操作,请确保已为IAM用户赋予“HSS FullAccess”权限。具体操作请参见创建用户并授权使用HSS。 购买HSS防护配额时,还需要为IAM用户授予“BSS Administrator”权限。 已准备好用于开启主机安全防护的华为云弹性云服务器。
  • 相关操作 开启服务器主动防护功能 企业主机安全旗舰版为服务器提供了一些主动防护功能,这些功能在开启主机防护时并未开启或未完全开启,您可以根据自身的业务情况综合考虑是否使用这些功能,需要您自行选择开启的功能及说明如表 服务器主动防护功能说明。 表4 服务器主动防护功能说明 功能 说明 勒索病毒防护 勒索病毒入侵主机后,会对主机数据进行加密勒索,导致主机业务中断、数据泄露或丢失,主机所有者即使支付赎金也可能难以挽回所有损失,因此勒索病毒是当今网络安全面临的最大挑战之一。企业主机安全支持静态、动态勒索病毒防护,定期备份主机数据,可以帮助您抵御勒索病毒,降低业务损失风险。 开启网页防篡改防护会自动为您开启勒索病毒防护,在您的主机上部署诱饵文件,并对可疑加密程序执行自动隔离。您可以修改勒索病毒防护策略,同时建议您开启勒索备份以提升勒索事后恢复能力。 应用防护 应用防护功能旨在为运行时的应用提供安全防御。您无需修改应用程序文件,只需将探针注入到应用程序,即可为应用提供强大的安全防护能力。 应用进程控制 应用进程控制功能支持管控应用进程运行,通过学习服务器中运行的应用进程特征,将应用进程划分为可信进程、恶意进程和可疑进程,允许可疑、可信进程正常运行,对恶意进程运行进行告警,帮助用户构建安全的应用进程运行环境,避免服务器遭受不受信或恶意应用进程的破坏。 病毒查杀 病毒查杀功能使用特征病毒检测引擎,支持扫描服务器中的病毒文件,扫描文件类型覆盖可执行文件、压缩文件、脚本文件、文档、图片、音视频文件;用户可根据自身需要,自主对服务器执行“快速查杀”、“全盘查杀”、“自定义查杀”扫描任务,并及时处置检测到的病毒文件,增强业务系统的病毒防御能力。 动态端口蜜罐 动态端口蜜罐功能是一个攻击诱捕陷阱,利用真实端口作为诱饵端口诱导攻击者访问;在内网横向渗透场景下,可有效地检测到攻击者的扫描行为,识别失陷主机,延缓攻击者攻击真正目标,从而保护用户的真实资源。
  • 免费试用HSS基础版到期后怎么办? 免费试用HSS基础版30天到期后,企业主机安全将停止为主机提供安全防护,此外不会对您的主机造成任何影响。如果您想要继续使用企业主机安全,您可以在免费试用到期后购买企业主机安全并开启防护,相关操作参考如下: 购买防护配额。 根据主机防护需求购买对应的企业主机安全版本。HSS各版本支持的防护功能请参见产品功能。 安装Agent。 免费试用HSS期间,E CS 主机默认已安装Agent,如果您卸载了Agent,您需要重新进行安装;如果您未卸载Agent,则可忽略此步骤。 开启防护。 执行了此操作,主机安全防护才会正常开启。
  • 准备工作 在购买网页防篡改防护之前,请先注册华为账号并开通华为云。具体操作详见注册华为账号并开通华为云、实名认证。 如果您已开通华为云并进行实名认证,请忽略此步骤。 请保证账户有足够的资金,以避免购买HSS防护配额失败。具体操作请参见账户充值。 若使用IAM用户进行操作,请确保已为IAM用户赋予“HSS FullAccess”权限。具体操作请参见创建用户并授权使用HSS。 购买HSS防护配额时,还需要为IAM用户授予“BSS Administrator”权限。 已准备好用于开启网页防篡改防护的华为云弹性云服务器。
  • 相关操作 修改防护目录下的文件/文件夹 开启网页防篡改防护后,对应防护目录下的文件/文件夹为只读状态,不允许被修改,如果您需要修改防护目录下的文件/文件夹,请参考以下方式: 添加特权进程:特权进程最多支持添加10个,详细操作请参见添加特权进程。 定时开启/关闭静态网页防篡改:除了添加特权进程外,您可以设置定时开启/关闭静态网页防篡改,在网页防篡改关闭时段修改文件/文件夹,详细操作请参见定时开启/关闭静态网页防篡改。 开启服务器主动防护功能 企业主机安全网页防篡改版为服务器提供了一些主动防护功能,这些功能在开启网页防篡改防护时并未开启或未完全开启,您可以根据自身的业务情况综合考虑是否使用这些功能,需要您自行选择开启的功能及说明如表 服务器主动防护功能说明。 表4 服务器主动防护功能说明 功能 说明 勒索病毒防护 勒索病毒入侵主机后,会对主机数据进行加密勒索,导致主机业务中断、数据泄露或丢失,主机所有者即使支付赎金也可能难以挽回所有损失,因此勒索病毒是当今网络安全面临的最大挑战之一。企业主机安全支持静态、动态勒索病毒防护,定期备份主机数据,可以帮助您抵御勒索病毒,降低业务损失风险。 开启网页防篡改防护会自动为您开启勒索病毒防护,在您的主机上部署诱饵文件,并对可疑加密程序执行自动隔离。您可以修改勒索病毒防护策略,同时建议您开启勒索备份以提升勒索事后恢复能力。 应用防护 应用防护功能旨在为运行时的应用提供安全防御。您无需修改应用程序文件,只需将探针注入到应用程序,即可为应用提供强大的安全防护能力。 应用进程控制 应用进程控制功能支持管控应用进程运行,通过学习服务器中运行的应用进程特征,将应用进程划分为可信进程、恶意进程和可疑进程,允许可疑、可信进程正常运行,对恶意进程运行进行告警,帮助用户构建安全的应用进程运行环境,避免服务器遭受不受信或恶意应用进程的破坏。 病毒查杀 病毒查杀功能使用特征病毒检测引擎,支持扫描服务器中的病毒文件,扫描文件类型覆盖可执行文件、压缩文件、脚本文件、文档、图片、音视频文件;用户可根据自身需要,自主对服务器执行“快速查杀”、“全盘查杀”、“自定义查杀”扫描任务,并及时处置检测到的病毒文件,增强业务系统的病毒防御能力。 动态端口蜜罐 动态端口蜜罐功能是一个攻击诱捕陷阱,利用真实端口作为诱饵端口诱导攻击者访问;在内网横向渗透场景下,可有效地检测到攻击者的扫描行为,识别失陷主机,延缓攻击者攻击真正目标,从而保护用户的真实资源。
  • 准备工作 在购买 容器安全 防护之前,请先注册华为账号并开通华为云。具体操作详见注册华为账号并开通华为云、实名认证。 如果您已开通华为云并进行实名认证,请忽略此步骤。 请保证账户有足够的资金,以避免购买HSS防护配额失败。具体操作请参见账户充值。 若使用IAM用户进行操作,请确保已为IAM用户赋予“HSS FullAccess”权限。具体操作请参见创建用户并授权使用HSS。 购买HSS防护配额时,还需要为IAM用户授予“BSS Administrator”权限。 已准备好用于开启容器安全防护的华为云容器节点。
  • 相关操作 开启容器节点服务器防护功能 企业主机安全容器版为服务器提供了一些主动防护功能,这些功能在开启容器安全防护时并未开启或未完全开启,您可以根据自身的业务情况综合考虑是否使用这些功能,需要您自行选择开启的功能及说明如表 容器节点防护功能说明 表4 容器节点防护功能说明 功能 说明 容器镜像安全扫描 容器镜像安全扫描功能能够扫描镜像中的漏洞、恶意文件等信息,建议您定期扫描,以便您能及时处理镜像安全风险。 勒索病毒防护 勒索病毒入侵主机后,会对主机数据进行加密勒索,导致主机业务中断、数据泄露或丢失,主机所有者即使支付赎金也可能难以挽回所有损失,因此勒索病毒是当今网络安全面临的最大挑战之一。企业主机安全支持静态、动态勒索病毒防护,定期备份主机数据,可以帮助您抵御勒索病毒,降低业务损失风险。 开启容器版防护会自动为您开启勒索病毒防护,在您的主机上部署诱饵文件,并对可疑加密程序执行自动隔离。您可以修改勒索病毒防护策略,同时建议您开启勒索备份以提升勒索事后恢复能力。 应用防护 应用防护功能旨在为运行时的应用提供安全防御。您无需修改应用程序文件,只需将探针注入到应用程序,即可为应用提供强大的安全防护能力。 应用进程控制 应用进程控制功能支持管控应用进程运行,通过学习服务器中运行的应用进程特征,将应用进程划分为可信进程、恶意进程和可疑进程,允许可疑、可信进程正常运行,对恶意进程运行进行告警,帮助用户构建安全的应用进程运行环境,避免服务器遭受不受信或恶意应用进程的破坏。 病毒查杀 病毒查杀功能使用特征病毒检测引擎,支持扫描服务器中的病毒文件,扫描文件类型覆盖可执行文件、压缩文件、脚本文件、文档、图片、音视频文件;用户可根据自身需要,自主对服务器执行“快速查杀”、“全盘查杀”、“自定义查杀”扫描任务,并及时处置检测到的病毒文件,增强业务系统的病毒防御能力。 容器集群防护 容器集群防护功能支持在容器镜像启动时检测其中存在的不合规基线、漏洞和恶意文件,并可根据检测结果告警和阻断未授权或含高危安全风险的容器镜像运行。 用户可根据自身业务场景灵活配置容器集群防护策略,加固集群安全防线,防止含有漏洞、恶意文件和不合规基线等安全威胁的镜像部署到集群,降低容器生产环境的安全风险。 容器防火墙 容器防火墙是一种为容器环境提供的防火墙服务,支持对容器集群内部与外部的网络流量进行控制和拦截,防止恶意访问和攻击。
  • 入门实践 当您为主机开启安全防护后,可以根据业务需求使用HSS提供的一系列常用实践。 表1 常用实践 实践 描述 主机登录保护 使用HSS增强主机登录安全 通过HSS登录防护配置,帮助您提升主机登录安全。 漏洞修复 Git用户凭证泄露漏洞(CVE-2020-5260) 2020年4月15日,Git发布安全通告公布了一个导致Git用户凭证泄露的漏洞(CVE-2020-5260)。Git使用凭证助手(credential helper)来帮助用户存储和检索凭证。当URL中包含经过编码的换行符(%0a)时,可能将非预期的值注入到credential helper的协议流中。受影响Git版本对恶意URL执行git clone命令时,会触发此漏洞,攻击者可利用恶意URL欺骗Git客户端发送主机凭据。 本实践介绍通过HSS检测与修复该漏洞的建议。 SaltStack远程命令执行漏洞(CVE-2020-11651/CVE-2020-11652) Saltstack是基于python开发的一套C/S自动化运维工具,国外安全研究人员披露其中存在身份验证绕过漏洞(CVE-2020-11651)和目录遍历漏洞(CVE-2020-11652)漏洞,攻击者利用这些漏洞可实现远程命令执行、读取服务器上任意文件、获取敏感信息等。 本实践介绍通过HSS检测与修复这些漏洞的建议。 OpenSSL高危漏洞(CVE-2020-1967) OpenSSL安全公告称存在一个影响OpenSSL 1.1.1d、OpenSSL 1.1.1e、OpenSSL 1.1.1f的高危漏洞(CVE-2020-1967),该漏洞可被用于发起DDoS攻击。 本实践介绍通过HSS检测与修复该漏洞的建议。 Adobe Font Manager库远程代码执行漏洞(CVE-2020-1020/CVE-2020-0938) 当Windows Adobe Type Manager库未正确处理经特殊设计的多主机Adobe Type 1 PostScript格式字体时,Microsoft Windows中存在远程代码执行漏洞。对于除Windows 10之外的所有系统,成功利用此漏洞的攻击者可以远程执行代码。对于运行Windows 10的系统,成功利用此漏洞的攻击者可以利用受限的特权和功能在AppContainer沙盒上下文中执行代码。攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新账户。 本实践介绍通过HSS检测与修复该漏洞的建议。 Windows内核特权提升漏洞(CVE-2020-1027) Windows内核处理内存中对象的方式中存在特权提升漏洞,成功利用此漏洞的攻击者可能会利用提升的特权执行代码。 本实践介绍通过HSS检测与修复该漏洞的建议。 Windows CryptoAPI欺骗漏洞(CVE-2020-0601) Windows CryptoAPI欺骗漏洞(CVE-2020-0601)影响CryptoAPI椭圆曲线密码(ECC)证书检测机制,致使攻击者可以破坏Windows验证加密信任的过程,并可以导致远程代码执行。 本实践介绍通过HSS检测与修复该漏洞的建议。 勒索病毒防护 使用HSS和CBR防御勒索病毒 勒索病毒攻击已成为当今企业面临的最大安全挑战之一。攻击者利用勒索病毒加密锁定受害者的数据或资产设备,并要求受害者支付赎金后才解锁数据,也存在即使受害者支付赎金也无法赎回数据情况。 为了预防勒索病毒攻击,避免被勒索面临巨大的经济损失风险,您可以使用“HSS+CBR”组合为服务器做好“事前、事中、事后”的勒索病毒防护。 等保合规 等保二级解决方案 该解决方案能帮您快速在华为云上搭建等保二级合规安全解决方案,快速、低成本完成安全整改,轻松满足等保二级合规要求。 等保合规安全解决方案 华为云依托自身安全能力与安全合规生态,为您提供一站式的安全解决方案,帮助您快速、低成本完成安全整改,轻松满足等保合规要求。
  • 操作场景 节点是容器集群组成的基本元素,企业主机安全容器版以节点为防护单元,提供容器防火墙、容器集群防护、容器镜像安全扫描等功能,可帮助企业解决传统安全软件无法感知的容器环境问题。关于企业主机安全容器版提供安全防护功能请参见产品功能。 本文以如下配置为例,介绍购买并开启容器安全防护的操作指导。 容器节点:EulerOS 2.9华为云弹性云服务器 防护配额: 计费模式:包年/包月 版本规格:容器版 数量:1
  • 环境约束 安装的工具包括JDK、Maven、IDEA ,配置对应的环境变量,确保本地开发环境可用。 使用MAS-DB-SDK组件需具备一定的Java后端、持久层框架集成等知识。 准备项 说明 准备操作系统 Windows系统。Windows版本要求:Windows 7及以上版本。 安装JDK 开发环境的基本配置。JDK版本要求:1.8.0_262及以上版本。 安装Maven MAS-DB-SDK使用Maven获取项目版本。Maven版本要求:3.3.0及以上版本。 安装和配置IntelliJ IDEA 用于开发程序的工具。建议IntelliJ IDEA版本为2020及以上版本。 父主题: 约束
  • 如何选择组件版本 SpringBoot接入涉及组件版本参考。 表1 SpringBoot涉及组件版本 GroupId ArtifactId Version 备注 org.springframework.boot spring-boot-autoconfigure-processor 2.5.4 - org.springframework.boot spring-boot-configuration-processor 2.5.4 - Spring接入涉及组件版本参考。 表2 Spring涉及组件版本 GroupId ArtifactId Version 备注 spring-aspects org.springframework 5.3.9 - 其它涉及组件版本参考。 表3 其它涉及组件版本 GroupId ArtifactId Version 备注 io.netty netty-codec 4.1.69.Final - 父主题: 常见问题
  • 配置参数说明 表1 配置参数详解 参数名称 是否必选 参数类型 取值范围 描述 props 否 PropertiesConfiguration object 请参考表2 PropertiesConfiguration数据结构说明 MAS监控配置,配合etcd使用。 etcd 否 EtcdConfiguration object 请参考表3 EtcdConfiguration数据结构说明 etcd配置,如配置,则会从远端拉取MongoServer配置对本地配置进行覆盖。 sources 是 ClientConfiguration object 请参考表4 ClientConfiguration数据结构说明 MongoClient配置。 active 是 String 只能是“dc1”或“dc2” 当前使用的Mongo Server节点。 mappingConverterClassName 否 String 自定义的MappingConverter全限定类名 如 com.huawei.example.MyMappingConverter。 routeStrategy 否 String single-read-write或local-read-single-write 如不设置此配置项,默认为single-read-write。 表2 PropertiesConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 version 是 String - 项目版本号。 appId 是 String - MAS项目组名称。 monitorId 是 String - MAS监控组名称。 databaseName 是 String - MAS监控的Mongo数据库。 cloud 是 String - 项目部署云组。 region 是 String - 项目部署region。 azs 是 String - 项目部署AZ。 decipherClassName 否 String - 用户用于自定义加解密etcd密码的全限定类名。 表3 EtcdConfiguration数据结构说明 参数名称 是否必选 参数类型 取值范围 描述 address 是 String - Etcd地址。 apiVersion 是 String v3 Etcd版本,固定为v3版本。 username 是 String - Etcd用户名。 password 是 String - Etcd密码。 httpsEnable 是 Boolean true/false 是否启用https。 certificatePath 否 String - 证书存放目录,此目录下应包含ca.crt、client.crt、client.key.pem这三个文件。该路径支持classpath:xxx.xxx和绝对路径两种格式。 使用证书方式连接etcd时,httpsEnable必须设为true,certificatePath不可为空,且保证该路径下有相应的证书文件。 表4 ClientConfiguration数据结构说明 参数名称 是否必选 参数类型 描述 username 是 String 连接MongoDB的用户名。 password 是 String 连接MongoDB的密码。 url 是 String MongoDB连接串(去除用户名和密码) 举例:mongodb://ip+port/database。 azs 否 String 此Mongo数据源所属AZ。当routeStrategy设置为local-read-single-write时,此项必填。 minPoolSize 否 Integer 指定在任何时刻必须存在于单个连接池中的最小连接数。 maxPoolSize 否 Integer 指定连接池在给定时间可以拥有的最大连接数。 waitQueueTimeoutMS 否 Integer 指定线程可以等待连接变为可用的最长时间(以毫秒为单位)。 serverSelectionTimeoutMS 否 Integer 服务器选择超时(以毫秒为单位)。 localThresholdMS 否 Integer 当与副本集中的多个MongoDB实例进行通信时,驱动程序只会将请求发送到响应时间小于或等于响应时间最快的服务器加上本地阈值的服务器,以毫秒为单位。 heartbeatFrequencyMS 否 Integer 指定驱动程序在尝试确定集群中每个服务器的当前状态之间等待的频率(以毫秒为单位)。 replicaSet 否 String 指定提供的连接字符串包括多个主机。指定后,驱动程序会尝试查找该集合的所有成员。 ssl 否 Boolean 指定与 MongoDB 实例的所有通信都应使用 TLS/SSL。 tls 否 Boolean 指定与 MongoDB 实例的所有通信都应使用 TLS。 tlsInsecure 否 Boolean 指定驱动程序应允许 TLS 连接使用无效主机名。 tlsAllowInvalidHostnames 否 Boolean 指定驱动程序应允许证书中的无效主机名用于 TLS 连接。 connectTimeoutMS 否 Integer 指定 Java 驱动程序在超时前等待连接打开的最长时间(以毫秒为单位)。 socketTimeoutMS 否 Integer 指定 Java 驱动程序在超时之前等待发送或接收请求的最长时间(以毫秒为单位)。 maxIdleTimeMS 否 Integer 指定最长时间(以毫秒为单位),Java 驱动程序将允许池连接在关闭连接之前处于空闲状态。 maxLifeTimeMS 否 Integer 指定 Java 驱动程序在关闭连接之前将继续使用池连接的最长时间(以毫秒为单位)。 journal 否 Boolean 指定驱动程序必须等待连接的 MongoDB 实例对所有写入的磁盘上的日志文件进行分组提交。 w 否 String 指定写关注。 wtimeoutMS 否 Integer 指定写入问题的时间限制(以毫秒为单位)。 readPreference 否 String 指定读取首选。 readPreferenceTags 否 String 指定读取首选项标签。 maxStalenessSeconds 否 Integer 以秒为单位指定在驱动程序停止与辅助节点通信之前辅助节点的陈旧程度。 authMechanism 否 String 指定在提供凭据时驱动程序应使用的身份验证机制。 authSource 否 String 指定应针对所提供的凭据进行验证的数据库。 authMechanismProperties 否 String 将指定身份验证机制的身份验证属性指定为以冒号分隔的属性和值的列表。 appName 否 String 指定在连接握手期间提供给 MongoDB 实例的应用程序的名称。可用于服务器日志和分析。 compressors 否 String 指定驱动程序将尝试使用的一种或多种压缩算法来压缩发送到连接的 MongoDB 实例的请求 zlibCompressionLevel 否 String 指定 Zlib 应采用的压缩程度。 retryWrite 否 Boolean 指定如果支持的写操作由于网络错误而失败,驱动程序必须重试。默认为真。 retryRead 否 Boolean 指定如果支持的读取操作由于网络错误而失败,驱动程序必须重试。默认为真。 uuidRepresentation 否 String 指定用于读取和写入操作的 UUID 表示。 directConnection 否 String 指定驱动程序必须直接连接到主机。 ClientConfiguration中的url这一配置项,请勿配置MongoDB的用户名和密码。 父主题: MAS-Mongo-SDK使用手册
  • 敏感信息加解密 配置文件中配置密文信息。可以解密的配置有devspore.dcs.redis.servers.dc1.password,devspore.dcs.redis.servers.dc1.sentinelPassword,devspore.dcs.etcd.password devspore: dcs: redis: servers: dc1: hosts: password: 密文信息 type: cluster 需做以下两步操作,实现敏感信息的解密。 新建一个Decipher接口的实现类。 import com.huawei.devspore.mas.password.Decipher;public class MyDecipher implements Decipher { @Override public String decode(String s) { if (s == null) { return null; } // 使用自定义的解密算法 return s; }} 在配置文件中将属性devspore.dcs.props.decipherClassName配置为实现类的全类名。 1234 devspore: dcs: props: decipher-class-name: com.demo.MyDecipher 父主题: MAS-Redis-SDK使用手册
  • 开发流程 开发的流程如下所示: 版本获取及引入依赖。 通过Maven引入需要的依赖,是使用MAS-Redis-SDK的基础。 添加客户端配置。 通过添加客户端配置,接入MAS-Redis-SDK。 创建MultiZoneClient客户端。 MAS-Redis-SDK提供读取YAML文件创建客户端的方法。 按需引入客户端执行Redis操作。 在需要使用Redis客户端的地方引入MultiZoneClient,并使用MultiZoneClient执行Redis操作。 父主题: 概述
  • 环境约束 准备项 说明 准备操作系统 Windows系统。Windows版本要求:Windows 7及以上版本。 安装JDK 开发环境的基本配置。JDK版本要求: 1.8.0_262及以上版本。 安装Maven MAS-Redis-SDK使用Maven获取项目版本。Maven版本要求:3.3.0及以上版本。 安装和配置IntelliJ IDEA 用于开发程序的工具。IntelliJ IDEA版本要求:15.0及以上版本。 父主题: 约束
  • local-read-async-double-write(本地读异步双写) 另起线程进行数据同步,不能保证异步写成功、不能保证两端数据的一致性。 图1 local-read-async-double-write部署图 读写本地异步写远端,更适用于读多写少场景,使用SDK同步两个Redis,一条写命令会先进行本地Redis的执行,成功后,异步写到远端。 本地读异步双写场景具体操作: 对于用户,不感知多个Redis。 对于SDK。 读操作:同步路由到近端Redis。 写操作:同步路由到近端Redis,同时异步发送到远端Redis。 此场景下Redis之间会相互同步,两个Redis位置等同没有主备之分,切换不会产生影响。 当不同实例内SDK操作同一个Redis key时,不能保证两个Redis的一致性。 spop命令双写不适用。 双写有一定的性能影响。 父主题: 使用场景
  • ShedLock ShedLock是一个用于分布式任务调度的开源库。 它提供了一种简单而可靠的方式来确保在分布式环境中只有一个节点执行指定的任务。 对接ShedLock命令参考如下。 import com.huawei.devspore.mas.redis.core.MultiZoneClient;import com.huawei.devspore.mas.redis.spring.boot.cache.DcsConnectionFactory;import net.javacrumbs.shedlock.core.LockProvider;import net.javacrumbs.shedlock.provider.redis.spring.RedisLockProvider;import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.EnableScheduling;@Configuration@EnableScheduling@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")public class ShedLockJdbcConfig { @Bean public DcsConnectionFactory dcsConnectionFactory(MultiZoneClient client) { return new DcsConnectionFactory(client); } @Bean public LockProvider lockProvider(DcsConnectionFactory connectionFactory) { return new RedisLockProvider(connectionFactory); }} 父主题: 客户各场景替换方案
共100000条