feat: manage existing credential actions with audited replay
This commit is contained in:
@@ -56,7 +56,7 @@ go run ./cmd/orbit-admin credential status \
|
||||
--credential-id <credential_id>
|
||||
```
|
||||
|
||||
状态输出不包含令牌、秘密摘要或权限正文;`revision` 是后续变更的并发条件。
|
||||
状态输出包含精确动作与队列权限,不包含令牌或秘密摘要;`revision` 是后续变更的并发条件。
|
||||
|
||||
```sh
|
||||
go run ./cmd/orbit-admin credential rotate \
|
||||
@@ -106,7 +106,25 @@ go run ./cmd/orbit-admin credential finalize \
|
||||
|
||||
结束过渡立即停用旧 Token,当前 Token 不变。长期 Token 仍受主动撤销、应用/命名空间停用约束。旧代仍在有效过渡期时再次轮换返回 409,避免误伤未切换服务;先完成本次切换。修改当前有效期不延长旧代截止。若旧 Token 本身即将到期而需要更长切换窗口,应先调整当前有效期,再发起换证。
|
||||
|
||||
新固定操作文件使用 version=2;历史 version=1 仍按原来的固定到期和立即轮换语义重放,不自动延长旧秘密。
|
||||
轮换、有效期、结束过渡与撤销的新固定操作文件继续使用 version=2;历史 version=1 仍按原来的固定到期和立即轮换语义重放,不自动延长旧秘密。权限修改使用下面的 version=3,不改变旧操作内容或摘要。
|
||||
|
||||
### 原 Token 调整动作权限
|
||||
|
||||
`credential permissions` 修改已有凭据的完整动作集合,保留队列授权范围、Token、密文、有效期、旧代过渡期和资源身份。先用 status 读取当前权限与 revision,再明确保留或移除哪些动作。`--actions` 是全量替换,不能只填写希望新增的动作;空集合、未知动作、通配符和重复动作会被拒绝,准备时按字典序固定。
|
||||
|
||||
```sh
|
||||
go run ./cmd/orbit-admin credential permissions \
|
||||
--namespace-id <namespace_id> --credential-id <credential_id> \
|
||||
--expected-revision <revision> \
|
||||
--actions 'queues:read,schedules:manage,schedules:read,tasks:read,tasks:submit' \
|
||||
--reason 'enable scheduling for this credential' \
|
||||
--output .local/permissions.operation.json --prepare-only
|
||||
go run ./cmd/orbit-admin credential apply --file .local/permissions.operation.json
|
||||
```
|
||||
|
||||
上例动作仅作格式示例,实际必须根据原 status 核对完整集合。`--prepare-only` 只保存 0600 固定操作,不修改凭据;不带该参数则保存后立即应用,沿用其他 credential 命令的行为。权限修改不接受 `--valid-for` 或 `--grace`,固定操作不含 Token。当前版本校验、权限变更、前后权限审计和原键回执在一个事务内提交,审计失败整笔回滚;提交不明时用原文件 apply,不能换 operation_id。旧操作重放只返回原回执,不会恢复后来已收回的权限。
|
||||
|
||||
权限随下一次认证/授权检查生效,原 Token 无须重新分发;移除 Worker 或消费相关权限可能影响既有连接的后续授权。该管理能力仅由管理员控制台或受保护的管理 CLI 提供,业务 SDK 不获得凭据管理接口。
|
||||
|
||||
发生泄露或 Worker 必须立即停用时执行撤销:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user