本文档介绍如何通过使用访问管理控制台或 CAM API两种方式创建角色。创建成功后,角色可以在获得的权限范围内管理主账号下的资源。
已登录访问管理控制台,进入 角色 列表页面。
目前支持的条件为:
- saml:aud:接收方。SAML 断言提交到的终端节点 URL,此键的值来自断言中的 SAML Recipient 字段,而不是 Audience 字段。
- saml:iss:发送方。以 URN 表示,此键的值来自断言中的 SAML Issuer 字段。
- saml:sub:外部账号 ID。这是该陈述的主题,其中包含唯一标识组织中某个用户的值。 此键来自断言中 SAML NameID 字段。
- saml:sub_type:外部用户类型。此键来自断言中 SMAL NameID 的 Format 属性。
腾讯云支持您使用 CAM API 进行新建角色,我们以一个典型案例让您轻松了解如何使用 API 来创建角色。
假设如下场景,公司 A 有一个运维工程师的职位,并且希望将该职位外包给公司 B,该职位需要操作公司 A 广州地域所有云服务器资源。
公司 A 企业账号 CompanyExampleA(ownerUin 为 12345),创建一个角色并将角色载体设置为公司B的企业账号 CompanyExampleB(ownerUin 为 67890)。
公司 A 企业账号 CompanyExampleA(ownerUin 为 12345) 调用 CreateRole 接口创建一个 roleName 为 DevOpsRole 的角色,policyDocument(角色信任策略)参数设为
{
"version": "2.0",
"statement": [
{
"action": "name/sts:AssumeRole",
"effect": "allow",
"principal": {
"qcs": ["qcs::cam::uin/67890:root"]
}
}
]
}
公司 A 企业账号 CompanyExampleA(ownerUin 为 12345) 需要为刚才创建的角色附加权限。
公司 A 企业账号 CompanyExampleA(ownerUin 为 12345) 创建策略 DevOpsPolicy,策略语法如下:
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": "cvm:*",
"resource": "qcs::cvm:ap-guangzhou::*"
}
]
}
公司 A 企业账号 CompanyExampleA(ownerUin 为 12345)调用 AttachRolePolicy 将 step1 中创建的策略绑定到角色 DevOpsRole,入参 policyName=DevOpsPolicy,roleName=DevOpsRole。
经过上面的步骤,公司 A 企业账号 CompanyExampleA(ownerUin 为 12345)完成了角色的创建和授权。
在为身份提供商创建角色前,您需要在 CAM 中创建 SAML 身份提供商。关于创建 SAML 身份提供商,请参阅 创建 SAML 身份提供商。
信任策略各字段规定如下:
- action 字段:定义允许 SAML 联合身份使用当前角色的接口。使用
sts:AssumeRoleWithSAML
。- principal 字段:定义允许使用当前角色的身份提供商。使用
{"federated": [ IdPArn ]}
字符串,例如qcs::cam::uin/10001:saml-provider/idp_name- condition 字段:定义允许使用当前角色的条件。默认使用
{"StringEquals": {"SAML:aud": "https://intl.cloud.tencent.com/login/saml"}}
。 此条件限制为仅 SAML 联合终端节点为腾讯云的身份提供商才被允许使用此角色。
角色信任策略示例如下:
{
"version": "2.0",
"statement": [
{
"action": "name/sts:AssumeRoleWithSAML",
"effect": "allow",
"principal": {
"federated": [
"qcs::cam::uin/10001:saml-provider/idp_name"
]
},
"condition": {
"string_equal": {
"saml:aud": "https://intl.cloud.tencent.com/login/saml"
}
}
}
]
}
本页内容是否解决了您的问题?