【发布时间】:2021-04-05 17:12:33
【问题描述】:
我对 Istio 授权策略非常陌生,我需要一些帮助来设置授权策略:
这是场景:
-
我有一个名为 namespace1 的命名空间,其中运行了 4 个微服务。对于上下文,我们称它们为 A、B、C、D。并且所有 4 个微服务都启用了 istio-sidecar 注入。
-
有一个名为 namespace2 的命名空间,其中运行着 2 个微服务。对于上下文,我们称它们为 E,F。并且两个微服务都启用了 istio-sidecar 注入。
-
现在我已经按照Memcached using mcrouter 将 Memcached 服务部署到命名空间 memcached。 Memcached 的所有 pod 也都启用了 istio-sidecar 注入。
现在我有一个场景,我必须只允许从 namespace1 中的 B 和 C 微服务调用 memcached 服务,并拒绝来自 namespace1 中的 A 和 D 的调用以及来自任何其他命名空间的调用。是否可以使用 istio 授权策略来实现这一点?
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: authorization-policy-deny-all
namespace: memcached
spec:
selector:
matchLabels:
app: activator
action: DENY
rules:
- from:
- source:
notNamespaces: ["namespace1"]
这是我能想到的最好的方法,我只允许来自 namepsace1 的调用并拒绝来自所有其他命名空间的调用。我不知道如何拒绝来自命名空间 1 中 A 和 D 微服务的调用。
【问题讨论】:
标签: istio