-
Notifications
You must be signed in to change notification settings - Fork 30
grpc traffic allowed when accessControlMode=deny #76
Comments
Our gRPC support does not have feature parity with HTTP. The TrafficTarget objects do not effect gRPC traffic. This deserves an explanation in the documentation. We chose this path, in part, to seemlessly adopt a specific gRPC SMI traffic spec as it was developed. See here. In lieu of SMI support, we will more clearly document the lack of gRPC support. |
Note that according to the docs linked:
Thus the Setting the NGINX SM to deny for the However, given this feature does not actually work, at least with gRPC, the solution becomes difficult to recommend professionally in its current implementation. This especially affects backend databases like Dgraph that communicate in gRPC, but I imagine other microservices as well that more commonly communicate in gRPC for dramatic performance improvements. gRPC is extremely popular with microservices and distributed databases or other stateful services. |
I would like to make this a feature request for gRPC, because without it, as using ingress controller forces NGINX to be requires putting everything on the mesh, so being able to lock this down would be nice. If the SMI will take to long to come out with the full spec (like 1+ year), then there needs to be something in the interim, e.g. |
Commenting to avoid auto bots closing issue. SMI looks to be on hold until Gateway and SMI merge efforts. In the meantime, having some CRD (even if priority) would be ideal until SMI/GatewaySIG come up with solution. Other SM like Linkerd that intend to use the standard are doing this as far as I can tell, and will deprecate their proprietary CRDs once standard comes up with official CRD. |
I deployed NSM with accessControlMode=deny, and gRPC still works perfectly.
ACTUAL RESULTS
Transactions work with gRPC, when they should fail.
EXPECTED
I expected that traffic would be forbidden. This is the case with HTTP, but not with gRPC:
STEPS (General)
accessControlMode=deny
and verifySTEPS (Specific)
These are steps from within my project, but really anything similar should work. I used
grpcurl
to build this:The text was updated successfully, but these errors were encountered: