如何使用etcdctl取消/my/branch/1键的写入权限?
解决etcd键写入权限取消无效的问题
先确认etcd认证已启用
如果etcd未开启认证,所有权限控制命令都不会生效,先执行启用命令:
etcdctl auth enable
排查当前操作的用户
你大概率是在用默认的root用户操作——这个用户拥有全局最高权限,revoke-permission命令对它完全无效。先检查当前登录用户:
etcdctl user whoami
正确的权限撤销流程
假设目标用户是myuser,关联角色为myrole:
- 精确撤销角色对
/my/branch/1的写入权限:
etcdctl role revoke-permission myrole --prefix=false /my/branch/1 write
注:如果之前是用
--prefix=true授予的前缀权限,撤销时也要加上该参数
- 验证权限是否已移除:
etcdctl role get myrole
- 确认用户仅关联了无写入权限的角色:
etcdctl user get myuser
测试权限生效情况
切换到目标用户身份执行写入操作,验证是否被拒绝:
etcdctl --user=myuser put /my/branch/1 newvalue
返回permission denied则说明权限限制生效。
常见踩坑点
- 用
root用户测试:root不受任何权限限制,必须用普通用户验证 - 权限匹配方式不统一:授予和撤销时的
--prefix参数要保持一致 - 未重新认证:修改权限后,需重新登录用户或刷新会话
内容的提问来源于stack exchange,提问作者armaka
相关产品推荐
相关产品推荐

