有奖捉虫:云通信与企业服务文档专题,速来> HOT

操作场景

本文档介绍如何通过使用访问管理控制台或 CAM API 两种方式创建角色。创建成功后,角色可以在获得的权限范围内管理主账号下的资源。

前提条件

已登录访问管理控制台,进入 角色 列表页面。

操作步骤

通过控制台创建

为腾讯云主账号创建角色

1. 在角色列表页面,单击新建角色
2. 在弹出的输入角色载体信息窗口,选择腾讯云账户作为角色载体,进入角色信息填写页面。


3. 在输入角色载体信息页面,填写以下信息,单击下一步
云账号类型:选择当前主账号其他主账号
账号 ID:填写您允许其扮演角色来访问您腾讯云资源的主账户 ID,默认输入为您的主账户 ID。
控制台访问:勾选后则允许当前角色访问控制台。
外部 ID:若您要创建的角色要分配给第三方外部平台使用,或账号及角色信息较容易被其他用户获取到,建议您开启外部 ID 校验。开启后需输入外部 ID。
4. 在策略列表内,勾选您想要给当前创建角色赋予的策略,单击下一步
5. 标记角色的标签键和标签值,单击下一步
6. 输入您的角色名称,审阅角色载体及策略信息无误后,单击完成后即完成自定义角色创建。
说明
如果您想为其他腾讯云子账号授予角色,请参见 为子账号赋予扮演角色策略

为腾讯云产品服务创建角色

1. 在角色列表页面,单击新建角色
2. 在弹出的选择角色载体窗口,选择腾讯云产品服务作为角色载体,进入角色信息填写页面。 查询腾讯云产品服务是否支持使用服务角色请参见 支持 CAM 的产品
3. 在已支持角色功能的服务产品列表中,勾选您需要的服务作为角色载体,单击下一步
4. 在策略列表内,勾选您想要给当前角色添加的策略为角色配置策略,单击下一步。若无匹配的策略,您可以通过策略生成器创建自定义策略后再进行操作。
5. 标记角色的标签键和标签值,单击下一步
6. 输入您的角色名称,审阅您即将创建角色的相关信息无误后,单击完成后即完成自定义角色创建。

为身份提供商创建角色

1. 在角色列表页面,单击新建角色
2. 在弹出的选择角色载体窗口,选择身份提供商作为角色载体,进入角色信息填写页面。 身份提供商即表示您已成功创建的身份提供商,从中选择本次为哪个身份提供商创建角色。


3. 选择身份提供商类型和具体的身份提供商,并根据需要配置使用条件,单击下一步
身份提供商类型:支持 SAML 和 OIDC。
选择身份提供商:选择本次为哪个身份提供商创建角色。
控制台访问(可选):管理是否允许角色登录腾讯云管理控制台,角色均默认可通过编程访问腾讯云。
使用条件(可选):管理身份提供商使用该角色的条件。具体可参见 使用条件
4. 在策略列表内,勾选您想要给当前角色添加的策略,为角色完成权限配置,单击下一步
5. 标记角色的标签键和标签值,单击下一步
6. 输入您自定义的角色名称,审阅您即将创建角色的相关信息无误后,单击完成后即完成自定义角色创建。

通过 API 创建

为腾讯云账号创建角色

腾讯云支持您使用 CAM API 进行新建角色,我们以一个典型案例让您轻松了解如何使用 API 来创建角色。
假设如下场景,公司 A 有一个运维工程师的职位,并且希望将该职位外包给公司 B,该职位需要操作公司 A 广州地域所有云服务器资源。
公司 A 企业账号 CompanyExampleA(ownerUin 为 12345),创建一个角色并将角色载体设置为公司B的企业账号 CompanyExampleB(ownerUin 为 67890)。
1. 公司 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"]
}
}
]
}
2. 公司 A 企业账号 CompanyExampleA(ownerUin 为 12345) 需要为刚才创建的角色附加权限。
3. 公司 A 企业账号 CompanyExampleA(ownerUin 为 12345) 创建策略 DevOpsPolicy,策略语法如下:
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": "cvm:*",
"resource": "qcs::cvm:ap-guangzhou::*"
}
]
}
4. 公司 A 企业账号 CompanyExampleA(ownerUin 为 12345)调用 AttachRolePolicy 将 step1 中创建的策略绑定到角色 DevOpsRole,入参 policyName=DevOpsPolicy,roleName=DevOpsRole。
经过上面的步骤,公司 A 企业账号 CompanyExampleA(ownerUin 为 12345)完成了角色的创建和授权。

为身份提供商创建角色

在为身份提供商创建角色前,您需要在 CAM 中创建 SAML 身份提供商。关于创建 SAML 身份提供商,请参见 创建 SAML 身份提供商
1. 为即将创建的角色准备信任策略。
说明
信任策略各字段规定如下:
action 字段:定义允许 SAML 联合身份使用当前角色的接口。使用 sts:AssumeRoleWithSAML
principal 字段:定义允许使用当前角色的身份提供商。使用 {"federated": [ IdPArn ]} 字符串,例如qcs::cam::uin/10001:saml-provider/idp_name。
condition 字段:定义允许使用当前角色的条件。默认使用 {"StringEquals": {"SAML:aud": "https://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://cloud.tencent.com/login/saml"
}
}
}
]
}
2. 为即将创建的角色准备权限策略。关于权限策略请参见 策略
3. 调用 cam:CreateRole 接口创建身份提供商角色。

使用条件

SAML 目前支持的条件如下:
条件键
含义
是否必填
说明
saml:aud
接收方
选填
SAML 断言提交到的终端节点 URL,此键的值来自断言中的 SAML Recipient 字段,而不是 Audience 字段。
saml:iss
发送方
选填
以 URN 表示,此键的值来自断言中的 SAML Issuer 字段。
saml:sub
外部账号 ID
选填
这是该陈述的主题,其中包含唯一标识组织中某个用户的值。 此键来自断言中 SAML NameID 字段。
saml:sub_type
外部用户类型
选填
此键来自断言中 SMAL NameID 的 Format 属性。
OIDC 目前支持的条件如下:
条件键
含义
是否必填
说明
oidc:iss
OIDC 颁发者(Issuer)
必填
该限定条件必须使用 string_equal,条件值只能是您在 OIDC 身份提供商中填写的身份提供商 URL。用来扮演角色的 OIDC 令牌中的iss字段值必须满足该限制条件要求,角色才允许被扮演。
oidc:aud
OIDC 受众(Audience)
必填
该限定条件必须使用 string_equal,条件值只能使用在 OIDC 身份提供商中配置的一个或多个客户端 ID。用来扮演角色的 OIDC 令牌中的 aud 字段值必须满足该限制条件要求,角色才允许被扮演。
oidc:sub
OIDC 主体(Subject)
选填
该限定条件可以使用任何 string 类的条件操作类型,且条件值最多可以设置10个 OIDC 主体。用来扮演角色的 OIDC 令牌中的 sub 字段值必须满足该限制条件要求时,角色才允许被扮演。