实例 RAM 角色是什么
实例 RAM 角色(腾讯云叫 CAM 角色、华为云叫委托)是给云服务器绑定一个身份,实例内的程序通过元数据端点获取 STS 临时凭证来调用云服务 API,不必在机器上存放永久 AccessKey。凭证由云平台自动轮换、有明确有效期,权限调整后立即生效,也避免了密钥落盘后被复制扩散的风险。云上程序访问云服务,能绑角色就不要发 AK。
基本信息
| 基本原理 | 角色绑定实例 → 元数据端点下发临时凭证 → SDK / CLI 自动读取 |
|---|---|
| 主要优势 | 无永久密钥落盘;权限调整即时生效;凭证自动轮换 |
| 使用步骤 | 创建角色并授权(如对象存储读写策略)→ 绑定实例 → 程序直接调用云服务 |
| 兼容性 | 官方 SDK 与 CLI 会按凭证链自动读取,通常无需改代码 |
| 权限要求 | 需要创建角色、配置策略与绑定实例的 IAM 权限 |
典型使用场景
- 应用读写对象存储:日志归档、附件上传、数据库备份文件落地
- 实例内定时脚本把指标或日志推送到云监控、日志服务
- 备份作业跨区域复制数据,权限由角色统一控制而非散落密钥
- 数据同步服务消费消息队列,临时凭证过期自动续期不影响任务
- 迁移历史项目时替换掉代码与配置里的永久 AK,收敛密钥管理面
获取临时凭证(阿里云实例内)
获取临时凭证(阿里云实例内)
curl http://100.100.100.200/latest/meta-data/ram/security-credentials/my-role # 取该角色的临时凭证
# 返回包含 AccessKeyId、AccessKeySecret、SecurityToken 与到期时间
ossutil ls oss://my-bucket/ # 未显式配置 AK 时,自动使用实例角色的临时凭证
# 若报权限错误,先确认角色策略范围,再确认实例是否成功绑定该角色凭证方式对比
| 方式 | 密钥形态 | 风险与适用 |
|---|---|---|
| 实例角色(推荐) | 自动轮换的临时凭证 | 无永久密钥落盘,适合云上程序与自动化任务 |
| 子账号 AK | 永久密钥,权限可限定 | 需定期轮换与保管,容易在配置和镜像中散落 |
| 主账号 AK | 永久密钥,权限极大 | 仅限特殊场景,一旦泄露后果最严重 |
| 写在环境变量或配置文件 | 永久密钥 | 易被日志、镜像层与代码仓库带出 |
云上程序访问云服务的标准姿势:能绑角色就不要发 AK;CI/CD 同理用 OIDC 或角色换取临时凭证,避免把密钥存在流水线变量里。
角色权限按最小必要授予:给实例角色挂管理员策略,等于把 AK 泄露后的破坏力原样搬进了这台实例,加固等于白做。