背景信息
授权自助管理权限时,您需要为下表所示的阿里云账号分别创建RAM角色并授权:
| 阿里云账号 | RAM角色 | 权限策略 | 权限策略说明 | 
| 管理员账号 | AliyunROSStackGroupAdministrationRole | 自定义策略AssumeRole-AliyunROSStackGroupExecutionRole | 允许RAM角色(AliyunROSStackGroupAdministrationRole)扮演角色身份(AliyunROSStackGroupExecutionRole)。 | 
| 目标账号 | AliyunROSStackGroupExecutionRole | 系统策略AdministratorAccess | 允许RAM角色(AliyunROSStackGroupExecutionRole)管理目标账号的所有阿里云资源。 | 
说明 管理员账号和目标账号可以为同一阿里云账号。关于管理员账号和目标账号的更多信息,请参见概览。
 授权成功后,当您使用管理员账号登录资源编排控制台创建资源栈组后,即可在该资源栈组中为目标账号创建资源栈。
方式一:通过RAM控制台设置权限 
- 设置目标账号的权限。 - 使用目标账号登录RAM控制台。 
- 为目标账号创建可信实体为管理员账号的RAM角色(AliyunROSStackGroupExecutionRole)。 - 在左侧导航栏,选择。 
- 在角色页面,单击创建角色。 
- 在创建角色页面,选择可信实体类型为云账号。 
- 选择信任的云账号为其他云账号,输入管理员账号的ID。 
- 单击确定,在对话框中输入角色名称为AliyunROSStackGroupExecutionRole。 
- 单击确定,完成创建。 
 
- 为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