背景信息
授权自助管理权限时,您需要为下表所示的阿里云账号分别创建RAM角色并授权:
阿里云账号 | RAM角色 | 权限策略 | 权限策略说明 |
管理员账号 | AliyunROSStackGroupAdministrationRole | 自定义策略AssumeRole-AliyunROSStackGroupExecutionRole | 允许RAM角色(AliyunROSStackGroupAdministrationRole)扮演角色身份(AliyunROSStackGroupExecutionRole)。 |
目标账号 | AliyunROSStackGroupExecutionRole | 系统策略AdministratorAccess | 允许RAM角色(AliyunROSStackGroupExecutionRole)管理目标账号的所有阿里云资源。 |
说明 管理员账号和目标账号可以为同一阿里云账号。关于管理员账号和目标账号的更多信息,请参见概览。
授权成功后,当您使用管理员账号登录资源编排控制台创建资源栈组后,即可在该资源栈组中为目标账号创建资源栈。
方式一:通过RAM控制台设置权限
设置目标账号的权限。
使用目标账号登录RAM控制台。
为目标账号创建可信实体为管理员账号的RAM角色(AliyunROSStackGroupExecutionRole)。
在左侧导航栏,选择。
在角色页面,单击创建角色。
在创建角色页面,选择可信实体类型为阿里云账号,然后单击下一步。
设置角色信息。
输入角色名称为AliyunROSStackGroupExecutionRole。
输入备注。
选择信任的云账号为其他云账号,最后输入管理员账号的ID。
单击完成。
单击关闭。
为RAM角色(AliyunROSStackGroupExecutionRole)授予AdministratorAccess权限。
在角色页面,单击RAM角色(AliyunROSStackGroupExecutionRole)操作列的新增授权。
在新增授权面板,授权主体会自动填入,选择授权范围为账号级别。
选择权限为系统策略,然后选择AdministratorAccess。
单击确定。
单击完成。
设置管理员账号的权限。
使用管理员账号登录RAM控制台。
为管理员账号创建可信实体为资源编排服务的RAM角色(AliyunROSStackGroupAdministrationRole)。
在左侧导航栏,选择。
在角色页面,单击创建角色。
在创建角色页面,选择可信实体类型为阿里云服务,然后单击下一步。
选择角色类型为普通服务角色。
设置角色信息。
输入角色名称为AliyunROSStackGroupAdministrationRole。
输入备注。
选择受信服务为资源编排服务。
单击完成。
单击关闭。
创建自定义权限策略(AssumeRole-AliyunROSStackGroupExecutionRole)。
在左侧导航栏,选择。
在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑页签,输入以下策略内容,然后单击继续编辑基本信息。输入权限策略名称为AssumeRole-AliyunROSStackGroupExecutionRole。
该策略允许RAM角色(AliyunROSStackGroupAdministrationRole)扮演角色身份(AliyunROSStackGroupExecutionRole)。
{
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "acs:ram::*:role/AliyunROSStackGroupExecutionRole"
}
],
"Version": "1"
}
单击确定。
为RAM角色(AliyunROSStackGroupAdministrationRole)授予AssumeRole-AliyunROSStackGroupExecutionRole权限。
在左侧导航栏,选择。
在角色页面,单击RAM角色(AliyunROSStackGroupAdministrationRole)操作列的新增授权。
在新增授权面板,授权主体会自动填入,选择授权范围为账号级别。
选择权限为自定义策略,然后选择AssumeRole-AliyunROSStackGroupExecutionRole。
单击确定。
方式二:通过资源编排控制台设置权限
通过资源编排模板为管理员账号和目标账号创建RAM角色,并赋予资源栈组和资源栈的操作权限。
管理员账号登录资源编排控制台 ,使用模板AliyunROSStackGroupAdministrationRole创建RAM角色并授权。
示例模板如下。
ROSTemplateFormatVersion: '2015-09-01'
Description: Configure the AliyunROSStackGroupAdministrationRole to enable use of Alibaba Cloud ROS StackGroup.
Parameters:
AdministrationRoleName:
Type: String
Default: AliyunROSStackGroupAdministrationRole
Description:
en: Role name of administration account
zh-cn: 创建授权给管理员账号的角色的名称
ExecutionRoleName:
Type: String
Default: AliyunROSStackGroupExecutionRole
Description:
en: Execution role name of target account
zh-cn: 目标账号执行角色名称
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- AdministrationRoleName
- ExecutionRoleName
Label:
default:
en: RAM
zh-cn: 账号权限
TemplateTags:
- acs:example:安全:创建StackGroup管理员账号权限
Resources:
AliyunROSStackGroupAdministrationRole:
Type: ALIYUN::RAM::Role
Properties:
RoleName:
Ref: AdministrationRoleName
AssumeRolePolicyDocument:
Version: 1
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service:
- ros.aliyuncs.com
Policies:
- PolicyName:
Fn::Sub:
- AssumeRole-${ExecutionRoleName}
- ExecutionRoleName:
Ref: ExecutionRoleName
PolicyDocument:
Statement:
- Effect: Allow
Action:
- sts:AssumeRole
Resource:
- Fn::Sub: acs:ram::*:role/${ExecutionRoleName}
Version: '1'
Outputs:
AdministrationRoleName:
Value:
Fn::GetAtt:
- AliyunROSStackGroupAdministrationRole
- RoleName
目标账号登录资源编排控制台,使用模板AliyunROSStackGroupExecutionRole创建RAM角色并授权。
示例模板如下。
ROSTemplateFormatVersion: '2015-09-01'
Description: Configure the AliyunROSStackGroupExecutionRole to enable use of your account as a target account in Alibaba Cloud ROS StackGroup.
Conditions:
CurrentAccount:
Fn::Equals:
- Ref: AdministrationAccountId
- ''
Parameters:
ExecutionRoleName:
Type: String
Default: AliyunROSStackGroupExecutionRole
Description:
en: Execution role name of target account
zh-cn: 为目标账号创建执行角色的名称
AdministrationAccountId:
Type: String
Description:
zh-cn: 管理员主账号ID,不填则授权给当前账号
en: Administration account ID. If not, authorize the current account
Default: ''
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- ExecutionRoleName
- AdministrationAccountId
Label:
default: RAM
TemplateTags:
- acs:example:安全:创建StackGroup目标账号权限
Resources:
AliyunROSStackGroupExecutionRole:
Type: ALIYUN::RAM::Role
Properties:
RoleName:
Ref: ExecutionRoleName
AssumeRolePolicyDocument:
Version: 1
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
RAM:
- Fn::Join:
- ''
- - 'acs:ram::'
- Fn::If:
- CurrentAccount
- Ref: ALIYUN::TenantId
- Ref: AdministrationAccountId
- ':root'
AttachPolicy:
Type: ALIYUN::RAM::AttachPolicyToRole
Properties:
PolicyName: AdministratorAccess
PolicyType: System
RoleName:
Fn::GetAtt:
- AliyunROSStackGroupExecutionRole
- RoleName
Outputs:
ExecutionRoleName:
Value:
Fn::GetAtt:
- AliyunROSStackGroupExecutionRole
- RoleName