声明!
学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)
一、云计算基础及云架构发展历程
- 云计算基础现状:如今基础设施大多已云化,与过去搭建应用需购置服务器、租赁机房等繁琐操作不同,现在可便捷地从云服务器厂商(如阿里云、腾讯云等)购买云服务器并快速用于应用部署。
- 云架构发展:从最初购买设备搭建基础设施,到处理器进化后虚拟机出现提高资源利用率实现虚拟化,再经容器化技术实现服务器、网络和存储的虚拟交付,如今的 “云” 是多种技术集合体。且无论是防御还是进攻角度,了解底层技术对构建体系、发现利用漏洞都很关键。
二、云服务相关内容
- 云服务特点:云作为 IT 基础设施系统,将资源创建抽象于具备容错、地理分布和可扩展的物理基础设施之上,能按需以服务器形式交付各种能力(如服务器、存储、网络等),且要稳定无频繁中断,地理分布特性可提高容错能力,还需具备快速扩展能力以满足需求。
- 云服务提供方式:存在公有云服务商(如 AWS、Azure、Google 的 GCP、华为云、腾讯云、阿里云等),组织也可利用 OpenStack 等工具在自己的数据中心搭建私有云,或者让部分业务运行在私有云、部分在公有云中。
三、云分类及共享责任模型
- 云分类:分为基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS),分别类比为提供材料工具自建房子、基于框架装修布置、直接入住装修好的房子这三种不同层次的服务模式。
- 共享责任模型:云服务虽提供容错和扩展功能,但也使安全性存在模糊性,例如 AWS 对于程序漏洞导致大量数据泄露可不承担责任,但如果是数据中心物理安全遭破坏致客户数据被盗取则需担责。
四、云架构详细内容
- 虚拟化与容器:
- 虚拟化:可把一台机器资源划分为多台虚拟机,多台裸机汇集形成资源集群来隔离资源使用,构成灵活可扩展的资源池,不过其抽象硬件安装过程存在改进空间且并非专为云而生,其技术栈灵活性提升促使容器出现。
- 容器:允许开发人员与各部分灵活交互,实现按需生成服务、提高网络抽象程度、方便应用迁移扩展以及更高效利用资源,还可将系统管理和网络工程外包。容器是对虚拟化的补充,基于映像生成,与宿主机共享内核且开销更小,可进一步分离应用组件。介绍了使用 Docker、Podman 操作容器的相关命令及示例,二者遵循开放容器计划(OCI)标准可互操作。
- 容器相关深入特性:
- 容器本质与历史:“容器” 是内核级别阻止进程访问其他进程和资源的特性组合,可控制其限制级别。有着从 197x 年代引入 chroot,到 1999 年 FreeBSD 发布 Jails,2002 年引入命名空间,2006 年谷歌引入进程容器(后称 cgroup)并结合发布 Linux 容器(LXC)项目等发展历程,Linux 有八种用户命名空间。
- Capabilities:Docker 默认不使用用户命名空间,而是通过内核 capabilities 和 seccomp 配置文件限制访问防止特权内核调用。Linux 区分特权与非特权进程,将一些系统级任务分组为 40 多个 Capabilities 类别,让非特权进程在需要特殊权限时可运行特定任务,同时指出随意提升工具权限存在被恶意利用破坏系统、窃取信息、控制系统等提权隐患。
五、Kubernetes 相关
- 概述:Kubernetes(简称 K8s)是开源的容器编排平台,可自动化部署、扩展和管理容器化应用程序,保障应用在多服务器上的高可用性和可扩展性。
- 核心概念:
- Pod:是最小可部署单元,可包含一个或多个容器,这些容器共享网络命名空间和存储卷,一起被调度和管理。
- Deployment:用于管理 Pod 副本数量和更新策略,确保应用保持指定数量副本运行并能实现滚动更新等功能。
- Service:定义一组 Pod 的访问方式,提供稳定 IP 地址和端口,方便外部访问。
- Node:是工作节点,可为物理服务器或虚拟机,其上运行 Kubelet 和容器运行时来管理容器生命周期。
- 操作流程:涵盖安装 Minikube(按操作系统选版本、依向导操作)、启动 Minikube、部署应用(创建 Deployment、创建 Service 等)、访问应用(获取 NodePort 后通过浏览器访问)、扩展应用(扩展副本数量并查看)、更新应用(更新镜像并查看进度)等具体命令操作步骤。
六、Git 相关
- 概述:Git 是分布式版本控制系统,用于跟踪文件变化,支持团队协作开发,可记录文件历史版本、实现版本切换及合并开发者修改内容。
- 安装方式:在 Windows 上可从官方网站下载安装程序安装;在 macOS 上可用 Homebrew 等包管理器安装;在 Linux 上(如 Ubuntu)可通过系统包管理器(如sudo apt-get install git)安装。
- 安全相关内容:
- 重要性及基本措施:Git 仓库包含源代码和敏感信息,保护其安全很重要。基本安全措施包括使用强密码、限制访问权限(利用 Git 自身或第三方工具)。
- 避免信息泄露及通信加密:避免提交敏感信息(若提交了可用相关命令从暂存区删除并修改提交),创建.gitignore文件列出不跟踪的文件和目录,确保与远程仓库通信加密(使用 SSH 或 HTTPS 协议)。
- 其他安全操作:定期进行安全审计(可用第三方工具查权限设置、信息泄露等情况)和备份仓库(用 Git 备份工具或复制到其他存储设备)。
- 协作开发及基本使用操作:包括克隆仓库、处理冲突、添加远程仓库、推送与拉取更改、分支管理(创建、切换、合并分支)、初始化仓库、添加文件、提交更改、查看状态以及查看历史记录等,各操作都对应相应的 Git 命令。