函数计算访问阿里云其他云服务时,需要授予相应权限,该权限为服务级别。当服务被授予某权限后,该服务下所有函数都将具有此权限。本文介绍如何通过控制台授予函数计算访问其他云服务的权限。
功能原理
函数计算根据函数所在服务配置的角色,通过AssumeRole获取一个临时密钥(STS Token)。然后通过上下文中的参数Credentials或credentials将临时密钥传递给您的函数。此临时密钥包含了您所配置的权限的所有资源,您可以在函数代码中使用其访问其他阿里云服务。
临时密钥的有效期为36小时,且不支持修改。函数的最大执行时间为24小时,因此,执行函数过程中,临时密钥不会过期。
不同的运行时,参数Credentials或credentials的位置不同,您可以点击以下链接访问对应的文档。需要强调的是,当您使用Custom Runtime或Custom Container的时候,临时密钥会被注入HTTP请求的Header中。
函数计算默认服务角色
在函数运行的过程中,函数计算需要访问其他云资源,例如将函数日志写入到您指定的日志服务内、拉取ACR镜像或打通VPC网络访问等。为了简化您的授权操作,函数计算为您提供了一个系统默认的服务角色,即AliyunFCDefaultRole。该角色内包含了函数计算需要访问的部分云资源权限。关于如何创建默认角色AliyunFCDefaultRole和绑定该角色的操作步骤,请参见开通服务。您可以登录RAM角色管理控制台,查看AliyunFCDefaultRole的授权内容。
由于AliyunFCDefaultRole角色包含的权限是粗粒度的,如果需要更细粒度的权限,您可以为服务授予其他角色及相关权限策略。
例如,需要函数计算某服务内的所有函数都具有管理对象存储服务的权限,但AliyunFCDefaultRole角色内没有该权限。您需在配置服务权限时,为该服务绑定一个角色,然后将管理对象存储服务的权限策略绑定到该角色上。成功绑定后,该服务内的所有函数都将具有管理对象存储服务的权限。具体操作,请参见操作步骤。
重要 AliyunFCDefaultRole为函数计算系统默认的、所有服务级别的角色,请勿在该角色上添加其他权限策略。如果在默认角色的基础上,您还需要添加其他权限策略,请新增一个角色并为该角色添加相关权限。
前提条件
操作步骤
本文以授予函数计算访问对象存储OSS管理权限为例进行介绍。