甲骨文抢机专用api密钥,避免抢鸡脚本盗号
甲骨文抢机专用api密钥,避免抢鸡脚本盗号

背景与核心痛点:在甲骨文云(OCI)热门区域抢占 Always Free 免费 ARM 计算实例时,许多用户会运行第三方自动化抢机脚本。如果直接提供租户根管理员权限的 API 密钥,一旦脚本包含后门恶意代码,攻击者可直接修改控制台密码、替换账户邮箱乃至彻底盗走账号。通过 OCI Cloud Shell 运行权限隔离脚本,仅授予计算实例、卷及虚拟网络权限,彻底隔离用户管理,从根本上杜绝盗号风险。
目录
API 密钥盗号风险与最小权限原则
许多开源抢机脚本要求提供 user_ocid、tenancy_ocid 及私钥 oci_api_key.pem。
- 高危风险:若给出的 API 属于默认管理员用户(
Administrators组),该凭据拥有修改用户邮箱、重置密码、删除多因素认证(MFA)的最高控制权。 - 最小权限防御:抢机脚本只需具备创建实例、查询可用性域与关联网络的权限,绝无访问身份与访问管理(IAM)用户模块的正当理由。通过策略隔离,即便 API 泄露,黑客也无法盗走账号或转移资产。
前置准备与 OCI Cloud Shell
- 打开并登录 Oracle Cloud 控制台。
- 点击右上角命令行图标打开 Cloud Shell(网页内置已通过身份认证的 Linux 终端环境)。
- 确认当前终端具备运行 OCI CLI 的权限(原生已预装
oci命令行与jq工具)。
自动化权限隔离脚本部署实操
1. 创建脚本文件
在 Cloud Shell 中新建脚本文件:
vi role_apiuser_policy.sh
2. 写入自动化隔离脚本
#!/bin/bash
# 添加隔离子用户:仅允许管理实例、存储和网络,杜绝用户权限
export compartment_id=""
export group_name="Core-Admins"
export group_des="Core-Admins"
export policy_name="Core-Admins"
export policy_des="Core-Admins"
export policy_file="file://statements.json"
export user_name="Core-Admin"
export user_des="Core-Admin"
export user_email="safe@yourdomain.com"
export type="new"
export ignore_error="0"
# 编写严格的最小化 IAM 策略语句
cat << "JSON" > statements.json
[
"Allow group 'Default'/'Core-Admins' to manage instance-family in tenancy",
"Allow group 'Default'/'Core-Admins' to manage volume-family in tenancy",
"Allow group 'Default'/'Core-Admins' to manage virtual-network-family in tenancy"
]
JSON
# 自动获取当前租户 OCID
compartment_id=$(oci iam availability-domain list --query 'data[0]."compartment-id"' --raw-output)
echo "当前租户 OCID: $compartment_id"
# 自动创建用户组
group_result=$(oci iam group create --compartment-id "$compartment_id" --name "$group_name" --description "$group_des")
group_id=$(echo "$group_result" | jq -r '.data.id')
# 自动创建限定策略
oci iam policy create --compartment-id "$compartment_id" --description "$policy_des" --name "$policy_name" --statements "$policy_file"
# 自动创建隔离用户并加入组
user_result=$(oci iam user create --name "$user_name" --description "$user_des" --compartment-id "$compartment_id" --email "$user_email")
user_id=$(echo "$user_result" | jq -r '.data.id')
oci iam group add-user --group-id "$group_id" --user-id "$user_id"
echo "=== 安全隔离用户 Core-Admin 创建成功并已绑定权限组 ==="
3. 执行脚本
bash role_apiuser_policy.sh
脚本执行逻辑与 IAM 策略解析
该脚本的核心安全边界在于:
- 仅授予三项基础能力:
manage instance-family:创建、启动、终止计算实例。manage volume-family:附加与挂载引导卷。manage virtual-network-family:分配公网 IP 与绑定 VCN。
- 严防特权扩散:未授予
manage all-resources,未授予manage users,攻击者无法使用该凭证获取或更改控制台任何其他用户的凭据。
生成专用 API 密钥与安全接入
- 在控制台左上角导航进入 身份与安全性 (Identity & Security) -> 域 (Domains) -> Default 域。
- 点击 用户 (Users),找到刚刚由脚本创建的
Core-Admin用户。 - 进入该用户详情,左侧点击 API 密钥 (API Keys) -> 点击 添加 API 密钥。
- 下载系统自动生成的私钥文件
Core-Admin.pem,并复制下方提供的配置文件内容(包含专属的userOCID 和fingerprint)。 - 将此隔离后的专用配置与私钥填入第三方抢机脚本。
安全审计与权限吊销建议
- 随时吊销:当成功开出 ARM 免费实例后,可直接在
Core-Admin用户详情中一键删除该 API 密钥,脚本立即失效。 - 日志审计:在 OCI 日志记录 (Logging) 中可实时查看该专用 API 触发的审计事件(Audit Events),清晰追踪所有自动化操作记录。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 zszweb
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果