Narrow TemporalConnection RBAC: finalizer updates currently require main-resource writes
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
这个 Issue 还没有评估数据。
描述
Problem
Downstream deployers want to grant the controller minimum RBAC on TemporalConnection.
The chart already declares a /finalizers RBAC rule:
- apiGroups: [temporal.io]
resources: [temporalconnections/finalizers]
verbs: [update]
Ideally, this would move finalizer writes out of the main-resource permission path, while keeping writes scoped to /status and /finalizers.
In practice, the current DeprecatedTCReconciler mutates finalizers via main-object Update:
Because this is r.Update(ctx, &tc) on the main resource, Kubernetes RBAC checks update on temporalconnections, not only temporalconnections/finalizers. As a result, downstream charts must still grant main-resource update / patch, which broadens the controller's write surface on user-owned TemporalConnection.spec.
The same pattern appears to exist for the modern Connection kind in internal/controller/worker_controller.go (lines 760-774, lines 817-820), where temporal.io/delete-protection is added/removed via main-object Update.
Desired outcome
One of:
- Switch finalizer mutation in
DeprecatedTCReconcilerand the equivalentConnectionfinalizer paths to use the/finalizerssubresource explicitly, for example via controller-runtime's finalizers subresource support or an equivalent patch helper. - Or document in the chart README / RBAC comments that main-resource
update/patchontemporalconnectionsandconnectionsis required for finalizer management, so downstream RBAC reviews can treat it as an intentional requirement rather than over-broad permission. - Or land an interim doc note now and track a later code refactor.
Context
This came up during a Coinbase InfraSec review of a sandbox deployment of the controller. Sandbox deployment can proceed with documented broad RBAC, but production rollout requires a narrower or better-justified TemporalConnection write surface.
Related issues:
- #311 covers Secret-read RBAC reduction through file-based mTLS.
- #317 reports another impact of finalizer mutation via main-object
UpdateonTemporalWorkerDeploymentfield ownership.
This issue tracks the RBAC/security impact for TemporalConnection and Connection.
- 主要语言
- Go
- 星标
- 198
- 派生
- 84
- 平均合并
- 2 天 18 小时
- 30 天内合并 PR
- 35
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
temporalio/temporal-worker-controller 的其他 Issue
-
[Feature Request] Configure temporal-worker-controller to use hostNetwork可能已有人在做 @josh-ferrell 于 9 天前认领。 未关闭helm
难度 4/5 3-5 天 新手友好度 35/100
temporalio/temporal-worker-controller#680 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
[Feature Request] Helm chart: support topologySpreadConstraints on the controller Deployment可能已有人在做 @akolacz 于 16 天前认领。 未关闭helm
temporalio/temporal-worker-controller#658 · 1 个 reaction · 已指派 1 人 ·
维护者通常 1 天内回复
-
rbac
难度 4/5 3-5 天 新手友好度 48/100
temporalio/temporal-worker-controller#654 ·
维护者通常 1 天内回复
-
Bug: v1.6's delete-protection finalizer is never removed from migrated TemporalWorkerDeployment/TemporalConnection, so they stay Terminating after the v1.7 migration可能已有人在做 @nmechack27 于 23 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 57/100
temporalio/temporal-worker-controller#644 · 2 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
AI agent skills未关闭
难度 3/5 1-2 天 新手友好度 68/100
temporalio/temporal-worker-controller#633 · 1 个 reaction ·
维护者通常 1 天内回复
查看 temporalio/temporal-worker-controller 的全部 Issue
相似的 Issue
-
Wayfinder sample agents don't reach the Data Plane on the quickstart pack可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭Type/Bug
难度 2/5 1-3 小时 新手友好度 82/100
thunder-id/thunderid#6402 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
TUM-Dev/Campus-Backend#678 ·
维护者通常 1 天内回复
-
fix(app): fail closed if GetGeneralSetting fails during initialization可能已有人在做 @kalavt 今天认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 66/100
-
agent-ready area:dsl
难度 1/5 1 小时以内 新手友好度 88/100
jmbarzee/temporal-architect#407 ·
维护者通常 1 天内回复