当前位置: 首页 > news >正文

微服务实战系列之玩转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(一)
微服务实战系列之云原生

在这里插入图片描述

相关文章:

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

导览 前言Q:如何保障容器云环境下etcd集群的数据安全一、安全机制身份认证必学必看1. 启动参数2. 授权命令3. 开启认证 二、应用实践1. 访问容器2. 查看认证是否开启3. 查看是否已创建用户4. 创建用户5. 开启认证6. 验证是否开启7. 验证数据 结语系列回顾 前言 etc…...

Javascript 获取设备信息 工具

JS获取设备信息(操作系统信息、地理位置、UUID、横竖屏状态、设备类型、网络状态、浏览器信息、生成浏览器指纹、日期、生肖、周几等) Get Device Info Online GitHub - skillnull/DeviceJs: JS获取设备信息(操作系统信息、地理位置、UUID、横竖屏状态、设备类型、网络状态、浏…...

基于开源 AI 智能名片、S2B2C 商城小程序的用户获取成本优化分析

摘要:本文围绕用户获取成本(CAC)这一关键指标展开深入剖析,详细阐述其计算方式,并紧密结合开源 AI 智能名片与 S2B2C 商城小程序的独特性质,从多个维度探讨如何通过挖掘新的获客渠道、巧妙运用私域流量池等…...

仿真APP助力汽车零部件厂商打造核心竞争力

汽车零部件是汽车工业的基石,是构成车辆的基础元素。一辆汽车通常由上万件零部件组成,包括发动机系统、传动系统、制动系统、电子控制系统等,它们共同确保了汽车的安全、可靠性及高效运行。 在汽车产业快速发展的今天,汽车零部件…...

vue实现websocket实时短消息通知

1、原理 websocket就是通过服务器向客户端推送消息,客户端也可以主动向服务器发送消息,是真正的双向平等对话,是一种长连接,只需要通过一次请求进行初始化。 2、事件 onopen: 客户端和服务器建立连接后触发,被称为客…...

tinymce扩展功能:1、行高、段落间距、格式刷;2、视频上传进度条;3、对复制的图片设置尺寸

tinymce扩展功能:1、行高、段落间距、格式刷;2、视频上传进度条;3、对复制的图片设置尺寸 一、需求描述二、行高、段落间距、格式刷插件三、实现视频上传的进度条、对复制的图片设置尺寸 一、需求描述 使用技术: vue2 tinymce5.…...

计算机毕业设计Python+图神经网络手机推荐系统 手机价格预测 手机可视化 手机数据分析 手机爬虫 Django Flask Spark 知识图谱

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

WPF的<ContentControl>控件

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;<ContentControl>是一个非常有用的控件&#xff0c;它允许你将内容放入一个控件中&#xff0c;这个内容可以是任何对象。ContentControl的主要特点是它有一个Content属性&#xff0c;你可以将…...

Python并发编程——multiprocessing

目录 1. 引言1.1 并发与并行的区别 2. 多进程开发2.1 Process 类的常用方法2.2 进程的生命周期与同步 3. 进程之间的数据共享3.1 使用 Value 和 Array3.2 使用 Manager 实现高级数据共享 4. 进程锁4.1 更复杂的锁应用4.2 锁的死锁与避免4.3 信号量与条件变量 5. 进程池5.1 imap…...

智能家居的未来:AI让生活更智能还是更复杂?

内容概要 智能家居的概念源于将各种家居设备连接到互联网&#xff0c;并通过智能技术进行控制和管理。随着人工智能的迅速发展&#xff0c;这一领域也迎来了前所未有的机遇。从早期简单的遥控器到如今可以通过手机应用、语音助手甚至是环境感应进行操作的设备&#xff0c;智能…...

【物联网技术】ESP8266 WIFI模块在AP模式下作为TCP服务器与多个电脑/手机网络助手(TCP客户端)通信——TCP数据透传

前言:完成ESP8266 WIFI模块在AP模式下作为TCP服务器与多个电脑/手机网络助手(TCP客户端)通信——实现TCP数据透传 AP模式,通俗来说模块可以发出一个WIFI热点提供给电脑/手机连接。 TCP服务端,通俗来说就是模块/单片机作为服务器,可以接收多个客户通道的连接。 本…...

十五:java web(7)-- Spring Boot

目录 1. Spring Boot 简介 1.1 简介 1.2 Spring Boot 的特点 1.3 Spring Boot 和 Spring 的关系 2. Spring Boot 快速入门 2.1 创建第一个 Spring Boot 项目 3. Spring Boot 配置管理 3.1 application.properties 和 application.yml 配置 这两种都可以 好像现在更推荐…...

洛谷每日一题——P1036 [NOIP2002 普及组] 选数、P1045 [NOIP2003 普及组] 麦森数(高精度快速幂)

P1036 [NOIP2002 普及组] 选数 题目描述 [NOIP2002 普及组] 选数 - 洛谷 运行代码 #include <stdio.h> int n, k, a[25], t; int ss(int b) {int i;if (b < 2)return 0;for (i 2; i * i < b; i)if (b % i 0)return 0;return 1; } void dfs(int num, int sum, …...

OpenHarmony开源鸿蒙

OpenHarmony_百度百科 2024年4 月 1 日&#xff0c;开源鸿蒙 OpenHarmony 4.1 Release 版本于昨日发布&#xff0c;开发套件同步升级到 API 11 Release...

2024.11.4 STM32点灯和简单的数据收发

1.发送函数 HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout); 参数1&#xff1a; UART 处理结构体的指针&#xff0c;该结构体包含了 UART 的所有配置参数。 参数2&#xff1a;要发送的数据指针 参数3&…...

Android Studio jcenter 停止服务,改用mavenCentral

随着jcenter在2021年2月28日停止服务&#xff0c;Android和Java开发者需寻找替代方案。推荐使用MavenCentral&#xff0c;可借助国内镜像加速。此外&#xff0c;jitpack.io也是一个选项&#xff0c;但对于大型项目&#xff0c;自建Nexus或MavenCentral更合适。迁移步骤包括更新…...

EasyPOI使用详解

EasyPOI 简介 easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板 语言(熟悉的表达式语法),完成以前复杂的写法 文档&#xff1a;http://easypoi.mydoc.io/#categor…...

【云原生开发】K8S多集群资源管理平台架构设计

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

基于SpringBoot的城镇住房保障系统开发

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

一文解秘Rust如何与Java互操作

本博客所有文章除特别声明外&#xff0c;均采用CC BY-NC-SA 4.0许可协议。转载请注明来自 唯你 使用场景 JAVA 与 Rust 互操作让 Rust 可以背靠 Java 大生态来做更多事情&#xff0c;而 Java 也可以享受 Rust 语言特性的内存安全&#xff0c;所有权机制&#xff0c;无畏并发。…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...