函数计算需访问阿里云其他云服务时例如对象存储OSS、日志服务SLS或表格存储等,您需给函数计算授予相应权限。该权限是服务级别的,当服务被授予某权限后该服务下所有函数都将具有此权限。本文以授予函数计算访问对象存储权限为例,介绍如何授予函数计算访问其他云服务的权限。

前提条件

创建服务

默认服务角色

在函数运行的过程中,函数计算需要访问其他云资源,例如将函数日志写入到您指定的日志服务内、拉取ACR镜像或打通VPC网络访问等。为了简化您的授权操作,函数计算为您提供了一个系统默认的服务角色即AliyunFCDefaultRole。该角色内包含了函数计算需要访问的部分云资源权限,关于如何绑定该角色的操作步骤,请参见开通服务。该角色的授权内容如下所示:
{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "vpc:DescribeVSwitchAttributes"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ecs:CreateNetworkInterface",
        "ecs:DeleteNetworkInterface",
        "ecs:DescribeNetworkInterfaces",
        "ecs:CreateNetworkInterfacePermission",
        "ecs:DescribeNetworkInterfacePermissions",
        "ecs:DeleteNetworkInterfacePermission"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:PostLogStoreLogs"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "cr:GetRepository",
        "cr:GetRepositoryTag",
        "cr:GetAuthorizationToken",
        "cr:PullRepository"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "fc:InvokeFunction",
        "mns:SendMessage",
        "mns:PublishMessage",
        "eventbridge:PutEvents",
        "mq:PUB",
        "mq:OnsInstanceBaseInfo"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

由于AliyunFCDefaultRole角色包含的权限是粗粒度的,如果需要更细粒度的权限,您也可以为服务授予其他角色及相关权限策略。

例如您想让函数计算某服务内的所有函数都具有管理对象存储服务的权限,但AliyunFCDefaultRole角色内没有该权限。您需在配置服务权限时,为该服务绑定一个角色,然后将管理对象存储服务的权限策略绑定到该角色上。成功绑定后,该服务内的所有函数都将具有管理对象存储服务的权限了。详细操作,请参见操作步骤
注意 由于AliyunFCDefaultRole是所有服务级别的角色,如果您在添加默认角色的基础上还想添加其他权限策略,建议新增一个角色,然后给该角色添加相关权限,请勿在默认角色AliyunFCDefaultRole上添加其他权限策略。

操作步骤

  1. 登录函数计算控制台
  2. 在左侧导航栏,单击服务及函数
  3. 在顶部菜单栏,选择地域。
  4. 服务列表页面,找到目标服务。在其操作列,单击配置
  5. 在编辑服务页面的角色配置区域,配置相关参数,然后单击保存
    • 使用新角色
      1. 单击创建新的服务角色,页面跳转至角色页面。
      2. 角色页面,创建可信实体为阿里云服务的RAM角色。具体操作步骤,请参见创建可信实体为阿里云服务的RAM角色
        说明 本示例中目标授信服务选择函数计算
      3. 给新角色授予权限策略。您可以选择添加新策略或者使用已有策略。具体操作步骤,请分别参见创建自定义权限策略为RAM角色授权
    • 使用已有角色

      角色配置区域,从服务角色下拉列表中选择需要授权的角色。

      说明 如果您选择的服务角色不具有管理对象存储服务的权限,您需要给该角色添加此权限。具体操作步骤,请参见为RAM角色授权