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

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

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

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

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

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

在弹出的删除角色窗口中,单击确定即可。
获取临时密钥
腾讯云云服务器(CVM)提供实例元数据服务,若当前实例绑定了 CAM 角色,用户可以通过访问实例元数据获取临时密钥。具体步骤如下:
登录到云服务器实例。
可以使用 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/<角色名称>
<角色名称>是您在创建云服务器时绑定的角色名称。 若<角色名称>不确定,可以在控制台实例详情页>基本信息>实例信息>角色查看。返回的 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”
}
使用临时密钥进行操作
配置环境变量
将获取到的临时密钥配置为环境变量,以便 SDK 或 CLI 工具使用:
export TENCENTCLOUD_SECRET_ID=“临时TmpSecretId”
export TENCENTCLOUD_SECRET_KEY=“临时TmpSecretKey”
export TENCENTCLOUD_TOKEN=“临时Token”
访问资源
使用 SDK 或 CLI 工具访问目标资源。例如,使用 Python SDK 访问 COS:
前置条件:
已安装 Python COS SDK 包:
pip install -U cos-python-sdk-v5。角色拥有操作 COS 的相应策略。
from qcloud_cos import CosConfig
from 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)
