You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When SPIRE is configured to provide workload identity it replaces the default sds-cluster. However for ingress gateway, the source of the TLS certs is also moved to sds-cluster. The default SDS client, when SPIRE workload api socket is not mount, understand the specific resource name file-cert:~. However, once it is replaced by SPIRE, the above resource name is passed onto the spire-agent, which is not able to resolve it.**
This breaks the file based TLS SIMPLE mode configuration when SPIRE is the workload identity issuer.
Error in ingress gateway logs, istio tries to make use of spire agent socket to fetch the file-cert based certificate
warning envoy config external/envoy/source/common/config/grpc_stream.h:153 StreamSecrets gRPC config stream to sds-grpc closed: 3, workload is not authorized for the requested identities ["file-cert:/etc/ingress-certs/tls.crt~/etc/ingress-certs/tls.key"] thread=18
Is it possible for spire agent to recognise that the request is for file-cert ( local path based cert ) and not an SVID for workload and deliver the requested file cert from spire-agent's local path
@MarcosDY
This recent feature change of defaulting VERIFY_CERT_AT_CLIENT=true is that istio sidecar proxy (as a client) will always try to verify the upstream server certificate using the sidecar's OS level CA trust if a CA explicitly is not specified.
The issue described here is that istio proxy (as a ingress-gateway) couldn't fetch the TLS certificates for TLS termination at gateway level, when integrated with spire. Istio is attempting to fetch a file-cert based certificate available in its own file system from the spire agent socket, as Istio binds to it as it sees it mounted on in its well known path var/run/secrets/workload-spiffe-uds/socket during its startup
Istio version: 1.23.12
Spire Version : 1.8.7
Platform : RHEL 8
**Issue Description
When SPIRE is configured to provide workload identity it replaces the default sds-cluster. However for ingress gateway, the source of the TLS certs is also moved to sds-cluster. The default SDS client, when SPIRE workload api socket is not mount, understand the specific resource name file-cert:~. However, once it is replaced by SPIRE, the above resource name is passed onto the spire-agent, which is not able to resolve it.**
This breaks the file based TLS SIMPLE mode configuration when SPIRE is the workload identity issuer.
Gateway TLS
Envoy Config Dump - Downstream TLS context
Error in ingress gateway logs, istio tries to make use of spire agent socket to fetch the file-cert based certificate
warning envoy config external/envoy/source/common/config/grpc_stream.h:153 StreamSecrets gRPC config stream to sds-grpc closed: 3, workload is not authorized for the requested identities ["file-cert:/etc/ingress-certs/tls.crt~/etc/ingress-certs/tls.key"] thread=18
Is it possible for spire agent to recognise that the request is for file-cert ( local path based cert ) and not an SVID for workload and deliver the requested file cert from spire-agent's local path
Related Istio Issue : istio/istio#54365
The text was updated successfully, but these errors were encountered: