首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Istio关联服务+外部请求中的安全mTLS通信

Istio关联服务+外部请求中的安全mTLS通信
EN

Stack Overflow用户
提问于 2022-02-15 11:27:52
回答 1查看 101关注 0票数 0

我们正在将现有的k8s服务转换为使用istio & knative。服务接收来自外部用户的请求以及来自集群内部的请求。我们正在尝试设置Istio AuthorizationPolicy以实现以下要求:

某些路径(如docs/健康检查)不需要任何特殊的头或任何东西,必须可以从anywhere

  • Health访问&必须只有来自集群外部的controllers

  • Any请求(基本上是通过knative-serving/knative-ingress-gateway )才能访问度量集合路径(基本上是通过knative-serving/knative-ingress-gateway),必须包含匹配预共享密钥

  • 的密钥头,来自集群内任何服务的任何请求都可以访问所有路径

下面是我正在尝试的一个例子。我能让前3项要求生效,但不是最后一项.

代码语言:javascript
复制
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: my-svc
  namespace: my-ns
spec:
  selector:
    matchLabels:
      serving.knative.dev/service: my-svc
  action: "ALLOW"
  rules:
    - to:
        - operation:
            methods:
              - "GET"
            paths:
              - "/docs"
              - "/openapi.json"
              - "/redoc"
              - "/rest/v1/healthz"

    - to:
        - operation:
            methods:
              - "GET"
            paths:
              - "/healthz*"
              - "/metrics*"
      when:
        - key: "request.headers[User-Agent]"
          values:
            - "Knative-Activator-Probe"
            - "Go-http-client/1.1"

    - to:
        - operation:
            paths:
              - "/rest/v1/myapp*"
      when:
        - key: "request.headers[my-key]"
          values:
            - "asjhfhjgdhjsfgjhdgsfjh"

    - from:
        - source:
            namespaces:
              - "*"

我们没有对istio关联设置默认提供的mTLS配置进行任何更改,因此假设mtls模式当前为PERMISSIVE

技术栈涉及的详细信息

  • AWS EKS - Version 1.21
  • with- Version 1.1 (与Istio 1.11.5一起使用)
EN

回答 1

Stack Overflow用户

发布于 2022-02-15 14:37:23

我不是Istio专家,但是您可能能够基于入口网关(有一个只监听ClusterIP地址的入口网关)或基于集群中的SourceIP来表达最后的策略。对于后者,我想测试Istio使用的是实际的SourceIP,而不是在Forwarded报头的IP地址中替换(一种不同的合理配置)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71125655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档