Splitting out the RBAC definitions into a separate file has the advantage that it can be used as-is without editing in other deployments. For example, the kubernetes-csi/docs example can use this rbac.yaml file instead of a local copy. While at it, the upstream external-provisioner RBAC file gets used, which fixes the too broad permissions for "endpoints".