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

语法

{
  "Type": "ALIYUN::RAM::Role",
  "Properties": {
    "RoleName": String,
    "Description": String,
    "AssumeRolePolicyDocument" : Map,
    "Policies ": List
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
RoleName string 角色名称。 最长 64 个字符。
Description string 角色描述。 最长 1,024 个字符。
AssumeRolePolicyDocument map 可以扮演此角色的身份。
Policies list 适用角色策略。

AssumeRolePolicyDocument 语法

"AssumeRolePolicyDocument": {
  "Version": String,
  "Statement": [
    {
      "Effect": String,
      "Action": List,
      "Principal": {
        "Service": List
       }
    }
  ]
}			

AssumeRolePolicyDocument 属性

属性名称 类型 必须 允许更新 描述 约束
Version string 指定策略版本。
Statement list 指定策略具体的规则。
Action list 指定策略针对的具体操作。
Principal map 指定策略针对的具体服务。
Effect string 允许或拒绝对 Principal 中定义的服务进行 Action 定义的操作。
Service list 指定具体的服务。

Policies 语法

"Policies": [
  {
    "PolicyName": String,
    "PolicyDocument": {
      "Version": String,
      "Statement": [
        {
          "Effect": String,
          "Action": List,
          "Resource": List
        }
      ]
    }
  }
]			

Policies 属性

属性名称 类型 必须 允许更新 描述 约束
PolicyName string 指定策略名称。 最长 128 个字符。
PolicyDocument map 指定策略详细描述。
Version string 指定策略版本。
Statement list 指定策略具体的规则。
Action list 指定策略针对的具体操作。
Resource list 指定策略针对的具体资源。
Effect string 允许或拒绝对 Resource 中定义的资源进行 Action 定义的操作。
Condition map 等待条件。

返回值

Fn::GetAtt

  • RoleId:角色 ID。
  • RoleName:角色名称。
  • Arn:角色的资源描述符。

示例

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "RamRole": {
      "Type": "ALIYUN::RAM::Role",
      "Properties": {
        "RoleName": "RosRole",
        "Description": "createdByRos",
        "AssumeRolePolicyDocument": {
          "Statement" : [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal":{
                "Service":["actiontrail.aliyuncs.com"]
              }
            }
          ],
          "Version": "1"
        },
        "Policies": [
          {
            "PolicyName": "RosRolePolicy",
            "PolicyDocument": 
            {
              "Version": "1",
              "Statement": [
                {
                  "Effect": "Allow",
                  "Action": [ "oss:*" ],
                  "Resource": ["acs:oss:*:*:*"]
                }
              ]
            }
          }
        ]
      }
    }
  },
  "Outputs": {
    "RoleName": {
      "Value": {
        "Fn::GetAtt": ["RamRole","RoleName"]
      }
    },
    "Arn": {
      "Value": {
        "Fn::GetAtt": ["RamRole","Arn"]
      }
    }
  }
}