@@ -245,10 +245,24 @@ field, as it is not necessary for token verification flows.
245
245
The API server would treat these as ` nonResourceURLs ` , and restrict access
246
246
appropriately. We will provide a default RBAC ` ClusterRole ` called
247
247
` service-account-issuer-discovery ` that provides ` GET ` access to these
248
- ` nonResourceURLs ` , but will * not* provide a default ` ClusterRoleBinding ` . This
249
- leaves the decision of who is allowed to access these endpoints up to cluster
250
- admins. A default binding requires further discussion, including ongoing efforts
251
- to harden the unauthenticated API surface area.
248
+ ` nonResourceURLs ` . To make it easy for in-cluster workloads (via their
249
+ service accounts) to consume this info, we will also provide a default
250
+ ` ClusterRoleBinding ` that binds this role to all service accounts (via
251
+ the ` system:serviceaccounts ` group).
252
+
253
+ Users with certain forms of write access (create pods, create secrets,
254
+ create service accounts, etc) can gain access to a service account identity
255
+ which would allow them to access this information. This includes the issuer
256
+ URL, which is already present in the SA token JWT. Similarly, SAs can already
257
+ gain this same info via introspection of their own token. Since this discovery
258
+ endpoint points to what issued all service account tokens, it seems fitting for
259
+ SAs to have this access.
260
+
261
+ Even though this information is not sensitive, we will * not* provide a
262
+ default binding to all * authenticated* and/or * unauthenticated* users.
263
+ Such a binding requires further discussion, including ongoing efforts to
264
+ harden the unauthenticated API surface area. This leaves the decision of
265
+ completely exposing these endpoints up to cluster admins.
252
266
253
267
### Risks and Mitigations
254
268
0 commit comments