白话讲解函数计算中的角色授权

简介: 初次入坑函数计算的小伙伴,遇见的第一大拦路虎非RAM授权相关莫属。开始玩玩`hello world`这种无关授权访问其他阿里云资源的时候,感觉 serverless 大法各种好,之后发现线上排查问题日志的时候,第一次给service配置role的时候,虽然控制台能成功配置,但是估计也是一脸懵逼。

前言

初次入坑函数计算的小伙伴,遇见的第一大拦路虎非RAM授权相关莫属。开始玩玩hello world这种无关授权访问其他阿里云资源的时候,感觉 serverless 大法各种好,之后发现线上排查问题日志的时候,第一次给service配置role的时候,虽然控制台能成功配置,但是估计也是一脸懵逼。本文旨在用最浅显的例子说明ram的基本概念,以及和函数计算之间的关系。

RAM

RAM 中的 2 个基本概念:

  • 用户

    • 主账户(或称root用户)
    • 子用户
  • 角色

先用一个通俗的例子来说明这两个基本概念:

  • 您在阿里云开通了账号,购买阿里云上的资源; 这个就类似于您创建了一个国家,国家有大有小(等价于你的阿里云上资源多少), 主账号就是国王您, 为了让您的国家机器健康有效运转,您开始放权,从任命三省六部大员直到九品芝麻官,这个时候,官员就对应子账号, 官员(子用户)的权利有大有小,就对应国王(主账号)授予的官职大小。 此时无论国王(主账户)还是官员(子账户),都是物理意义上的人(真正的实体), 表现为有具体的身份证(Acesskey Id 和 Acesskey Secret),身份证与人绑定。
  • 角色不是实体,接着上面的例子,国家和国家之间需要交流合作, 假设您的国家是 A 国,如果 B 国想和 A 国合作, B 国派遣外交使节(B国的一个官员,对应B国子用户)访问 A 国, 这个时候,A 国需要给 颁发一个签证,不然过不了海关, 就可以凭借这个签证,获得一个临时的 A 国国民身份进入A国,进行一些工作事项。 在这里 签证 可以理解为一个角色, 不是真正物理意义上的实体。 真正的实体通过签证中授予的权限,临时扮演 A 国国民身份在 A 国干一些事情。签证的权限有大有小并且有一定的时效性, 拿着不同的签证,有可能是元首级别的交流待遇,也有可能只是去穷游7天之内必须滚来回的DS。

函数计算中的RAM

函数中直接使用用户

def handler(event, context):
    # 直接明文使用AK 访问其他阿里云资源,比如oss
    ...
    return "OK"

这种用法简单粗暴,使用ak, 在上面说了,有ak的都是真正的实体用户, 直接明文AK在代码中裸奔,怎么看都不安全,于是演变成如下的代码片段:

def handler(event, context):
    ak_id = os.environ["AK_ID"]
    ak_secret = os.environ["AK_SECRET"]
    # 使用环境变量中ak访问其他阿里云资源
    # 环境变量有加密处理, 
    # https://help.aliyun.com/document_detail/69777.html
    ...
    return "OK"

这样似乎看起来很安全了,但是如果一旦出现为了安全,定期更换AK情况,就不得不到处去手动函数中设置的环境变量...

函数中使用role

回到上面角色中的那个例子,您的阿里云资源是 A 国, 函数计算的服务是 B 国, B 国和 A 国进行合作,A 国颁给 B 国大使 签证(对应函数计算service配置的role), 这个时候 临时扮演成 A 国国民对 A 国的资源进行一些访问, 此时可以用如下注释理解:

# -*- coding: utf-8 -*-

def handler(event, context):
  # context中的 creds 就是 `甲` 临时扮演成的 A 国国民
  creds = context.credentials
  # creds 可以操作 A 国(也就是您自己的阿里云)的资源
  # 这样的话,您通过使用creds 就可以访问您自己的阿里云资源了
  # 不需要 ak 在代码中裸奔了
  ...

  return 'OK'

所以:

  1. 如果您需要将您函数的日志打印到您的 logstore 中进行调试,需要至少授予 service 访问您 logstore 的权限,不然函数计算没法把您函数执行的日志 put 到您的lostore
  2. 如果您没有给 service 配置 role, context.credentials为空
  3. 如果您想直接使用context.credentials访问您自己的阿里云资源,只需要给service中配置的role增加相应的权限就行
  4. 强烈推荐尽量在函数计算中使用 context.credentials 来替换明文ak 的使用方法

总结

本文以一个简单浅显的例子说明函数计算和role之间的关系,以及解释了函数计算中 service 中设置的 role 的意义,希望本文能给您拨开云雾,如果还有不太理解的地方,欢迎大家留言反馈。

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
目录
相关文章
Collection接口详解
Collection接口详解
|
4月前
|
存储 算法 关系型数据库
吃透分布式 ID:雪花算法、号段模式的底层逻辑与全场景架构避坑
本文深度解析分布式ID两大主流方案——雪花算法与号段模式,涵盖核心设计准则(唯一性、趋势递增、高性能等)、底层原理、代码实现、6大生产避坑指南及场景化选型建议,助你构建稳定可靠的分布式ID服务。
725 4
|
5月前
|
弹性计算 缓存 运维
阿里云 ECS 云服务器部署OpenClaw(Clawdbot)详细步骤流程
OpenClaw(原 Clawdbot/Moltbot)作为开源 AI 代理与自动化平台,具备自然语言交互、任务自动化执行、多模型兼容等核心能力,可广泛应用于个人智能助手搭建、企业办公流程自动化、自定义工作流构建等场景。阿里云 ECS 云服务器凭借灵活的资源配置、稳定的运行环境及完善的运维支持,成为 OpenClaw 部署的优选载体。本教程专为零基础新手设计,整合计算巢自动化部署方案与手动配置细节,从前期准备、实例创建、环境配置到功能验证、故障排查,全方位拆解部署全流程,确保用户能按步骤顺利完成 OpenClaw 的部署与启用,且全程无营销性质表述。
3780 1
|
3月前
|
机器学习/深度学习 人工智能 文字识别
中药材图像识别数据集(100类,9200张)|适用于YOLO系列深度学习分类检测任务
本数据集含9200张高清中药材图像,覆盖100类常见药材(如黄芪、枸杞、天麻等),已按YOLO标准格式划分训练集(8000张)与验证集(1200张),支持分类、检测及跨模态研究,适用于中医药AI识别系统开发与教学应用。
|
人工智能 网络协议 Linux
MCP 协议: Streamable HTTP 是最佳选择
随着AI应用变得越来越复杂并被广泛部署,原有的通信机制面临着一系列挑战。近期MCP仓库的PR #206引入了一个全新的Streamable HTTP传输层替代原有的HTTP+SSE传输层。本文将详细分析该协议的技术细节和实际优势。
7874 102
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
1125 31
|
12月前
|
人工智能 自然语言处理 数据可视化
通义灵码保姆级教程:从数据读取、清洗、结合大模型分析、可视化、生成报告全链路
本课程通过通义灵码实现零代码数据分析全流程,涵盖数据读取、清洗、可视化、报告生成及内容仿写,无需编程基础,轻松掌握从CSV导入到PDF报告输出的实战技能。
|
人工智能 缓存 Serverless
MCP Server 实践之旅第 3 站:MCP 协议亲和性的技术内幕
本文深入探讨了分布式架构中请求亲和性技术在Serverless范式下的实践。文章以MCP Server在函数计算平台的集成为例,剖析了基于SSE长连接通信模型的会话亲和、优雅升级等关键技术。通过双阶段协商机制与网关层协同设计,函数计算实现了MCP SSE会话亲和性保障,解决了无状态服务处理有状态请求的难题。同时,文章还展示了压测结果,验证了系统的稳定性和扩展能力,并总结了Serverless与有状态服务融合的技术创新点。
|
7月前
|
监控 测试技术
南京观海微电子--LCD flicker
闪烁(Flicker)指画面忽明忽暗的现象,源于人眼视觉暂留效应。LCD通过交流驱动防止液晶极化,若正负半周电压不均(Vcom偏置)或亮度变化明显,会导致闪烁。常用FLK值量化评估,结合CA410等光学设备测试,调节Vcom使FLK最小以优化显示效果。
南京观海微电子--LCD flicker
|
人工智能 弹性计算 运维
亚太唯一,阿里云Serverless计算产品进入Forrester领导者象限
Forrester发布Serverless开发平台评估报告《Forrester Wave™: Serverless Development Platforms, Q2 2025》:在21项测评中,阿里云函数计算FC和Serverless应用引擎SAE的产品能力拿到了9项最高分。阿里云成功进入领导者象限,是国内唯一进入该象限的科技公司。

相关产品

  • 函数计算