aliyun-cli
Flagged{"isSafe":false,"isSuspicious":true,"riskLevel":"medium","findings":[{"category":"system_harm","severity":"medium","description":"Security risk: AuthorizeSecurityGroup opens SSH (port 22) to the Internet (SourceCidrIp 0.0.0.0/0), potentially allowing unauthorized access.","evidence":"aliyun ecs AuthorizeSecurityGroup ... --SourceCidrIp 0.0.0.0/0"},{"category":"shell_command","severity":"low","description":"Destructive or disruptive operations can be triggered: DeleteInstance --Force and StopInstance --ForceStop with --Force.","evidence":"DeleteInstance --InstanceId i-xxx --Force true; StopInstance --InstanceId i-xxx --ForceStop true"},{"category":"system_harm","severity":"low","description":"Batch stop of multiple running instances via a loop could cause unintended downtime if executed unintentionally.","evidence":"for id in $(aliyun ecs DescribeInstances --Status Running --output cols=InstanceId rows=Instances.Instance[] | tail -n +2); do aliyun ecs StopInstance --InstanceId $id; done"}],"summary":"The skill content is largely normal cloud-CLI guidance. However, it includes a potentially dangerous security misconfiguration (open SSH to the world) and an example pattern for mass-stopping instances via scripting that could lead to downtime or unintended actions. No evidence of data exfiltration, suspicious URLs, obfuscated code, or prompt injection."}
npx machina-cli add skill chaterm/terminal-skills/aliyun-cli --openclaw阿里云 CLI 操作
概述
阿里云 ECS、OSS、RDS 等服务的命令行操作技能。
配置与认证
# 配置凭证
aliyun configure
aliyun configure --profile myprofile
# 交互式配置
# Access Key ID: xxx
# Access Key Secret: xxx
# Default Region Id: cn-hangzhou
# Default Output Format: json
# 查看配置
aliyun configure list
# 使用 profile
aliyun ecs DescribeInstances --profile myprofile
# 环境变量
export ALICLOUD_ACCESS_KEY=xxx
export ALICLOUD_SECRET_KEY=xxx
export ALICLOUD_REGION=cn-hangzhou
ECS 实例
实例管理
# 列出实例
aliyun ecs DescribeInstances
aliyun ecs DescribeInstances --RegionId cn-hangzhou
# 按状态过滤
aliyun ecs DescribeInstances --Status Running
# 查看实例详情
aliyun ecs DescribeInstanceAttribute --InstanceId i-xxx
# 启动实例
aliyun ecs StartInstance --InstanceId i-xxx
# 停止实例
aliyun ecs StopInstance --InstanceId i-xxx
aliyun ecs StopInstance --InstanceId i-xxx --ForceStop true
# 重启实例
aliyun ecs RebootInstance --InstanceId i-xxx
# 删除实例
aliyun ecs DeleteInstance --InstanceId i-xxx --Force true
创建实例
# 创建实例
aliyun ecs CreateInstance \
--RegionId cn-hangzhou \
--ImageId ubuntu_22_04_x64_20G_alibase_20230907.vhd \
--InstanceType ecs.t6-c1m1.large \
--SecurityGroupId sg-xxx \
--VSwitchId vsw-xxx \
--InstanceName my-instance \
--InternetChargeType PayByTraffic \
--InternetMaxBandwidthOut 5
# 分配公网 IP
aliyun ecs AllocatePublicIpAddress --InstanceId i-xxx
安全组
# 列出安全组
aliyun ecs DescribeSecurityGroups --RegionId cn-hangzhou
# 创建安全组
aliyun ecs CreateSecurityGroup \
--RegionId cn-hangzhou \
--VpcId vpc-xxx \
--SecurityGroupName my-sg
# 添加入方向规则
aliyun ecs AuthorizeSecurityGroup \
--SecurityGroupId sg-xxx \
--IpProtocol tcp \
--PortRange 22/22 \
--SourceCidrIp 0.0.0.0/0
# 删除规则
aliyun ecs RevokeSecurityGroup \
--SecurityGroupId sg-xxx \
--IpProtocol tcp \
--PortRange 22/22 \
--SourceCidrIp 0.0.0.0/0
OSS 存储
ossutil 工具
# 配置
ossutil config
# 列出桶
ossutil ls
# 创建桶
ossutil mb oss://my-bucket
# 上传文件
ossutil cp file.txt oss://my-bucket/
ossutil cp -r ./dir oss://my-bucket/dir/
# 下载文件
ossutil cp oss://my-bucket/file.txt ./
ossutil cp -r oss://my-bucket/dir/ ./dir/
# 同步目录
ossutil sync ./local-dir oss://my-bucket/prefix/
ossutil sync oss://my-bucket/prefix/ ./local-dir
# 删除文件
ossutil rm oss://my-bucket/file.txt
ossutil rm -r oss://my-bucket/dir/
# 删除桶
ossutil rb oss://my-bucket
# 生成签名 URL
ossutil sign oss://my-bucket/file.txt --timeout 3600
OSS API
# 列出桶
aliyun oss ListBuckets
# 列出对象
aliyun oss ListObjects --BucketName my-bucket
# 获取桶信息
aliyun oss GetBucketInfo --BucketName my-bucket
RDS 数据库
# 列出实例
aliyun rds DescribeDBInstances --RegionId cn-hangzhou
# 查看实例详情
aliyun rds DescribeDBInstanceAttribute --DBInstanceId rm-xxx
# 创建实例
aliyun rds CreateDBInstance \
--RegionId cn-hangzhou \
--Engine MySQL \
--EngineVersion 8.0 \
--DBInstanceClass rds.mysql.s2.large \
--DBInstanceStorage 100 \
--DBInstanceNetType Intranet \
--PayType Postpaid
# 创建数据库
aliyun rds CreateDatabase \
--DBInstanceId rm-xxx \
--DBName mydb \
--CharacterSetName utf8mb4
# 创建账号
aliyun rds CreateAccount \
--DBInstanceId rm-xxx \
--AccountName admin \
--AccountPassword 'MyPassword123!' \
--AccountType Super
# 重启实例
aliyun rds RestartDBInstance --DBInstanceId rm-xxx
ACK 容器服务
# 列出集群
aliyun cs DescribeClusters
# 获取集群详情
aliyun cs DescribeClusterDetail --ClusterId c-xxx
# 获取 kubeconfig
aliyun cs DescribeClusterUserKubeconfig --ClusterId c-xxx
# 扩容节点
aliyun cs ScaleCluster \
--ClusterId c-xxx \
--size 5
SLB 负载均衡
# 列出实例
aliyun slb DescribeLoadBalancers --RegionId cn-hangzhou
# 创建实例
aliyun slb CreateLoadBalancer \
--RegionId cn-hangzhou \
--LoadBalancerName my-slb \
--AddressType internet \
--LoadBalancerSpec slb.s1.small
# 添加后端服务器
aliyun slb AddBackendServers \
--LoadBalancerId lb-xxx \
--BackendServers '[{"ServerId":"i-xxx","Weight":"100"}]'
# 创建监听
aliyun slb CreateLoadBalancerTCPListener \
--LoadBalancerId lb-xxx \
--ListenerPort 80 \
--BackendServerPort 80 \
--Bandwidth -1
常见场景
场景 1:批量操作实例
# 获取所有运行中实例
aliyun ecs DescribeInstances --Status Running \
--output cols=InstanceId rows=Instances.Instance[]
# 批量停止
for id in $(aliyun ecs DescribeInstances --Status Running \
--output cols=InstanceId rows=Instances.Instance[] | tail -n +2); do
aliyun ecs StopInstance --InstanceId $id
done
场景 2:监控数据查询
# 查询 CPU 使用率
aliyun cms DescribeMetricLast \
--Namespace acs_ecs_dashboard \
--MetricName CPUUtilization \
--Dimensions '[{"instanceId":"i-xxx"}]'
场景 3:日志查询
# 查询 SLS 日志
aliyun sls GetLogs \
--project my-project \
--logstore my-logstore \
--from $(date -d '1 hour ago' +%s) \
--to $(date +%s) \
--query "* | select *"
故障排查
| 问题 | 排查方法 |
|---|---|
| 认证失败 | 检查 AccessKey 配置 |
| 权限不足 | 检查 RAM 策略 |
| 区域错误 | 检查 RegionId |
| 配额超限 | 查看配额管理 |
# 调试模式
aliyun ecs DescribeInstances --debug
# 查看帮助
aliyun help
aliyun ecs DescribeInstances help
Source
git clone https://github.com/chaterm/terminal-skills/blob/main/cloud-cli/aliyun-cli/SKILL.mdView on GitHub Overview
掌握通过阿里云 CLI 对 ECS、OSS、RDS 等服务进行命令行操作的能力。通过配置凭证、使用不同 profile 以及环境变量,能快速自动化云资源的创建、查询、修改与删除。
How This Skill Works
使用 aliyun configure 设置凭证和默认区域,并可通过 --profile 指定工作环境。随后通过 aliyun ecs/oss/rds 等子命令执行操作,结合 --RegionId、--Output 等选项实现区域限定与脚本化输出,环境变量 ALICLOUD_ACCESS_KEY、ALICLOUD_SECRET_KEY、ALICLOUD_REGION 也支持自动化场景。
When to Use It
- 快速查看指定区域的 ECS 实例状态与详情
- 创建、启动、停止或删除 ECS 实例以响应变更
- 管理 OSS 桶、对象与签名 URL 的场景
- 查询或配置 RDS 实例及数据库相关操作
- 批量或日常云资源的脚本化运维与自动化
Quick Start
- Step 1: 安装并配置 aliyun-cli,执行 'aliyun configure' 或 'aliyun configure --profile myprofile'。
- Step 2: 使用环境变量或 profile 进行认证,必要时设置 ALICLOUD_ACCESS_KEY、ALICLOUD_SECRET_KEY、ALICLOUD_REGION。
- Step 3: 运行一个示例命令,如 'aliyun ecs DescribeInstances --RegionId cn-hangzhou' 来验证配置
Best Practices
- 使用配置的 profile 而非直接在命令中暴露凭证
- 优先通过 aliyun configure 或环境变量 ALICLOUD_ACCESS_KEY/ALICLOUD_SECRET_KEY 设置认证信息
- 在重要变更前明确指定 RegionId,并在可能时使用 --Force/--ForceStop 进行确认
- 将输出格式设为 json 以便脚本化处理(默认 Output Format: json)
- 对资源操作设置日志与审计,避免无意删除或影响生产资源
Example Use Cases
- aliyun configure
- aliyun ecs DescribeInstances --RegionId cn-hangzhou
- aliyun ecs CreateInstance --RegionId cn-hangzhou --ImageId ubuntu_22_04_x64_20G_alibase_20230907.vhd --InstanceType ecs.t6-c1m1.large --SecurityGroupId sg-xxx --VSwitchId vsw-xxx --InstanceName my-instance --InternetChargeType PayByTraffic --InternetMaxBandwidthOut 5
- ossutil cp file.txt oss://my-bucket/
- aliyun rds DescribeDBInstances --RegionId cn-hangzhou
Frequently Asked Questions
Related Skills
cloud-backup
chaterm/terminal-skills
云备份方案
-21risk-automation
ranbot-ai/awesome-skills
Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.
-2chat-automation
ranbot-ai/awesome-skills
Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.
ably-automation
ranbot-ai/awesome-skills
Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.
homebutler
openclaw/skills
Manage and monitor homelab servers and Docker using a single binary CLI or AI tools. No dependencies, cross-platform, supports SSH, Wake-on-LAN, Docker management, port scanning, network discovery, and resource alerts.
aws-cli
chaterm/terminal-skills
AWS CLI 操作