操作场景
访问管理(Cloud Access Management,CAM)的角色是拥有一组权限的虚拟身份,用于对角色载体授予腾讯云中服务、操作和资源的访问权限。您可以将 CAM 角色关联到云服务器 CVM 实例,在实例内部基于腾讯云安全凭证服务 STS 临时密钥访问其他云产品的 API(临时密钥将周期性更新)。相比于直接用 SecretKey 进行权限控制,通过此方式可以进一步保证账号下的 SecretKey 安全,也可以借助 CAM 的能力实现更加精细化的控制和权限管理。
本文介绍如何进行实例角色管理,例如绑定、修改及删除实例角色。
功能优势
为实例绑定 CAM 角色后,将具备以下功能及优势:
可使用 STS 临时密钥访问腾讯云其他云服务,详情请参见 STS 相关 API 接口文档。
可为不同的实例赋予包含不同授权策略的角色,使实例对不同的云资源具有不同的访问权限,实现更精细粒度的权限控制。
无需自行在实例中保存 SecretKey,通过修改角色的授权即可变更权限,快捷地维护实例所拥有的访问权限。
使用说明
实例仅支持绑定角色载体包含
cvm.qcloud.com
的角色,详情请参见 角色基本概念。如下图所示:
实例的网络类型需为专有网络 VPC。
一台实例一次仅支持授予一个 CAM 角色。
绑定、修改及删除实例角色,不会产生额外的费用。
操作步骤
绑定/修改实例角色
1. 登录 云服务器控制台,选择左侧导航栏中的实例。
2. 在实例的管理页面,根据实际使用的视图模式进行操作:
列表视图:选择需绑定或修改角色的云服务器所在行右侧的更多 > 实例设置 > 绑定/修改角色。如下图所示:

页签视图:在云服务器页面中,选择页面右上角的更多操作 > 实例设置 > 绑定/修改角色。如下图所示:

3. 在弹出的绑定/修改角色窗口中,选择要绑定的角色,单击确定即可。
1. 在“实例”列表页面中,勾选需要被绑定或修改角色的云服务器,单击顶部的更多操作 > 实例设置 > 绑定/修改角色。如下图所示:

2. 在弹出的绑定/修改角色窗口中,选择要绑定的角色,单击确定即可。
说明:
通过此方式修改的多台实例,角色均相同。
删除实例角色
1. 登录 云服务器控制台,选择左侧导航栏中的实例。
2. 在实例的管理页面,根据实际使用的视图模式进行操作:
列表视图:选择需删除角色的云服务器所在行右侧的更多 > 实例设置 > 删除角色。如下图所示:

页签视图:在云服务器页面中,选择页面右上角的更多操作 > 实例设置 > 删除角色。如下图所示:

3. 在弹出的删除角色窗口中,单击确定即可。
1. 在实例列表页面中,勾选需删除角色的云服务器,单击顶部的更多操作 > 实例设置 > 删除角色。如下图所示:

2. 在弹出的删除角色窗口中,单击确定即可。
获取临时密钥
腾讯云云服务器(CVM)提供实例元数据服务,若当前实例绑定了 CAM 角色,用户可以通过访问实例元数据获取临时密钥。具体步骤如下:
1. 登录到云服务器实例。
2. 可以使用 curl 命令访问实例元数据的 URL。
curl http://metadata.tencentyun.com/latest/meta-data/cam/security-credentials/<角色名称>
服务相关角色 的具体路径如下:
curl http://metadata.tencentyun.com/latest/meta-data/cam/service-role-security-credentials/<角色名称>
<角色名称>
是您在创建云服务器时绑定的角色名称。 若<角色名称>
不确定,可以在控制台实例详情页>基本信息>实例信息>角色查看。3. 返回的 JSON 数据中包含临时密钥的详细信息,包括:
TmpSecretId:临时访问密钥ID
TmpSecretKey:临时访问密钥
ExpiredTime:临时密钥过期时间戳
Expiration:临时密钥过期时间
Token:临时访问密钥令牌
Code:请求结果返回码
示例:以下示例说明如何获取实例 CAM 角色所生成的临时凭证。CVMas 为示例使用的 rolename。
[qcloud-user]# curl http://metadata.tencentyun.com/latest/meta-data/cam/security-credentials/CVMas{"TmpSecretId": "************************************","TmpSecretKey": "********************************","ExpiredTime": 1615590047,"Expiration": "2021-03-12T23:00:47Z","Token": "******","Code": "Success"}
使用临时密钥进行操作
1. 配置环境变量
将获取到的临时密钥配置为环境变量,以便 SDK 或 CLI 工具使用:
export TENCENTCLOUD_SECRET_ID="临时TmpSecretId"export TENCENTCLOUD_SECRET_KEY="临时TmpSecretKey"export TENCENTCLOUD_TOKEN="临时Token"
2. 访问资源
使用 SDK 或 CLI 工具访问目标资源。例如,使用 Python SDK 访问 COS:
前置条件:
已安装 Python COS SDK 包:
pip install -U cos-python-sdk-v5
。角色拥有操作 COS 的相应策略。
from qcloud_cos import CosConfigfrom qcloud_cos import CosS3Client#初始化临时密钥region = 'ap-guangzhou'scheme = 'https'config = CosConfig(Region=region, SecretId="临时密钥的TmpSecretId", SecretKey="临时密钥的TmpSecretKey", Token="临时密钥的Token", Scheme=scheme)client = CosS3Client(config)response = client.list_buckets()print(response)
参考链接