云运维高阶二:CLI 调用 API (白名单追随)

云运维高阶二:CLI 调用 API (白名单追随)

一句话概括:基于云计算----一切皆 API(Everything is API)进行白名单追随示例演示,提醒:网络环境安全情况请自行评估。

1、白名单追随--场景描述

  • 1.基于安全产品,云防火墙,堡垒机没有的情况下 :
    最小粒度的安全组管控,以防止网络层的攻击,比如防止端口扫描,防止SSH攻击等个人开发者或是小微企业很少能上云防火墙&堡垒机 这样的安全产品。只开放22、3306、1521、3389等高危端口给可信IP,做最小粒度的安全组管理。
  • 2.经常出差,网络的出网IP经常变更 :
    本地的公网IP经常变更,比如经常出差,或者家庭网络公网IP经常变,需要实时变更服务器-高危端口的-白名单IP。

你在云厂商的网页上点"登录",再查询当前的本机公网IP,再把当前的公网IP添加到IP白名单。整个流程很长,出差的网络环境又不稳定,或者家庭网络的IP又经常变,打开云厂商的控制台可能会卡。

2、云计算一切皆 API示例--CLI 调用 API (白名单追随)

  1. 概念理解------知道可行

    先理解云厂商的概念"一切皆 API(Everything is API)",知道云厂商所有创建、删除、修改、查询操作都是通过调用API来完成的。

    那么我们只要满足云厂商的鉴权,就可以不用每次都登录云厂商的控制台,直接调用API完成我们期望的操作。

  2. 工具利用------CLI调用API

    传统云厂商,如阿里云、华为云、腾讯云等,都提供CLI工具,可以快捷调用云厂商提供的API。

  3. 目标与函数匹配------选择API

    根据我们需要达成的目的,判断对应操作API所属的云产品,再选择对应方法与函数。

    比如当前目标白名单追随 ------自动查询当前网络出网IP,添加到安全组 ,应该选用安全组创建/修改API

3、API-Explorer调试接口

✅ 3.1. API-Explorer调试IP是否可以成功添加到IP白名单

以华为云为例,调用API----CreateAddressGroup/v3(其他云厂商对应使用即可)。

例子1:添加特定IP到白名单。(有一定风险,需自行评估网络环境)

✅ 3.2. 云厂商控制台验证结果

基本上一步调用成功,就没什么问题,控制台查询,验证添加成功。

4、用获取到的CLI命令,编写完整程序(附完整windows-bat命令)

✅ 4.1. 先编写获取公网IP命令

获取实时出口公网IP,(windows环境下的bat命令,将下面的文本复制保存为.bat可执行文件即可)。

bash 复制代码
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo 正在获取本机公网 IP...

for %%S in (
    "curl -s https://api.ipify.org"
    "curl -s https://ipv4.icanhazip.com"
    "curl -s https://ifconfig.me/ip"
) do (
    set "PUBLIC_IP="
    for /f "delims=" %%i in ('%%~S') do set "PUBLIC_IP=%%i"
    if defined PUBLIC_IP (
        echo 获取成功 - 公网 IP: !PUBLIC_IP!
        goto :done
    )
)

echo 获取失败,请检查网络连接。

:done
endlocal
pause

✅ 4.2. 再结合上面获取到的CLI命令

结合CLI命令(windows环境下的bat命令,将下面的文本复制保存为.bat可执行文件即可)。

(注意:需要安装好CLI工具,各大云厂商搜索"命令行工具"-安装即可)

bash 复制代码
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
REM CLI命令的本地安装位置
set "HCLOUD_DIR=D:\devtools\huawei"
if exist "%HCLOUD_DIR%\hcloud.exe" (
    set "PATH=%HCLOUD_DIR%;%PATH%"
) else (
    echo [错误] 未找到 %HCLOUD_DIR%\hcloud.exe,请检查 hcloud 安装路径
    pause
    exit /b 1
)

echo 正在获取本机公网 IP...

for %%S in (
    "curl -s https://api.ipify.org"
    "curl -s https://ipv4.icanhazip.com"
    "curl -s https://ifconfig.me/ip"
) do (
    set "PUBLIC_IP="
    for /f "delims=" %%i in ('%%~S') do set "PUBLIC_IP=%%i"
    if defined PUBLIC_IP (
        echo 获取成功 - 公网 IP: !PUBLIC_IP!
        goto :done
    )
)

echo 获取失败,请检查网络连接。

:done
REM 添加IP地址组,间接添加IP白名单,cli-region为区域-上海一, address_group_id为ip地址组的ID
if defined PUBLIC_IP (
    echo 正在调用 hcloud 更新 IP 地址组...
    hcloud VPC UpdateAddressGroup/v3 "--cli-region=cn-east-3" "--address_group_id=xxxxx安全组IDxxxxx" "--address_group.ip_extra_set.1.ip=!PUBLIC_IP!/32" "--address_group.ip_extra_set.1.remarks=本地机器的公网IP"
)

endlocal
pause

5、注意事项(附参考链接)

  1. 命令行工具安装--不同厂商CLI的名字不一样

    HW-cloud地址:https://support.huaweicloud.com/qs-hcli/hcli_02_002.html

    AL-cloud地址:https://help.aliyun.com/zh/cli/install-update-alibaba-cloud-cli

  2. API-Explorer调试选好产品

    HW-cloud地址:https://console.huaweicloud.com/apiexplorer/#/openapi/VPC/cli?version=v3\&api=CreateAddressGroup

    AL-cloud地址:https://api.aliyun.com/api/Ecs/2014-05-26/ModifySecurityGroupRule?RegionId=cn-qingdao

  3. windows命令保存为bat, linux命令保存为shell

    windows环境保存为.bat文件

    linux环境保存为.sh文件,

    上面演示的命令环境为windows,若你的环境为linux请对应按shell规则修改。

相关推荐
知已难寻6 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
flyingonpine11 小时前
PowerShell脚本数字签名实战:自签名证书、代码签名与信任链验证
windows·信任链
阿里云云原生11 小时前
生产更可信,订阅更耐用丨Higress 社区进展报告
云原生
阿里云云原生13 小时前
如何用 STAROps Elasticsearch 智能助手看穿“搜索变慢”
云原生
雾时之林16 小时前
国内Docker 镜像加速器配置
云原生·eureka
goehou17 小时前
让 AI 替我操作这台电脑,先把手能伸多远定下来
windows·自动化·权限管理·ai agent
公子小六18 小时前
基于.NET的Windows窗体编程之WinForms数据持久化(1)
windows·microsoft·c#·.net·winforms
我是koten1 天前
【运维杂谈】K8s遇到Terminating的名称空间删除不了怎么办?(解决方案亲测有效)
linux·运维·服务器·云原生·kubernetes·k8s·名称空间
2601_967987371 天前
安装 Redis 或 Redis Stack
linux·windows·redis·macos·安装
阿里云云原生2 天前
稳定复现超 70% 的缺陷,报警到自动修复的 Agent 流水线实践
云原生