前言
为了过等保,不得不将部分服务器的登陆方式从先前自建的跳板机换成了阿里云的堡垒机,登陆堡垒机需要使用 RAM 账户,同时要求 RAM 账户开启两步验证(即动态验证码)。 这不仅给登陆服务器造成了极大的不便,导入几百台服务器资产也是个头疼的事情,导入服务器、导入服务器用户与密钥、导入主机组、主机组授权用户组,几轮下来,心态有点容易受不了。(用过阿里云的同学应该都体会过一个控制台卡得浏览器崩溃的情况),好在上周终于放出了 V3.2.17 版本,从这个版本开始,我们终于能够通过接口去完成一些事情了,姑且用接口与 salt 来减轻一点堡垒机迁移的工作量吧。
当然,这个版本当前(2021-03-19)还无法直接升级,需要提交工单或是在高级企业服务群中@技术支持帮忙手动升级。 同时阿里云文档中心的堡垒机接口文档暂时还没有更新,待放出的接口文档根据其法律声明,暂时也不能在此放出(可通过工单向阿里云申请索要.)ps: 看看后面的代码引用的包不也就都有了?(逃。
需求实现
时间仓促,能用就行的原则,实现了通过主机名与 IP,导入主机至堡垒机,并导入对应的用户与用户密钥,加入到对应的主机组中。(这个主机组应按需到云盾堡垒机中配置权限与用户)。
主机端
服务器需要有供堡垒机登陆的用户,可以利用 SaltStack 或 Ansible 等工具向服务器创建堡垒机登陆所用的系统用户及密钥。 这里顺带贴一下我的 salt
state
文件:
创建服务器系统用户 create_hac_users.sls
sudoer 权限配置,rectify_sudoers.sls
:
总配置 add.sls
:
在 salt master 的 /etc/salt/master 中 file_root 配置的路径下:
sudoers
内容配置如下:
other_user
内容配置如下:
这里之后,我们只需要通过 salt <hostname> state.sls add
即可完成 aliyun 用户的添加。
堡垒机端
这里直接丢一下脚本吧:add_to_hac.py
:
依赖为:
执行:
即可完成添加堡垒机操作。