配置安全访问控制

    当Istio双向TLS认证打开时,服务器就会根据其证书来认证客户端,并从证书获取客户端的服务账户。服务账户在的属性中。请参考Istio auth identity了解Istio中服务账户的格式。

    • 根据的说明在开启认证的Kubernetes中安装Istio。注意,应当在installation steps中的第四步开启认证。

    • 部署示例应用。

    在示例应用BookInfo中,productpage服务会同时访问reviews服务和服务。现在让details服务拒绝来自productpage服务的请求:

    1. 在浏览器中打开BookInfo的productpage (

    2. 明确拒绝从productpagedetails的请求。

      执行下列命令来安装拒绝规则及对应的handler和实例。

      将会看到类似下面的输出:

      1. Created config denier/default/denyproductpagehandler at revision 2877836

      注意denyproductpage 规则中的下述内容:

      匹配到了来自details服务上的服务账户 “spiffe://cluster.local/ns/default/sa/bookinfo-productpage“的请求。

      该规则使用denier适配器来拒绝这些请求。适配器通常通过一个预先配置的状态码和消息来拒绝请求。状态码和消息是在denier适配器配置中指定的。

    3. 在浏览器中刷新productpage页面。

      Error fetching product details! Sorry, product details are currently unavailable for this book.

      出现在页面的左下部分。这就验证了从productpage到的访问是被禁止的。

    • 清除mixer配置:

      1. istioctl delete -f samples/bookinfo/kube/mixer-rule-deny-serviceaccount.yaml
    • 如果不打算继续接下来的更多任务,可参考的指南来关闭应用。

    • 了解更多关于Mixer 和 的内容。

    • 探索全部的属性字典

    • 通过来理解Kubernetes网络策略和Istio访问控制策略的区别。