声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
云技术介绍
云技术历史
从前构建系统需要购买设备,租用数据中心机柜,搭建基础设施
随着处理器进化升级,虚拟机将一台机器的资源分成多台机器
提高资源利用率,灵活可拓展,从裸机基础设施到虚拟化基础设施
容器化进一步提高效率,实现服务器,网络和存储的虚拟交付
最新一代的基础设施我们称为“云”,它不是单一的技术,而是技术的集合。
云服务
云是一种 IT 基础设施系统,它将资源的创建抽象在软件层面。
云服务的要求:
- 云基础架构必须稳定且无频繁中断
- 地理分布的云基础设施提高容错能力
- 云必须能够快速扩展以满足需求
常见公有云服务商: - Amazon web services (AWS)
- Azure
- google(GCP)
- 华为云,腾讯云,阿里云…
私有云:
组织可以使用openStack等工具在自己的数据中心搭建私有云。或者部分业务运行在
一些企业的模式:
私有云中,部分运行在公有云中
云分类
基础设施既服务(laas)
定义 :
- IaaS 是云计算服务模式的最底层,它提供了基本的计算资源,如服务器、存储设备、网络设备等,以虚拟机或裸金属服务器的形式出租给用户。用户可以像使用自己的数据中心资源一样,在这些基础设施上安装操作系统、部署应用程序、配置网络等。
示例 : - 亚马逊的 AWS EC2(Elastic Compute Cloud)是典型的 IaaS 服务。用户通过 AWS 控制台或 API,可以选择不同类型的 EC2 实例,这些实例具有不同的CPU、内存、存储等配置。例如,用户可以选择一个具有 2 个 vCPU、8GB 内存和 100GB 存储的实例来运行自己的 Web 服务器。另外,像微软 Azure 的虚拟机服务也是 IaaS 的一种,用户可以在 Azure 提供的虚拟机上构建自己的开发、测试或生产环境。
平台既服务(PAAS)
定义 :
- PaaS 在 IaaS 的基础上,提供了一个完整的应用程序开发和运行平台。它包括操作系统、编程语言运行环境、数据库管理系统、中间件等,让开发者能够专注于应用程序的开发,而无需关心底层的基础设施。
示例 :
Heroku 是一款流行的 PaaS 产品。开发者可以使用多种编程语言(如Python、Ruby、Node.js 等)在 Heroku 平台上开发应用程序。Heroku 会自动处理应用程序的部署、运行环境的配置、扩展等工作。例如,开发者编写一个 Python的 Web 应用程序后,只需将代码推送到 Heroku 的仓库,Heroku 就会自动构建和部署该应用程序,并且根据应用程序的流量自动调整资源。另外,谷歌的 AppEngine 也是 PaaS 的代表,它支持 Java、Python 等多种语言,为开发者提供了便捷的应用开发和部署环境
软件既服务(SaaS)
定义 :
SaaS 是一种通过互联网提供软件应用服务的模式,用户无需在本地安装软件,而是通过浏览器或专用客户端访问云端的软件应用。软件的维护、升级、数据存储等工作都由 SaaS 提供商负责。
示例 :
Salesforce 是一款知名的 SaaS 产品,主要用于客户关系管理。企业用户可以通过浏览器访问 Salesforce 的应用程序,进行客户信息管理、销售机会跟踪、营销活动策划等业务操作。用户只需要一个账号和密码,就可以在任何有网络连接的地方使用该软件。另外,微软的 Office 365 也是 SaaS 的典型代表,用户可以在云端使用 Word、Excel、PowerPoint 等办公软件,并且可以实现多人协作编辑文档等功能,数据存储在云端,方便用户随时随地访问
总结
lass–>PAAS–>SaaS 这个过程其实就是递增的过程
lass只有最基础的服务器,PAAS就有了开发的环境之类的,而SaaS就几乎可以开箱即用了,和本地电脑类似
云架构
虚拟化
虚拟化将一台机器的资源分 成多台虚拟机器,多台裸机汇集形成的资源集群隔离资源的使用,灵活且可扩展资源池.抽象了硬件安装过程,但仍有改进空间(并非为云而生)
技术栈的灵活性和可定制性提升,导致容器出现容器允许开发 人员与堆栈各部分进行灵活交互,实现按需生成服务和网络抽象程度不断提高,方便应用迁移扩展,更加高效使用资源
云架构设计
组件选择
- 确定架构(难改),选择绑定/非绑定组件(开发、开源、购买)
- 云原生组件: 为分布式系统设计,CNCF认证(非必须)、安全编码、开源(部分)
- laC:引导介质(Packer)、安装系统(Terraform)、 自动配置(Ansible)、 状态强制(Monit)
集成部署
使用持续集成和持续交付(CICD) 管道来构建环境,包括测试、测量和扫描代码更改的自动化测试和部署(GitOps)
弹性可靠
任何单点故障都有故障转移或其他机制,使业务可以持续提供(冗余),例如GSLB (智能DNS、GTM)解决客户单访问的单点故障隐患
平衡控制
- 控制保护系统免受漏洞和内部攻击的组件,应平衡控制和可用性
云设计模式
云架构设计不必从头开始, 使用已检验的设计模式是最佳选择微服务架构
微服务架构
- 松散耦合、 模块化服务而设计,微服务协同工作以完成整体服务每个服务都可以独立修改代码和重用,提高系统整体弹性和容错
特点: - 大多数云利用微服务架构,云原生应用被构建充当微服务,便于水平扩展安全优势
- 每个微服务应用强化、隔离,单一服务漏洞对整体系统影响小缺点
- 调试更加复杂,需要跨不同服务跟踪事务;
- 性能短板
零信任架构
- 对资源的每个请求都需要验证来源已授权,然后授权短期访问(令牌)实现ZTA的一种常见方法是Open ID Connect (OIDC) 联盟访问
- 授权处于活动状态时可以访问任何联合内服务
常见攻击手段:
密码重置是针对ZTA的常见攻击方式
安全控制
网络控制
传统架构使用防火墙实现网络控制,云环境网络抽象为SDN、SD WANSDN对不同的接口(如API或GUI) 设置网络规则
通过mTLS不仅流量加密,也对客户端进行身份验证,拥有证书才能访问微服务访问控制
不正确的访问管理可导致权限提升,甚至破坏整个基础设施
现代访问管理系统多使用令牌进行访问控制,提供对服务的短时访问权
JWT通常用于访问云端资源,伪造和破解密码是常见攻击手段
另一种类型的权限控制机制是强制访问控制MAC
身份管理
企业通常使用AD、LDAP进行身份管理
AWS IAM是身份和访问管理(IAM)的公共云服务
Google联盟认证OIDC经常用于2FA
云身份提供者(ldP)作为真实身份来源, 是更安全的解决方案(Azure AD)