怎么自己制作网站平台,整站采集wordpress,网站快速收录教程,软件推广计划导览 前言Q#xff1a;如何保障容器云环境下etcd集群的数据安全一、安全机制身份认证必学必看1. 启动参数2. 授权命令3. 开启认证 二、应用实践1. 访问容器2. 查看认证是否开启3. 查看是否已创建用户4. 创建用户5. 开启认证6. 验证是否开启7. 验证数据 结语系列回顾 前言
etc… 导览 前言Q如何保障容器云环境下etcd集群的数据安全一、安全机制身份认证必学必看1. 启动参数2. 授权命令3. 开启认证 二、应用实践1. 访问容器2. 查看认证是否开启3. 查看是否已创建用户4. 创建用户5. 开启认证6. 验证是否开启7. 验证数据 结语系列回顾 前言
etcd与zooKeeper一样作为分布式场景下的数据共享工具变得“人见人爱”。当然它俩之间的异同博主在这里暂且不表。那么该谈点啥呢博主认为但凡提到“数据”一词甚至“共享”必须优先考虑数据安全问题。 殊不知“当你为自己开启了方便之门与此同时也会为他人带来捷径。一正一反皆是因果”。因此如何保障数据的访问和共享安全在etcd的发展过程中逐步得到了提升和完善。
话不多说关于容器云场景下etcd集群的第三篇博主开始大话它的安全机制并提供相关实践。愿为你的数据之身披上一件无法突破的如意“金盾”。
Q如何保障容器云环境下etcd集群的数据安全
一、安全机制
etcd的安全机制是建立在RBAC模型的基础上。如果你还不懂RBAC可查阅相关资料这里不再赘述。简单一句话RBAC是基于角色的访问控制Role-Based Access Control 。在 RBAC 中用户Who、角色How、资源What通过不同的关联实现不同类型的权限控制。可以通过下图加深理解 有了这个思想认知后咱们一块来看ectd是如何做到这些的。
身份认证必学必看
本文博主采用etcd最新版本V3对身份认证相关功能进行说明并通过docker完成。如果你需要确认自己的etcd版本可以通过下面的方法完成。 即打开浏览器输入http://[你的etcd ip]:2379/version回车可得到如下结果
1. 启动参数
既然使用docker完成那么有必要对etcd常用的启动参数加以介绍以观全局。
参数名称参数说明TZ即timezone代表时区国内选Asia/ShanghaiETCD_NAMEetcd节点名称ETCD_DATA_DIRetcd容器的数据存储目录ETCD_ADVERTISE_CLIENT_URLS描述当前etcd节点的地址即让集群知道“我是谁”ETCD_INITIAL_ADVERTISE_PEER_URLS描述当前etcd节点的通信地址即让集群知道“我上线”了ETCD_LISTEN_PEER_URLS描述当前节点与其他节点通信的监听地址ETCD_INITIAL_CLUSTER_TOKEN初始化集群token集群的唯一性ETCD_INITIAL_CLUSTER初始化集群定义有哪些成员ETCD_INITIAL_CLUSTER_STATE初始化集群状态首次为new新建否则为existing已存在ALLOW_NONE_AUTHENTICATION允许免密登录设置为yes
2. 授权命令
启动完成后我们可以借助etcdctl实现用户、角色、资源的创建和授权等操作。
# 查看etcd用户列表
etcdctl user list
# 添加一个用户
etcdctl user add [USER_NAME]
# 查看etcd角色列表
etcdctl role list
# 添加一个角色
etcdctl role add [ROLE_NAME]
# 为角色[ROLE_NAME]赋予[DATA_DIR]的读写权限
etcdctl role grant-permission [ROLE_NAME] --prefixtrue readwrite [DATA_DIR]
# 查看用户[USER_NAME]的角色
etcdctl user get [USER_NAME]
# 为用户[USER_NAME]添加角色[ROLE_NAME]
etcdctl user grant-role [USER_NAME] [ROLE_NAME]3. 开启认证
开启认证比较简单了可通过以下命令完成
# 查看是否已开启身份认证
etcdctl auth status
# 开启认证并指定用户和密码
etcdctl auth enable --user --password二、应用实践
通过第一节的介绍我们可以顺利完成实操。本次博主以一个单节点为例进行相关演示请紧随博主的步伐不可三心二意哦~
1. 访问容器
输入docker exec -it etcd-node1 /bin/bash可观察执行结果 如上图已成功进入容器内部。
2. 查看认证是否开启
输入etcdctl auth status可观察执行结果 如上图状态为false代表未开启。
3. 查看是否已创建用户
输入etcdctl user list可观察是否已创建用户用户是认证的前提 如上图一片空白代表此时未创建任何用户。
4. 创建用户
无用户那么就创建一个呗比如root可观察结果 如上图创建root并设置一个密码。
5. 开启认证
输入etcdctl --user --password --endpoints etcd或集群 auth enable可观察结果 如上图成功开启了认证。
6. 验证是否开启
我们可以通过以下命令进行验证带用户可观察结果 如上图状态为true代表已开启。
7. 验证数据
开启身份认证后我们可检验一下它是否生效输入etcdctl put [KEY] [VALUE]可观察结果 如上图添加失败因为未指定操作用户。所以接下来应该怎么办指定用户呗。 查看添加结果
完美
结语
容器云场景下etcd的安全机制建立在用户身份认证的基础上。各位盆友可通过本文进行相关设置保障数据的安全访问。当然etcd也支持使用证书保障数据的安全传输集群内部、客户端未来博主有时间再补充说明。
走过的、路过的盆友们点点赞收收藏并加以指导以备不时之需哈~
系列回顾 微服务实战系列之玩转Docker十七 微服务实战系列之玩转Docker十六 微服务实战系列之玩转Docker十五 微服务实战系列之玩转Docker十四 微服务实战系列之玩转Docker十三 微服务实战系列之玩转Docker十二 微服务实战系列之玩转Docker十一 微服务实战系列之玩转Docker十 微服务实战系列之玩转Docker九 微服务实战系列之玩转Docker八 微服务实战系列之玩转Docker七 微服务实战系列之玩转Docker六 微服务实战系列之玩转Docker五 微服务实战系列之玩转Docker四 微服务实战系列之玩转Docker三 微服务实战系列之玩转Docker二 微服务实战系列之玩转Docker一 微服务实战系列之云原生