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
spiffe validator: support multi-tenancy via filter state (#43886)
Commit Message: Add a condition to the trust domain selector using a
per-connection filter state object. This is useful on multi-tenant
set-ups, where a single validation context can be used between multiple
tenants using the same proxy, as it happens to be on k8s (see the two
trust domain labels in
https://kube-agentic-networking.sigs.k8s.io/guides/quickstart/agent-identity-demo/#1-define-the-volume).
This is only implemented on the xDS version of SPIFFE bundle since the
upstream specification for the trust bundle does not cover this
multi-tenant use yet.
Risk Level: low (opt-in field)
Testing: unit and integration
Docs Changes: yes
Release Notes: yes
---------
Signed-off-by: Kuat Yessenov <kuat@google.com>
// - :ref:`allow_expired_certificate <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.allow_expired_certificate>` to allow expired certificates.
46
46
// - :ref:`match_typed_subject_alt_names <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CertificateValidationContext.match_typed_subject_alt_names>` to match **URI** SAN of certificates. Unlike the default validator, SPIFFE validator only matches **URI** SAN (which equals to SVID in SPIFFE terminology) and ignore other SAN types.
47
47
//
48
+
// To support multi-tenant use cases, a filter state object ``envoy.tls.cert_validator.spiffe.workload_trust_domain``
49
+
// should be used to define the per-connection workload trust domain. When matching a peer trust domain, both the
50
+
// workload and the peer trust domains are used in selecting the validation certificate. The filter state object
51
+
// should be shared with the upstream to be used in the upstream TLS context SPIFFE validation context.
48
52
messageSPIFFECertValidatorConfig {
49
53
messageTrustDomain {
50
54
// Name of the trust domain, ``example.com``, ``foo.bar.gov`` for example.
0 commit comments