Kubernetes使用流量管理平台Istio(三)

微服务架构下的安全挑战

为了抵御中间人攻击,需要流量加密。
为了提供灵活的服务访问控制,需要双向TLS和细粒度的访问策略。
要确定谁在什么时候做了什么,需要审计工具。

Istio的安全保证

Istio安全功能提供:

  • 身份识别
  • 灵活策略
  • 透明的TLS加密
  • 认证,授权和审计(AAA)工具来保护你的服务和数据

Istio安全的目标是:

  • 默认安全: 应用程序代码和基础设施无需更改
  • 深度防御: 与现有安全系统集成以提供多层防御
  • 零信任网络: 在不受信任的网络上构建安全解决方案

高层架构

  • 用于密钥和证书管理的证书颁发机构(CA)
  • 配置API服务器分发给代理:
    • 认证策略
    • 授权策略
  • 安全命名信息
  • Sidecar和边缘代理作为Policy Enforcement Points 以保护客户端和服务器之间的通信安全
  • 一组envoy代理扩展,用于管理遥测和审计

Istio安全架构

在这里插入图片描述

Istio身份

身份是任何安全基础架构的基本概念。
在工作负载间通信开始时,双方必须交换包含身份信息的凭证以进行双向验证。
在客户端,根据安全命名信息检查服务器的标识,以查看它是否是该服务的授权运行程序。
在服务器端,服务器可以根据授权策略确定客户端可以访问那些信息,审计谁在什么时间访问了什么,根据它们使用的工作负载向客户收费,并拒绝任何未能支付账单的客户访问工作负载。
Istio身份模型使用service identity(服务身份)来确定一个请求源端的身份。

  • Kubernetes: Kubernetes服务账户
  • GKE/GCE:可以使用GCP服务账户
  • GCP:GCP服务账户
  • AWS:AWS IAM用户/角色 账户
  • On-premises(非Kubernetes):用户账户、自定义服务账户、服务名称、istio服务账户或GCP服务账户
  • Istio安全与SPIFFE:Istio和SPIFFE共享相同的身份文件:SVID(SPIFFE可验证身份证件)。例如: spiffe://domain/ns/namespace/sa/serviceaccount,这使istio服务能够建立和接受与其他SPIFFE兼容系统的连接。

SDS

Istio供应身份是通过secret discovery service(SDS)来实现的:

  • istiod提供grpc服务以接受证书签名请求
  • 当工作负载启动时,envoy通过秘密发现服务(SDS)API向同容器内的istio-agent发送证书和密钥请求
  • 在收到SDS请求后,istio-agent创建私钥和CSR,然后将CSR及其凭据发送到istiod CA进行签名
  • istiod CA验证CSR中携带的凭据,成功验证后签署CSR以生成证书
  • istio-agent通过envoy SDS API将私钥和从istio CA收到的证书发送给envoy
  • istio-agent会监听工作负载证书的有效期,上述CSR过程会周期性地重复,以处理证书和密钥轮换。
    在这里插入图片描述

istio的安全是通过认证和鉴权来保证的,下面会继续向大家介绍!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平凡似水的人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值