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 | 否 | 否 | 是否忽略現有角色。 | 取值:
說明 如果角色不是由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 | 否 | 否 | 許可權效力。 | 取值:
|
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 | 否 | 否 | 授權效力。 | 取值:
|
傳回值
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"
]
}
}
}
}