Skip to content

Enforce tenant-scoped authentication for namespaced SecretStores #2868

Description

@devantler

🤖 Generated by the Agentic Engineer

Problem

Tenant-managed namespaced SecretStores can currently select authentication that is broader than the tenant boundary or fall back to the platform controller identity. That weakens the isolation promised by the self-service tenant model.

Expected outcome

Admission enforcement requires tenant-scoped authentication for tenant-authored Vault SecretStores while preserving the platform controller path for trusted registration resources.

Acceptance criteria

  • Tenant-authored SecretStores cannot reuse the shared controller role.
  • Vault Kubernetes authentication requires an explicit ServiceAccount in the tenant namespace.
  • Cross-namespace ServiceAccount references are rejected.
  • The platform controller can still apply trusted SecretStores in managed tenant namespaces.
  • Tests execute the policy under tenant and platform identities and fail if the deny rule disappears.
  • Both local and production overlays pass static validation.

Part of #2653.

Activity

  1. coderabbitai commented on Aug 1, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #2343 - fix(openbao): grant external-secrets role write/read on apps/actual-budget path [merged]
    #2345 - fix(openbao): grant actual-budget the missing vault ACL paths [merged]
    #2377 - feat(vault-config): seed the AWS bootstrap credential path (placeholder + policy + tenant role) [merged]
    #2412 - feat(aws): aws tenant credential plumbing (SecretStore + ProviderConfig) [merged]
    #2519 - docs(tenant): record KRO as the chosen Tenant abstraction (ADR) [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. moved this to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Aug 1, 2026
  3. moved this from 🏃🏻‍♂️ In Progress to 👀 In Review in 🌊 Project Boardon Aug 1, 2026
  4. self-assigned this
    on Aug 1, 2026
  5. moved this from 👀 In Review to 🚀 Ready to Merge in 🌊 Project Boardon Aug 1, 2026
  6. moved this from 🚀 Ready to Merge to ✅ Done in 🌊 Project Boardon Aug 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Fields

No fields configured for Security.

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions