Follow up for #7074
In #7074 we plan to tighten the security of SVIDs acquired by brokers through KubernetesObjectReference. This tightening will require operators to add Kubernetes RBAC rules to their cluster that is attested by the Broker API to allow for specific brokers to have access to act on behalf of specific Kubernetes objects. In other words, additional complexity and configuration steps.
In a future release, we could facilitate the setup by providing an opt-in feature where SPIFFE IDs can be derived from the Kubernetes object properties that are currently made available at the moment when selectors are emitted for the object (this new feature would effectively be an alternative to the traditional selector-based identification process).
Something like: spiffe://<td>/kubernetes/{group}/{plural}/{namespace}/{name}
The above starts from the same fields required by the KubernetesObjectReference. However, users could want different things, e.g. including the object's UID. So we could instead provide a way to specify a Go template instead, or a CEL expression, where the Kubernetes object is made available e.g. .Obj (Go template) or obj CEL expression. In this case, the above could be the default template/expression.
Follow up for #7074
In #7074 we plan to tighten the security of SVIDs acquired by brokers through
KubernetesObjectReference. This tightening will require operators to add Kubernetes RBAC rules to their cluster that is attested by the Broker API to allow for specific brokers to have access to act on behalf of specific Kubernetes objects. In other words, additional complexity and configuration steps.In a future release, we could facilitate the setup by providing an opt-in feature where SPIFFE IDs can be derived from the Kubernetes object properties that are currently made available at the moment when selectors are emitted for the object (this new feature would effectively be an alternative to the traditional selector-based identification process).
Something like:
spiffe://<td>/kubernetes/{group}/{plural}/{namespace}/{name}The above starts from the same fields required by the
KubernetesObjectReference. However, users could want different things, e.g. including the object's UID. So we could instead provide a way to specify a Go template instead, or a CEL expression, where the Kubernetes object is made available e.g..Obj(Go template) orobjCEL expression. In this case, the above could be the default template/expression.