确保 Elastic 账户的安全性:Elasticsearch 的配置和保护
【腾讯云 Elasticsearch Service】高可用,可伸缩,云端全托管。集成X-Pack高级特性,适用日志分析/企业搜索/BI分析等场景
我们知道 Elastic 安全是非常重要的。没有这个我们的数据可以被任何的人进行访问,串改,删除。Elastic Stack 的安全是由 x-pack 所提供的。在 Elastic Stack 7.0 版本之前,这个是商用的版本,需要进行安装,并购买。从Elastic Stack 7.0之后,x-pack 都已经在发布版中,所以不需要进行安装。我们只需要进行配置就可以了。
在今天的这篇文章中,我们来详细介绍如何为Elastic Stack设置安全账户。在进行这个教程之前,我相信大家已经阅读过文章:
- 如何在Linux,MacOS及Windows上进行安装Elasticsearch
- 如何在Linux及MacOS上安装Elastic栈中的Kibana
已经在自己的电脑或服务器上安装好 Elasticsearch 及 Kibana。
在节点上启用 Elastic 安全功能
使用基本和试用许可证时,默认情况下会禁用 Elasticsearch 安全功能。 要启用它们,首先,我们必须停止所以正在运行的 Elastic Stack 软件:
- 停止 Kibana。依赖于你安装的方法不同,停止Kibana的方法也会不同。大家可以参考链接 “Start and stopping Kibana”。对于从一个archive(.tar.gz或.zip)发布进行安装的,可以直接使用在命令行键入 Ctrl+C 来进行停止。
- 停止 Elasticsearch。对于从一个 archive(.tar.gz或.zip)发布进行安装的,可以直接使用在命令行键入 Ctrl+C 来进行停止。对于其它形式的安装,可以参考链接 “Stopping Elasticsearch” 来进行停止。
- 添加 xpack.security.enabled 设置到 ES_PATH_CONF/elasticsearch.yml 文件。这里的 ES_PATH_CONF 是指的在Elasticsearch 安装目录下的 config 目录。如果你是使用的 debian 或 RPM 安装包,那么这个目录将位于 /etc/elasticsearch。比如加入如下的一行到 elasticsearch.yml 中:
xpack.security.enabled: true
- 在ES_PATH_CONF/elasticsearch.yml 文件中启用 single-node 发现模式
本教程涉及单个节点群集,但如果你有多个节点,则可以在群集中的每个节点上启用 Elasticsearch 安全功能,并为节点间通信配置传输层安全性(TLS),这超出了本教程的范围。 通过启用单节点发现,我们推迟了 TLS 的配置。 例如,添加以下设置:
discovery.type: single-node
- 重新启动我们的 Elasticsearch
针对以 .tar.gz 或 .zip 来进行安装的 Elasticsearch,我们可以通过如下的方式来进行启动。针对其它方式的安装,我们可以通过参阅链接 “Starting Elasticsearch” 来启动。
./bin/elasticsearch
这样,在我们的 Elasticsearch.yml 里,我们添加如上的两个语句就够了。
为内置用户编辑创建密码
我们可以参照链接来创建我们的密码。您可以将 内置用户 用于特定的管理目的:apm_system,beats_system,elastic,kibana,logstash_system 和 remote_monitoring_user。
在使用它们之前,我们必须为它们设置密码。在 Elasticsearch 的目录里安装打入如下的命令:
./bin/elasticsearch-setup-passwords interactive
$ ./bin/elasticsearch-setup-passwords interactiveInitiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.You will be prompted to enter passwords as the process progresses.Please confirm that you would like to continue [y/N]
你安装提示进行设置。在这个过程中选择你喜欢的密码来设置。
对于一些用户喜欢一个随机的密码,那么你可以使用如下的方式来创建你自己密码:
./bin/elasticsearch-setup-passwords auto
这样它可以帮我生成一些随机的密码。
为 Kibana 添加内置用户
启用 Elasticsearch 安全功能后,用户必须使用有效的用户 ID 和密码登录 Kibana。
Kibana 还执行一些需要使用内置 kibana 用户的任务。
配置 Kibana 以使用内置 kibana 用户和您创建的密码
- 如果您不介意在配置文件中显示密码,请取消注释并更新 Kibana 安装目录下的 config 子目录中的 kibana.yml文 件中的以下设置:
elasticsearch.username: "kibana"elasticsearch.password: "your_password"
这里的 “your_password” 就是我们在上一节 Elasticsearch 中使用 elasticsearch-setup-passwords 命令配置的内置用户密码。
- 如果您不想将你的用户 ID 和密码放在 kibana.yml 文件中,请将它们存储在密钥库中。 运行以下命令以创建 Kibana 密钥库并添加安全设置:
./bin/kibana-keystore create./bin/kibana-keystore add elasticsearch.username./bin/kibana-keystore add elasticsearch.password
出现提示时,请为这些设置值指定 kibana 内置用户及其密码。 启动 Kibana 时会自动应用这些设置。
上面的两种方法可以任选其中的一个。
重新启动 Kibana
针对以 .tar.gz 或 .zip 进行安装的 Kibana,可以通过如下的命令来进行启动 Kibana:
./bin/kibana
在 Kibana 的安装目录运行以上的命令就可以了。如果是以其它的形式进行安装的 Kibana,请参阅链接 “Starting and stopping Kibana” 来运行 Kibana。我们可以看到如下的画面:
键入我们之前的内置用户名及密码:elastic/your_password。这里的 your_password 是之前我们设置的密码。然后,我们就可以看到如下的画面:
创建用户
在上面,我们已经使用内置用户 elastic 登录我们的 Kibana。现在我们去 Manage/Sercurity/Users 页面:
显示的页面如下:
在这个页面里,我们可以看到一些内置的用户。我们选择 "Create new user。
在这里,我们输入选择我们的用户名及密码信息,然后点击 Create user。您会注意到,在创建用户时,您可以为其分配角色。目前前我们暂不分配一个角色 - 我们将在后续步骤中再回过头来看看。
我们可以点击 Management / Security / Roles来查 看我们的 role 列表:
每个角色定义一组特定的操作(如读取,创建或删除),这些操作可以在特定的安全资源(例如索引,别名,文档,字段或集群)上执行。 为了帮助您启动和运行,有内置角色。
我们将 kibana_use r角色分配给你的用户。 返回 Management / Security / Users 页面并选择你的用户。 添加 kibana_user 角色并保存更改。 例如:
通过这样的设置,这个 liuxg 的用户可以对 Kibana 进行所有功能的访问。我们可以点击 Kibana 最右角上方的一个图标进行logout,然后用最新创建的账号进行登录,看看是否成功。
我们可以为我们的账号创立一个 superuser 账号,这样这个账号基本上就会具有所有的 role。这个对我们做一些测试是非常有帮助的。
如果大家想知道如何对每个用户的权限进行管理的话,请参阅我的文章 “Elasticsearch:用户安全设置”。
最新活动
包含文章发布时段最新活动,前往ES产品介绍页,可查找ES当前活动统一入口
Elasticsearch Service自建迁移特惠政策>>
Elasticsearch Service 新用户特惠狂欢,最低4折首购优惠 >>
Elasticsearch Service 企业首购特惠,助力企业复工复产>>
关注“腾讯云大数据”公众号,技术交流、最新活动、服务专享一站Get~
推荐阅读
-
确保 Elastic 账户的安全性:Elasticsearch 的配置和保护
-
构建三层交换与VTP、STP及Eth-Trunk融合实验:基于双核架构实现高效、稳定、冗余网络" 实验目标: 利用双核心结构,整合三层交换技术、VTP (Virtual Trunking Protocol)、生成树协议 (STP) 和以太网通道 (Eth-Trunk),达成网络高速切换、高可用性、高可靠性和备份连接,适用于双核心拓扑场景。 实验步骤: 1. VLAN划分与IP地址规划: - VLAN10:192.168.10.0/24,默认网关192.168.10.1 - VLAN20:192.168.20.0/24,默认网关192.168.20.1 - VLAN30:192.168.30.0/24,默认网关192.168.30.1 - VLAN40:192.168.40.0/24,默认网关192.168.40.1 2. MSW1三层交换机配置: - 开启三层路由功能:`MSW1(config)#ip routing` - 配置Trunk接口:`MSW1(config-if-range)#switchport trunk encapsulation dot1q; switchport mode trunk` - 设置VTP域和模式:`MSW1(config)#vtp domain test; vtp mode server; vtp password cisco; vtp version 2` - 创建并命名VLAN:`MSW1(config)#vlan 10; MSW1(config-vlan)#name caiwu; ... (为其他VLAN重复操作)` - 分配VLAN IP地址:`MSW1(config-if)#int vlan 10; ip address 192.168.10.1 255.255.255.0; no shutdown; ... (为其他VLAN重复操作)` - 配置生成树优先级:`MSW1(config)#spanning-tree vlan 10,20 root primary; MSW1(config)#spanning-tree vlan 30,40 root secondary` - 链接Eth-Trunk通道:`MSW1(config-if-range)#channel-group 1 mode on; ... (为其他相关接口重复操作)` 3. MSW2三层交换机配置类似MSW1,只需更改VLAN名称和IP地址以及相关端口配置即可。 通过以上步骤,两台三层交换机之间可通过Eth-Trunk实现高速数据交互,并通过VTP统一管理VLAN资源,STP则确保了网络流量的负载均衡,从而构建了一个高效、稳定且具备冗余保护的网络环境。
-
了解公钥和私钥 - 公钥加密算法又称非对称加密算法,使用不同的密码进行加密和解密,其中一个用于公钥,另一个用于私钥: 公钥和私钥成对使用 公钥称为公钥,私钥称为私钥。 用公钥加密的数据只能用相应的私钥解密 用私钥加密的数据只能用相应的公钥解密。 如果数据可以用公钥解密,则必须用相应的私钥加密。 如果数据可以用私钥解密,则必须用相应的公钥加密。 公钥和私钥是相对的,没有规定哪一个必须是公钥或私钥。 第二,实现数据的安全传输 要实现数据的安全传输,当然要对数据进行加密。 如果使用对称加密算法,加密和解密使用同一个密钥,除了自己要保存外,对方也必须知道密钥才能解密数据。如果把密钥传给对方,就有可能泄露密码。所以我们使用非对称算法,过程如下: 首先,接收方生成一对密钥,即私钥和公钥; 然后,接收方将公钥发送给发送方; 发送方用收到的公开密钥加密数据并发送给接收方; 接收方收到数据后使用自己的私钥解密。 由于在非对称算法中,用公钥加密的数据必须用相应的私钥解密,而私钥只有接收方知道,这就确保了数据传输的安全性。 第三,信息的数字签名 除了确保数据的安全传输,公钥系统的另一个用途是对数据进行签名。通常,"数字签名 "用于验证发送者的身份,帮助保护数据的完整性。 例如,发送者 A 想向所有人发送一些信息,他用自己的私人密钥对信息进行了加密,即签名。这样,每个收到数据的人都能用发送者的公开密钥验证数据,并确认数据是由 A 发送的(因为只有 A 用他的私人密钥签署了数据,所以无法验证发送者的身份)。(因为只有用 A 的私钥签名的信息才能用公钥解密)。使用数字签名可以确认两件事: 保证信息是由签名者本人签名发送的,签名者无法否认或难以否认。 保证信息从发出到收到都没有被以任何方式修改过。 之所以能确认这两点,是因为公钥的解密必然要有相应的私钥加密,而私钥只有签名者持有。 四、公钥算法的缺陷 在现实中,公钥机制也有其缺点,那就是效率很低,比常用的私钥算法(如 DES 和 AES)慢上一两个数量级都有可能。因此,它不适合对大量原始信息进行加密。为了兼顾安全性和效率,我们通常会将公钥算法和私钥算法结合起来使用: 首先,发送方使用对称算法加密原始信息。 接收方使用公钥机制生成一对密钥,一个是公钥,一个是私钥。 接收方将公钥发送给发送方。 发送方用公钥加密对称算法的密钥,然后发送给接收方。 接收方用私人密钥解密对称算法的密钥。 发送方将加密后的原始信息发送给接收方。 接收方使用对称算法的密钥解密信息。 摘要
-
开源 vs 闭源:商业利益、知识产权与技术安全的考量" * 商业利益:闭源软件可确保公司的源代码不被公开,从而更有效地控制并从中盈利。 * 知识产权保护:闭源软件有助于保护专有算法和商业秘密,对市场竞争尤其重要。 * 技术安全:由于攻击者无法查看闭源软件的源代码以寻找漏洞,因此它可能具有更高的技术安全性。 展望未来大模型的发展趋势: