微服务实战系列之玩转Docker(十八)

导览

  • 前言
  • 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/Shanghai
ETCD_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] --prefix=true 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(一)
微服务实战系列之云原生

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1429.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

畅享云边大模型!火山引擎 x 地瓜机器人,大模型网关能力免费开放

前期,火山引擎官宣与地瓜机器人达成了合作,实现了火山引擎边缘智能-大模型网关与地瓜机器人软硬件通用底座“云-边-端”的全面打通,拓展机器人的无限智能化潜能。地瓜 RDK X5 机器人开发套件集成了火山引擎边缘智能-大模型网关能力&#xff0…

计算机性能监控体系:Quark2.0

一、背景 在过去的IT日常支持场景中,因为服务的用户、终端、系统等等因业务而异,往往会遇到以下类似这些问题或需求: IT工程师定位终端问题跨越不同的平台或系统,低效繁琐用户想要获取一些个人相关的IT环境信息,只能…

【新闻转载】“假冒 LockBit”来袭:勒索软件借助 AWS S3 偷窃数据,威胁升级

关键要点 Trend团队发现了一些利用 Amazon S3(简单存储服务)传输加速功能的 Golang 勒索软件样本,用于窃取受害者的文件并上传至攻击者控制的 S3 存储桶。 这些样本中硬编码的 Amazon Web Services (AWS) 凭证被用于追踪与恶意活动关联的 AW…

python之数据结构与算法(数据结构篇)-- 栈

一、栈的概念 这里我们不去了解教科书上面的“教条概念”,其实“栈”的概念和古代的时候的“客栈”是有异曲同工之妙的。 在这里我们把客栈看成“栈”,旅客看作“栈元素” 1.当旅客进来住店时,叫做“入栈”; 2.当旅客退房时&#…

【银河麒麟高级服务器操作系统】虚拟机lvm分区丢失现象分析及解决建议

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 环境描述 系统环境 物理机/虚拟机/云/容器 虚拟…

论文速读:完全测试时域适应(Test-time Adaptation)目标检测(CVPR2024)

原文标题:Fully Test-time Adaptation for Object Detection 中文标题:完全测试时间适应目标检测 通过百度网盘分享的文件:Fully_Test-time_Adaptation_for_Obje... 链接: 百度网盘 请输入提取码 提取码:yrvz 代码地址…

蔚来汽车 AI产品经理面经

问的问题都比较深入,要求有项目基础,祝好🥰 1、自我介绍 2、你的产品上线后有没有关注用户反馈? 3、给客户交付时,如果产品能力还没ready,你会怎么办? 4、你们团队需求一般来源于哪里&#…

国内短剧源码短剧系统搭建小程序部署H5、APP打造短剧平台

​在当今的互联网时代,短剧作为一种新兴的娱乐形式,受到了越来越多用户的喜爱。为了提供更好的用户体验和满足用户需求,一个好的短剧系统需要具备多元化的功能和优质的界面设计。 本文将介绍国内短剧源码短剧系统搭建小程序部署H5、APP所需的…

深入浅出了解AI教育发展与落地应用情况

2023年,是生成式AI能力涌现的一年,通用大模型是其中的主旋律。经过一年的发展,通用大模型格局已初步形成,生成式AI也从能力展示走向应用落地。进入2024年,对生成式AI的讨论和实践也都转向如何赋能产业。相比于通用大模型,进入产业内的大模型需要的是对行业的Know-How,以…

‘随机失活’:人工智能真的在模仿人脑吗?

序言:过拟合是人工智能训练中的一个常见问题,类似于一位“读死书”的学生,他只能机械地背诵书本内容,缺乏灵活性,一旦题目稍有变化便无法理解。为了解决这一问题,科学家们从人脑的学习方式中获得启发&#…

【机器学习】揭秘XGboost:高效梯度提升算法的实践与应用

目录 🍔 XGBoost 原理 1.1 目标函数确定和树的复杂度介绍 1.2 XGBoost目标函数的推导 1.3 泰勒公式展开 1.4 化简目标函数 1.5 问题再次转换 1.6 对叶子结点求导 1.7 XGBoost的回归树构建方法 🍔 XGBoost API 2.1 通用参数 2.2 Booster 参数 …

Transformer的Pytorch实现【1】

使用Pytorch手把手搭建一个Transformer网络结构并完成一个小型翻译任务。 首先,对Transformer结构进行拆解,Transformer由编码器和解码器(Encoder-Decoder)组成,编码器由Multi-Head Attention Feed-Forward Network组…

【MySQL】存储引擎

MySQL采用的是可插拔的存储引擎架构,也就是说在运行期间可以动态的加载或卸载存储引擎;查看当前服务器存储引擎的方法show engines,其中重点关注两个字段即可,其一是Support-表示当前服务器是否支持,其二是它的数值yes…

构建校园社团信息管理平台:Spring Boot技术的核心要点

6系统测试 6.1概念和意义 测试的定义:程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为: 目的:发现程序的错误; 任务:通过在计算机上执行程序,暴露程序中潜在的错误。 另一个…

RAG工具:FlashRAG用于高效 RAG 研究的 Python 工具包

随着大语言模型的火热,如何提高生成内容的准确性和可靠性,成为各行业关注的重点。检索增强生成(RAG)正是通过将强大的检索功能与语言模型结合,在生成文本时引入来自外部的实时信息。 今天,我们来了解一款为…

任天堂新款闹钟被玩家破解,竟能运行《毁灭战士》游戏!

任天堂于10月9日推出的Nintendo Sound Clock Alarmo闹钟在市场上引起了强烈反响。这款定价为99.99美元(约706元人民币)的闹钟,在日本则以12980日元(约619元人民币)的价格迅速被抢购一空。 近日,首批收到闹钟…

我笑了,居民日均劳动不满3.5小时

鸭鸭是一位现代都市青年,生活节奏规律,时间安排精细,非常符合国家统计局发布的时间利用调查报告中的数据。以下是鸭鸭一天的生活日常: 早上 7:00 - 鸭鸭准时起床,开始一天的生活。他通常会在床上稍微刷刷手机&#xf…

django快速基本配置(2)

知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 目录 配置开发目录 配置MySQL数据库 配置Redis数据库 配置工程日志 用户注册 跨域CORS 注意 配置开发目录 libs 存放第三方的库文件 utils 存放项目自己定义的公共函数或类等 apps 存…

前端技术月刊-2024.11

本月技术月刊聚焦于前端技术的最新发展和业务实践。业界资讯部分,React Native 0.76 版本发布,带来全新架构;Deno 2.0 和 Node.js 23 版本更新,推动 JavaScript 生态进步;Flutter 团队规模缩减,引发社区关注…

Golang的Web应用架构设计

# Golang的Web应用架构设计 介绍 是一种快速、高效、可靠的编程语言,它在Web应用开发中越来越受欢迎。Golang的Web应用架构设计通常包括前端、后端和数据库三个部分。在本篇文章中,我们将详细介绍Golang的Web应用架构设计及其组成部分。 前端 在Golang的…