本文介绍如何使用RAM控制台和SDK获取阿里云临时安全令牌STS(Security Token Service)并实现跨账号授权查看函数计算的资源。
使用示例
企业A开通了函数计算服务,该企业需要企业B代为操作函数计算的资源。同时企业A有如下诉求:
- 希望能专注于业务系统,仅作为函数计算的所有者,同时,可以授权企业B操作部分业务,例如创建服务、创建函数等。
- 当企业B的员工加入或离职时,无需做任何权限变更。企业B可以进一步将企业A的资源访问权限分配给企业B的RAM用户,并可以精细控制其RAM用户对资源的访问或操作权限。
- 如果双方合同终止,企业A随时可以撤销对企业B的授权。
使用控制台的操作步骤
假如企业A需要授权企业B的员工访问函数计算的所有服务。企业A和企业B下分别有一个阿里云账号A和阿里云账号B:
- 企业A的阿里云账号ID为
123456789012****
,账号别名(企业别名)为company-a
。 - 企业B的阿里云账号ID为
134567890123****
,账号别名(企业别名)为company-b
。
步骤一:阿里云账号A创建RAM角色
使用阿里云账号A创建一个RAM角色,并为RAM角色授予适当的权限,允许阿里云账号B使用该角色,即其他云账号选择阿里云账号B。
- 使用阿里云账号A登录RAM控制台。
- 在左侧导航栏,选择 。
- 在角色页面,单击创建角色。
- 在创建角色面板,选择可信实体类型为阿里云账号,然后单击下一步。
- 设置角色信息。
- 单击完成。
- 单击关闭。
- 阿里云账号A为刚才创建的RAM角色添加AliyunFCReadOnlyAccess权限。关于如何为RAM角色授权,请参见为RAM角色授权。
RAM角色创建成功后,您可以在该角色的基本信息页面内查看到该RAM角色的ARN和信任策略:
- RAM角色的ARN为:
acs:ram::123456789012****:role/fc-admin
。 - RAM角色的信任策略如下:
说明 以下策略表示仅允许阿里云账号B下的RAM用户来扮演该RAM角色。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::134567890123****:root" ] } } ], "Version": "1" }
步骤二:阿里云账号B创建RAM用户
- 使用阿里云账号B为其员工创建RAM用户。关于如何创建RAM用户,请参见创建RAM用户。
- 阿里云账号B为创建好的RAM用户添加AliyunSTSAssumeRoleAccess权限,即允许RAM用户扮演RAM角色。关于如何为RAM用户添加权限,请参见为RAM用户授权。
步骤三:切换身份登录
当阿里云账号B下的某个员工(RAM用户)需要访问阿里云账号A下的资源时,阿里云账号B可以自主进行授权控制。即阿里云账号B下的RAM用户扮演阿里云账号A下的RAM角色访问阿里云账号A下的资源。具体操作如下:
(可选)撤消授权
如果企业A与企业B的合作终止了,企业A只需要撤销阿里云账号B对RAM角色的使用即可。此时阿里云账号B下的所有RAM用户对RAM角色的使用权限将被自动撤销。具体操作如下:
- 阿里云账号A登录RAM控制台。
- 在左侧导航栏,选择 。
- 在用户页面,单击目标RAM用户操作列的删除。
- 在删除用户对话框,仔细阅读删除影响,然后单击我已知晓风险,确认删除。
说明 在删除RAM角色前,请先为RAM角色移除权限。详情信息,请参见为RAM角色移除权限。
使用SDK的操作步骤
函数计算可以通过STS进行临时授权访问。STS是为云计算使用者提供临时访问令牌的Web服务。以下示例展示,阿里云账号B如何获取查看阿里云账号A下所有服务的权限。