云运维高阶二: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规则修改。

相关推荐
2601_9623649712 分钟前
从录入到解锁,完整梳理 Windows Hello 识别链路
windows·安全·电脑
hacker_LeeFei42 分钟前
Windows 下配置 Redis 8.10.2 开机自启:一次踩坑全记录
数据库·windows·redis
分布式存储与RustFS1 小时前
图床搬到自己的对象存储:PicGo 加 S3 插件的完整配置
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
赵文宇(温玉)2 小时前
怎么下载 Windows 的 ISO 系统镜像
windows
分布式存储与RustFS4 小时前
在 Kubernetes 里跑对象存储的三个方案:Helm、Operator、以及什么时候别用 K8s
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
2601_962177304 小时前
Windows 安装 Codex CLI 入门级教程
人工智能·windows·node.js·ai编程
旋生万物6 小时前
素数螺旋映射 $z_n=n^{1+i}$ 的角分布统计检验与零模型对比
大数据·前端·人工智能·算法·云原生·螺旋生成论·螺旋相位
shada7 小时前
CMake指定 MSVC 工具集与 Windows SDK
c++·windows
the3clipse7 小时前
Windows 10 与 Windows 11 视频编解码区别:AV1、HEVC、HDR 与 D3D12 编码支持对比
windows·h.265·hevc·hdr·av1·视频解码·d3d12
郭庆汝7 小时前
(三)MCP+A2A 从0到1构建类Manus多Agent全栈应用
windows