我在这里遵循了所有这些步骤: https://istio.io/latest/docs/setup/getting-started/
然后是 Opa-Istio-Tutorial 的所有步骤: https://www.openpolicyagent.org/docs/latest/envoy-tutorial-istio/
我没有收到任何错误,但是当我尝试测试它时,就像这里描述的那样:
curl --user alice:password -i http://$SERVICE_HOST/productpage
curl --user alice:password -i http://$SERVICE_HOST/api/v1/products
结果总是:
curl --user alice:password -i http://$SERVICE_HOST/productpage
HTTP/1.1 403 Forbidden
content-length: 19
content-type: text/plain
date: Sun, 07 Apr 2024 11:31:44 GMT
server: istio-envoy
x-envoy-upstream-service-time: 14
和
curl --user alice:password -i http://$SERVICE_HOST/api/v1/products
HTTP/1.1 403 Forbidden
content-length: 19
content-type: text/plain
date: Sun, 07 Apr 2024 11:31:50 GMT
server: istio-envoy
x-envoy-upstream-service-time: 1
问题:第一个应该被允许,如本示例中定义的 rego,但它不起作用,它显示两次被禁止。是的,我之前配置了网格并添加了外部提供程序,如示例中所述:
data:
mesh: |-
# Add the following lines to define the ServiceEntry previously created as an external authorizer:
extensionProviders:
- name: opa-ext-authz-grpc
envoyExtAuthzGrpc:
service: opa-ext-authz-grpc.local
port: "9191" `
我在 macOS m2 上使用带有 Docker 的 minikube。
如果有人能给我提示,那就太好了。
安装了几次istio和opa。试图在网络上找到类似的问题。试图通过 opa 文档找到答案。
感谢查理的提示!日志很好,但我发现这个命令:
kubectl edit configmap -n istio-system istio
在终端上无法正常工作:我可以添加这些行:
extensionProviders:
- name: opa-ext-authz-grpc
envoyExtAuthzGrpc:
service: opa-ext-authz-grpc.local
port: "9191"
但它们似乎出了问题。然后我通过覆盖网格来尝试使用 Visual Studio 代码进行相同的操作,它终于成功了。