当公有云遇到cloudinit,将变的安全可信

CloudInit作为云环境中虚拟机初始化程序,在虚拟机启动时自动运行并进行配置。它通过HTTP服务获取元数据,解决了传统虚拟机初始化过程中的安全问题,为用户提供了一种标准化、灵活的配置方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:http://www.51gocloud.com/?p=1945


1、什么是cloudinit

cloudinit是云环境中虚拟机初始化程序,在虚拟机启动过程中,系统会自动运行cloudinit程序,cloudinit会从数据源读取相关数据并对虚拟机进行相关配置。

常见数据源:
(1)metadata service:通过http服务提供数据源,cloudinit通过169.254.169.254地址访问metadata service获取元数据,AWS和openstack都支持此方式。
相关连接:http://www.51gocloud.com/?p=1595

(2)ConfigDrive:在没有网络环境下,可将元数据放在镜像中,启动虚拟机以磁盘方式加载镜像文件,最终cloudinit通过读取本地磁盘文件获取元数据

相关连接:http://www.51gocloud.com/?p=1771

常见配置操作:

(1)meta-data:主机名称HostName、Linux SSH密钥、Windows密码(可通过cloudbase-init项目支持密码初始化配置)、 网络配置、文件系统大小调整等

(2)user-data:命令、脚本、文件、用户自定义数据

2、为什么需要cloudinit

传统私有云厂商(如VMware),虚拟机初始化配置都是在虚拟机启动过程中,将磁盘挂在到本地,然后将相关信息(主机名、密码等)注入到系统中。这种方式在私有云下没有问题,因为私有云默认都是可信的。但在公有云场景,平台修改用户磁盘文件,对于用户来说,黑盒操作,存在信息安全问题,是不可接受的。cloudinit可以有效解决这一问题,原因如下:

(1)安全、零注入:虚拟机启动过程中,cloudinit通过http请求来访问metadata service获取信息,并进行初始化配置,对用户都是可见、可控;公有云平台无需对用户磁盘文件进行修改,只需要提供metadata service,供cloudinit访问即可。

(2)业界标准:AWS、Azure等公有云大厂商都是通过cloudinit方式实现虚拟机初始化配置,当前最新主流操作系统都支持cloudinit;且新兴系统比如CoreOS都是通过cloudinit在公有云上来完成集群的构建等。

(3)灵活:支持多种配置,比如密钥、命令、用户自定义脚本、数据等

3、公有云cloudinit支持现状

cloudinit_support

4、华为公有云cloudinit体验

(1)登录华为http://www.hwclouds.com/ 进入控制台,在弹性云服务器界面上,点击“购买弹性云服务器”
console

(2)创建虚拟机时指定主机名称、key-pair、以及用户自定义数据(这些信息最终会保存在metadata service上)
* 主机名称
hostname
* 密钥
keypaire
* 用户自定义脚本(echo字符串测试)
user-data

(3)虚拟机启动成功后,可以看到初始化配置都是通过cloudinit组件完成
* 通过证书登录:
login

cloudinit运行日志:
cloudinit-debug

通过169.254.169.254可以访问metadata service,查看meta-data、user-data
meta_data

user_data_res

查看自定义脚本运行结果:
echo-test-cloudinit
当user-data是以”#!/bin/bash”开头,cloud-init会认为其是一个脚本,在启动过程中会自动运行。最终结果如下,和期望一致。

5、总结

cloudinit是业界标准虚拟机初始化配置组件,可以有效解决挂盘注入带来的安全风险,从而增强公有云可信度;且配置灵活,给使用公有云用户带来了极大的便利。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值