Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support PeerAuthentication (STRICT) mode #42696

Closed
YonkaFang opened this issue Jan 6, 2023 · 5 comments · Fixed by #45453
Closed

Support PeerAuthentication (STRICT) mode #42696

YonkaFang opened this issue Jan 6, 2023 · 5 comments · Fixed by #45453
Assignees
Labels
area/ambient Issues related to ambient mesh lifecycle/staleproof Indicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed

Comments

@YonkaFang
Copy link
Contributor

YonkaFang commented Jan 6, 2023

Bug Description

I'm following the tutorial https://istio.io/latest/docs/tasks/security/authentication/authn-policy/#globally-enabling-istio-mutual-tls-in-strict-mod.

I find that I can access the pod without sidecar from ambent pod or sidecar pod when I've set the mtls mode to STRICT globally or in namespace level or per-pod.

From the envoy config_dump of caller side, I see the actual behaviour is PERMISSIVE mode no matter what I set.

      "cluster_name": "outbound|8000||httpbin.default-sidecar.svc.cluster.local",
      "endpoints": [
       {
        "locality": {},
        "lb_endpoints": [
         {
          "endpoint": {
           "address": {
            "envoy_internal_address": {
             "server_listener_name": "tunnel",
             "endpoint_id": "10.244.1.31:80"  // pod with sidecar
            }
           },
           "health_check_config": {}
          },
          "health_status": "HEALTHY",
          "metadata": {
           "filter_metadata": {
            "tunnel": {
             "destination": "10.244.1.31:80",
             "address": "10.244.1.31:15008"
            },
            "envoy.transport_socket_match": {
             "tunnel": "h2"
            },
            "istio": {
             "workload": "httpbinv1;default-sidecar;httpbin;v1;Kubernetes"
            }
           }
          },
          "load_balancing_weight": 1
         },
         {
          "endpoint": {
           "address": {
            "socket_address": {
             "address": "10.244.2.18",  // pod without sidecar
             "port_value": 80
            }
           },
           "health_check_config": {}
          },
          "health_status": "HEALTHY",
          "metadata": {
           "filter_metadata": {
            "istio": {
             "workload": "httpbinv2;default-sidecar;httpbin;v2;Kubernetes"
            }
           }
          },
          "load_balancing_weight": 1
         }
        ],
        "load_balancing_weight": 2
       }
      ],
      "policy": {
       "overprovisioning_factor": 140
      }
     }
    },    

Version

./bin/istioctl version
client version: 0.0.0-ambient.191fe680b52c1754ee72a06b3e0d3f9d116f2e82
control plane version: 0.0.0
data plane version: 0.0.0-ambient.191fe680b52c1754ee72a06b3e0d3f9d116f2e82 (11 proxies)

Client Version: v1.25.2
Kustomize Version: v4.5.7
Server Version: v1.25.2

Additional Information

No response

@YonkaFang YonkaFang added the area/ambient Issues related to ambient mesh label Jan 6, 2023
@howardjohn
Copy link
Member

This is working as implemented; there is currently open discussion if we will support this API in ambient

@fzh890523
Copy link
Contributor

This is working as implemented; there is currently open discussion if we will support this API in ambient

Can I see similar discussions somewhere, I'm more concerned about the completeness of ambient's capabilities

@howardjohn
Copy link
Member

Doc is in https://docs.google.com/document/d/1Lk1I1qB-XwVWFP0sVcIN5JMJZHjuF3j8lGWtUeDK6pY/edit#heading=h.nluvz4y67j4c. Note its very much under discussion.

I can assure anyone reading this though, some equivalent to "only allow mTLS" will be available. That is 100% critical

@howardjohn howardjohn changed the title PeerAuthentication tls mode not work in ambient Support PeerAuthentication (STRICT) mode Feb 15, 2023
@istio-policy-bot istio-policy-bot added the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label May 5, 2023
@linsun
Copy link
Member

linsun commented May 8, 2023

not stale, we still need discussion on if peer authentication should be supported and if so when.

@istio-policy-bot istio-policy-bot removed the lifecycle/stale Indicates a PR or issue hasn't been manipulated by an Istio team member for a while label May 8, 2023
@linsun linsun added the lifecycle/staleproof Indicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed label May 8, 2023
@keithmattix
Copy link
Contributor

Update: After discussion in the Ambient WG, we decided to move forward with supporting PeerAuthentication for now. I'll take care of the ambient implementation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ambient Issues related to ambient mesh lifecycle/staleproof Indicates a PR or issue has been deemed to be immune from becoming stale and/or automatically closed
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

6 participants