Skip to content

fix(rbac): isolate signing authority and narrow administrative permissions #883

Open

Description

@Baylem

Production readiness audit of Gameplane v0.4.0, commit 07bee47b. Tracking issue and PR merge order: #867.

Finding

The v0.4.0 API mount projects the public CA certificate. The API identity still has broad Secret access and cluster-scoped catalog/registration permissions, and the operator grants snapshot-content reclamation authority. These capabilities have different operational owners.

Work

Adopt the issuer isolation and namespace boundaries from the existing Critical work. Use that work’s issuer-denial test. Scope catalog administration, remote kubeconfig authority, namespace Secrets/pod attach and cluster-wide CSI reclamation to supported operating modes. Preserve required API-to-agent mTLS and cluster management.

Acceptance criteria

Publish and run an identity-by-resource allow/deny matrix for the native API, operator, game agent, waker and optional administration/reclamation identities in combined, standalone and multi-namespace setups as applicable. Verify issuer key denial and isolation between two named servers alongside positive certificate rotation, catalog and snapshot-path checks.

PR ownership and prior work

Build on the active Critical remediation’s identity and RBAC layout. Own the privilege matrix and use it to close L01 in the same RBAC PR. M05 consumes the documented trust inputs. Operator Secret scoping from #712/#757 is already present. The active Critical work owns issuer separation. The residual permissions and remote credential review belong here.

API cluster Role · Public-certificate-only projection · CA Secret · CSI privileges

Activity

  1. added
    type: securitySecurity hardening or vulnerability fix
    area: operatorcontroller-runtime operator and CRDs
    area: apiREST/WebSocket gateway
    area: chartHelm chart and deployment
    on Nov 11, 2026
  2. changed the title [-][Medium M06] Separate agent signing authority and scope optional administrative Kubernetes permissions[/-] [+]fix(rbac): isolate signing authority and narrow administrative permissions[/+] on Nov 11, 2026
  3. Baylem commented on Nov 11, 2026

    @Baylem
    MemberAuthor

    The populated upgrade passed on amd64 and arm64 at #900 commit cb71cb83. The test exercised the API, operator and two servers' agent and waker identities, then repeated the allow/deny checks after switching from full to reduced permissions. It included a second managed game namespace and a standalone panel. The API could read its named runtime Secret but could not read the agent issuer. The two agents and wakers could update only their own server as allowed. Catalog mutations and snapshot-content deletion followed their respective flags, and the retained agent remained reachable. amd64 upgrade · arm64 upgrade

    The operator suite also passed its Secret namespace boundary, externally supplied CA, and client certificate reissuance checks. Operator and mTLS results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: apiREST/WebSocket gatewayarea: chartHelm chart and deploymentarea: operatorcontroller-runtime operator and CRDstype: securitySecurity hardening or vulnerability fix

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions