云安全笔记:云原生全链路加密

本文是阿里云博客《如何保障云上数据安全?一文详解云原生全链路加密》的学习笔记
https://developer.aliyun.com/article/739282

云原生全链路加密

信息安全的CIA要素:机密性、完整性、可用性

机密性的常见手段是数据加密。在云原生中就是全链路加密能力。

“全链路”:数据在传输、计算,存储的过程。
“全链路加密”:端到端的数据加密保护能力,即从云下到云上和云上单元之间的传输过程、到数据在应用运行时的计算过程(使用/交换),和到数据最终被持久化落盘的存储过程中的加密能力。

  • 数据传输 (数据通信加密,微服务通信加密,应用证书和密钥的管理);
  • 数据处理(运行时安全沙箱 runV, 可信计算安全沙箱 runE);
  • 数据存储 (云原生存储的 CMK/BYOK 加密支持、密文/密钥的存储管理、容器镜像的存储加密、容器操作/审计日志安全)。

在这里插入图片描述

下面将描述云原生全链路加密中已有的和未来需要实现的目标。

云安全 -> 云数据安全 -> 云原生全链路加密

在这里插入图片描述

云安全

涵盖了云客户和云厂商安全在IaaS的软件、硬件以及物理数据中心的安全。
在这里插入图片描述
云原生客户(Cloud Native Customer)安全

  • 应用安全
  • 操作安全
  • 商业安全
  • 容器网络安全
  • 容器数据安全
  • 容器运行时安全

云客户(Cloud Customer)安全

云厂商(Cloud IaaS DevOps)安全

云原生安全

在这里插入图片描述

云原生安全

云原生安全首先需要遵循云数据安全标准。

它需要复用基础设施的安全(比如物理安全,DDOS安防等);还需要在数据和软件上有安全。

云原生存储通过声明式 API 来描述了云数据的生命周期(比如Kubernetes的yml文件),并不对用户透出底层 IaaS 的数据加密细节。

云原生存储一般作为云数据的载体,复用了云 IaaS 基础安全能力,还需要包括软件供应链中的镜像安全,和容器运行时 root 文件系统安全和容器网络安全。

  • 云原生安全的运行时 = 数据处理过程中的计算安全,内存安全,文件系统安全和网络安全
  • 云原生软件供应链安全 = 可执行文件/用户代码安全
  • 云原生基础架构的安全 = 云数据存储安全

云数据安全

包括三个方面的工作:

  • 数据保护:RAM ACL 控制细粒度的数据的访问权限;敏感数据保护(Sensitive Data Discovery and Protection,简称 SDDP)、数据脱敏、数据分级分类。
  • 数据加密:CMK 加密数据能力;BYOK 加密数据能力。
  • 秘钥/密文管理:KMS/HSM 等云服务;三方 Vault 服务。

数据安全的生命周期

在这里插入图片描述
数据生命周期有上述六项。

云原生的数据生命周期(以ACK,即容器服务Kubernetes)为例:

  1. 云盘持久卷的创建定义了数据,云盘数据的加密需要在定义中就得到体现。密钥选择、加密算法选择都可以申明式支持,RAM 权限细粒度遵循最小权限;
  2. 云盘挂载到虚拟机:通过 PVC 在容器组 Pod 引用得以触发和实现;
  3. 云盘数据的解密:通过用户 CMK/BYOK 在块设备上实现透明加密解密;
  4. Pod 生命周期的变化导致 PVC 关联云盘在不同宿主 ECS 上的 Detach/Attach;
  5. 对 PV 的 Snapshot 生命触发了云盘 Snapshot 的创建;
  6. PV 的删除可以通过 OnDelete 关联到云盘的中止和数据的删除。

全链路的数据安全

狭义上指数据端到端加密。集中在数据生命周期的三个阶段。

  • 数据传输
  • 数据处理
  • 数据存储

数据传输

安全通信设计,密文/密钥的安全管理和传输,既要满足云环境下的安全传输、云原生引入的容器网络、微服务、区块链场景,又对云原生数据安全传输提出了进一步的要求。

云安全传输
在云环境下 VPC/安全组的使用,密文/密钥的安全管理 KMS 南北向流量通过 SSL 证书服务获取可信有效的 CA,对南北流量实现 HTTPS 加密和卸载,以及对 RPC/gRPC 通信使用 SSL 加密, 减小 VPC 的攻击面,通过 VPN/SAG Gateway 来实现安全访问链路。
云原生安全传输
云原生场景,单一集群允许多租户的同时共享网络、系统组件权限控制、数据通信加密、证书轮转管理,多租场景下东西流量的网络隔离、网络清洗;云原生微服务场景,应用/微服务间通信加密,和证书管理;云原生场景下密钥、密文的独立管理和三方集成、KMS 与 Vault CA, fabric-ca, istio-certmanager 等的集成。

数据处理

对内存级的可信计算,既有云安全虚拟化安全运行的要求,又有容器安全沙箱和可信安全沙箱的需求。

  • 云安全虚拟化可信计算:TEE SGX;ARM Trust Zone;
  • 云原生容器安全沙箱:runV Kata 安全容器沙箱 ;runE Graphane/Occlum 可信安全沙箱。

数据存储

既有云安全对云存储加密、云数据服务加密需求,又有对容器镜像存储加密,审计日志、应用日志加密和三方集成的需求,以及对密文密码的不落盘存储支持。

云存储加密方式:

  • 数据 + 加密算法 + 用户密钥或主密钥;
  • 客户端加密/服务端加密。
    在这里插入图片描述

云存储数据,以服务端加密为主;安全的密钥管理 KMS/HSM;安全的加密算法,全面支持国产算法以及部分国际通用密码算法,满足用户各种加密算法需求:

  • 对称密码算法:支持 SM1、SM4、DES、3DES、AES;
  • 非对称密码算法:支持 SM2、RSA(1024-2048);
  • 摘要算法:支持 SM3、SHA1、SHA256、SHA384。

阿里云只能管理设备硬件,主要包括监控设备可用性指标、开通、停止服务等。密钥完全由客户管理,阿里云没有任何方法可以获取客户密钥。

云存储加密支持:

  • 块存储 EBS 云盘:支持虚拟机内部使用的块存储设备(即云盘)的数据落盘加密,确保块存储的数据在分布式系统中加密存放,并支持使用服务密钥和用户自选密钥作为主密钥进行数据加密;
  • 对象存储 OSS:支持服务端和客户端的存储加密能力。在服务端的加密中,支持使用服务密钥和用户自选密钥作为主密钥进行数据加密;在客户端的加密中,支持使用用户自管理密钥进行加密,也支持使用用户 KMS 内的主密钥进行客户端的加密;
  • RDS 数据库的数据加密:RDS 数据库的多个版本通过透明加密(Transparent Data Encryption,简称 TDE)或云盘实例加密机制,支持使用服务密钥和用户自选密钥作为主密钥进行数据加密;
  • 表格存储 OTS:支持使用服务密钥和用户自选密钥作为主密钥进行数据加密;
  • 文件存储 NAS:支持使用服务密钥作为主密钥进行数据加密;
  • MaxCompute 大数据计算:支持使用服务密钥作为主密钥进行数据加密;
  • 操作日志,审计日志的安全存储,以及三方日志系统集成。

云原生存储加密:

目前阿里云容器服务 ACK 可以托管的主要以块存储、文件存储和对象存储为主,其他类型的 RDS、OTS 等数据服务是通过 Service Broker 等方式支持。

  • 用户容器镜像/代码 (企业容器镜像服务,OSS CMK/BYOK 加密);
  • 云原生存储卷 PV(申明式支持云存储的 CMK/BYOK 以及数据服务层的加密支持);
  • 操作日志和审计日志 (ActionTrail OpenAPI/Kubernetes AuditLog: SLS 日志加密);
  • 密文密码 (KMS/Vault 对密文的三方加密支持和内存存储,非 etcd 持久化)。

猜你喜欢

转载自blog.csdn.net/weixin_43466027/article/details/119697577