Istio的授权功能也称为基于角色的访问控制(RBAC),为Istio服务网格中的服务提供命名空间级别、服务级别和方法级别的访问控制。它具备如下特点:
·基于角色的语义,简单易用。
·服务到服务之间以及最终用户到服务之间的授权。
·通过自定义属性支持(例如条件、角色和角色绑定)提供灵活性。
·高性能,因为Istio授权是在Envoy本地强制执行。
·高兼容性,原生支持HTTP、HTTPS和HTTP2,以及任何普通的TCP协议。
图7-5显示了Istio的授权架构,其中运维人员使用.yaml文件指定Istio授权策略。部署后,Istio将策略保存在Istio Conf ig Store中。Pilot监听Istio授权策略的变更,如果发现任何更改,它将获取更新后的授权策略。Pilot将Istio授权策略分发给与服务实例位于同一位置的Envoy代理。

图7-5 Istio的授权架构
每个Envoy代理都运行一个授权引擎,该引擎在运行时授权请求。当请求到达Envoy代理时,授权引擎根据当前授权策略评估请求上下文,并返回授权结果,允许(ALLOW)或拒绝(DENY)。