ALIYUN::RAM::Role

ALIYUN::RAM::Role类型用于创建RAM角色。

语法

{
  "Type": "ALIYUN::RAM::Role",
  "Properties": {
    "RoleName": String,
    "Description": String,
    "AssumeRolePolicyDocument": Map,
    "MaxSessionDuration": Integer,
    "Policies": List,
    "IgnoreExisting": Boolean,
    "DeletionForce": Boolean,
    "PolicyAttachments": Map
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

AssumeRolePolicyDocument

Map

可以扮演此RAM角色的身份。

信任策略。指定允许扮演该 RAM 角色的一个或多个主体,这个主体可以是阿里云账号、阿里云服务或身份提供商。

RoleName

String

RAM角色名称。

长度为 1~64 个字符,可包含英文字母、数字、半角句号(.)和短划线(-)。

Description

String

RAM角色描述。

最大长度为1024个字符。

MaxSessionDuration

Integer

RAM角色最大会话时间。

取值范围:3600秒~43200秒。

默认值:3600秒。

Policies

List

适用RAM角色的策略。

更多信息,请参见权限策略概览

IgnoreExisting

Boolean

是否忽略现有角色。

取值:

  • false:ROS将会执行唯一性检查。如果存在同名的角色,在创建时将报告错误。

  • true:ROS将不进行唯一性检查。如果存在同名角色,角色创建过程将被跳过。

说明

如果角色不是由ROS创建的,在更新和删除阶段将被忽略。

DeletionForce

Boolean

是否强制解除与角色关联的策略。

默认值为false。

PolicyAttachments

Map

要添加的系统和自定义策略名称。

更多信息,请参见PolicyAttachments属性。

AssumeRolePolicyDocument语法

"AssumeRolePolicyDocument": {
  "Version": String,
  "Statement": List
}

AssumeRolePolicyDocument属性

属性名称

类型

必须

允许更新

描述

约束

Version

String

策略版本。

Statement

List

策略具体规则。

更多信息,请参见Statement属性。

Statement语法

"Statement": [
  {
    "Condition": Map,
    "Action": String,
    "Effect": String,
    "Principal": Map
  }
]

Statement属性

属性名称

类型

必须

允许更新

描述

约束

Condition

Map

限制条件。

Action

String

策略针对的具体操作。

Effect

String

权限效力。

取值:

  • Allow:允许。

  • Deny:拒绝。

Principal

Map

可信实体类型。

更多信息,请参见Principal属性

Principal语法

"Principal": {
  "Service": List,
  "Federated": List,
  "RAM": List
}

Principal属性

属性名称

类型

必须

允许更新

描述

约束

Service

List

阿里云服务。

Federated

List

身份提供商。

RAM

List

阿里云账号。

Policies语法

"Policies": [
  {
    "Description": String,
    "PolicyName": String,
    "PolicyDocument": Map
  }
]

Policies属性

属性名称

类型

必须

允许更新

描述

约束

Description

String

描述。

长度为1~1024个字符。

PolicyName

String

权限策略名称。

长度为1~128个字符,可包含英文字母、数字和短划线(-)。

PolicyDocument

Map

权限策略内容。

最大长度为2048个字符。

更多信息,请参见PolicyDocument属性

PolicyAttachments语法

"PolicyAttachments": {
  "System": List,
  "Custom": List
}

PolicyAttachments属性

属性名称

类型

必须

允许更新

描述

约束

Custom

List

自定义策略名称列表。

策略数量小于等于5。

System

List

系统策略名称列表。

策略数量小于等于20。

PolicyDocument语法

"PolicyDocument": {
  "Version": String,
  "Statement": List
}

PolicyDocument属性

属性名称

类型

必须

允许更新

描述

约束

Version

String

权限策略版本。

Statement

List

权限策略具体规则。

Statement语法

"Statement": [
  {
    "Condition": Map,
    "Action": List,
    "Resource": List,
    "Effect": String
  }
]

Statement属性

属性名称

类型

必须

允许更新

描述

约束

Condition

Map

授权生效的限制条件。

Action

List

权限策略针对的具体操作。

Resource

List

权限策略针对的具体资源。

Effect

String

授权效力。

取值:

  • Allow:允许。

  • Deny:拒绝。

返回值

Fn::GetAtt

  • RoleId:角色ID。

  • RoleName:角色名称。

  • Arn:角色的资源描述符。

示例

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Description: Test RAM Role
Parameters: {}
Resources:
  Role:
    Type: ALIYUN::RAM::Role
    Properties:
      RoleName: TestRole
      AssumeRolePolicyDocument:
        Statement:
          - Action: sts:AssumeRole
            Effect: Allow
            Principal:
              Service:
                - actiontrail.aliyuncs.com
        Version: '1'
Outputs:
  RoleId:
    Description: Id of ram role.
    Value:
      Fn::GetAtt:
        - Role
        - RoleId
  Arn:
    Description: Name of alicloud resource.
    Value:
      Fn::GetAtt:
        - Role
        - Arn
  RoleName:
    Description: Name of ram role.
    Value:
      Fn::GetAtt:
        - Role
        - RoleName

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test RAM Role",
  "Parameters": {
  },
  "Resources": {
    "Role": {
      "Type": "ALIYUN::RAM::Role",
      "Properties": {
        "RoleName": "TestRole",
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": [
                  "actiontrail.aliyuncs.com"
                ]
              }
            }
          ],
          "Version": "1"
        }
      }
    }
  },
  "Outputs": {
    "RoleId": {
      "Description": "Id of ram role.",
      "Value": {
        "Fn::GetAtt": [
          "Role",
          "RoleId"
        ]
      }
    },
    "Arn": {
      "Description": "Name of alicloud resource.",
      "Value": {
        "Fn::GetAtt": [
          "Role",
          "Arn"
        ]
      }
    },
    "RoleName": {
      "Description": "Name of ram role.",
      "Value": {
        "Fn::GetAtt": [
          "Role",
          "RoleName"
        ]
      }
    }
  }
}