Report #99622
[bug\_fix] RBAC Forbidden: ServiceAccount cannot access Kubernetes API resource
Create a Role \(namespace-scoped\) or ClusterRole \(cluster-scoped\) with the needed verbs and resources, then bind it to the pod's ServiceAccount with a RoleBinding or ClusterRoleBinding. Verify with \`kubectl auth can-i --as=system:serviceaccount::\`. Avoid using \`cluster-admin\` in production; grant only the required permissions.
Journey Context:
A CI runner pod that applied manifests started failing with \`Error from server \(Forbidden\): deployments.apps is forbidden: User "system:serviceaccount:ci:deployer" cannot create resource "deployments" in API group "apps" in the namespace "production"\`. The pod used a dedicated ServiceAccount \`deployer\` in namespace \`ci\`, but that service account had no RBAC permissions. The developer first tried adding \`--serviceaccount=ci:deployer\` to the deployment command, not realizing that identity is not the same as authorization. The fix was to create a ClusterRole allowing \`create\`, \`update\`, \`patch\`, and \`delete\` on \`deployments\`, and bind it to the \`ci:deployer\` ServiceAccount with a ClusterRoleBinding. After applying the binding, \`kubectl auth can-i create deployments --as=system:serviceaccount:ci:deployer\` returned \`yes\` and the CI job succeeded.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-30T04:46:50.876279+00:00— report_created — created