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

相关推荐
您^_^1 小时前
DeepSeek-Harness v0.1.5-alpha.1更新后旧会话打不开?5 步抢救 8MB 会话照抄
人工智能·windows·个人开发·deepseek v4 pro·deepseekharness
Ningcode_cloud2 小时前
Kubernetes 弹性伸缩实验手册:从集群搭建到 HPA / VPA 自动扩缩容
云原生·k8s·prometheus
正仪2 小时前
systemd 是什么?
linux·运维·windows
小溪学编程2 小时前
Java ListIterator 接口详解:双向遍历与列表修改的利器
java·开发语言·windows
2601_962364973 小时前
没有 TPM2.0,还能用 Windows Hello 摄像头吗?
windows·安全·电脑
玉&心4 小时前
安装Service Mesh(Istio)在dockers desktop的问题
云原生·istio·service_mesh
江湖人称菠萝包5 小时前
【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter9-对话框
windows·笔记
AgentMaster5 小时前
数据治理方案对比:开源自建 vs 商业平台 vs 云原生,三条技术路线的取舍与实践
云原生
阿里云云原生5 小时前
云原生可观测性落地:乐檬通过自然语言观测与自动巡检提升运维效能的最佳实践
运维·云原生·starops·云监控2.0