本文介绍如何使用阿里云 ROS 的公共模板,一键创建完整的多环境(开发、测试、生产)基础设施,并自动配置 RAM 用户、用户组、角色和权限策略,实现企业级账号权限管理。
方案概述
本方案使用阿里云资源编排服务(ROS)的公共模板,一键创建完整的多环境(开发、测试、生产)基础设施,并自动配置 RAM 用户、用户组、角色和权限策略,实现企业级账号权限管理。适用于需要按环境隔离资源、按职责分配权限的团队协作场景。
业务场景
某项目需要划分开发、测试、生产三套独立环境,不同团队成员(运维、开发、测试)只能访问各自环境的资源。本方案通过 ROS 自动化完成以下治理目标:
资源隔离:三套环境使用独立的 VPC、ECS、RDS、OSS,通过资源组进行逻辑分组。
权限分离:运维、开发、测试人员通过 RAM 用户组获得不同权限。
安全访问:通过 RAM 角色和 STS 令牌实现临时授权,而非长期 AccessKey。
RAM 权限管理核心概念
概念 | 说明 | 本方案中的应用 |
RAM 用户 | 组织中需要访问云资源的人员或应用程序 | 创建 3 个 RAM 用户: |
用户组 | 将相同职责的 RAM 用户分组并统一授权 | 创建 6 个用户组:运维( |
RAM 角色 | 颁发短时有效的 STS 访问令牌,比长期 AccessKey 更安全 | 创建 3 个角色,分别对应三环境的临时访问权限。 |
资源组 | 将不同环境的云资源逻辑分组,实现资源级别的访问控制 | 开发、测试、生产各一个资源组。 |
权限模型架构图
本方案的权限模型架构如下:
阿里云主账号
│
┌───────────┼───────────┐
↓ ↓ ↓
运维用户组 开发用户组 测试用户组
(sa) (dev) (test)
│ │ │
↓ ↓ ↓
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 开发环境 │ │ 测试环境 │ │ 生产环境 │
│ 资源组 │ │ 资源组 │ │ 资源组 │
│ │ │ │ │ │
│ VPC │ │ VPC │ │ VPC │
│ ECS │ │ ECS │ │ ECS │
│ OSS │ │ OSS │ │ OSS │
│ RDS │ │ │ │ │
└──────────┘ └──────────┘ └──────────┘
↑ ↑ ↑
RAM角色 RAM角色 RAM角色
(STS临时授权) (STS临时授权) (STS临时授权)创建的资源清单
序号 | 资源名称 | ROS 资源类型 | 数量 | 用途说明 |
1 | 专有网络 VPC |
| 3 | 开发、测试、生产各一个独立 VPC。 |
2 | 交换机 VSwitch |
| 3 | 三环境各一个交换机。 |
3 | 安全组 |
| 3 | 三环境各一个安全组。 |
4 | ECS 云服务器 |
| 3 | 三环境各一台 ECS。 |
5 | RDS MySQL 数据库 |
| 1 | 数据库实例。 |
6 | OSS 存储空间 |
| 5 | 开发、测试、生产、代码发布、其他共 5 个 Bucket。 |
7 | RAM 用户组 |
| 6 | 运维、开发、测试 + 三环境程序用户组。 |
8 | RAM 用户 |
| 3 | 开发、测试、生产各一个 RAM 用户。 |
9 | RAM 角色 |
| 3 | 三环境各一个 STS 临时授权角色。 |
部署完成后获得的结果
模板成功执行后,将获得以下资源与配置:
三套独立的网络环境(开发、测试、生产各有独立 VPC、交换机、安全组和 ECS)。
一个 RDS MySQL 数据库实例。
五个 OSS 存储空间(开发、测试、生产、代码发布、其他)。
六个 RAM 用户组(运维、开发、测试 + 三环境程序用户组)已配置相应权限策略。
三个 RAM 用户(
sts_dev、sts_prod、sts_test)已分配到对应用户组。三个 RAM 角色(用于 STS 临时授权)。
资源栈输出中提供各环境的 AccessKey ID 和 AccessKey Secret。

前提条件
在使用本模板前,请确认以下条件:
账号权限:阿里云账号需要具有 ECS、VPC、RDS、OSS 和 RAM 产品的创建权限。
资源组准备:需提前为开发、测试、生产三个环境分别创建资源组,并获取对应的资源组 ID。创建资源组的操作可在创建资源组中完成。
部署环节
部署参数
资源组参数(需提前创建)
参数名 | 类型 | 说明 | 示例值 |
开发资源组 ID | String | 开发环境资源所在的资源组 ID。 |
|
生产资源组 ID | String | 生产环境资源所在的资源组 ID。 |
|
测试资源组 ID | String | 测试环境资源所在的资源组 ID。 |
|
VPC 网络参数
参数名 | 类型 | 说明 | 示例值 |
开发环境专有网络网段 | String | 开发环境 VPC 地址段。 |
|
生产环境专有网络网段 | String | 生产环境 VPC 地址段。 |
|
测试环境专有网络网段 | String | 测试环境 VPC 地址段。 |
|
交换机可用区 | String | 三环境共用的交换机可用区 ID。 | 华东 1 可用区 K |
开发交换机网段 | String | 开发环境交换机子网段,必须为对应 VPC 的子网段。 |
|
生产交换机网段 | String | 生产环境交换机子网段,必须为对应 VPC 的子网段。 |
|
测试交换机网段 | String | 测试环境交换机子网段,必须为对应 VPC 的子网段。 |
|
ECS 参数
参数名 | 类型 | 说明 | 示例值 |
实例规格 | String | ECS 实例规格(三环境共用)。 |
|
镜像 | String | ECS 操作系统镜像,默认使用 |
|
系统盘类型 | String | ECS 系统盘类型,支持 |
|
系统盘空间 | Number | 系统盘大小,取值范围为 40~500,单位为 GB。 |
|
实例密码 | String | ECS 登录密码,长度为 8~30 个字符,需同时包含大写字母、小写字母、数字和特殊字符。 | - |
RDS 参数
参数名 | 类型 | 说明 | 示例值 |
类型与版本号 | String | RDS 数据库类型和版本。 |
|
实例规格 | String | RDS 实例规格。 |
|
存储空间 | Number | RDS 存储空间,取值范围为 5~1000,步长为 5 GB。 |
|
OSS 参数
参数名 | 类型 | 说明 | 示例值 |
读写权限 | String | OSS 存储空间文件访问权限,支持 |
|
存储类型 | String | OSS 存储空间文件存储类型,支持 |
|
开发存储空间名称 | String | 开发环境 OSS Bucket 名称。 |
|
生产存储空间名称 | String | 生产环境 OSS Bucket 名称。 |
|
测试存储空间名称 | String | 测试环境 OSS Bucket 名称。 |
|
代码发布空间名称 | String | 代码发布 OSS Bucket 名称。 |
|
其他存储空间名称 | String | 其他用途 OSS Bucket 名称。 |
|
发布存储空间发布目录 | String | 开发环境 OSS 存储目录。 |
|
发布存储空间生产目录 | String | 生产环境 OSS 存储目录。 |
|
RAM 参数
参数名 | 类型 | 说明 | 示例值 |
运维用户组名称 | String | 运维团队的 RAM 用户组名称。 |
|
开发用户组名称 | String | 开发团队的 RAM 用户组名称。 |
|
测试用户组名称 | String | 测试团队的 RAM 用户组名称。 |
|
开发环境程序用户组名称 | String | 开发环境程序账号用户组。 |
|
生产环境程序用户组名称 | String | 生产环境程序账号用户组。 |
|
测试环境程序用户组名称 | String | 测试环境程序账号用户组。 |
|
开发权限用户名 | String | 开发账号 RAM 用户名称。 |
|
生产权限用户名 | String | 生产账号 RAM 用户名称。 |
|
测试权限用户名 | String | 测试账号 RAM 用户名称。 |
|
部署方式
方式一:通过 ROS 公共模板部署(推荐)
方式二:通过 ROS IaC Code 部署
IaC Code 是面向云基础设施的 AI 基础设施即代码助手,可根据自然语言描述生成 ROS 模板并部署,使用方式参见IaC Code快速入门。
# Prompt
帮我搭建一个多环境权限管理体系,包含开发/测试/生产三套环境。
要求:
1. 三套独立的VPC网络(开发172.16.0.0/12、测试192.168.0.0/16、生产10.0.0.0/8)。
2. 三套环境各创建一台ECS实例。
3. 创建一个RDS MySQL 5.7数据库实例。
4. 创建5个OSS Bucket(开发/测试/生产/代码发布/其他)。
5. 创建6个RAM用户组:运维(sa)、开发(dev)、测试(test)、三环境程序用户组(app-dev/app-prod/app-test)。
6. 创建3个RAM用户(sts_dev/sts_prod/sts_test)并分配到对应用户组。
7. 创建3个RAM角色用于STS临时授权。
8. 资源栈输出各环境的AccessKey ID和AccessKey Secret。部署后操作
验证权限配置
在资源栈输出页签获取各环境的 AccessKey。
使用开发环境的 AccessKey 验证权限隔离。
以下命令需要先安装阿里云 CLI。若您尚未安装,请先完成安装。具体操作请参见安装阿里云 CLI。
# 配置开发环境的AccessKey
aliyun configure --profile dev
# 验证:开发用户应能访问开发资源组的ECS
aliyun ecs DescribeInstances --RegionId cn-hangzhou
# 验证:开发用户只能查看到开发资源组的ECS资源常见问题
OSS Bucket 创建失败,提示名称已存在
原因:OSS Bucket 名称全球唯一,示例名称可能已被其他用户占用。
解决方案:
修改 OSS Bucket 名称,添加项目前缀或随机后缀,例如
myproject-dev-2024。Bucket 名称规则:3~63 个字符,仅含小写字母、数字和短划线(-)。
RAM 用户创建后如何使用?
在资源栈输出页签获取各 RAM 用户的 AccessKey。
RAM 用户可通过RAM 用户登录地址使用主账号 ID、用户名和密码登录控制台。
应用程序可使用 AccessKey 通过 SDK 或 CLI 访问对应环境的云资源。