【发布时间】:2020-06-19 06:42:20
【问题描述】:
我一直在测试 istio (1.6) 授权策略,并想确认以下几点:
- 我可以使用如下所示的 k8s 服务名称,其中
httpbin.bar是部署/工作负载 httpbin 的服务名称:
- to:
- operation:
hosts: ["httpbin.bar"]
- 我有以下规则;仅允许从
foo命名空间中的服务帐户sleep访问httpbin.bar服务。
---
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: whitelist-httpbin-bar
namespace: bar
action: ALLOW
rules:
- from:
- source:
principals: ["cluster.local/ns/foo/sa/sleep"]
- to:
- operation:
hosts: ["httpbin.bar"]
我设置了 2 个服务; httpbin.bar 和 privatehttpbin.bar。我的假设是它会阻止对privatehttpbin.bar 的访问,但事实并非如此。附带说明一下,我故意避免添加 selector.matchLabels,因为据我所知,该规则只适用于 httpbin.bar。
文档状态:
当至少一个源、操作和条件与请求匹配时,就会发生匹配。
根据here。
我解释说 AND 逻辑将适用于 source 和 operation。
如果我能找出这可能不起作用的原因或者我的理解是否需要更正,我将不胜感激。
【问题讨论】:
标签: kubernetes istio