一、操作场景
这篇说说如何进行实例角色管理,例如绑定、修改及删除实例角色。
二、功能优势
为实例绑定 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)
八、参考链接
腾讯云访问管理 CAM 文档