Serverless的性能优化、权限设计、安全风险(中)

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: Serverless的性能优化、权限设计、安全风险(中)

对几种编程语言进行冷启动性能测试,分别使用这几种语言来实现helloword函数,然后给函数设置定时触发器,每半个小时执行一次,这样函数执行时基本就是冷启动了。使用链路追踪来采集冷启动耗时,最后统计每个语言的耗时以及不同内存下的冷启动时间。

  • • 函数计算中PHP冷启动最快,Node.js、Python次之,Java最慢
  • • Java冷启动耗时大约是Node.js或PHP的三倍,Node.js、Python、PHP的冷启动耗时基本在1s内
  • • 随着内存增加,冷启动耗时逐渐缩短

除此之外也针对Lambda进行测试,Node.js冷启动耗时最短,大概200毫秒,性能是函数计算的3~4倍。国产的Faas产品还有很高的提升空间。

小结

  • • 尽量选择Node.js、Python、PHP等冷启动耗时短的语言编程
  • • 为函数设置合适的内存、内存越大,冷启动耗时越短,但成本也越高,所以要设置一个合适的内存
  • • Serverless性能优化的一些实践方案:提前给函数预热、减少代码体积减少不必要的依赖、为函数设置并发、为函数设置合适的内存、使用预留资源、执行上下文重用,选择冷启动耗时少的编程语言。
  • • 除了自己的优化之外,Serverless性能还有一部分需要提供服务的云厂商去优化,比如各种编程语言的运行时,比如Java冷启动耗时很长,这个优化也只能优化云厂商了,开发者很难去优化,只能尽量避免。

访问控制:如何授权访问其他云服务


权限问题

比如没有权限访问发布函数、没有权限访问其他云服务

直接使用具有AdministratorAccess权限的访问凭证去部署应用设置管理云资源,这是非常不安全的。

当企业规则逐渐变大,企业中有不同角色的成员。为了云上资源的安全性,你就需要为不同角色配置不同权限,限制不同成员能够访问的云资源。

不同云厂商的访问控制产品

  • • AWS IAM

AWA Identity and Access Management

  • • 阿里云 RAM

Resource Access Management

不同云厂商的实现细节可能有所差异,但工作原理基本一致。


设计访问控制系统

如果你是一个云产品的架构师,那你要怎么设计一个访问控制系统,实现这样几个很常见的需求呢?(实现分权、云服务授权、跨账号授权)

分权

如何使不同成员拥有不同的权限?

比如运维同学才能购买云产品;Serverless开发同学只能使用Serverless产品而不能购买;财务同学只能使用费用中心查看账单等。

云服务授权

如何使云服务能够访问某个云资源?

比如只允许函数计算读对象存储中的文件而不能删除或创建。

跨账号授权

如何使其他账号能够访问你的云资源?

比如某个大型企业有两个云账号,其中一个云账号A是用来开发生产的,另一个B用于审计,存储所有日志,那么A如何使用B里面的日志?


通过子账号、角色和权限策略来实现云上的访问控制

当创建一个云账号的时候,你的账号就是主账号,主账号有所有的权限,而你可以使用主账号来创建子账号和角色。子账号一开始创建的时候是没有任何权限的,你可以通过给子账号添加权限策略来为子账号授权。

image.png


权限策略

权限策略就是一组访问权限的结合。

系统策略

  • • AdministratorAccess

管理所有云资源的权限

  • • AliyunOSSFullAccess

管理对象存储OSS的权限、OSS存储桶以及文件的增删改查

  • • AliyunOSSReadOnlyAccess

只读访问对象存储OSS的权限,只能读取OSS存储桶以及文件,不能创建和修改

在子账号和权限的基础之上,就可以给不同的成员创建子账号,给他们不同的权限,这样就达到了分权的目的。

有两种使用子账号的方式

  • • 控制台访问

通过子账号登录控制台管理云资源

  • • 编程访问

在代码中使用子账号的AK来调用云产品的API进而管理云资源

当我们资源数量越来越多时,通常会通过编程的方式来使用和管理云资源。

一个应用包含大量函数的时候,通常会使用开发框架创建、更新、发布函数。开发框架的本质就是通过编程的方式来管理函数。

当使用Fun或Serverless framework等工具去部署函数的时候一定要记着使用子账号的AK,并且要为子账号使用最小化的权限。

除了子账号访问控制还有一个重要的功能就是角色。


角色

角色是一个虚拟用户,必须被某个具体用户(子账号、云服务等)扮演使用,可以通过添加权限策略为角色授权。同时创建角时,需要指定角色能够被谁扮演即角色的可信实体。

角色可信实体包括云账号、云服务以及其他身份提供商。

image.png

要想使用账号A访问账号B的OSS角色,先为账号B创建一个角色RoleReadOSSAccess,将角色的可信实体设置为账号A,这样账号A就可以使用自己的AK扮演账号B的RoleReadOSSAccess角色,进而读取账号B的OSS。

基于角色扮演的方式,你就可以实现云服务授权和跨账号授权了。

怎么通过权限策略给用户或角色授权?

从形式上来讲权限策略就是有特定语法的Json字符串,可以通过配置Json字符串来实现授权。

权限策略分为两种:系统策略、自定义策略。

系统策略是云厂商内置的,预先定义的Json配置,通常包括AdministratorAccess以及各个云服务的完全访问和只读权限,但是有时候系统权限可能没有办法满足你的需求或者想在一个访问策略里面包含访问多个云服务的权限,那就可以使用自定义权限策略。

不同云厂商权限策略语法几乎一样。


通过权限策略给用户或角色授权

image.png

image.png



相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
消息中间件 运维 安全
云消息队列 ApsaraMQ Serverless 演进:高弹性低成本、更稳定更安全、智能化免运维
在 2024 年云栖大会上,阿里云智能集团产品专家刘尧全面介绍了云消息队列 ApsaraMQ Serverless 的落地成果和产品进展。此外,我们还邀请到杭州优行科技有限公司中间件消息研发负责人王智洋,分享了 ApsaraMQ for Kafka Serverless 助力曹操出行实现成本优化和效率提升的实践经验。
146 8
|
2月前
|
云安全 安全 Serverless
Serverless 安全新杀器:云安全中心护航容器安全
Serverless 安全防护能力除了支持目前既定的等保合规(漏洞扫描、入侵检测、基线检测等)、安全隔离的能力外还支持 WAF 防火墙、支持通信加密、操作审计、权限管控等能力,也正是有了这些能力的加持,SAE 才能很好的服务了金融、政企、医疗等行业的客户;Serverless(SAE)未来还计划规划更多安全能力为企业保驾护航,包括:代码安全扫描、加密、堡垒机、最小权限、身份与访问管理、以及更多的攻击防护等能力的建设。
|
4月前
|
存储 运维 DataWorks
函数计算产品使用问题之如何开通GPU权限
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
并行计算 前端开发 Serverless
Serverless 应用引擎操作报错合集之启动命令没有可执行权限,该怎么办
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
5月前
|
NoSQL 关系型数据库 Serverless
Serverless 应用引擎产品使用合集之连接RDS、Redis等数据库时,是否需要通过安全组来控制访问权限
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
Serverless 应用服务中间件 文件存储
Serverless应用引擎部署问题之权限缺少如何解决
Serverless部署是指将应用程序部署到无服务器架构中,该架构允许开发者专注于代码而无需关心底层服务器的运行和维护;针对Serverless部署过程中可能遇到的挑战,本合集提供全面的指南和最佳实践,帮助开发者顺利实现应用的无服务器化部署。
|
11月前
|
Serverless 对象存储 数据安全/隐私保护
在阿里云函数计算(FC)中使用云对象存储服务(OSS)时,需要为FC实例授予对OSS资源的访问权限
在阿里云函数计算(FC)中使用云对象存储服务(OSS)时,需要为FC实例授予对OSS资源的访问权限
585 1
|
Cloud Native 安全 Serverless
“实”力Hackathon大赛赛道二:Serverless性能优化挑战赛 赛题任务提交说明
“实”力Hackathon大赛赛道二:Serverless性能优化挑战赛 赛题任务提交说明
1231 2
|
Serverless
函数计算权限配置——主账号权限问题
函数计算权限配置——主账号权限问题自制脑图
80 0
函数计算权限配置——主账号权限问题
|
存储 人工智能 安全

相关产品

  • 函数计算