
# 物理隔离到逻辑隔离
隔离技术是云平台安全的一个基石。在隔离性方面，华为云QingTian系统不仅为租户提供了运行环境的物理隔离，而且还作为一种可信计算基(TCB)，为租户提供了丰富的逻辑隔离能力，包括VPC网络隔离、多租户资源隔离和跨云服务访问隔离。
#### 基于VPC的网络隔离
图1基于VPC的网络隔离   
![](https://support.huaweicloud.com/twp-ecs/zh-cn_image_0000002453525644.png "点击放大")
VPC是租户安全的一个基石，它为客户在云上的业务部署，提供了一个完全隔离的网络空间，构建了一个默认安全的网络环境。客户可以在做好安全控制的情况下，按需构建必要的网络通路。VPC和外界的通信通常有三大类网络连接模式（如图所示）：
- 互联网访问：通过AAD、WAF、CFW等安全防护措施，保障通过EIP实现的互联网访问的安全性。
- 混合云接入：通过CFW等机制，保护通过专线、VPN等方式和客户线下机房互联的访问安全。
- 云服务访问：通过VPCEP实现访问云服务，并借助VPCEP Policy保障对云服务访问的安全控制。
VPC自身提供了Security Group和Network ACL两个基础网络安全访问控制能力，均为L4有状态网络安全能力：
- Security Group：以ENI（Elastic Network Interface）或者ENI集合为对象，配置进出ENI或ENI集合的访问策略。
- Network ACL：以Subnet为对象，配置出/入两个方向的访问策略，包括源目的IP、端口和协议等信息，并绑定指定的Subnet。
VPC还提供了网络加密能力。对于开启了加密的租户VPC，在此VPC内的计算资源、网关之间的互访流量，就会使用加密报文传输，确保客户流量对于云提供商而言是全量加密的，无法被破解侦听。
图2VPC网络加密能力   
![](https://support.huaweicloud.com/twp-ecs/zh-cn_image_0000002455389842.png "点击放大")
VPC提供的网络隔离、流量加密、以及基于Security Group和Network ACL的网络访问控制能力，都是通过QingTian硬件系统来实现的。VPC管控面将网络子系统所需要的表项下发到QingTian Cards，QingTian硬件通过VF直通实现ENI网卡的虚拟化，通过与计算资源（ECS、BMS、CCI等）相连来实现VPC内的转发。
- 安全访问控制模块：为实现Security Group和Network ACL访问控制，QingTian硬件通过报文所属的VF，找出其对应的ENI和Subnet，进而找到对应的Security Group和Network ACL安全策略，执行策略评估后决策是否转发，并形成状态防火墙所需的会话表项，确保后续报文正确通过。
- VPC路由模块：为实现报文的VPC隔离转发功能，QingTian硬件会根据报文所属的ENI和Subnet，查找客户VPC专属的路由表项，并做VxLAN隧道封装并发送。目的端QingTian硬件，也会根据VxLAN封装中的信息，找到报文所属的VPC专属路由表并转发。整个转发过程，都是通过查找VPC专属的路由表，实现网络转发隔离。
- VPC加密模块：为实现VPC流量加密，QingTian硬件会根据报文的VPC属性，找到VPC专属的加密密钥，在VxLAN隧道上增加加密报文头，实现对于客户全部报文的加密，包括客户报文的MAC、IP等转发信息，以及VxLAN隧道中有关报文所属VPC的附加信息。由于加密密钥是在租户VPC所涵盖的计算节点中共享的，因此目的QingTian硬件能根据密钥ID找到密钥并解密后，继续后续转发流程。
 
#### 云服务访问的多租户资源隔离
在租户VPC中，部署在Enclave（或VM）上的客户应用可能会依赖多个云服务的API调用，比如依赖OBS或KMS服务。由于这些被依赖的云服务是部署在租户VPC之外，这就需要打破VPC网络隔离边界让客户应用能够访问云服务API。针对这种场景，华为云提供VPC终端节点服务来满足这一场景。VPC终端节点通过单向访问、Endpoint策略来控制这一访问路径上的攻击面。
图3多租户资源隔离   
![](https://support.huaweicloud.com/twp-ecs/zh-cn_image_0000002486859489.png "点击放大")
云服务API默认提供多租户资源访问控制隔离能力，这种访问控制隔离是基于IAM (Identity and Access Management) 访问控制体系进行构建的。华为云IAM服务为租户提供集中的身份与访问控制管理，提供统一的访问控制策略语言，并为所有云服务API提供一致的访问控制决策。IAM访问控制决策引擎（Policy Decision Point，PDP）支持多种类型的访问控制策略，这些策略类型包括基于VPCEP的策略、基于IAM身份的策略和基于云服务资源的策略。IAM访问控制策略支持丰富的访问控制条件属性，目前已支持50+的全局条件属性和云服务相关的500+条件属性。这些条件属性主要包括身份主体属性、会话主体属性、运行环境属性、网络相关属性、API上下文相关属性和目标资源相关属性。租户可以在自定义的IAM策略设计中组合使用合适的条件属性集，灵活实现满足自身业务所需的安全控制目标或业务合规要求。
IAM PDP引擎依赖的运行环境属性和网络相关属性完全是由QingTian系统来提供正确性和完整性保证。QingTian系统会通过IAM Context Provider机制在IAM服务中注册元数据，内容包括上下文的验证公钥和上下文断言Schema。QingTian系统会在相关的API访问链路中注入带数字签名的上下文断言(Context Assertions)，IAM PDP引擎会验证这些上下文的完整性，并基于这些可信的上下文断言来执行API请求相关的访问控制策略评估逻辑。
#### 跨云服务访问的多租户资源隔离
如果您的租户账号订阅了多个云服务，而且这多个云服务之间可能会涉及跨服务的资源访问。由于跨云服务资源访问通常会遇到Confused Deputy安全问题，如果云服务的访问隔离设计不当，很容易导致您的云服务资源会被其它租户越权访问。
华为云从访问控制技术协议设计层面来解决Confused Deputy问题。在协议设计上，一个租户账号下订阅的云服务的身份主体（Service Principal）会默认被限制在该租户的账号域之内，并且同一账号域内的不同云服务之间默认完全隔离，所有的跨云服务访问需要租户的显式授权。
华为云IAM提供AssumeAgency 和 Impersonation两种安全协议，面向两种不同的跨云服务访问场景，实现租户账号域内的跨云服务授权访问。
- **协议1：AssumeAgency协议（委托代持）**
  图4委托代持   
  ![](https://support.huaweicloud.com/twp-ecs/zh-cn_image_0000002492715473.png "点击放大")
  AssumeAgency协议的典型场景是用户离线后的云服务作业需要授权访问下游的云服务资源。管理员创建一个IAM云服务委托 (Agency)，在信任策略中指定 " Service-X" 作为受信任的主体；然后给此委托授予合适的权限，并将此委托配置到Service-X。
  IAM Agency的信任策略中的受信任主体 " Service-X" 默认表示我的账号域（或组织域）下的Service-X。也就是说，任何其它账号所订阅的Service-X并没有获得信任，其它账号域下的Service-X并没有获得代持该委托的权限。通过引入账号域（或组织域）的设计，我们可以在协议层面解决跨云服务访问的Confused Deputy问题，提供默认的多租户安全隔离。
  
- **协议2：Impersonation协议（身份模拟）**
  图5身份模拟   
  ![](https://support.huaweicloud.com/twp-ecs/zh-cn_image_0000002459797202.png "点击放大")
  Impersonation协议的典型场景是用户在线时的云服务请求处理逻辑需要访问下游的云服务资源，比如"User -\> OBS -\> KMS"的访问。管理员无需给云服务OBS额外授权，该协议可以支持OBS模拟当前请求者身份和权限去访问下游云服务KMS。
  我们结合一个实际例子来说明该协议的安全设计。比如，User调用OBS GetObject API，并且Object数据使用了租户KMS密钥进行加密。由于当前租户下的OBS服务主体并没有被授权访问租户KMS密钥，那么OBS需要使用Impersonation协议来模拟当前用户去调用KMS API。
  具体设计上，OBS会提供当前请求者的"API RequestProof"去访问STS（Security Token Service）申请一个转发访问令牌，然后使用该令牌来构造KMS API的访问请求。"API RequestProof"为Impersonation协议提供了安全保证。"API RequestProof"包含有API名称、API签名及过期时间信息，STS会校验此API是否有关联的Impersonation使用许可、API签名是否有效，然后决定是否发放相应的转发访问令牌。此外，OBS获得的转发访问令牌的权限是 "当前用户已获得的授权" 与 "此API关联的Impersonation会话缩权策略（scope-down session policy）" 的一个交集。与一个API所关联的Impersonation会话缩权策略是基于最小授权原则进行设计的，它需要经过云安全团队、IAM团队和云服务团队的多方评审后才能被注册到生产环境。
  
 
