RAM 是什么
RAM(Resource Access Management)是阿里云的访问控制服务,用四类对象描述账号内的授权关系:用户代表身份,用户组用于批量收拢身份,角色用于被扮演的权限集合,权限策略则定义允许或拒绝哪些操作。子用户的每一次 API 调用都要经过 RAM 的策略判定。
基本信息
| 核心对象 | RAM 用户、用户组、角色、权限策略 |
|---|---|
| 策略类型 | 系统策略(官方预置)与自定义策略 |
| 授权范围 | 可限定到具体资源、地域与操作,支持带条件的授权 |
| 默认行为 | 未被任何策略允许的操作默认拒绝 |
| 登录方式 | 控制台登录(可要求 MFA)或仅编程访问 |
| 审计联动 | 操作审计记录每个身份的调用,可追溯来源 IP 与时间 |
四类对象的职责
| 对象 | 作用 | 常见用法 |
|---|---|---|
| RAM 用户 | 代表人或程序的身份 | 每个运维与系统一个账号 |
| 用户组 | 身份集合,统一绑策略 | 只读组、运维组、财务组 |
| 角色 | 可被扮演的权限集合 | 跨账号访问、云服务免密调用 |
| 权限策略 | 定义动作与资源范围 | 系统策略起步,再按需自定义收窄 |
典型使用场景
- 人员权限治理:按岗位建用户组,人员离职只做移出组的动作
- 程序最小权限:为 CI 单独建用户并只授予发布相关动作
- 跨账号协作:通过角色把权限临时授予另一个账号,不共享长期密钥
- 应急临时提权:为处理故障临时加策略,事后立即移除并留痕
常用查询与授权命令
常用查询与授权命令
aliyun ram ListUsers # 列出所有 RAM 用户
aliyun ram ListGroups # 列出用户组
aliyun ram ListPolicies --PolicyType Custom # 只看自定义策略
aliyun ram ListPoliciesForUser --UserName dev-zhang # 查看某用户实际绑定的策略
aliyun ram ListEntitiesForPolicy --PolicyName ReadOnlyAccess --PolicyType System # 反查某策略被谁使用排查权限问题的顺序:先确认调用方身份(是哪个用户或角色),再看该身份直接绑定与通过用户组继承的全部策略,最后检查是否存在显式拒绝。策略变更后可能需要重新登录或等待缓存刷新才生效。
删除 RAM 用户前先解除其绑定的策略、移出用户组并禁用或删除其密钥,否则残留凭证仍可调用 API。用户删除不可恢复,重建后会得到新的身份标识,历史审计记录无法与新身份关联。