0


ETCD 安全

ETCD 安全

访问安全

ETCD包含的三种类型资源,具体如下:

  • 权限资源:表示用户和角色信息
  • 键值资源:表示键值对数据信息
  • 配置资源:安全配置信息,权限配置信息和etcd集群动态配置信息

权限资源

User(用户)是一个别授予权限的的身份,每个用户都可以拥有多个角色。用户操作资源的权限是根据该用户所具有的角色来确定的,分为root用户和非root用户。
root用户是ETCD提供是一个特殊用户,在安全功能被激活之前必须创建root用户,否则会无法启用身份认证功能。
Role(角色)来关联权限。etcd的每个角色都具有相对应的权限列表,这个权限列表定义了角色对键值资源的访问权限。在etcd中,角色主要分为三类:root角色,guest角色和普通角色。etcd默认会创建其中两种特殊角色root和guest。
root角色,默认创建root用户即创建了root角色,并为其绑定了该角色,该角色拥有所有权限;
guest角色,默认自动创建,主要用于非认证使用。
普通角色,由root用户创建,并由root用户分配指定权限。

root角色具有对所有键值资源的完整权限,而且只有root角色具有管理用户资源和配置资源的权限,root角色是内置的,不需要被创建而且不能被篡改,但是可以授予任务用户相同的权限。

guest角色是自动创建的。guest角色针对为经身份认证的请求提供访问etcd的权限,即如果没有指定任何验证方式和用户访问etcd数据库,那么请求方默认会被设定为guest角色。默认情况下,guest角色具有对etcd所有键值资源的全局访问权限。如果不希望未授权就获取或修改etcd的数据,那么guest角色可以被持有root角色的用户在任何时间进行修改,撤销甚至删除该角色,以减少未经授权的用户的能力

// 撤销guest权限
etcdctl role revoke guest

Permiession(权限):读和写,对全限定所有管理和设置都需要通过root角色来实现,权限列表是一个许可的特定权限的列表

键值资源

etcd支持key值的前缀和精确匹配,其中前缀字符串以"*"结尾

配置资源

配置资源存放着整个集群的特定配置信息,包括添加,删除集群成员,启动禁用认证,替换证书和其他由管理员维护的动态配置信息等

etcd访问控制常用命令

User相关命令

获取users账号列表
etcdctl user list

创建user
etcdct user add demouser

授予用户对应的角色
etcdctl user grant demouser -roles role1,role2,role3

撤销用户角色
etcdctl user revoke demouser -roles role1,role2

获取用户的详细信息
etcdctl user get demouser

修改密码
etcdctl user passwd demouser

删除用户
etcdctl user remove demouser

Role相关命令

列出系统所有的角色
etcdctl role list

创建角色
etcdctl role add demorole

授予对key /foo的只读权限
etcdctl role grant-permission demorole read /foo

授予以/foo为前缀的所有key的只读权限
etcdctl role grant-permission demorole --prefix=true read /foo

授予对key /foo/demo的只写权限
etcdctl role grant-permission demorole write /foo/demo

授予对key [key1,key10) 的读写权限
etcdctl role grant-permission demorole readwrite key1 key10

授予以/demo/ 为前缀的key的读写权限
etcdctl role grant-permission demorole -path '/demo/*' -readwrite

查看角色权限
etcdctl role get demorole

收回role权限
etcdctl role revoke-permission demorole /foo/demo

完全移除一个角色(包括role的所有权限)
etcdctl role remove demorole

启用用户权限功能

确认root用户已经创建
etcdctl user add root

启用权限功能
etcdctl auth enable

关闭认证功能
etcdctl -u root:rootpw auth disable

案例

etcdctl user add root
etcdctl auth enable 
etcdct user add demouser
etcdctl -u root:rootpw role add demorole
etcdctl -u root:rootpw role grant-permission demorole read /a
etcdctl -u root:rootpw user grant demouser -roles demorole 
标签: etcd

本文转载自: https://blog.csdn.net/qq_39225271/article/details/131359060
版权归原作者 to-and-fro 所有, 如有侵权,请联系我们删除。

“ETCD 安全”的评论:

还没有评论