【发布时间】:2021-03-23 20:34:47
【问题描述】:
ServiceA 和 ServiceB 服务部署在同一个命名空间下。启用了 istio 来验证请求身份验证。对服务的任何调用都需要具有带有有效 jwt 令牌的“Authrization”标头。它通过RequestAuthenication 和AuthorizationPolicy 集进行验证。它按预期工作,我可以使用有效的身份验证令牌进行 http 调用。现在 ServiceA 需要与 ServiceB 对话。我使用了服务名称serviceb..<namespace-name>.svc.cluster.local。调用已传递给 ServiceB,但由于 HTTP 403 失败。它需要 auth 令牌标头。
如何在没有身份验证令牌的情况下允许同一命名空间内的服务之间的调用?
我正在尝试找到一个自定义AuthorizationPolicy 的示例,以便它允许在与受信任服务相同的命名空间中进行调用,而无需身份验证令牌。请让我知道是否有可能或是否有其他方法。
我所有在服务下运行的 pod 都是 spring-boot 并使用 RestTemplate 在服务之间调用。
下面是使用的 istio 身份验证策略
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: service-auth-policy
namespace: namespace-dev
spec:
rules:
- from:
- source:
requestPrincipals: ["*"]
【问题讨论】:
-
下面是使用的 istio auth 策略..(我尝试使用代码格式,但下面是换行)` apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: service-auth -policy 命名空间:namkespace-dev 规范:规则:-来自:-来源:requestPrincipals:["*"] `
-
最好将该代码包含在您的问题中,而不是作为评论
-
@user140547 我想编辑并将其添加到问题中。我找不到编辑它的方法,所以把它放在评论中。
-
那么问题的底部应该有一个编辑链接
-
@user140547 感谢您指出这一点。我试图找到一种在某处编辑和阅读的方法,编辑问题/答案取决于用户的个人资料历史记录。我误解了,没有看到下面的编辑按钮。我在问题中添加了评论。
标签: spring-boot kubernetes kubernetes-ingress istio istio-sidecar