设置IAM角色
IAM角色是一种虚拟身份,同用户身份一样,可以关联权限对云上资源进行操作。您可以将IAM角色关联到云服务器BCC实例,在实例内部基于STS临时身份凭证调用其他云产品的 API(临时身份凭证将周期性更新)。由于临时身份凭证仅可在实例内部获取,并且无需配置AKSK,这不仅确保了云账号AKSK的安全性,还能够通过IAM实现精细化的控制与权限管理。
本文介绍如何进行实例IAM角色管理,例如绑定、修改及删除实例角色。
使用限制
一台BCC实例只能被授予一个IAM角色。
临时身份凭证每5分钟进行更新,若角色解绑,临时身份凭证可能在最长5分钟后失效。
操作步骤
创建IAM角色
1、登录控制台,鼠标移入右上角头像,点击“多用户访问控制”。
2、进入“多用户访问控制”控制台,选择“角色管理”,点击“创建角色”。输入“角色名称”,载体选择云产品,载体实体选择“云服务器BCC”,策略管理选择需要对该角色赋予的权限。点击“确定”完成角色的创建。
实例绑定IAM角色
1、进入云服务器BCC控制台,在实例列表选择您要绑定或者修改角色的实例,在右侧操作列单击 “更多 - 实例设置 – 设置IAM角色”,如下图所示。
2、在弹出的 设置IAM角色 对话框中点击选择IAM角色,单击确认按钮,实例绑定IAM角色成功。
获取实例IAM角色的临时身份凭证
您可以在BCC实例内部通过访问元数据(meta-dada) 获取到临时访问凭证。命令如下:
1curl 169.254.169.254/latest/meta-data/sts-credential
使用实例IAM角色调用API
下文以部署在Linux BCC实例上的Go应用程序调用对象存储BOS下载文件接口为例,为您介绍BCC实例IAM角色的使用方法。
1import (
2 "fmt"
3 "github.com/baidubce/bce-sdk-go/auth" //导入认证模块
4 "github.com/baidubce/bce-sdk-go/services/bos" //导入BOS服务模块
5 "github.com/baidubce/bce-sdk-go/services/sts" //导入STS服务模块
6)
7
8func main() {
9
10 // 获取实例里的临时身份凭证
11 accessKeyId = getAccessKeyId()
12 secretAccessKey = getSecretAccessKey()
13 sessionToken = getSessionToken()
14
15 bosClient, err := bos.NewClient(accessKeyId, secretAccessKey, sessionToken)
16 if err != nil {
17 fmt.Println("create bos client failed:", err)
18 return
19 }
20 stsCredential, err := auth.NewSessionBceCredentials(
21 accessKeyId,
22 secretAccessKey,
23 sessionTokenn)
24 if err != nil {
25 fmt.Println("create sts credential object failed:", err)
26 return
27 }
28 bosClient.Config.Credentials = stsCredential
29
30 // 提供Bucket和Object,直接获取一个对象
31 res, err := bosClient.BasicGetObject(bucketName, objectName)
32
33 // 获取ObjectMeta
34 meta := res.ObjectMeta
35
36 // 获取Object的读取流(io.ReadCloser)
37 stream := res.Body
38
39 // 确保关闭Object读取流
40 defer stream.Close()
41
42 // 调用stream对象的Read方法处理Object
43 ...
44}
其他操作
修改实例的IAM角色
1、进入云服务器BCC控制台,在实例列表选择您要绑定或者修改角色的实例,在右侧操作列单击 “更多 - 实例设置 – 设置IAM角色”,如下图所示。
2、在弹出的 设置IAM角色 对话框中点击IAM角色下拉选择目标IAM角色,单击确认按钮,实例IAM角色修改成功。
收回实例的IAM角色
1、进入云服务器BCC控制台,在实例列表选择您要绑定或者修改角色的实例,在右侧操作列单击 “更多 - 实例设置 – 设置IAM角色”,如下图所示。
2、在弹出的 设置IAM角色 对话框中操作类型点击“收回”,单击确认按钮,实例IAM角色收回成功。
通过API授予IAM角色
您可通过绑定角色给指定实例绑定IAM角色。
您可以通过解绑角色收回实例的IAM角色。
您可以通过获取实例角色列表查看账户下全部角色名称。