Skip to content

โ— Inter-service Call Fails After ZTA Activation (RBAC: access denied)


๐Ÿงญ Context

This issue occurs during testing of Zero Trust Architecture enforcement in a local Kubernetes cluster using a Kind-based environment.

  • Tool used: curl inside a pod (manual test)
  • Command run:

curl zta-demo-app-service:8080/hello
* Environment: Kind cluster bootstrapped via task dev, ZTA activated with task activate-zta * Precondition: Helm values toggled to enable authn, authz, gateway, etc.


๐Ÿงจ Symptoms

  • Curl request from one pod to another fails with:
RBAC: access denied
  • No service response, Istio blocks traffic based on authorization policies

  • No issues observed before enabling ZTA


๐Ÿ“Œ Possible Causes

  • Istio AuthorizationPolicy now enforces strict service identity checks
  • No valid JWT token or SPIFFE identity presented in service call
  • Sidecar injection is active, but traffic lacks credentials to satisfy ZTA rules

โœ… Resolution (If Available)

โœ… Fetch a valid token using:

task get-token

Then retry the request inside the pod with:

curl zta-demo-app-service:8080/hello -H "Authorization: Bearer $token"

This restores access by satisfying the authentication and authorization layers.


๐Ÿงช Workarounds (Optional)

  • Temporarily disable ZTA by running:
task deactivate-zta

Not recommended in production but useful for debugging.


๐Ÿ”— External References


๐Ÿง  Notes

  • This issue is expected once ZTA is active
  • A helpful follow-up task could pre-check token presence or inject it automatically into test pods
  • Should be documented clearly in the developer onboarding section